)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"d096778deb5d1396f13ae43f8639095ee31d614f","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Chang Bo Guo \u003cguochbo@cn.ibm.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2013-11-01 06:48:09 -0700"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add status maping for shutoff instance when resize"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Current code always map intance\u0027s status into Shutoff when the"},{"line_number":10,"context_line":"instance with power_state shutoff. This isn\u0027t consistent with"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"AAAATn%2F%2Fi0A%3D","line":7,"updated":"2013-11-01 16:47:47.000000000","message":"s/maping/mapping/","commit_id":"b4b63006414248f2bf427d575643e75b3c30a1c7"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"d096778deb5d1396f13ae43f8639095ee31d614f","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add status maping for shutoff instance when resize"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Current code always map intance\u0027s status into Shutoff when the"},{"line_number":10,"context_line":"instance with power_state shutoff. This isn\u0027t consistent with"},{"line_number":11,"context_line":"with active instance , we should update this when resizing a"},{"line_number":12,"context_line":"power-off instnace"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"AAAATn%2F%2Fiz8%3D","line":9,"updated":"2013-11-01 16:47:47.000000000","message":"s/intance/instance/","commit_id":"b4b63006414248f2bf427d575643e75b3c30a1c7"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"d096778deb5d1396f13ae43f8639095ee31d614f","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Add status maping for shutoff instance when resize"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Current code always map intance\u0027s status into Shutoff when the"},{"line_number":10,"context_line":"instance with power_state shutoff. This isn\u0027t consistent with"},{"line_number":11,"context_line":"with active instance , we should update this when resizing a"},{"line_number":12,"context_line":"power-off instnace"},{"line_number":13,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"AAAATn%2F%2Fiz4%3D","line":10,"updated":"2013-11-01 16:47:47.000000000","message":"s/with with/with/","commit_id":"b4b63006414248f2bf427d575643e75b3c30a1c7"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"d096778deb5d1396f13ae43f8639095ee31d614f","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Current code always map intance\u0027s status into Shutoff when the"},{"line_number":10,"context_line":"instance with power_state shutoff. This isn\u0027t consistent with"},{"line_number":11,"context_line":"with active instance , we should update this when resizing a"},{"line_number":12,"context_line":"power-off instnace"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Change-Id: Id4bff71b2c46ec9dccea6d8ac36eba273e48ea5d"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"AAAATn%2F%2Fiz0%3D","line":11,"updated":"2013-11-01 16:47:47.000000000","message":"s/ ,/,/","commit_id":"b4b63006414248f2bf427d575643e75b3c30a1c7"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"d096778deb5d1396f13ae43f8639095ee31d614f","unresolved":false,"context_lines":[{"line_number":9,"context_line":"Current code always map intance\u0027s status into Shutoff when the"},{"line_number":10,"context_line":"instance with power_state shutoff. This isn\u0027t consistent with"},{"line_number":11,"context_line":"with active instance , we should update this when resizing a"},{"line_number":12,"context_line":"power-off instnace"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Change-Id: Id4bff71b2c46ec9dccea6d8ac36eba273e48ea5d"},{"line_number":15,"context_line":"Closes-Bug: #1247106"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"AAAATn%2F%2Fizs%3D","line":12,"updated":"2013-11-01 16:47:47.000000000","message":"s/instnace/instance/","commit_id":"b4b63006414248f2bf427d575643e75b3c30a1c7"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"d096778deb5d1396f13ae43f8639095ee31d614f","unresolved":false,"context_lines":[{"line_number":12,"context_line":"power-off instnace"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Change-Id: Id4bff71b2c46ec9dccea6d8ac36eba273e48ea5d"},{"line_number":15,"context_line":"Closes-Bug: #1247106"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"AAAATn%2F%2Fizo%3D","line":15,"updated":"2013-11-01 16:47:47.000000000","message":"This should be on it\u0027s own line above the change-id and below the commit message body.  I noticed launchpad didn\u0027t mark the bug as in progress so thinking maybe it wasn\u0027t parsed correctly because of it\u0027s position in the commit message.","commit_id":"b4b63006414248f2bf427d575643e75b3c30a1c7"}],"nova/api/openstack/common.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"efaae983f84a3c3d1a8933656015d9906d860a6d","unresolved":false,"context_lines":[{"line_number":126,"context_line":"                  {\u0027vm_state\u0027: vm_state, \u0027task_state\u0027: task_state})"},{"line_number":127,"context_line":"    return status"},{"line_number":128,"context_line":""},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"def task_and_vm_state_from_status(status):"},{"line_number":131,"context_line":"    \"\"\"Map the server status string to a vm state and list of task states.\"\"\""},{"line_number":132,"context_line":"    vm_state \u003d \u0027\u0027"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATn%2F%2Fa6s%3D","line":129,"updated":"2013-11-06 16:45:20.000000000","message":"I believe your change is going to break this method, i.e. it should now be returning a list of vm_state values because the \u0027resize\u0027 status is now mapped to multiple vm_states.","commit_id":"bb458de836cf2eca5f17b6d19abc656221f27202"},{"author":{"_account_id":8651,"name":"Chen Xiao","email":"chenxiao@cn.ibm.com","username":"chenxiao"},"change_message_id":"9efa5e15db420a389bc1bc08e0114e5d1ddae8d0","unresolved":false,"context_lines":[{"line_number":126,"context_line":"                  {\u0027vm_state\u0027: vm_state, \u0027task_state\u0027: task_state})"},{"line_number":127,"context_line":"    return status"},{"line_number":128,"context_line":""},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"def task_and_vm_state_from_status(status):"},{"line_number":131,"context_line":"    \"\"\"Map the server status string to a vm state and list of task states.\"\"\""},{"line_number":132,"context_line":"    vm_state \u003d \u0027\u0027"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATn%2F%2FZQA%3D","line":129,"in_reply_to":"AAAATn%2F%2Fa6s%3D","updated":"2013-11-07 10:55:27.000000000","message":"Hi, Matt, Yes, you said is right, thank you for your reminder and review","commit_id":"bb458de836cf2eca5f17b6d19abc656221f27202"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"278e6af8eb90d3ec7c4ac78083c6c1da291b4efa","unresolved":false,"context_lines":[{"line_number":136,"context_line":"        for task_state, mapped_state in task_map.iteritems():"},{"line_number":137,"context_line":"            status_string \u003d mapped_state"},{"line_number":138,"context_line":"            if status.lower() \u003d\u003d status_string.lower():"},{"line_number":139,"context_line":"                # use if to avoid repetition."},{"line_number":140,"context_line":"                if not vm_states.__contains__(state):"},{"line_number":141,"context_line":"                    vm_states.append(state)"},{"line_number":142,"context_line":"                if not task_states.__contains__(task_state):"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATn%2F%2FY6E%3D","line":139,"updated":"2013-11-07 13:33:42.000000000","message":"You could use a set instead, that will reject duplicates for you automatically.","commit_id":"e77555627ce9e94ed2b1eb757da0c7016d66503c"},{"author":{"_account_id":8651,"name":"Chen Xiao","email":"chenxiao@cn.ibm.com","username":"chenxiao"},"change_message_id":"417439bb46a1a0a007411dc7fba1162a8a7bae4d","unresolved":false,"context_lines":[{"line_number":136,"context_line":"        for task_state, mapped_state in task_map.iteritems():"},{"line_number":137,"context_line":"            status_string \u003d mapped_state"},{"line_number":138,"context_line":"            if status.lower() \u003d\u003d status_string.lower():"},{"line_number":139,"context_line":"                # use if to avoid repetition."},{"line_number":140,"context_line":"                if not vm_states.__contains__(state):"},{"line_number":141,"context_line":"                    vm_states.append(state)"},{"line_number":142,"context_line":"                if not task_states.__contains__(task_state):"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATn%2F%2FYzk%3D","line":139,"in_reply_to":"AAAATn%2F%2FY6E%3D","updated":"2013-11-07 14:28:38.000000000","message":"Done, thank you!","commit_id":"e77555627ce9e94ed2b1eb757da0c7016d66503c"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"278e6af8eb90d3ec7c4ac78083c6c1da291b4efa","unresolved":false,"context_lines":[{"line_number":137,"context_line":"            status_string \u003d mapped_state"},{"line_number":138,"context_line":"            if status.lower() \u003d\u003d status_string.lower():"},{"line_number":139,"context_line":"                # use if to avoid repetition."},{"line_number":140,"context_line":"                if not vm_states.__contains__(state):"},{"line_number":141,"context_line":"                    vm_states.append(state)"},{"line_number":142,"context_line":"                if not task_states.__contains__(task_state):"},{"line_number":143,"context_line":"                    task_states.append(task_state)"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATn%2F%2FY6A%3D","line":140,"updated":"2013-11-07 13:33:42.000000000","message":"Don\u0027t use __contains__, use: if state not in vm_states:","commit_id":"e77555627ce9e94ed2b1eb757da0c7016d66503c"},{"author":{"_account_id":8651,"name":"Chen Xiao","email":"chenxiao@cn.ibm.com","username":"chenxiao"},"change_message_id":"417439bb46a1a0a007411dc7fba1162a8a7bae4d","unresolved":false,"context_lines":[{"line_number":137,"context_line":"            status_string \u003d mapped_state"},{"line_number":138,"context_line":"            if status.lower() \u003d\u003d status_string.lower():"},{"line_number":139,"context_line":"                # use if to avoid repetition."},{"line_number":140,"context_line":"                if not vm_states.__contains__(state):"},{"line_number":141,"context_line":"                    vm_states.append(state)"},{"line_number":142,"context_line":"                if not task_states.__contains__(task_state):"},{"line_number":143,"context_line":"                    task_states.append(task_state)"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATn%2F%2FYzg%3D","line":140,"in_reply_to":"AAAATn%2F%2FY6A%3D","updated":"2013-11-07 14:28:38.000000000","message":"Done, thank you!","commit_id":"e77555627ce9e94ed2b1eb757da0c7016d66503c"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"278e6af8eb90d3ec7c4ac78083c6c1da291b4efa","unresolved":false,"context_lines":[{"line_number":139,"context_line":"                # use if to avoid repetition."},{"line_number":140,"context_line":"                if not vm_states.__contains__(state):"},{"line_number":141,"context_line":"                    vm_states.append(state)"},{"line_number":142,"context_line":"                if not task_states.__contains__(task_state):"},{"line_number":143,"context_line":"                    task_states.append(task_state)"},{"line_number":144,"context_line":"    return vm_states, task_states"},{"line_number":145,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATn%2F%2FY54%3D","line":142,"updated":"2013-11-07 13:33:42.000000000","message":"Don\u0027t use __contains__","commit_id":"e77555627ce9e94ed2b1eb757da0c7016d66503c"},{"author":{"_account_id":8651,"name":"Chen Xiao","email":"chenxiao@cn.ibm.com","username":"chenxiao"},"change_message_id":"417439bb46a1a0a007411dc7fba1162a8a7bae4d","unresolved":false,"context_lines":[{"line_number":139,"context_line":"                # use if to avoid repetition."},{"line_number":140,"context_line":"                if not vm_states.__contains__(state):"},{"line_number":141,"context_line":"                    vm_states.append(state)"},{"line_number":142,"context_line":"                if not task_states.__contains__(task_state):"},{"line_number":143,"context_line":"                    task_states.append(task_state)"},{"line_number":144,"context_line":"    return vm_states, task_states"},{"line_number":145,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATn%2F%2FYzc%3D","line":142,"in_reply_to":"AAAATn%2F%2FY54%3D","updated":"2013-11-07 14:28:38.000000000","message":"Done, thank you!","commit_id":"e77555627ce9e94ed2b1eb757da0c7016d66503c"}],"nova/tests/api/openstack/compute/plugins/v3/test_servers.py":[{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"eb0d67cf3f834f58dca65dc961d7b12b9d1576ca","unresolved":false,"context_lines":[{"line_number":842,"context_line":"                         limit\u003dNone, marker\u003dNone, want_objects\u003dFalse):"},{"line_number":843,"context_line":"            self.assertIn(\u0027vm_state\u0027, search_opts)"},{"line_number":844,"context_line":"            self.assertEqual(search_opts[\u0027vm_state\u0027],"},{"line_number":845,"context_line":"                             [vm_states.ACTIVE, vm_states.STOPPED])"},{"line_number":846,"context_line":""},{"line_number":847,"context_line":"            db_list \u003d [fakes.stub_instance(100, uuid\u003dserver_uuid)]"},{"line_number":848,"context_line":"            return instance_obj._make_instance_list("}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAATn%2F%2BXAo%3D","line":845,"updated":"2013-11-26 23:17:04.000000000","message":"Where do these values come from?  The reason I ask is because in common.py, you build up a list by converting a set, meaning the order of the list is potentially different on each execution.  If this value comes from the return result of that function, then we have the potential for a non-deterministic test failure here…","commit_id":"c2cca9f56da1a50dbab12756943a284e0fb97af1"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"be3ea9b1a9f8fa483765a6378eb3d83df7d9bb3e","unresolved":false,"context_lines":[{"line_number":842,"context_line":"                         limit\u003dNone, marker\u003dNone, want_objects\u003dFalse):"},{"line_number":843,"context_line":"            self.assertIn(\u0027vm_state\u0027, search_opts)"},{"line_number":844,"context_line":"            self.assertEqual(search_opts[\u0027vm_state\u0027],"},{"line_number":845,"context_line":"                             [vm_states.ACTIVE, vm_states.STOPPED])"},{"line_number":846,"context_line":""},{"line_number":847,"context_line":"            db_list \u003d [fakes.stub_instance(100, uuid\u003dserver_uuid)]"},{"line_number":848,"context_line":"            return instance_obj._make_instance_list("}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAATn%2F%2BDUM%3D","line":845,"in_reply_to":"AAAATn%2F%2BD18%3D","updated":"2013-12-03 02:20:04.000000000","message":"I ran a simple test on python 2.7 100 times and the order was the same every time after converting a set to a list, but I don\u0027t have a python 3 installation to test on at the moment.  I think the compromise right now is to just sort the lists before returning from the method in common.py right?  That seems simple enough to me, then it\u0027s always deterministic.","commit_id":"c2cca9f56da1a50dbab12756943a284e0fb97af1"},{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"21035b8700cad888f3953654aae27bddf835c211","unresolved":false,"context_lines":[{"line_number":842,"context_line":"                         limit\u003dNone, marker\u003dNone, want_objects\u003dFalse):"},{"line_number":843,"context_line":"            self.assertIn(\u0027vm_state\u0027, search_opts)"},{"line_number":844,"context_line":"            self.assertEqual(search_opts[\u0027vm_state\u0027],"},{"line_number":845,"context_line":"                             [vm_states.ACTIVE, vm_states.STOPPED])"},{"line_number":846,"context_line":""},{"line_number":847,"context_line":"            db_list \u003d [fakes.stub_instance(100, uuid\u003dserver_uuid)]"},{"line_number":848,"context_line":"            return instance_obj._make_instance_list("}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAATn%2F9%2FiA%3D","line":845,"in_reply_to":"AAAATn%2F%2BDSo%3D","updated":"2013-12-03 17:29:02.000000000","message":"Well, for the record, I typically convert lists where the order may not be fixed into sets, but sorting them is fine too…","commit_id":"c2cca9f56da1a50dbab12756943a284e0fb97af1"},{"author":{"_account_id":8651,"name":"Chen Xiao","email":"chenxiao@cn.ibm.com","username":"chenxiao"},"change_message_id":"d858a9093aa71058ecc0a1fe35a9f82690988d25","unresolved":false,"context_lines":[{"line_number":842,"context_line":"                         limit\u003dNone, marker\u003dNone, want_objects\u003dFalse):"},{"line_number":843,"context_line":"            self.assertIn(\u0027vm_state\u0027, search_opts)"},{"line_number":844,"context_line":"            self.assertEqual(search_opts[\u0027vm_state\u0027],"},{"line_number":845,"context_line":"                             [vm_states.ACTIVE, vm_states.STOPPED])"},{"line_number":846,"context_line":""},{"line_number":847,"context_line":"            db_list \u003d [fakes.stub_instance(100, uuid\u003dserver_uuid)]"},{"line_number":848,"context_line":"            return instance_obj._make_instance_list("}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAATn%2F%2BDSo%3D","line":845,"in_reply_to":"AAAATn%2F%2BDUM%3D","updated":"2013-12-03 02:28:34.000000000","message":"Now I had not investigated python 3, So add sort() can ensure it is correct. Thanks.","commit_id":"c2cca9f56da1a50dbab12756943a284e0fb97af1"},{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"ed958acc4d96297614553f66efdd71d42c8db19d","unresolved":false,"context_lines":[{"line_number":842,"context_line":"                         limit\u003dNone, marker\u003dNone, want_objects\u003dFalse):"},{"line_number":843,"context_line":"            self.assertIn(\u0027vm_state\u0027, search_opts)"},{"line_number":844,"context_line":"            self.assertEqual(search_opts[\u0027vm_state\u0027],"},{"line_number":845,"context_line":"                             [vm_states.ACTIVE, vm_states.STOPPED])"},{"line_number":846,"context_line":""},{"line_number":847,"context_line":"            db_list \u003d [fakes.stub_instance(100, uuid\u003dserver_uuid)]"},{"line_number":848,"context_line":"            return instance_obj._make_instance_list("}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAATn%2F%2BD18%3D","line":845,"in_reply_to":"AAAATn%2F%2BWMI%3D","updated":"2013-12-02 23:13:08.000000000","message":"That may be true in Python 2, but I *really* wouldn\u0027t rely on it—both sets and dictionaries are unordered data types, so there are no guarantees about the order in which items are returned from an iteration.  Also, I\u0027m fairly certain the ordering on sets and dictionaries is different on different executions in Python 3, which we want to be able to support in the future.","commit_id":"c2cca9f56da1a50dbab12756943a284e0fb97af1"},{"author":{"_account_id":8651,"name":"Chen Xiao","email":"chenxiao@cn.ibm.com","username":"chenxiao"},"change_message_id":"8296b580664fe43fac14254fbe183c75f9311910","unresolved":false,"context_lines":[{"line_number":842,"context_line":"                         limit\u003dNone, marker\u003dNone, want_objects\u003dFalse):"},{"line_number":843,"context_line":"            self.assertIn(\u0027vm_state\u0027, search_opts)"},{"line_number":844,"context_line":"            self.assertEqual(search_opts[\u0027vm_state\u0027],"},{"line_number":845,"context_line":"                             [vm_states.ACTIVE, vm_states.STOPPED])"},{"line_number":846,"context_line":""},{"line_number":847,"context_line":"            db_list \u003d [fakes.stub_instance(100, uuid\u003dserver_uuid)]"},{"line_number":848,"context_line":"            return instance_obj._make_instance_list("}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAATn%2F%2BWMI%3D","line":845,"in_reply_to":"AAAATn%2F%2BXAo%3D","updated":"2013-11-27 04:05:36.000000000","message":"Hi, Kevin L. Mitchell, \n     Thanks for your review first, do you mean the order of the list is different on \ndifferent times when running this unit test if build up a list by converting a set?\nI do not think the order will change on different execution,  the order of set will\n not change, you can see \"Return a list whose items are the same and in the \nsame order as iterable‘s items.\" about explanation of \u0027list([iterable])\u0027 in \nhttp://docs.python.org/2/library/functions.html#list, So I do not agree with you, \nif you have other concern, can tell me anytime, Thank you :)","commit_id":"c2cca9f56da1a50dbab12756943a284e0fb97af1"}],"nova/tests/api/openstack/test_common.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"efaae983f84a3c3d1a8933656015d9906d860a6d","unresolved":false,"context_lines":[{"line_number":358,"context_line":"                               task_states.RESIZE_MIGRATED,"},{"line_number":359,"context_line":"                               task_states.RESIZE_FINISH):"},{"line_number":360,"context_line":"                status \u003d common.status_from_state(vm_state, task_state)"},{"line_number":361,"context_line":"                self.assertEqual(status, \u0027RESIZE\u0027)"},{"line_number":362,"context_line":""},{"line_number":363,"context_line":"    def test_task_and_vm_state_from_status(self):"},{"line_number":364,"context_line":"        fixture \u003d \u0027reboot\u0027"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATn%2F%2Fa7Y%3D","line":361,"updated":"2013-11-06 16:45:20.000000000","message":"nit: args should be switch around (expected, observed)","commit_id":"bb458de836cf2eca5f17b6d19abc656221f27202"},{"author":{"_account_id":8651,"name":"Chen Xiao","email":"chenxiao@cn.ibm.com","username":"chenxiao"},"change_message_id":"9efa5e15db420a389bc1bc08e0114e5d1ddae8d0","unresolved":false,"context_lines":[{"line_number":358,"context_line":"                               task_states.RESIZE_MIGRATED,"},{"line_number":359,"context_line":"                               task_states.RESIZE_FINISH):"},{"line_number":360,"context_line":"                status \u003d common.status_from_state(vm_state, task_state)"},{"line_number":361,"context_line":"                self.assertEqual(status, \u0027RESIZE\u0027)"},{"line_number":362,"context_line":""},{"line_number":363,"context_line":"    def test_task_and_vm_state_from_status(self):"},{"line_number":364,"context_line":"        fixture \u003d \u0027reboot\u0027"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATn%2F%2FZQE%3D","line":361,"in_reply_to":"AAAATn%2F%2Fa7Y%3D","updated":"2013-11-07 10:55:27.000000000","message":"ok, Thank you!","commit_id":"bb458de836cf2eca5f17b6d19abc656221f27202"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"efaae983f84a3c3d1a8933656015d9906d860a6d","unresolved":false,"context_lines":[{"line_number":360,"context_line":"                status \u003d common.status_from_state(vm_state, task_state)"},{"line_number":361,"context_line":"                self.assertEqual(status, \u0027RESIZE\u0027)"},{"line_number":362,"context_line":""},{"line_number":363,"context_line":"    def test_task_and_vm_state_from_status(self):"},{"line_number":364,"context_line":"        fixture \u003d \u0027reboot\u0027"},{"line_number":365,"context_line":"        actual \u003d common.task_and_vm_state_from_status(fixture)"},{"line_number":366,"context_line":"        excepted \u003d \u0027active\u0027, [\u0027rebooting\u0027]"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATn%2F%2Fa6w%3D","line":363,"updated":"2013-11-06 16:45:20.000000000","message":"You need a test like this for \u0027resize\u0027 because I think this change is going to cause problems now, i.e. it\u0027s not going to know if the vm_state should be \u0027active\u0027 or \u0027stopped\u0027.  You\u0027ll probably get \u0027stopped\u0027 back from the common.task_and_vm_state_from_status method since it\u0027s the last vm_state in the map that is mapped to \u0027resize\u0027 in it\u0027s task_state map, but that could be a problem for the code that\u0027s relying on this change.","commit_id":"bb458de836cf2eca5f17b6d19abc656221f27202"},{"author":{"_account_id":8651,"name":"Chen Xiao","email":"chenxiao@cn.ibm.com","username":"chenxiao"},"change_message_id":"9efa5e15db420a389bc1bc08e0114e5d1ddae8d0","unresolved":false,"context_lines":[{"line_number":360,"context_line":"                status \u003d common.status_from_state(vm_state, task_state)"},{"line_number":361,"context_line":"                self.assertEqual(status, \u0027RESIZE\u0027)"},{"line_number":362,"context_line":""},{"line_number":363,"context_line":"    def test_task_and_vm_state_from_status(self):"},{"line_number":364,"context_line":"        fixture \u003d \u0027reboot\u0027"},{"line_number":365,"context_line":"        actual \u003d common.task_and_vm_state_from_status(fixture)"},{"line_number":366,"context_line":"        excepted \u003d \u0027active\u0027, [\u0027rebooting\u0027]"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATn%2F%2FZQU%3D","line":363,"in_reply_to":"AAAATn%2F%2Fa6w%3D","updated":"2013-11-07 10:55:27.000000000","message":"Thank you! Matt, an important reminder, I will change my code and commit a new patch","commit_id":"bb458de836cf2eca5f17b6d19abc656221f27202"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"278e6af8eb90d3ec7c4ac78083c6c1da291b4efa","unresolved":false,"context_lines":[{"line_number":358,"context_line":"                               task_states.RESIZE_MIGRATED,"},{"line_number":359,"context_line":"                               task_states.RESIZE_FINISH):"},{"line_number":360,"context_line":"                actual \u003d common.status_from_state(vm_state, task_state)"},{"line_number":361,"context_line":"                excepted \u003d \u0027RESIZE\u0027"},{"line_number":362,"context_line":"                self.assertEqual(actual, excepted)"},{"line_number":363,"context_line":""},{"line_number":364,"context_line":"    def test_task_and_vm_state_from_status(self):"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATn%2F%2FY5k%3D","line":361,"updated":"2013-11-07 13:33:42.000000000","message":"s/excepted/expected/","commit_id":"e77555627ce9e94ed2b1eb757da0c7016d66503c"},{"author":{"_account_id":8651,"name":"Chen Xiao","email":"chenxiao@cn.ibm.com","username":"chenxiao"},"change_message_id":"417439bb46a1a0a007411dc7fba1162a8a7bae4d","unresolved":false,"context_lines":[{"line_number":358,"context_line":"                               task_states.RESIZE_MIGRATED,"},{"line_number":359,"context_line":"                               task_states.RESIZE_FINISH):"},{"line_number":360,"context_line":"                actual \u003d common.status_from_state(vm_state, task_state)"},{"line_number":361,"context_line":"                excepted \u003d \u0027RESIZE\u0027"},{"line_number":362,"context_line":"                self.assertEqual(actual, excepted)"},{"line_number":363,"context_line":""},{"line_number":364,"context_line":"    def test_task_and_vm_state_from_status(self):"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATn%2F%2FYzw%3D","line":361,"in_reply_to":"AAAATn%2F%2FY5k%3D","updated":"2013-11-07 14:28:38.000000000","message":"Done, thank you!","commit_id":"e77555627ce9e94ed2b1eb757da0c7016d66503c"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"278e6af8eb90d3ec7c4ac78083c6c1da291b4efa","unresolved":false,"context_lines":[{"line_number":359,"context_line":"                               task_states.RESIZE_FINISH):"},{"line_number":360,"context_line":"                actual \u003d common.status_from_state(vm_state, task_state)"},{"line_number":361,"context_line":"                excepted \u003d \u0027RESIZE\u0027"},{"line_number":362,"context_line":"                self.assertEqual(actual, excepted)"},{"line_number":363,"context_line":""},{"line_number":364,"context_line":"    def test_task_and_vm_state_from_status(self):"},{"line_number":365,"context_line":"        fixture1 \u003d \u0027reboot\u0027"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATn%2F%2FY5g%3D","line":362,"updated":"2013-11-07 13:33:42.000000000","message":"Switch the args around, should be (expected, actual).","commit_id":"e77555627ce9e94ed2b1eb757da0c7016d66503c"},{"author":{"_account_id":8651,"name":"Chen Xiao","email":"chenxiao@cn.ibm.com","username":"chenxiao"},"change_message_id":"417439bb46a1a0a007411dc7fba1162a8a7bae4d","unresolved":false,"context_lines":[{"line_number":359,"context_line":"                               task_states.RESIZE_FINISH):"},{"line_number":360,"context_line":"                actual \u003d common.status_from_state(vm_state, task_state)"},{"line_number":361,"context_line":"                excepted \u003d \u0027RESIZE\u0027"},{"line_number":362,"context_line":"                self.assertEqual(actual, excepted)"},{"line_number":363,"context_line":""},{"line_number":364,"context_line":"    def test_task_and_vm_state_from_status(self):"},{"line_number":365,"context_line":"        fixture1 \u003d \u0027reboot\u0027"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATn%2F%2FYzs%3D","line":362,"in_reply_to":"AAAATn%2F%2FY5g%3D","updated":"2013-11-07 14:28:38.000000000","message":"Done","commit_id":"e77555627ce9e94ed2b1eb757da0c7016d66503c"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"278e6af8eb90d3ec7c4ac78083c6c1da291b4efa","unresolved":false,"context_lines":[{"line_number":364,"context_line":"    def test_task_and_vm_state_from_status(self):"},{"line_number":365,"context_line":"        fixture1 \u003d \u0027reboot\u0027"},{"line_number":366,"context_line":"        actual \u003d common.task_and_vm_state_from_status(fixture1)"},{"line_number":367,"context_line":"        excepted \u003d [\u0027active\u0027], [\u0027rebooting\u0027]"},{"line_number":368,"context_line":"        self.assertEqual(actual, excepted)"},{"line_number":369,"context_line":""},{"line_number":370,"context_line":"        fixture2 \u003d \u0027resize\u0027"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATn%2F%2FY5I%3D","line":367,"updated":"2013-11-07 13:33:42.000000000","message":"s/excepted/expected/","commit_id":"e77555627ce9e94ed2b1eb757da0c7016d66503c"},{"author":{"_account_id":8651,"name":"Chen Xiao","email":"chenxiao@cn.ibm.com","username":"chenxiao"},"change_message_id":"417439bb46a1a0a007411dc7fba1162a8a7bae4d","unresolved":false,"context_lines":[{"line_number":364,"context_line":"    def test_task_and_vm_state_from_status(self):"},{"line_number":365,"context_line":"        fixture1 \u003d \u0027reboot\u0027"},{"line_number":366,"context_line":"        actual \u003d common.task_and_vm_state_from_status(fixture1)"},{"line_number":367,"context_line":"        excepted \u003d [\u0027active\u0027], [\u0027rebooting\u0027]"},{"line_number":368,"context_line":"        self.assertEqual(actual, excepted)"},{"line_number":369,"context_line":""},{"line_number":370,"context_line":"        fixture2 \u003d \u0027resize\u0027"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATn%2F%2FYzo%3D","line":367,"in_reply_to":"AAAATn%2F%2FY5I%3D","updated":"2013-11-07 14:28:38.000000000","message":"Done, thank you!","commit_id":"e77555627ce9e94ed2b1eb757da0c7016d66503c"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"8b4ef5ea77f23da1317ce4751b82dd95b9e505a8","unresolved":false,"context_lines":[{"line_number":369,"context_line":""},{"line_number":370,"context_line":"        fixture2 \u003d \u0027resize\u0027"},{"line_number":371,"context_line":"        actual \u003d common.task_and_vm_state_from_status(fixture2)"},{"line_number":372,"context_line":"        expected \u003d [\u0027active\u0027, \u0027stopped\u0027], [\u0027resize_finish\u0027,"},{"line_number":373,"context_line":"                   \u0027resize_prep\u0027, \u0027resize_migrating\u0027, \u0027resize_migrated\u0027]"},{"line_number":374,"context_line":"        self.assertEqual(expected, actual)"},{"line_number":375,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAATn%2F%2FYvs%3D","line":372,"updated":"2013-11-07 14:59:03.000000000","message":"nit: alignment, please contain the 2nd list on the same line, so move resize_finish done a line.","commit_id":"a14627e4544637bb49df4fe14e2fbf690510bb78"},{"author":{"_account_id":8651,"name":"Chen Xiao","email":"chenxiao@cn.ibm.com","username":"chenxiao"},"change_message_id":"89e09550b0183244127dbeb65338878170ad1934","unresolved":false,"context_lines":[{"line_number":369,"context_line":""},{"line_number":370,"context_line":"        fixture2 \u003d \u0027resize\u0027"},{"line_number":371,"context_line":"        actual \u003d common.task_and_vm_state_from_status(fixture2)"},{"line_number":372,"context_line":"        expected \u003d [\u0027active\u0027, \u0027stopped\u0027], [\u0027resize_finish\u0027,"},{"line_number":373,"context_line":"                   \u0027resize_prep\u0027, \u0027resize_migrating\u0027, \u0027resize_migrated\u0027]"},{"line_number":374,"context_line":"        self.assertEqual(expected, actual)"},{"line_number":375,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAATn%2F%2FXzQ%3D","line":372,"in_reply_to":"AAAATn%2F%2FYvs%3D","updated":"2013-11-08 01:43:12.000000000","message":"ok, thanks","commit_id":"a14627e4544637bb49df4fe14e2fbf690510bb78"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"7201be1369eee21e59d9cc443317178ee6d908e7","unresolved":false,"context_lines":[{"line_number":369,"context_line":""},{"line_number":370,"context_line":"        fixture2 \u003d \u0027resize\u0027"},{"line_number":371,"context_line":"        actual \u003d common.task_and_vm_state_from_status(fixture2)"},{"line_number":372,"context_line":"        expected \u003d [\u0027active\u0027, \u0027stopped\u0027], \\"},{"line_number":373,"context_line":"                   [\u0027resize_finish\u0027, \u0027resize_prep\u0027, \u0027resize_migrating\u0027,"},{"line_number":374,"context_line":"                    \u0027resize_migrated\u0027]"},{"line_number":375,"context_line":"        self.assertEqual(expected, actual)"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAATn%2F%2FV3k%3D","line":372,"updated":"2013-11-08 22:22:41.000000000","message":"nit: continue lines by wrapping in parenthesis, not with \\.","commit_id":"87141e20bef75e47f3eca8d6f28679ec5c7a08a7"},{"author":{"_account_id":8651,"name":"Chen Xiao","email":"chenxiao@cn.ibm.com","username":"chenxiao"},"change_message_id":"1fc3248a6268c2119660f49e276de32f57559aae","unresolved":false,"context_lines":[{"line_number":369,"context_line":""},{"line_number":370,"context_line":"        fixture2 \u003d \u0027resize\u0027"},{"line_number":371,"context_line":"        actual \u003d common.task_and_vm_state_from_status(fixture2)"},{"line_number":372,"context_line":"        expected \u003d [\u0027active\u0027, \u0027stopped\u0027], \\"},{"line_number":373,"context_line":"                   [\u0027resize_finish\u0027, \u0027resize_prep\u0027, \u0027resize_migrating\u0027,"},{"line_number":374,"context_line":"                    \u0027resize_migrated\u0027]"},{"line_number":375,"context_line":"        self.assertEqual(expected, actual)"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAATn%2F%2FVSg%3D","line":372,"in_reply_to":"AAAATn%2F%2FV3k%3D","updated":"2013-11-10 03:08:54.000000000","message":"Done, thanks, matt","commit_id":"87141e20bef75e47f3eca8d6f28679ec5c7a08a7"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"a0aefba1d5519e9a5ff8e6ef1c1e15316e88b60d","unresolved":false,"context_lines":[{"line_number":364,"context_line":"    def test_task_and_vm_state_from_status(self):"},{"line_number":365,"context_line":"        fixture1 \u003d \u0027reboot\u0027"},{"line_number":366,"context_line":"        actual \u003d common.task_and_vm_state_from_status(fixture1)"},{"line_number":367,"context_line":"        expected \u003d [\u0027active\u0027], [\u0027rebooting\u0027]"},{"line_number":368,"context_line":"        self.assertEqual(expected, actual)"},{"line_number":369,"context_line":""},{"line_number":370,"context_line":"        fixture2 \u003d \u0027resize\u0027"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAATn%2F%2FVSE%3D","line":367,"updated":"2013-11-10 04:21:54.000000000","message":"Another nit, and I know it was this way in the test originally, but if you have to push another patch set it\u0027d be good to use the constants here like in the new test above rather than hard-coding the state values.","commit_id":"7dfdf08cd87d092ff7e384f0302f999e26e89785"},{"author":{"_account_id":8651,"name":"Chen Xiao","email":"chenxiao@cn.ibm.com","username":"chenxiao"},"change_message_id":"7df6d7527af8cdcf273e37c8f044652629e68e8a","unresolved":false,"context_lines":[{"line_number":364,"context_line":"    def test_task_and_vm_state_from_status(self):"},{"line_number":365,"context_line":"        fixture1 \u003d \u0027reboot\u0027"},{"line_number":366,"context_line":"        actual \u003d common.task_and_vm_state_from_status(fixture1)"},{"line_number":367,"context_line":"        expected \u003d [\u0027active\u0027], [\u0027rebooting\u0027]"},{"line_number":368,"context_line":"        self.assertEqual(expected, actual)"},{"line_number":369,"context_line":""},{"line_number":370,"context_line":"        fixture2 \u003d \u0027resize\u0027"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAATn%2F%2FUXA%3D","line":367,"in_reply_to":"AAAATn%2F%2FVSE%3D","updated":"2013-11-11 03:34:21.000000000","message":"ok, Matt, I will change this in next patch","commit_id":"7dfdf08cd87d092ff7e384f0302f999e26e89785"},{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"eb0d67cf3f834f58dca65dc961d7b12b9d1576ca","unresolved":false,"context_lines":[{"line_number":373,"context_line":"                    [task_states.RESIZE_FINISH,"},{"line_number":374,"context_line":"                     task_states.RESIZE_PREP,"},{"line_number":375,"context_line":"                     task_states.RESIZE_MIGRATING,"},{"line_number":376,"context_line":"                     task_states.RESIZE_MIGRATED])"},{"line_number":377,"context_line":"        self.assertEqual(expected, actual)"},{"line_number":378,"context_line":""},{"line_number":379,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAATn%2F%2BXAg%3D","line":376,"updated":"2013-11-26 23:17:04.000000000","message":"Again, I see the potential for a non-deterministic test failure here…","commit_id":"c2cca9f56da1a50dbab12756943a284e0fb97af1"},{"author":{"_account_id":8651,"name":"Chen Xiao","email":"chenxiao@cn.ibm.com","username":"chenxiao"},"change_message_id":"8296b580664fe43fac14254fbe183c75f9311910","unresolved":false,"context_lines":[{"line_number":373,"context_line":"                    [task_states.RESIZE_FINISH,"},{"line_number":374,"context_line":"                     task_states.RESIZE_PREP,"},{"line_number":375,"context_line":"                     task_states.RESIZE_MIGRATING,"},{"line_number":376,"context_line":"                     task_states.RESIZE_MIGRATED])"},{"line_number":377,"context_line":"        self.assertEqual(expected, actual)"},{"line_number":378,"context_line":""},{"line_number":379,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAATn%2F%2BWL4%3D","line":376,"in_reply_to":"AAAATn%2F%2BXAg%3D","updated":"2013-11-27 04:05:36.000000000","message":"Hi, Kevin L. Mitchell,\nThanks for your review first, do you mean the order of the list is different on\ndifferent times when running this unit test if build up a list by converting a set?\nI do not think the order will change on different execution, the order of set will\nnot change, you can see \"Return a list whose items are the same and in the\nsame order as iterable‘s items.\" about explanation of \u0027list([iterable])\u0027 in\nhttp://docs.python.org/2/library/functions.html#list, So I do not agree with you,\nif you have other concern, can tell me anytime, Thank you :)","commit_id":"c2cca9f56da1a50dbab12756943a284e0fb97af1"}]}
