)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"f231f153def8fc5e1b7da6be0b0762ef19428633","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Now live migration is still using instance dict as parameter, we"},{"line_number":10,"context_line":"should change it to using instance object."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Change-Id: I7709b32ebeef88eb9759d0275c3076091b6be669"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"AAAAXH%2F%2FCvM%3D","line":11,"updated":"2014-04-24 12:52:04.000000000","message":"you should reference the BP for the object support here","commit_id":"b47fe93161283ddc6bc20bf2fcd6d205d4676943"},{"author":{"_account_id":7494,"name":"Guangya Liu","email":"gyliu513@gmail.com","username":"JayLau"},"change_message_id":"21c172cbfab288e7b4287fe692436f4f39c0581a","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Now live migration is still using instance dict as parameter, we"},{"line_number":10,"context_line":"should change it to using instance object."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Change-Id: I7709b32ebeef88eb9759d0275c3076091b6be669"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"AAAAXH%2F%2FCpI%3D","line":11,"in_reply_to":"AAAAXH%2F%2FCvM%3D","updated":"2014-04-24 13:08:38.000000000","message":"Done","commit_id":"b47fe93161283ddc6bc20bf2fcd6d205d4676943"}],"nova/compute/manager.py":[{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"7f1023a5762d2e9fb9b789f5f1c94e3c2942ee0b","unresolved":false,"context_lines":[{"line_number":4527,"context_line":"                     network_info\u003dnetwork_info)"},{"line_number":4528,"context_line":""},{"line_number":4529,"context_line":"        return pre_live_migration_data"},{"line_number":4530,"context_line":""},{"line_number":4531,"context_line":"    @wrap_exception()"},{"line_number":4532,"context_line":"    @wrap_instance_fault"},{"line_number":4533,"context_line":"    def live_migration(self, context, dest, instance, block_migration,"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAXH%2F%2FKtc%3D","line":4530,"updated":"2014-04-23 15:39:09.000000000","message":"You need an @object_compat here, otherwise older clients will send a dict and this will break.","commit_id":"683cc9bb35f78351a06d6952fb800eae5b2105d1"},{"author":{"_account_id":7494,"name":"Guangya Liu","email":"gyliu513@gmail.com","username":"JayLau"},"change_message_id":"376462470e9f35b769a48ab0a6fbdcb6608ec09b","unresolved":false,"context_lines":[{"line_number":4527,"context_line":"                     network_info\u003dnetwork_info)"},{"line_number":4528,"context_line":""},{"line_number":4529,"context_line":"        return pre_live_migration_data"},{"line_number":4530,"context_line":""},{"line_number":4531,"context_line":"    @wrap_exception()"},{"line_number":4532,"context_line":"    @wrap_instance_fault"},{"line_number":4533,"context_line":"    def live_migration(self, context, dest, instance, block_migration,"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAXH%2F%2FDyk%3D","line":4530,"in_reply_to":"AAAAXH%2F%2FKtc%3D","updated":"2014-04-24 10:07:53.000000000","message":"Done","commit_id":"683cc9bb35f78351a06d6952fb800eae5b2105d1"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"f231f153def8fc5e1b7da6be0b0762ef19428633","unresolved":false,"context_lines":[{"line_number":483,"context_line":"        \"\"\""},{"line_number":484,"context_line":"        @utils.synchronized(self._lock_name)"},{"line_number":485,"context_line":"        def _clear_events():"},{"line_number":486,"context_line":"            return self._events.pop(instance.uuid, {})"},{"line_number":487,"context_line":"        return _clear_events()"},{"line_number":488,"context_line":""},{"line_number":489,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAXH%2F%2FCuw%3D","line":486,"updated":"2014-04-24 12:52:04.000000000","message":"i am not sure that this works with a dictionary? please look at dans comments","commit_id":"b47fe93161283ddc6bc20bf2fcd6d205d4676943"},{"author":{"_account_id":7494,"name":"Guangya Liu","email":"gyliu513@gmail.com","username":"JayLau"},"change_message_id":"21c172cbfab288e7b4287fe692436f4f39c0581a","unresolved":false,"context_lines":[{"line_number":483,"context_line":"        \"\"\""},{"line_number":484,"context_line":"        @utils.synchronized(self._lock_name)"},{"line_number":485,"context_line":"        def _clear_events():"},{"line_number":486,"context_line":"            return self._events.pop(instance.uuid, {})"},{"line_number":487,"context_line":"        return _clear_events()"},{"line_number":488,"context_line":""},{"line_number":489,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAXH%2F%2FCpU%3D","line":486,"in_reply_to":"AAAAXH%2F%2FCuw%3D","updated":"2014-04-24 13:08:38.000000000","message":"OK, I will rollback this.","commit_id":"b47fe93161283ddc6bc20bf2fcd6d205d4676943"}],"nova/compute/rpcapi.py":[{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"7f1023a5762d2e9fb9b789f5f1c94e3c2942ee0b","unresolved":false,"context_lines":[{"line_number":549,"context_line":"                       migrate_data\u003dNone):"},{"line_number":550,"context_line":"        if self.client.can_send_version(\u00273.26\u0027):"},{"line_number":551,"context_line":"            version \u003d \u00273.26\u0027"},{"line_number":552,"context_line":"            instance_p \u003d instance"},{"line_number":553,"context_line":"        else:"},{"line_number":554,"context_line":"            # NOTE(russellb) Havana compat"},{"line_number":555,"context_line":"            version \u003d self._get_compat_version(\u00273.0\u0027, \u00272.0\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAXH%2F%2FKs8%3D","line":552,"updated":"2014-04-23 15:39:09.000000000","message":"The convention elsewhere in this file is to not have instance_p (since it\u0027s not primitive in some cases) and do this in the \u003c3.26 case:\n\n instance \u003d jsonutils.to_primitive(instance)","commit_id":"683cc9bb35f78351a06d6952fb800eae5b2105d1"},{"author":{"_account_id":7494,"name":"Guangya Liu","email":"gyliu513@gmail.com","username":"JayLau"},"change_message_id":"376462470e9f35b769a48ab0a6fbdcb6608ec09b","unresolved":false,"context_lines":[{"line_number":549,"context_line":"                       migrate_data\u003dNone):"},{"line_number":550,"context_line":"        if self.client.can_send_version(\u00273.26\u0027):"},{"line_number":551,"context_line":"            version \u003d \u00273.26\u0027"},{"line_number":552,"context_line":"            instance_p \u003d instance"},{"line_number":553,"context_line":"        else:"},{"line_number":554,"context_line":"            # NOTE(russellb) Havana compat"},{"line_number":555,"context_line":"            version \u003d self._get_compat_version(\u00273.0\u0027, \u00272.0\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAXH%2F%2FDwU%3D","line":552,"in_reply_to":"AAAAXH%2F%2FKs8%3D","updated":"2014-04-24 10:07:53.000000000","message":"Done","commit_id":"683cc9bb35f78351a06d6952fb800eae5b2105d1"}],"nova/tests/compute/test_compute.py":[{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"96e3f224205e059e8fb7f0686700f24ffb7f3a67","unresolved":false,"context_lines":[{"line_number":5345,"context_line":""},{"line_number":5346,"context_line":"        # creating testdata"},{"line_number":5347,"context_line":"        c \u003d context.get_admin_context()"},{"line_number":5348,"context_line":"        instance \u003d self._objectify(self._create_fake_instance({"},{"line_number":5349,"context_line":"                                \u0027host\u0027: srchost,"},{"line_number":5350,"context_line":"                                \u0027state_description\u0027: \u0027migrating\u0027,"},{"line_number":5351,"context_line":"                                \u0027state\u0027: power_state.PAUSED}))"}],"source_content_type":"text/x-python","patch_set":5,"id":"7adec928_162149fc","line":5348,"updated":"2014-05-22 17:30:43.000000000","message":"Use self._create_fake_instance_obj() instead.","commit_id":"a97a2415449a44a027e0342a4d51a677ebdb9acb"},{"author":{"_account_id":7494,"name":"Guangya Liu","email":"gyliu513@gmail.com","username":"JayLau"},"change_message_id":"aada3914a984b93a8755a04955c9772d3993a357","unresolved":false,"context_lines":[{"line_number":5345,"context_line":""},{"line_number":5346,"context_line":"        # creating testdata"},{"line_number":5347,"context_line":"        c \u003d context.get_admin_context()"},{"line_number":5348,"context_line":"        instance \u003d self._objectify(self._create_fake_instance({"},{"line_number":5349,"context_line":"                                \u0027host\u0027: srchost,"},{"line_number":5350,"context_line":"                                \u0027state_description\u0027: \u0027migrating\u0027,"},{"line_number":5351,"context_line":"                                \u0027state\u0027: power_state.PAUSED}))"}],"source_content_type":"text/x-python","patch_set":5,"id":"5adbc538_f2c7ce62","line":5348,"in_reply_to":"7adec928_162149fc","updated":"2014-05-25 03:08:47.000000000","message":"Done","commit_id":"a97a2415449a44a027e0342a4d51a677ebdb9acb"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"96e3f224205e059e8fb7f0686700f24ffb7f3a67","unresolved":false,"context_lines":[{"line_number":5350,"context_line":"                                \u0027state_description\u0027: \u0027migrating\u0027,"},{"line_number":5351,"context_line":"                                \u0027state\u0027: power_state.PAUSED}))"},{"line_number":5352,"context_line":"        instance.update({\u0027task_state\u0027: task_states.MIGRATING,"},{"line_number":5353,"context_line":"                         \u0027power_state\u0027: power_state.PAUSED})"},{"line_number":5354,"context_line":"        instance.save(c)"},{"line_number":5355,"context_line":""},{"line_number":5356,"context_line":"        # creating mocks"}],"source_content_type":"text/x-python","patch_set":5,"id":"7adec928_7679adfb","line":5353,"updated":"2014-05-22 17:30:43.000000000","message":"I think you can pass these to the create function too, no?","commit_id":"a97a2415449a44a027e0342a4d51a677ebdb9acb"},{"author":{"_account_id":7494,"name":"Guangya Liu","email":"gyliu513@gmail.com","username":"JayLau"},"change_message_id":"aada3914a984b93a8755a04955c9772d3993a357","unresolved":false,"context_lines":[{"line_number":5350,"context_line":"                                \u0027state_description\u0027: \u0027migrating\u0027,"},{"line_number":5351,"context_line":"                                \u0027state\u0027: power_state.PAUSED}))"},{"line_number":5352,"context_line":"        instance.update({\u0027task_state\u0027: task_states.MIGRATING,"},{"line_number":5353,"context_line":"                         \u0027power_state\u0027: power_state.PAUSED})"},{"line_number":5354,"context_line":"        instance.save(c)"},{"line_number":5355,"context_line":""},{"line_number":5356,"context_line":"        # creating mocks"}],"source_content_type":"text/x-python","patch_set":5,"id":"5adbc538_12c51a5b","line":5353,"in_reply_to":"7adec928_7679adfb","updated":"2014-05-25 03:08:47.000000000","message":"Done","commit_id":"a97a2415449a44a027e0342a4d51a677ebdb9acb"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"2fc862b5f2cb875d1411d54aeb3e3f09d7041314","unresolved":false,"context_lines":[{"line_number":5349,"context_line":"                                \u0027state\u0027: power_state.PAUSED,"},{"line_number":5350,"context_line":"                                \u0027task_state\u0027: task_states.MIGRATING,"},{"line_number":5351,"context_line":"                                \u0027power_state\u0027: power_state.PAUSED})"},{"line_number":5352,"context_line":"        instance.save(c)"},{"line_number":5353,"context_line":""},{"line_number":5354,"context_line":"        # creating mocks"},{"line_number":5355,"context_line":"        self.mox.StubOutWithMock(self.compute.driver, \u0027unfilter_instance\u0027)"}],"source_content_type":"text/x-python","patch_set":6,"id":"5adbc538_bc01983b","line":5352,"updated":"2014-05-25 19:18:30.000000000","message":"This isn\u0027t necessary, AFAICT. The _create_fake_instance_obj() method calls the _create_fake_instance() method, which calls db.instance_create(), which is what instance.save() does","commit_id":"6ca152d9b770b5633ae911831bbaee7f7d635bee"},{"author":{"_account_id":7494,"name":"Guangya Liu","email":"gyliu513@gmail.com","username":"JayLau"},"change_message_id":"a45a1b6095b7e5b0c2ddb19fb9b441dca3286af2","unresolved":false,"context_lines":[{"line_number":5349,"context_line":"                                \u0027state\u0027: power_state.PAUSED,"},{"line_number":5350,"context_line":"                                \u0027task_state\u0027: task_states.MIGRATING,"},{"line_number":5351,"context_line":"                                \u0027power_state\u0027: power_state.PAUSED})"},{"line_number":5352,"context_line":"        instance.save(c)"},{"line_number":5353,"context_line":""},{"line_number":5354,"context_line":"        # creating mocks"},{"line_number":5355,"context_line":"        self.mox.StubOutWithMock(self.compute.driver, \u0027unfilter_instance\u0027)"}],"source_content_type":"text/x-python","patch_set":6,"id":"5adbc538_bf4a6a25","line":5352,"in_reply_to":"5adbc538_bc01983b","updated":"2014-05-25 21:10:51.000000000","message":"Done","commit_id":"6ca152d9b770b5633ae911831bbaee7f7d635bee"}],"nova/tests/compute/test_rpcapi.py":[{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"08126208d22b5ae14b1a8db43a1c3ef7696a6f1b","unresolved":false,"context_lines":[{"line_number":36,"context_line":"    def setUp(self):"},{"line_number":37,"context_line":"        super(ComputeRpcAPITestCase, self).setUp()"},{"line_number":38,"context_line":"        self.context \u003d context.get_admin_context()"},{"line_number":39,"context_line":"        self.inst_obj \u003d db.instance_create(self.context, {\u0027host\u0027: \u0027fake_host\u0027,"},{"line_number":40,"context_line":"                                                 \u0027instance_type_id\u0027: 1})"},{"line_number":41,"context_line":"        self.fake_instance \u003d jsonutils.to_primitive(self.inst_obj)"},{"line_number":42,"context_line":"        self.fake_volume_bdm \u003d jsonutils.to_primitive("}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAWH%2F9WuE%3D","line":39,"updated":"2014-04-05 18:33:32.000000000","message":"Hmm, db.instance_create() is not returning an instance object. It\u0027s returning a DB model object","commit_id":"da1dee57ae005abcf8bdbadacbab5dfc1c1ff423"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"08126208d22b5ae14b1a8db43a1c3ef7696a6f1b","unresolved":false,"context_lines":[{"line_number":364,"context_line":""},{"line_number":365,"context_line":"    def test_live_migration(self):"},{"line_number":366,"context_line":"        self._test_compute_api(\u0027live_migration\u0027, \u0027cast\u0027,"},{"line_number":367,"context_line":"                instance\u003dself.inst_obj, dest\u003d\u0027dest\u0027,"},{"line_number":368,"context_line":"                block_migration\u003d\u0027blockity_block\u0027, host\u003d\u0027tsoh\u0027,"},{"line_number":369,"context_line":"                migrate_data\u003d{}, version\u003d\u00273.24\u0027)"},{"line_number":370,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAWH%2F9WuI%3D","line":367,"updated":"2014-04-05 18:33:32.000000000","message":"This is not the object that would be passed to the live_migration RPC API call. The object that would be passed to the RPC API call would be a nova.objects.instances.Instance object, which is not the same as the DB model object that is returned from db.instance_create() (and assigned to self.inst_obj above)...","commit_id":"da1dee57ae005abcf8bdbadacbab5dfc1c1ff423"}]}
