)]}'
{"nova/tests/unit/compute/test_tracker.py":[{"author":{"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"},"change_message_id":"1795c643212f10a3f7d882c017a4183abd4e9acd","unresolved":false,"context_lines":[{"line_number":1904,"context_line":"            self.rt.resize_claim(ctx, instance2, flavor2)"},{"line_number":1905,"context_line":"        self.assertTrue(obj_base.obj_equal_prims(expected,"},{"line_number":1906,"context_line":"                                                 self.rt.compute_node))"},{"line_number":1907,"context_line":"        self.assertEqual(2, len(self.rt.tracked_migrations))"},{"line_number":1908,"context_line":""},{"line_number":1909,"context_line":""},{"line_number":1910,"context_line":"class TestRebuild(BaseTestCase):"}],"source_content_type":"text/x-python","patch_set":2,"id":"9ad45d7e_4c9d6bbb","line":1907,"updated":"2016-08-10 11:45:14.000000000","message":"with this, 2 !\u003d 1 is going to really really confuse everyone. Because you won\u0027t be sure which migration was not tracked. \n\nI think the 3rd param here which includes a dump of self.rt.tracked_migration is important.","commit_id":"37e5755888a8fef1d7b4439e4f30a5ba01944c06"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"615d1ca2d0642c554bdeb7f3c80bf527d803a3c3","unresolved":false,"context_lines":[{"line_number":1904,"context_line":"            self.rt.resize_claim(ctx, instance2, flavor2)"},{"line_number":1905,"context_line":"        self.assertTrue(obj_base.obj_equal_prims(expected,"},{"line_number":1906,"context_line":"                                                 self.rt.compute_node))"},{"line_number":1907,"context_line":"        self.assertEqual(2, len(self.rt.tracked_migrations))"},{"line_number":1908,"context_line":""},{"line_number":1909,"context_line":""},{"line_number":1910,"context_line":"class TestRebuild(BaseTestCase):"}],"source_content_type":"text/x-python","patch_set":2,"id":"9ad45d7e_12952986","line":1907,"in_reply_to":"9ad45d7e_4c9d6bbb","updated":"2016-08-10 23:17:23.000000000","message":"Agreed, and I will fix. Just FYI though, it\u0027s equally impossible without adding in some debug logging how to figure out what is up when this fails:\n\n self.assertTrue(obj_base.obj_equal_prims(expected,\n                                          self.rt.compute_node))\n\n:)","commit_id":"37e5755888a8fef1d7b4439e4f30a5ba01944c06"},{"author":{"_account_id":14819,"name":"Timofey Durakov","email":"timofei.nd@gmail.com","username":"tdurakov"},"change_message_id":"9b2cdf9c541df1dadfa3674eb0edcdd61f9048de","unresolved":false,"context_lines":[{"line_number":1801,"context_line":""},{"line_number":1802,"context_line":"        # Start with an empty compute node..."},{"line_number":1803,"context_line":"        cn \u003d _COMPUTE_NODE_FIXTURES[0].obj_clone()"},{"line_number":1804,"context_line":"        cn.vcpus_used \u003d 0"},{"line_number":1805,"context_line":"        cn.memory_mb_used \u003d 0"},{"line_number":1806,"context_line":"        cn.local_gb_used \u003d 0"},{"line_number":1807,"context_line":"        cn.free_ram_mb \u003d cn.memory_mb"},{"line_number":1808,"context_line":"        cn.free_disk_gb \u003d cn.local_gb"},{"line_number":1809,"context_line":"        get_cn_mock.return_value \u003d cn"},{"line_number":1810,"context_line":""},{"line_number":1811,"context_line":"        self.rt.update_available_resource(mock.sentinel.ctx)"}],"source_content_type":"text/x-python","patch_set":3,"id":"9ad45d7e_787ef219","line":1808,"range":{"start_line":1804,"start_character":8,"end_line":1808,"end_character":37},"updated":"2016-08-11 09:54:08.000000000","message":"cn already has these values. So, you just trying to make things explicit here, right?","commit_id":"f35c6f4672e0ffbc5d7a90438eb849cb84c465d7"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"1b4e394b708f03299574873033f570718f45d71c","unresolved":false,"context_lines":[{"line_number":1801,"context_line":""},{"line_number":1802,"context_line":"        # Start with an empty compute node..."},{"line_number":1803,"context_line":"        cn \u003d _COMPUTE_NODE_FIXTURES[0].obj_clone()"},{"line_number":1804,"context_line":"        cn.vcpus_used \u003d 0"},{"line_number":1805,"context_line":"        cn.memory_mb_used \u003d 0"},{"line_number":1806,"context_line":"        cn.local_gb_used \u003d 0"},{"line_number":1807,"context_line":"        cn.free_ram_mb \u003d cn.memory_mb"},{"line_number":1808,"context_line":"        cn.free_disk_gb \u003d cn.local_gb"},{"line_number":1809,"context_line":"        get_cn_mock.return_value \u003d cn"},{"line_number":1810,"context_line":""},{"line_number":1811,"context_line":"        self.rt.update_available_resource(mock.sentinel.ctx)"}],"source_content_type":"text/x-python","patch_set":3,"id":"9ad45d7e_74cd5630","line":1808,"range":{"start_line":1804,"start_character":8,"end_line":1808,"end_character":37},"in_reply_to":"9ad45d7e_787ef219","updated":"2016-08-11 12:22:54.000000000","message":"Yeah, I\u0027ll remove the above.","commit_id":"f35c6f4672e0ffbc5d7a90438eb849cb84c465d7"},{"author":{"_account_id":14819,"name":"Timofey Durakov","email":"timofei.nd@gmail.com","username":"tdurakov"},"change_message_id":"9b2cdf9c541df1dadfa3674eb0edcdd61f9048de","unresolved":false,"context_lines":[{"line_number":1825,"context_line":"            dest_compute\u003d_HOSTNAME,"},{"line_number":1826,"context_line":"            source_node\u003d\"other-node\","},{"line_number":1827,"context_line":"            dest_node\u003d_NODENAME,"},{"line_number":1828,"context_line":"            old_instance_type_id\u003d1,"},{"line_number":1829,"context_line":"            new_instance_type_id\u003d2,"},{"line_number":1830,"context_line":"            migration_type\u003d\u0027resize\u0027,"},{"line_number":1831,"context_line":"            status\u003d\u0027migrating\u0027,"},{"line_number":1832,"context_line":"            instance\u003dinstance1,"}],"source_content_type":"text/x-python","patch_set":3,"id":"9ad45d7e_d89b9e16","line":1829,"range":{"start_line":1828,"start_character":0,"end_line":1829,"end_character":34},"updated":"2016-08-11 09:54:08.000000000","message":"I\u0027d prefer these to be taken from _INSTANCE_TYPE_OBJ_FIXTURES\ninstead.","commit_id":"f35c6f4672e0ffbc5d7a90438eb849cb84c465d7"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"1b4e394b708f03299574873033f570718f45d71c","unresolved":false,"context_lines":[{"line_number":1825,"context_line":"            dest_compute\u003d_HOSTNAME,"},{"line_number":1826,"context_line":"            source_node\u003d\"other-node\","},{"line_number":1827,"context_line":"            dest_node\u003d_NODENAME,"},{"line_number":1828,"context_line":"            old_instance_type_id\u003d1,"},{"line_number":1829,"context_line":"            new_instance_type_id\u003d2,"},{"line_number":1830,"context_line":"            migration_type\u003d\u0027resize\u0027,"},{"line_number":1831,"context_line":"            status\u003d\u0027migrating\u0027,"},{"line_number":1832,"context_line":"            instance\u003dinstance1,"}],"source_content_type":"text/x-python","patch_set":3,"id":"9ad45d7e_d4e7e2a9","line":1829,"range":{"start_line":1828,"start_character":0,"end_line":1829,"end_character":34},"in_reply_to":"9ad45d7e_d89b9e16","updated":"2016-08-11 12:22:54.000000000","message":"Note that they are the indexes, though, not the objects.","commit_id":"f35c6f4672e0ffbc5d7a90438eb849cb84c465d7"},{"author":{"_account_id":14819,"name":"Timofey Durakov","email":"timofei.nd@gmail.com","username":"tdurakov"},"change_message_id":"9b2cdf9c541df1dadfa3674eb0edcdd61f9048de","unresolved":false,"context_lines":[{"line_number":1846,"context_line":"        instance2.id \u003d 2"},{"line_number":1847,"context_line":"        instance2.uuid \u003d uuids.instance2"},{"line_number":1848,"context_line":"        instance2.task_state \u003d task_states.RESIZE_MIGRATING"},{"line_number":1849,"context_line":"        instance2.new_flavor \u003d _INSTANCE_TYPE_OBJ_FIXTURES[1]"},{"line_number":1850,"context_line":""},{"line_number":1851,"context_line":"        migration2 \u003d objects.Migration("},{"line_number":1852,"context_line":"            id\u003d2,"}],"source_content_type":"text/x-python","patch_set":3,"id":"9ad45d7e_536791e8","line":1849,"range":{"start_line":1849,"start_character":8,"end_line":1849,"end_character":61},"updated":"2016-08-11 09:54:08.000000000","message":"INSTANCE_FIXTURES[0]:\n        flavor \u003d _INSTANCE_TYPE_OBJ_FIXTURES[1],\n        old_flavor \u003d _INSTANCE_TYPE_OBJ_FIXTURES[1],\n        new_flavor \u003d _INSTANCE_TYPE_OBJ_FIXTURES[1],\nWhile migration object below:\n            old_instance_type_id\u003d2,\n            new_instance_type_id\u003d1,","commit_id":"f35c6f4672e0ffbc5d7a90438eb849cb84c465d7"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"1b4e394b708f03299574873033f570718f45d71c","unresolved":false,"context_lines":[{"line_number":1846,"context_line":"        instance2.id \u003d 2"},{"line_number":1847,"context_line":"        instance2.uuid \u003d uuids.instance2"},{"line_number":1848,"context_line":"        instance2.task_state \u003d task_states.RESIZE_MIGRATING"},{"line_number":1849,"context_line":"        instance2.new_flavor \u003d _INSTANCE_TYPE_OBJ_FIXTURES[1]"},{"line_number":1850,"context_line":""},{"line_number":1851,"context_line":"        migration2 \u003d objects.Migration("},{"line_number":1852,"context_line":"            id\u003d2,"}],"source_content_type":"text/x-python","patch_set":3,"id":"9ad45d7e_f4ae662c","line":1849,"range":{"start_line":1849,"start_character":8,"end_line":1849,"end_character":61},"in_reply_to":"9ad45d7e_536791e8","updated":"2016-08-11 12:22:54.000000000","message":"It actually doesn\u0027t make a difference in this case (because it\u0027s a destination-only migration) but I can fix it up for clarity.","commit_id":"f35c6f4672e0ffbc5d7a90438eb849cb84c465d7"}]}
