)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"ec07c72f50782c5f58fbfa08b86d01acc9e5f56c","unresolved":false,"context_lines":[{"line_number":28,"context_line":"[1] https://review.opendev.org/#/c/627890/60/nova/conductor/tasks/cross_cell_migrate.py@495"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"Change-Id: I32334afdbff2f17d6a1e98dfb29d393575e71080"},{"line_number":31,"context_line":"TODO: open a bug for the latent issue during same-cell resize rollback"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"3fa7e38b_51661fef","line":31,"updated":"2019-10-16 13:23:33.000000000","message":"I\u0027ve reported bug 1848343 for this.","commit_id":"1cef9db83447abddb01a7077c8a26557e008448c"}],"nova/conductor/manager.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"942e158d8f2ea8e1aafcb57d7b4ee6150708bd93","unresolved":false,"context_lines":[{"line_number":377,"context_line":"            with excutils.save_and_reraise_exception():"},{"line_number":378,"context_line":"                # Refresh the instance so we don\u0027t overwrite vm_state changes"},{"line_number":379,"context_line":"                # set after we executed the task."},{"line_number":380,"context_line":"                try:"},{"line_number":381,"context_line":"                    instance.refresh()"},{"line_number":382,"context_line":"                    # Passing vm_state is kind of silly but it\u0027s expected in"},{"line_number":383,"context_line":"                    # set_vm_state_and_notify."}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_7400f434","line":380,"updated":"2019-10-15 23:13:26.000000000","message":"This should be split out.","commit_id":"2ce0e922823e7f38e391e4a456ec9079906c2c50"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"7ac7b56993dcee783334c021a1f63a308e287535","unresolved":false,"context_lines":[{"line_number":392,"context_line":"                    # gone so just log it."},{"line_number":393,"context_line":"                    LOG.info(\u0027During %s the instance was deleted.\u0027,"},{"line_number":394,"context_line":"                             \u0027resize\u0027 if instance.instance_type_id \u003d\u003d flavor.id"},{"line_number":395,"context_line":"                             else \u0027cold migrate\u0027, instance\u003dinstance)"},{"line_number":396,"context_line":"        # NOTE(sbauza): Make sure we persist the new flavor in case we had"},{"line_number":397,"context_line":"        # a successful scheduler call if and only if nothing bad happened"},{"line_number":398,"context_line":"        if request_spec.obj_what_changed():"}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa7e38b_6cf024fe","line":395,"updated":"2019-10-16 14:12:06.000000000","message":"Am I missing where this is tested now?","commit_id":"1cef9db83447abddb01a7077c8a26557e008448c"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"ce6462f1167ea082358d30900225bfe95768d244","unresolved":false,"context_lines":[{"line_number":392,"context_line":"                    # gone so just log it."},{"line_number":393,"context_line":"                    LOG.info(\u0027During %s the instance was deleted.\u0027,"},{"line_number":394,"context_line":"                             \u0027resize\u0027 if instance.instance_type_id \u003d\u003d flavor.id"},{"line_number":395,"context_line":"                             else \u0027cold migrate\u0027, instance\u003dinstance)"},{"line_number":396,"context_line":"        # NOTE(sbauza): Make sure we persist the new flavor in case we had"},{"line_number":397,"context_line":"        # a successful scheduler call if and only if nothing bad happened"},{"line_number":398,"context_line":"        if request_spec.obj_what_changed():"}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa7e38b_9829178b","line":395,"in_reply_to":"3fa7e38b_6cf024fe","updated":"2019-10-16 16:20:44.000000000","message":"I haven\u0027t added a unit test for this since I intend on splitting it out. It was after 6pm last night when I pushed this up so I just wanted to get it up to show the problem.","commit_id":"1cef9db83447abddb01a7077c8a26557e008448c"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"6fa7a984f0c7abbaaf8ced16257322fd2c5e81ef","unresolved":false,"context_lines":[{"line_number":392,"context_line":"                    # gone so just log it."},{"line_number":393,"context_line":"                    LOG.info(\u0027During %s the instance was deleted.\u0027,"},{"line_number":394,"context_line":"                             \u0027resize\u0027 if instance.instance_type_id \u003d\u003d flavor.id"},{"line_number":395,"context_line":"                             else \u0027cold migrate\u0027, instance\u003dinstance)"},{"line_number":396,"context_line":"        # NOTE(sbauza): Make sure we persist the new flavor in case we had"},{"line_number":397,"context_line":"        # a successful scheduler call if and only if nothing bad happened"},{"line_number":398,"context_line":"        if request_spec.obj_what_changed():"}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa7e38b_ba25ab0c","line":395,"in_reply_to":"3fa7e38b_9829178b","updated":"2019-10-21 19:20:40.000000000","message":"I\u0027ll do that in the change that adds this refresh:\n\nhttps://review.opendev.org/#/c/669012/14/nova/conductor/manager.py","commit_id":"1cef9db83447abddb01a7077c8a26557e008448c"}],"nova/conductor/tasks/cross_cell_migrate.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"942e158d8f2ea8e1aafcb57d7b4ee6150708bd93","unresolved":false,"context_lines":[{"line_number":778,"context_line":"        self.instance.migration_context \u003d ("},{"line_number":779,"context_line":"            target_cell_migration_context.obj_clone())"},{"line_number":780,"context_line":"        self.instance.migration_context.migration_id \u003d self.source_migration.id"},{"line_number":781,"context_line":"        self.instance.save(expected_task_state\u003dtask_states.RESIZE_PREP)"},{"line_number":782,"context_line":""},{"line_number":783,"context_line":"        return self._update_migration_from_dest_after_claim("},{"line_number":784,"context_line":"            target_cell_migration)"}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_34f6fc5e","line":781,"updated":"2019-10-15 23:13:26.000000000","message":"This probably belongs in https://review.opendev.org/#/c/627890/ or a follow up.","commit_id":"2ce0e922823e7f38e391e4a456ec9079906c2c50"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"13acba8d46b82e2a7393fdef9550b64f3477d539","unresolved":false,"context_lines":[{"line_number":778,"context_line":"        self.instance.migration_context \u003d ("},{"line_number":779,"context_line":"            target_cell_migration_context.obj_clone())"},{"line_number":780,"context_line":"        self.instance.migration_context.migration_id \u003d self.source_migration.id"},{"line_number":781,"context_line":"        self.instance.save(expected_task_state\u003dtask_states.RESIZE_PREP)"},{"line_number":782,"context_line":""},{"line_number":783,"context_line":"        return self._update_migration_from_dest_after_claim("},{"line_number":784,"context_line":"            target_cell_migration)"}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa7e38b_26cd645c","line":781,"range":{"start_line":781,"start_character":47,"end_line":781,"end_character":70},"updated":"2019-10-16 18:42:57.000000000","message":"This needs to be a list or tuple.","commit_id":"1cef9db83447abddb01a7077c8a26557e008448c"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"4bf9f4b514542a50ca8b55eeab655274ead82c5e","unresolved":false,"context_lines":[{"line_number":778,"context_line":"        self.instance.migration_context \u003d ("},{"line_number":779,"context_line":"            target_cell_migration_context.obj_clone())"},{"line_number":780,"context_line":"        self.instance.migration_context.migration_id \u003d self.source_migration.id"},{"line_number":781,"context_line":"        self.instance.save(expected_task_state\u003dtask_states.RESIZE_PREP)"},{"line_number":782,"context_line":""},{"line_number":783,"context_line":"        return self._update_migration_from_dest_after_claim("},{"line_number":784,"context_line":"            target_cell_migration)"}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa7e38b_41540afe","line":781,"range":{"start_line":781,"start_character":47,"end_line":781,"end_character":70},"in_reply_to":"3fa7e38b_26cd645c","updated":"2019-10-16 19:11:03.000000000","message":"The DB API handles it I guess:\n\nhttps://github.com/openstack/nova/blob/1a226aaa9e8c969ddfdfe198c36f7966b1f692f3/nova/db/sqlalchemy/api.py#L2857\n\nThis isn\u0027t the only place we pass a string to the Instance.save method, see bug 1848373.","commit_id":"1cef9db83447abddb01a7077c8a26557e008448c"}],"nova/conductor/tasks/migrate.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"942e158d8f2ea8e1aafcb57d7b4ee6150708bd93","unresolved":false,"context_lines":[{"line_number":498,"context_line":"            # Note that even if the instance is deleted concurrently which"},{"line_number":499,"context_line":"            # triggers this rollback, migration.save() works (until DB archive)"},{"line_number":500,"context_line":"            # because the DB API unconditionally reads deleted to get and"},{"line_number":501,"context_line":"            # update the migration. Maybe we should future-proof this by"},{"line_number":502,"context_line":"            # handling MigrationNotFound in case the DB API changes."},{"line_number":503,"context_line":"            self._migration.save()"},{"line_number":504,"context_line":""},{"line_number":505,"context_line":"        if not self._held_allocations:"}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_d49688f0","line":502,"range":{"start_line":501,"start_character":36,"end_line":502,"end_character":68},"updated":"2019-10-15 23:13:26.000000000","message":"We should split this try/except handling out if we add it.","commit_id":"2ce0e922823e7f38e391e4a456ec9079906c2c50"}],"nova/scheduler/client/report.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"942e158d8f2ea8e1aafcb57d7b4ee6150708bd93","unresolved":false,"context_lines":[{"line_number":1874,"context_line":"        #     LOG.debug(\u0027Allocations not found for target consumer %s; \u0027"},{"line_number":1875,"context_line":"        #               \u0027deleting allocations for source consumer %s only.\u0027,"},{"line_number":1876,"context_line":"        #               target_consumer_uuid, source_consumer_uuid)"},{"line_number":1877,"context_line":"        #     resp \u003d self.delete(\u0027/allocations/%s\u0027 % source_consumer_uuid,"},{"line_number":1878,"context_line":"        #                        global_request_id\u003dcontext.global_id)"},{"line_number":1879,"context_line":"        #     return resp.status_code \u003d\u003d 204"},{"line_number":1880,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_949c900e","line":1877,"updated":"2019-10-15 23:13:26.000000000","message":"This fixes the issue in the test added in this patch but causes other tests to fail so that\u0027s probably why it needs to be conditional or the bug needs to be fixed some other way.","commit_id":"2ce0e922823e7f38e391e4a456ec9079906c2c50"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"7ac7b56993dcee783334c021a1f63a308e287535","unresolved":false,"context_lines":[{"line_number":1876,"context_line":"        #               target_consumer_uuid, source_consumer_uuid)"},{"line_number":1877,"context_line":"        #     resp \u003d self.delete(\u0027/allocations/%s\u0027 % source_consumer_uuid,"},{"line_number":1878,"context_line":"        #                        global_request_id\u003dcontext.global_id)"},{"line_number":1879,"context_line":"        #     return resp.status_code \u003d\u003d 204"},{"line_number":1880,"context_line":""},{"line_number":1881,"context_line":"        new_allocs \u003d {"},{"line_number":1882,"context_line":"            source_consumer_uuid: {"}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa7e38b_acea9c0b","line":1879,"updated":"2019-10-16 14:12:06.000000000","message":"I really hate adding in commented-out code like this. In a non-syntax-highlighted shell environment, it can sometimes be hard to see that this isn\u0027t actually functional code.\n\nCan we not slap this in a follow-up patch or something? Why not merge this now?","commit_id":"1cef9db83447abddb01a7077c8a26557e008448c"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"ce6462f1167ea082358d30900225bfe95768d244","unresolved":false,"context_lines":[{"line_number":1876,"context_line":"        #               target_consumer_uuid, source_consumer_uuid)"},{"line_number":1877,"context_line":"        #     resp \u003d self.delete(\u0027/allocations/%s\u0027 % source_consumer_uuid,"},{"line_number":1878,"context_line":"        #                        global_request_id\u003dcontext.global_id)"},{"line_number":1879,"context_line":"        #     return resp.status_code \u003d\u003d 204"},{"line_number":1880,"context_line":""},{"line_number":1881,"context_line":"        new_allocs \u003d {"},{"line_number":1882,"context_line":"            source_consumer_uuid: {"}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa7e38b_b82c1399","line":1879,"in_reply_to":"3fa7e38b_acea9c0b","updated":"2019-10-16 16:20:44.000000000","message":"Again this is just a WIP that I pushed for discussion late last night, this is definitely not the final version of the change. I\u0027m concurrently working on writing a functional recreate test for latent bug 1848343 with same-cell resize.","commit_id":"1cef9db83447abddb01a7077c8a26557e008448c"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"4d4bbdf9afc507043ecb34a18cfb26a7dbd76405","unresolved":false,"context_lines":[{"line_number":1876,"context_line":"        #               target_consumer_uuid, source_consumer_uuid)"},{"line_number":1877,"context_line":"        #     resp \u003d self.delete(\u0027/allocations/%s\u0027 % source_consumer_uuid,"},{"line_number":1878,"context_line":"        #                        global_request_id\u003dcontext.global_id)"},{"line_number":1879,"context_line":"        #     return resp.status_code \u003d\u003d 204"},{"line_number":1880,"context_line":""},{"line_number":1881,"context_line":"        new_allocs \u003d {"},{"line_number":1882,"context_line":"            source_consumer_uuid: {"}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa7e38b_b832d3a5","line":1879,"in_reply_to":"3fa7e38b_b82c1399","updated":"2019-10-16 16:35:48.000000000","message":"Okay, cool,\n\nFWIW, you added me as a reviewer so I was just trying to review it as I would if it wasn\u0027t a WIP :)","commit_id":"1cef9db83447abddb01a7077c8a26557e008448c"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"0f4741f553a8dbf0e274a6f6e98d967a18b44679","unresolved":false,"context_lines":[{"line_number":1876,"context_line":"        #               target_consumer_uuid, source_consumer_uuid)"},{"line_number":1877,"context_line":"        #     resp \u003d self.delete(\u0027/allocations/%s\u0027 % source_consumer_uuid,"},{"line_number":1878,"context_line":"        #                        global_request_id\u003dcontext.global_id)"},{"line_number":1879,"context_line":"        #     return resp.status_code \u003d\u003d 204"},{"line_number":1880,"context_line":""},{"line_number":1881,"context_line":"        new_allocs \u003d {"},{"line_number":1882,"context_line":"            source_consumer_uuid: {"}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa7e38b_e78ae6b9","line":1879,"in_reply_to":"3fa7e38b_b832d3a5","updated":"2019-10-16 21:40:34.000000000","message":"This is used in https://review.opendev.org/#/c/689049/ now.","commit_id":"1cef9db83447abddb01a7077c8a26557e008448c"}],"nova/tests/functional/test_cross_cell_migrate.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"942e158d8f2ea8e1aafcb57d7b4ee6150708bd93","unresolved":false,"context_lines":[{"line_number":1077,"context_line":"            # consumer."},{"line_number":1078,"context_line":"            if rp[\u0027name\u0027] \u003d\u003d \u0027host1\u0027:"},{"line_number":1079,"context_line":"                allocation \u003d allocations[server[\u0027id\u0027]][\u0027resources\u0027]"},{"line_number":1080,"context_line":"                self.assertFlavorMatchesAllocation(flavors[0], allocation,"},{"line_number":1081,"context_line":"                                                   volume_backed\u003dTrue)"},{"line_number":1082,"context_line":"            else:"},{"line_number":1083,"context_line":"                self.assertEqual({}, allocations,"}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_548a98be","line":1080,"updated":"2019-10-15 23:13:26.000000000","message":"Here is the bug.","commit_id":"2ce0e922823e7f38e391e4a456ec9079906c2c50"}]}
