)]}'
{"nova/compute/resource_tracker.py":[{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"b37ec904415b469f294e8e34ffb7961b8fae9363","unresolved":false,"context_lines":[{"line_number":64,"context_line":"    if vm \u003d\u003d vm_states.RESIZED:"},{"line_number":65,"context_line":"        return True"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"    relevant_task_states \u003d ["},{"line_number":68,"context_line":"        task_states.RESIZE_PREP, task_states.RESIZE_MIGRATING,"},{"line_number":69,"context_line":"        task_states.RESIZE_MIGRATED, task_states.RESIZE_FINISH,"},{"line_number":70,"context_line":"        task_states.REBUILDING, task_states.REBUILD_BLOCK_DEVICE_MAPPING,"},{"line_number":71,"context_line":"        task_states.REBUILD_SPAWNING]"},{"line_number":72,"context_line":"    if (vm in [vm_states.ACTIVE, vm_states.STOPPED]"},{"line_number":73,"context_line":"            and task in relevant_task_states):"},{"line_number":74,"context_line":"        return True"}],"source_content_type":"text/x-python","patch_set":2,"id":"3f79a3b5_ea316fa3","line":71,"range":{"start_line":67,"start_character":0,"end_line":71,"end_character":37},"updated":"2018-09-07 19:45:36.000000000","message":"I wonder if it\u0027s worth putting this list into task_states.py itself, of the same ilk as [1], so that we\u0027ve got a better chance of it staying correct if e.g. other resize/rebuild task states are added in the future.\n\n[1] https://github.com/openstack/nova/blob/3d31e6c95afe3dff01af037348c0c18e896970db/nova/compute/task_states.py#L120-L125","commit_id":"ffcfb126af01cbc8405ff09862913ee31ce58b57"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"6452ea28bf49d1461d844caf1e13475439940e2a","unresolved":false,"context_lines":[{"line_number":64,"context_line":"    if vm \u003d\u003d vm_states.RESIZED:"},{"line_number":65,"context_line":"        return True"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"    relevant_task_states \u003d ["},{"line_number":68,"context_line":"        task_states.RESIZE_PREP, task_states.RESIZE_MIGRATING,"},{"line_number":69,"context_line":"        task_states.RESIZE_MIGRATED, task_states.RESIZE_FINISH,"},{"line_number":70,"context_line":"        task_states.REBUILDING, task_states.REBUILD_BLOCK_DEVICE_MAPPING,"},{"line_number":71,"context_line":"        task_states.REBUILD_SPAWNING]"},{"line_number":72,"context_line":"    if (vm in [vm_states.ACTIVE, vm_states.STOPPED]"},{"line_number":73,"context_line":"            and task in relevant_task_states):"},{"line_number":74,"context_line":"        return True"}],"source_content_type":"text/x-python","patch_set":2,"id":"3f79a3b5_e132bf0f","line":71,"range":{"start_line":67,"start_character":0,"end_line":71,"end_character":37},"in_reply_to":"3f79a3b5_ea316fa3","updated":"2018-09-11 11:43:53.000000000","message":"sure, why not","commit_id":"ffcfb126af01cbc8405ff09862913ee31ce58b57"}],"nova/compute/task_states.py":[{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"f0aefddfc2b14c35c5eae086e025bbcdbd88e9b4","unresolved":false,"context_lines":[{"line_number":125,"context_line":"hard_reboot_states \u003d (REBOOTING_HARD, REBOOT_PENDING_HARD, REBOOT_STARTED_HARD)"},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"# These states indicate a resize in progress"},{"line_number":128,"context_line":"resizing_states \u003d (RESIZE_PREP, RESIZE_MIGRATING, RESIZE_MIGRATED,"},{"line_number":129,"context_line":"                   RESIZE_FINISH)"},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"# These states indicate a rebuild"}],"source_content_type":"text/x-python","patch_set":4,"id":"3f79a3b5_a73a90c1","line":128,"updated":"2018-09-11 18:15:35.000000000","message":"nit: prefer to make the names match parts of speech, so s/resizing_/resize_/ to match the others","commit_id":"04b25e156e35b5b836c66034d9fdf73a3d8f2a77"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"8fe73c92b10ed8f64950b755dc78c188e6ef62d2","unresolved":false,"context_lines":[{"line_number":125,"context_line":"hard_reboot_states \u003d (REBOOTING_HARD, REBOOT_PENDING_HARD, REBOOT_STARTED_HARD)"},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"# These states indicate a resize in progress"},{"line_number":128,"context_line":"resizing_states \u003d (RESIZE_PREP, RESIZE_MIGRATING, RESIZE_MIGRATED,"},{"line_number":129,"context_line":"                   RESIZE_FINISH)"},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"# These states indicate a rebuild"}],"source_content_type":"text/x-python","patch_set":4,"id":"3f79a3b5_0adfb63a","line":128,"in_reply_to":"3f79a3b5_594fd169","updated":"2018-09-12 15:29:03.000000000","message":"Oh, that\u0027s a fair point, cool.","commit_id":"04b25e156e35b5b836c66034d9fdf73a3d8f2a77"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"67df1f4de86b81cb8d7f708b860481b71f261009","unresolved":false,"context_lines":[{"line_number":125,"context_line":"hard_reboot_states \u003d (REBOOTING_HARD, REBOOT_PENDING_HARD, REBOOT_STARTED_HARD)"},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"# These states indicate a resize in progress"},{"line_number":128,"context_line":"resizing_states \u003d (RESIZE_PREP, RESIZE_MIGRATING, RESIZE_MIGRATED,"},{"line_number":129,"context_line":"                   RESIZE_FINISH)"},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"# These states indicate a rebuild"}],"source_content_type":"text/x-python","patch_set":4,"id":"3f79a3b5_594fd169","line":128,"in_reply_to":"3f79a3b5_a73a90c1","updated":"2018-09-12 10:11:29.000000000","message":"I named it resizing to emphasize that it does not include resize confirm and revert","commit_id":"04b25e156e35b5b836c66034d9fdf73a3d8f2a77"}],"nova/tests/unit/compute/test_resource_tracker.py":[{"author":{"_account_id":25562,"name":"Chen","email":"dstbtgagt@foxmail.com","username":"chenn2"},"change_message_id":"6c0a8dca0d381de5d1d67edbb81ca390cea66dc8","unresolved":false,"context_lines":[{"line_number":2765,"context_line":"        self._setup_rt()"},{"line_number":2766,"context_line":"        migration_context \u003d objects.MigrationContext(migration_id\u003d1)"},{"line_number":2767,"context_line":"        instance \u003d objects.Instance(vm_state\u003dvm_states.STOPPED,"},{"line_number":2768,"context_line":"                                    task_state\u003dtask_states.REBUILD_SPAWNING,"},{"line_number":2769,"context_line":"                                    migration_context\u003dmigration_context)"},{"line_number":2770,"context_line":"        migration \u003d objects.Migration("},{"line_number":2771,"context_line":"            source_compute\u003d_HOSTNAME, source_node\u003d_NODENAME,"}],"source_content_type":"text/x-python","patch_set":1,"id":"3f79a3b5_a641923b","line":2768,"range":{"start_line":2768,"start_character":59,"end_line":2768,"end_character":75},"updated":"2018-09-06 12:58:44.000000000","message":"Can we cover all evacuation-related task_states here? Maybe add a instance in REBUILD_BLOCK_DEVICE_MAPPING and one in REBUILDING. I understand REBUILDING task_state is not relevant in this patch though.","commit_id":"68ca9071615200e9d4f5260cd1f1d0e416f49431"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"b5a15ed7b1d7fcf5666cc48718928257e8cc67a3","unresolved":false,"context_lines":[{"line_number":2765,"context_line":"        self._setup_rt()"},{"line_number":2766,"context_line":"        migration_context \u003d objects.MigrationContext(migration_id\u003d1)"},{"line_number":2767,"context_line":"        instance \u003d objects.Instance(vm_state\u003dvm_states.STOPPED,"},{"line_number":2768,"context_line":"                                    task_state\u003dtask_states.REBUILD_SPAWNING,"},{"line_number":2769,"context_line":"                                    migration_context\u003dmigration_context)"},{"line_number":2770,"context_line":"        migration \u003d objects.Migration("},{"line_number":2771,"context_line":"            source_compute\u003d_HOSTNAME, source_node\u003d_NODENAME,"}],"source_content_type":"text/x-python","patch_set":1,"id":"3f79a3b5_41c2e8ea","line":2768,"range":{"start_line":2768,"start_character":59,"end_line":2768,"end_character":75},"in_reply_to":"3f79a3b5_a641923b","updated":"2018-09-06 14:23:08.000000000","message":"Done","commit_id":"68ca9071615200e9d4f5260cd1f1d0e416f49431"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"f0aefddfc2b14c35c5eae086e025bbcdbd88e9b4","unresolved":false,"context_lines":[{"line_number":2771,"context_line":"            source_compute\u003d_HOSTNAME, source_node\u003d_NODENAME,"},{"line_number":2772,"context_line":"            dest_compute\u003d_HOSTNAME, dest_node\u003d_NODENAME,"},{"line_number":2773,"context_line":"            instance_uuid\u003duuids.instance, id\u003d1, instance\u003dinstance)"},{"line_number":2774,"context_line":"        for state in task_states.rebuild_states:"},{"line_number":2775,"context_line":"            instance.task_state \u003d state"},{"line_number":2776,"context_line":"            self.rt._update_usage_from_migrations("},{"line_number":2777,"context_line":"                mock.sentinel.ctx, [migration], _NODENAME)"}],"source_content_type":"text/x-python","patch_set":4,"id":"3f79a3b5_4c2ba394","line":2774,"range":{"start_line":2774,"start_character":21,"end_line":2774,"end_character":48},"updated":"2018-09-11 18:15:35.000000000","message":"+ resizing_states?","commit_id":"04b25e156e35b5b836c66034d9fdf73a3d8f2a77"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"f0aefddfc2b14c35c5eae086e025bbcdbd88e9b4","unresolved":false,"context_lines":[{"line_number":2775,"context_line":"            instance.task_state \u003d state"},{"line_number":2776,"context_line":"            self.rt._update_usage_from_migrations("},{"line_number":2777,"context_line":"                mock.sentinel.ctx, [migration], _NODENAME)"},{"line_number":2778,"context_line":"        self.assertEqual(3, mock_update_usage.call_count)"},{"line_number":2779,"context_line":""},{"line_number":2780,"context_line":""},{"line_number":2781,"context_line":"class TestUpdateUsageFromInstance(BaseTestCase):"}],"source_content_type":"text/x-python","patch_set":4,"id":"3f79a3b5_6716b84c","line":2778,"range":{"start_line":2778,"start_character":25,"end_line":2778,"end_character":26},"updated":"2018-09-11 18:15:35.000000000","message":"Actually not super loving this. I think it might be better to put it into the loop as assert_called_once() \u0026 reset_mock() to make sure that each call is in fact triggered exactly once by each state.","commit_id":"04b25e156e35b5b836c66034d9fdf73a3d8f2a77"}]}
