)]}'
{"nova/compute/manager.py":[{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"6894d523524a0403a6e56b0d389b0c8af39e42ba","unresolved":false,"context_lines":[{"line_number":3646,"context_line":"            # NOTE(danms): We\u0027re reverting on the destination node, so"},{"line_number":3647,"context_line":"            # we need to check to see if the source is doing migration-based"},{"line_number":3648,"context_line":"            # allocation accounting"},{"line_number":3649,"context_line":"            alls \u003d self.reportclient.get_allocations_for_instance("},{"line_number":3650,"context_line":"                cn_uuid, migration)"},{"line_number":3651,"context_line":"            if alls:"},{"line_number":3652,"context_line":"                # NOTE(danms): The source did migration-based allocation"}],"source_content_type":"text/x-python","patch_set":6,"id":"7f515b1d_4073484e","line":3649,"updated":"2017-09-26 15:48:23.000000000","message":"nit: allocs or allocations instead of alls, maybe?","commit_id":"bcae890e0e523d5601b0142194d2feae2d0a0b33"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"7986cc9dc78002e09eeb1e66f6f4f7f64276d527","unresolved":false,"context_lines":[{"line_number":3646,"context_line":"            # NOTE(danms): We\u0027re reverting on the destination node, so"},{"line_number":3647,"context_line":"            # we need to check to see if the source is doing migration-based"},{"line_number":3648,"context_line":"            # allocation accounting"},{"line_number":3649,"context_line":"            alls \u003d self.reportclient.get_allocations_for_instance("},{"line_number":3650,"context_line":"                cn_uuid, migration)"},{"line_number":3651,"context_line":"            if alls:"},{"line_number":3652,"context_line":"                # NOTE(danms): The source did migration-based allocation"}],"source_content_type":"text/x-python","patch_set":6,"id":"7f515b1d_a33c46c8","line":3649,"in_reply_to":"7f515b1d_4073484e","updated":"2017-09-26 15:55:45.000000000","message":"I think I chose this because of space on the line in a previous arrangement of this (when I was calling  get_allocations_for_resource_provider() or something. But yeah, I could fix if I respin.","commit_id":"bcae890e0e523d5601b0142194d2feae2d0a0b33"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"6894d523524a0403a6e56b0d389b0c8af39e42ba","unresolved":false,"context_lines":[{"line_number":3653,"context_line":"                # accounting, so we should let the source node rejigger"},{"line_number":3654,"context_line":"                # the allocations in finish_resize_revert()"},{"line_number":3655,"context_line":"                LOG.info(_(\u0027Destination node %(node)s reverted migration \u0027"},{"line_number":3656,"context_line":"                           \u0027%(mig)s; noy deleting migration-based \u0027"},{"line_number":3657,"context_line":"                           \u0027allocation\u0027),"},{"line_number":3658,"context_line":"                         {\u0027node\u0027: nodename, \u0027mig\u0027: migration.uuid})"},{"line_number":3659,"context_line":"                return"}],"source_content_type":"text/x-python","patch_set":6,"id":"7f515b1d_60ad2487","line":3656,"range":{"start_line":3656,"start_character":37,"end_line":3656,"end_character":40},"updated":"2017-09-26 15:48:23.000000000","message":"not ?","commit_id":"bcae890e0e523d5601b0142194d2feae2d0a0b33"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"7986cc9dc78002e09eeb1e66f6f4f7f64276d527","unresolved":false,"context_lines":[{"line_number":3653,"context_line":"                # accounting, so we should let the source node rejigger"},{"line_number":3654,"context_line":"                # the allocations in finish_resize_revert()"},{"line_number":3655,"context_line":"                LOG.info(_(\u0027Destination node %(node)s reverted migration \u0027"},{"line_number":3656,"context_line":"                           \u0027%(mig)s; noy deleting migration-based \u0027"},{"line_number":3657,"context_line":"                           \u0027allocation\u0027),"},{"line_number":3658,"context_line":"                         {\u0027node\u0027: nodename, \u0027mig\u0027: migration.uuid})"},{"line_number":3659,"context_line":"                return"}],"source_content_type":"text/x-python","patch_set":6,"id":"7f515b1d_234e166f","line":3656,"range":{"start_line":3656,"start_character":37,"end_line":3656,"end_character":40},"in_reply_to":"7f515b1d_60ad2487","updated":"2017-09-26 15:55:45.000000000","message":"Oops, yeah, especially since that\u0027s an info, I should fix that.","commit_id":"bcae890e0e523d5601b0142194d2feae2d0a0b33"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"1e4c3de63aff38292618dec14e9b3a48384ba3a9","unresolved":false,"context_lines":[{"line_number":3634,"context_line":"                    # need to do the complex double allocation dance"},{"line_number":3635,"context_line":"                    return"},{"line_number":3636,"context_line":"            else:"},{"line_number":3637,"context_line":"                # We\u0027re reverting on the source, so we need to check if"},{"line_number":3638,"context_line":"                # our migration holds a claim and if so, avoid doing the"},{"line_number":3639,"context_line":"                # legacy behavior below."},{"line_number":3640,"context_line":"                mig_allocs \u003d self.reportclient.get_allocations_for_instance("}],"source_content_type":"text/x-python","patch_set":9,"id":"7f515b1d_e1b32f97","line":3637,"range":{"start_line":3637,"start_character":24,"end_line":3637,"end_character":33},"updated":"2017-09-27 17:49:15.000000000","message":"Not just reverting. Could be a failed migration, too, right? Thus your unit test for the migration.status \u003d \u0027failed\u0027 case.\n\nIs there a need to differentiate here (log messages maybe?) between a failed migration and a deliberate revert of the resize operation by the end user?","commit_id":"7038b3f9a9525211092aad2db9332e85d969885f"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"1e4c3de63aff38292618dec14e9b3a48384ba3a9","unresolved":false,"context_lines":[{"line_number":3644,"context_line":"                               \u0027%(mig)s; not deleting migration-based \u0027"},{"line_number":3645,"context_line":"                               \u0027allocation\u0027),"},{"line_number":3646,"context_line":"                             {\u0027node\u0027: nodename, \u0027mig\u0027: migration.uuid})"},{"line_number":3647,"context_line":"                    return"},{"line_number":3648,"context_line":"        elif migration.dest_node \u003d\u003d nodename:"},{"line_number":3649,"context_line":"            # NOTE(danms): We\u0027re reverting on the destination node, so"},{"line_number":3650,"context_line":"            # we need to check to see if the source is doing migration-based"}],"source_content_type":"text/x-python","patch_set":9,"id":"7f515b1d_612dfffc","line":3647,"updated":"2017-09-27 17:49:15.000000000","message":"if we\u0027re reverting on the source and we have a migration-associated allocation, don\u0027t we want to change back that allocation to be owned by the original instance UUID on the source host? Or is that being done somewhere else?","commit_id":"7038b3f9a9525211092aad2db9332e85d969885f"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"02c1ab452e212f07bce05f5c2f3743661a577bf8","unresolved":false,"context_lines":[{"line_number":3644,"context_line":"                               \u0027%(mig)s; not deleting migration-based \u0027"},{"line_number":3645,"context_line":"                               \u0027allocation\u0027),"},{"line_number":3646,"context_line":"                             {\u0027node\u0027: nodename, \u0027mig\u0027: migration.uuid})"},{"line_number":3647,"context_line":"                    return"},{"line_number":3648,"context_line":"        elif migration.dest_node \u003d\u003d nodename:"},{"line_number":3649,"context_line":"            # NOTE(danms): We\u0027re reverting on the destination node, so"},{"line_number":3650,"context_line":"            # we need to check to see if the source is doing migration-based"}],"source_content_type":"text/x-python","patch_set":9,"id":"7f515b1d_82cea0b1","line":3647,"in_reply_to":"7f515b1d_17e4343b","updated":"2017-09-28 14:49:17.000000000","message":"Got it.","commit_id":"7038b3f9a9525211092aad2db9332e85d969885f"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"57593172798661cff73d75c84f1e179e2a8cfc15","unresolved":false,"context_lines":[{"line_number":3644,"context_line":"                               \u0027%(mig)s; not deleting migration-based \u0027"},{"line_number":3645,"context_line":"                               \u0027allocation\u0027),"},{"line_number":3646,"context_line":"                             {\u0027node\u0027: nodename, \u0027mig\u0027: migration.uuid})"},{"line_number":3647,"context_line":"                    return"},{"line_number":3648,"context_line":"        elif migration.dest_node \u003d\u003d nodename:"},{"line_number":3649,"context_line":"            # NOTE(danms): We\u0027re reverting on the destination node, so"},{"line_number":3650,"context_line":"            # we need to check to see if the source is doing migration-based"}],"source_content_type":"text/x-python","patch_set":9,"id":"7f515b1d_17e4343b","line":3647,"in_reply_to":"7f515b1d_612dfffc","updated":"2017-09-28 14:28:36.000000000","message":"Yep, two patches up in \"revert allocations by migration\".","commit_id":"7038b3f9a9525211092aad2db9332e85d969885f"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"1e4c3de63aff38292618dec14e9b3a48384ba3a9","unresolved":false,"context_lines":[{"line_number":3645,"context_line":"                               \u0027allocation\u0027),"},{"line_number":3646,"context_line":"                             {\u0027node\u0027: nodename, \u0027mig\u0027: migration.uuid})"},{"line_number":3647,"context_line":"                    return"},{"line_number":3648,"context_line":"        elif migration.dest_node \u003d\u003d nodename:"},{"line_number":3649,"context_line":"            # NOTE(danms): We\u0027re reverting on the destination node, so"},{"line_number":3650,"context_line":"            # we need to check to see if the source is doing migration-based"},{"line_number":3651,"context_line":"            # allocation accounting"}],"source_content_type":"text/x-python","patch_set":9,"id":"7f515b1d_0eeafaaa","line":3648,"range":{"start_line":3648,"start_character":8,"end_line":3648,"end_character":45},"updated":"2017-09-27 17:49:15.000000000","message":"this isn\u0027t necessarily mutually exclusive with the condition on line 3622. If it\u0027s a same-host migration, the source and destination hosts will be the same.\n\nIn that case, the code from 3622-3647 will run and remove the migration-associated allocation for a resize-confirmation, which is good and expected. If there is not migration-associated allocation, we\u0027ll drop down to handle resize-on-same-host situations in the legacy code starting on line 3669. This is as expected, however it would probably be good to add a quick comment saying that we have thought through those scenarios. :)","commit_id":"7038b3f9a9525211092aad2db9332e85d969885f"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"1e4c3de63aff38292618dec14e9b3a48384ba3a9","unresolved":false,"context_lines":[{"line_number":3662,"context_line":"                return"},{"line_number":3663,"context_line":""},{"line_number":3664,"context_line":"        LOG.info(_(\u0027Doing legacy allocation math for migration %(mig)s after \u0027"},{"line_number":3665,"context_line":"                   \u0027instance move\u0027),"},{"line_number":3666,"context_line":"                 {\u0027mig\u0027: migration.uuid},"},{"line_number":3667,"context_line":"                 instance\u003dinstance)"},{"line_number":3668,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"7f515b1d_4e91124e","line":3665,"updated":"2017-09-27 17:49:15.000000000","message":"Would be nice to put a TODO in here to remove this legacy code. End Rocky?","commit_id":"7038b3f9a9525211092aad2db9332e85d969885f"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"57593172798661cff73d75c84f1e179e2a8cfc15","unresolved":false,"context_lines":[{"line_number":3662,"context_line":"                return"},{"line_number":3663,"context_line":""},{"line_number":3664,"context_line":"        LOG.info(_(\u0027Doing legacy allocation math for migration %(mig)s after \u0027"},{"line_number":3665,"context_line":"                   \u0027instance move\u0027),"},{"line_number":3666,"context_line":"                 {\u0027mig\u0027: migration.uuid},"},{"line_number":3667,"context_line":"                 instance\u003dinstance)"},{"line_number":3668,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"7f515b1d_b790c04b","line":3665,"in_reply_to":"7f515b1d_4e91124e","updated":"2017-09-28 14:28:36.000000000","message":"I hate putting release names in these comments since we often fail to follow up. For example:\n\n nova/compute/manager.py:245:# TODO(alaski): Actually remove this after Newton, assuming a major RPC bump\n\nBut I\u0027ll put something about removal and hedge a bit.","commit_id":"7038b3f9a9525211092aad2db9332e85d969885f"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"02c1ab452e212f07bce05f5c2f3743661a577bf8","unresolved":false,"context_lines":[{"line_number":3662,"context_line":"                return"},{"line_number":3663,"context_line":""},{"line_number":3664,"context_line":"        LOG.info(_(\u0027Doing legacy allocation math for migration %(mig)s after \u0027"},{"line_number":3665,"context_line":"                   \u0027instance move\u0027),"},{"line_number":3666,"context_line":"                 {\u0027mig\u0027: migration.uuid},"},{"line_number":3667,"context_line":"                 instance\u003dinstance)"},{"line_number":3668,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"7f515b1d_62c72498","line":3665,"in_reply_to":"7f515b1d_b790c04b","updated":"2017-09-28 14:49:17.000000000","message":"Cool, thanks. :)","commit_id":"7038b3f9a9525211092aad2db9332e85d969885f"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"0c1b616207a556eae36be64354f293a04f301db2","unresolved":false,"context_lines":[{"line_number":3606,"context_line":"                context, instance, \"resize.confirm.end\","},{"line_number":3607,"context_line":"                network_info\u003dnetwork_info)"},{"line_number":3608,"context_line":""},{"line_number":3609,"context_line":"    def _delete_allocation_after_move(self, instance, migration, flavor,"},{"line_number":3610,"context_line":"                                      nodename):"},{"line_number":3611,"context_line":"        rt \u003d self._get_resource_tracker()"},{"line_number":3612,"context_line":"        cn_uuid \u003d rt.get_node_uuid(nodename)"}],"source_content_type":"text/x-python","patch_set":10,"id":"7f515b1d_35b94c14","line":3609,"range":{"start_line":3609,"start_character":8,"end_line":3609,"end_character":37},"updated":"2017-09-29 19:28:58.000000000","message":"I\u0027d rename this to \"_delete_allocation_after_migrate\" or _delete_allocation_after_migrate or something. Could be follow up. docstring would be good too. It gets confusing tracking all of the move operations and where each is used and what the migration object looks like, since we\u0027re not consistent.","commit_id":"265a4f3171b3bfdcab95a1f6de7ff43489a0b253"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"87fc52297b28b9e149396e143b5d1bb5e89e24b5","unresolved":false,"context_lines":[{"line_number":3606,"context_line":"                context, instance, \"resize.confirm.end\","},{"line_number":3607,"context_line":"                network_info\u003dnetwork_info)"},{"line_number":3608,"context_line":""},{"line_number":3609,"context_line":"    def _delete_allocation_after_move(self, instance, migration, flavor,"},{"line_number":3610,"context_line":"                                      nodename):"},{"line_number":3611,"context_line":"        rt \u003d self._get_resource_tracker()"},{"line_number":3612,"context_line":"        cn_uuid \u003d rt.get_node_uuid(nodename)"}],"source_content_type":"text/x-python","patch_set":10,"id":"7f515b1d_b5b3fce8","line":3609,"range":{"start_line":3609,"start_character":8,"end_line":3609,"end_character":37},"in_reply_to":"7f515b1d_35b94c14","updated":"2017-09-29 19:36:47.000000000","message":"Why move instead of migrate? I wanted this to be generic for any kind of move.","commit_id":"265a4f3171b3bfdcab95a1f6de7ff43489a0b253"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"bc7667c7aea511e4d7867e106be0e4d1a46f7fcb","unresolved":false,"context_lines":[{"line_number":3606,"context_line":"                context, instance, \"resize.confirm.end\","},{"line_number":3607,"context_line":"                network_info\u003dnetwork_info)"},{"line_number":3608,"context_line":""},{"line_number":3609,"context_line":"    def _delete_allocation_after_move(self, instance, migration, flavor,"},{"line_number":3610,"context_line":"                                      nodename):"},{"line_number":3611,"context_line":"        rt \u003d self._get_resource_tracker()"},{"line_number":3612,"context_line":"        cn_uuid \u003d rt.get_node_uuid(nodename)"}],"source_content_type":"text/x-python","patch_set":10,"id":"7f515b1d_8cf7d28b","line":3609,"range":{"start_line":3609,"start_character":8,"end_line":3609,"end_character":37},"in_reply_to":"7f515b1d_b5b3fce8","updated":"2017-09-30 15:49:53.000000000","message":"For the reasons below about how assumptions on how the migration object is constructed for other move operations, like live migrate.","commit_id":"265a4f3171b3bfdcab95a1f6de7ff43489a0b253"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"0c1b616207a556eae36be64354f293a04f301db2","unresolved":false,"context_lines":[{"line_number":3611,"context_line":"        rt \u003d self._get_resource_tracker()"},{"line_number":3612,"context_line":"        cn_uuid \u003d rt.get_node_uuid(nodename)"},{"line_number":3613,"context_line":""},{"line_number":3614,"context_line":"        if migration.source_node \u003d\u003d nodename:"},{"line_number":3615,"context_line":"            if migration.status \u003d\u003d \u0027confirmed\u0027:"},{"line_number":3616,"context_line":"                # NOTE(danms): We\u0027re confirming on the source node, so try to"},{"line_number":3617,"context_line":"                # delete the allocation based on the migration uuid"}],"source_content_type":"text/x-python","patch_set":10,"id":"7f515b1d_15d53044","line":3614,"range":{"start_line":3614,"start_character":11,"end_line":3614,"end_character":32},"updated":"2017-09-29 19:28:58.000000000","message":"Do we always set this? I know that live migration doesn\u0027t set the source/dest node fields on the migration object in conductor. I realize this method is used for cold migrate/resize though.\n\nLooks like during a migrate/resize we create the migration record here since the API nor conductor create that for us:\n\nhttps://github.com/openstack/nova/blob/ae4b5d0147cb3e345bf57034221e9c8fedf3cad2/nova/compute/resource_tracker.py#L359\n\nOh and looky there, the source/dest node fields are set, so that answers that. We just need to be clear that this method can\u0027t be used for other move operations. We should have a docstring probably, or rename the method to be clear we can\u0027t use it for live migrate, unshelve or evacuate.","commit_id":"265a4f3171b3bfdcab95a1f6de7ff43489a0b253"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"87fc52297b28b9e149396e143b5d1bb5e89e24b5","unresolved":false,"context_lines":[{"line_number":3611,"context_line":"        rt \u003d self._get_resource_tracker()"},{"line_number":3612,"context_line":"        cn_uuid \u003d rt.get_node_uuid(nodename)"},{"line_number":3613,"context_line":""},{"line_number":3614,"context_line":"        if migration.source_node \u003d\u003d nodename:"},{"line_number":3615,"context_line":"            if migration.status \u003d\u003d \u0027confirmed\u0027:"},{"line_number":3616,"context_line":"                # NOTE(danms): We\u0027re confirming on the source node, so try to"},{"line_number":3617,"context_line":"                # delete the allocation based on the migration uuid"}],"source_content_type":"text/x-python","patch_set":10,"id":"7f515b1d_75cea45a","line":3614,"range":{"start_line":3614,"start_character":11,"end_line":3614,"end_character":32},"in_reply_to":"7f515b1d_15d53044","updated":"2017-09-29 19:36:47.000000000","message":"The conductor creates it for us, in a separate patch.\n\nI haven\u0027t seen that the live migration process doesn\u0027t create it for us, and the patch later in this series makes us use this code without issues. Maybe I already tweaked that when I wrote that a while ago, I\u0027ll have to go look.","commit_id":"265a4f3171b3bfdcab95a1f6de7ff43489a0b253"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"ec6a830578bcec78bc1378aba9fa8d4fda77338b","unresolved":false,"context_lines":[{"line_number":3611,"context_line":"        rt \u003d self._get_resource_tracker()"},{"line_number":3612,"context_line":"        cn_uuid \u003d rt.get_node_uuid(nodename)"},{"line_number":3613,"context_line":""},{"line_number":3614,"context_line":"        if migration.source_node \u003d\u003d nodename:"},{"line_number":3615,"context_line":"            if migration.status \u003d\u003d \u0027confirmed\u0027:"},{"line_number":3616,"context_line":"                # NOTE(danms): We\u0027re confirming on the source node, so try to"},{"line_number":3617,"context_line":"                # delete the allocation based on the migration uuid"}],"source_content_type":"text/x-python","patch_set":10,"id":"7f515b1d_a76ce7cd","line":3614,"range":{"start_line":3614,"start_character":11,"end_line":3614,"end_character":32},"in_reply_to":"7f515b1d_6c2db6a6","updated":"2017-09-30 16:23:17.000000000","message":"Just to be clear, I was saying the later patch pre-creates it for us for cold migration. But yes, this\u0027ll need some extra work when we start calling it for live migration in the patch at the end of the series.","commit_id":"265a4f3171b3bfdcab95a1f6de7ff43489a0b253"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"bc7667c7aea511e4d7867e106be0e4d1a46f7fcb","unresolved":false,"context_lines":[{"line_number":3611,"context_line":"        rt \u003d self._get_resource_tracker()"},{"line_number":3612,"context_line":"        cn_uuid \u003d rt.get_node_uuid(nodename)"},{"line_number":3613,"context_line":""},{"line_number":3614,"context_line":"        if migration.source_node \u003d\u003d nodename:"},{"line_number":3615,"context_line":"            if migration.status \u003d\u003d \u0027confirmed\u0027:"},{"line_number":3616,"context_line":"                # NOTE(danms): We\u0027re confirming on the source node, so try to"},{"line_number":3617,"context_line":"                # delete the allocation based on the migration uuid"}],"source_content_type":"text/x-python","patch_set":10,"id":"7f515b1d_ec33e660","line":3614,"range":{"start_line":3614,"start_character":11,"end_line":3614,"end_character":32},"in_reply_to":"7f515b1d_75cea45a","updated":"2017-09-30 15:49:53.000000000","message":"OK if something later in the series is setting migration.source/dest_node in conductor, that\u0027s cool. I haven\u0027t gotten that far. I started working on a patch yesterday to fix that in the LiveMigrateTask in conductor but dropped it because I wasn\u0027t sure if we needed it yet.","commit_id":"265a4f3171b3bfdcab95a1f6de7ff43489a0b253"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"a5af12a70ed913c04fe0c014e6dacf4c4316335e","unresolved":false,"context_lines":[{"line_number":3611,"context_line":"        rt \u003d self._get_resource_tracker()"},{"line_number":3612,"context_line":"        cn_uuid \u003d rt.get_node_uuid(nodename)"},{"line_number":3613,"context_line":""},{"line_number":3614,"context_line":"        if migration.source_node \u003d\u003d nodename:"},{"line_number":3615,"context_line":"            if migration.status \u003d\u003d \u0027confirmed\u0027:"},{"line_number":3616,"context_line":"                # NOTE(danms): We\u0027re confirming on the source node, so try to"},{"line_number":3617,"context_line":"                # delete the allocation based on the migration uuid"}],"source_content_type":"text/x-python","patch_set":10,"id":"7f515b1d_6c2db6a6","line":3614,"range":{"start_line":3614,"start_character":11,"end_line":3614,"end_character":32},"in_reply_to":"7f515b1d_8c01123b","updated":"2017-09-30 16:13:15.000000000","message":"This is my fix: https://review.openstack.org/#/c/508699/","commit_id":"265a4f3171b3bfdcab95a1f6de7ff43489a0b253"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"ff3def40db49742338aba53c50b5fdc787ef6541","unresolved":false,"context_lines":[{"line_number":3611,"context_line":"        rt \u003d self._get_resource_tracker()"},{"line_number":3612,"context_line":"        cn_uuid \u003d rt.get_node_uuid(nodename)"},{"line_number":3613,"context_line":""},{"line_number":3614,"context_line":"        if migration.source_node \u003d\u003d nodename:"},{"line_number":3615,"context_line":"            if migration.status \u003d\u003d \u0027confirmed\u0027:"},{"line_number":3616,"context_line":"                # NOTE(danms): We\u0027re confirming on the source node, so try to"},{"line_number":3617,"context_line":"                # delete the allocation based on the migration uuid"}],"source_content_type":"text/x-python","patch_set":10,"id":"7f515b1d_8c01123b","line":3614,"range":{"start_line":3614,"start_character":11,"end_line":3614,"end_character":32},"in_reply_to":"7f515b1d_ec33e660","updated":"2017-09-30 15:55:18.000000000","message":"Do you mean this patch? https://review.openstack.org/#/c/498950/\n\nBecause that doesn\u0027t fix the issue with the migration object for live migrate. For live migrate, the migration object is created here:\n\nhttps://github.com/openstack/nova/blob/3e37c2e10e1701c4cc782f31b9e5917011123261/nova/conductor/manager.py#L402\n\nsource_node/dest_node are not set.\n\ndest_compute would only be set there if the admin specified a host when live migrating, which they might not have. If they didn\u0027t, we pick a destination and set dest_compute here:\n\nhttps://github.com/openstack/nova/blob/3e37c2e10e1701c4cc782f31b9e5917011123261/nova/conductor/tasks/live_migrate.py#L57\n\nNote that we still never set source_node/dest_node on the migration object, so if any of the live migration code called this method, we\u0027d have an AttributeError.\n\nMaking sure that we always set dest_compute/dest_node/source_node in conductor for live migration is something I was working on yesterday but dropped it. I think we should probably fix that on it\u0027s own so the information is available regardless of whether or not compute is using it today, but it could save us from errors later.","commit_id":"265a4f3171b3bfdcab95a1f6de7ff43489a0b253"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"0c1b616207a556eae36be64354f293a04f301db2","unresolved":false,"context_lines":[{"line_number":3615,"context_line":"            if migration.status \u003d\u003d \u0027confirmed\u0027:"},{"line_number":3616,"context_line":"                # NOTE(danms): We\u0027re confirming on the source node, so try to"},{"line_number":3617,"context_line":"                # delete the allocation based on the migration uuid"},{"line_number":3618,"context_line":"                deleted \u003d self.reportclient.delete_allocation_for_instance("},{"line_number":3619,"context_line":"                    migration.uuid)"},{"line_number":3620,"context_line":"                if deleted:"},{"line_number":3621,"context_line":"                    LOG.info(_(\u0027Source node %(node)s confirmed migration \u0027"}],"source_content_type":"text/x-python","patch_set":10,"id":"7f515b1d_954da03f","line":3618,"range":{"start_line":3618,"start_character":44,"end_line":3618,"end_character":74},"updated":"2017-09-29 19:28:58.000000000","message":"This will puke a warning until we start using this code later in the series, just a note.","commit_id":"265a4f3171b3bfdcab95a1f6de7ff43489a0b253"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"0c1b616207a556eae36be64354f293a04f301db2","unresolved":false,"context_lines":[{"line_number":3618,"context_line":"                deleted \u003d self.reportclient.delete_allocation_for_instance("},{"line_number":3619,"context_line":"                    migration.uuid)"},{"line_number":3620,"context_line":"                if deleted:"},{"line_number":3621,"context_line":"                    LOG.info(_(\u0027Source node %(node)s confirmed migration \u0027"},{"line_number":3622,"context_line":"                               \u0027%(mig)s; deleted migration-based \u0027"},{"line_number":3623,"context_line":"                               \u0027allocation\u0027),"},{"line_number":3624,"context_line":"                             {\u0027node\u0027: nodename, \u0027mig\u0027: migration.uuid})"}],"source_content_type":"text/x-python","patch_set":10,"id":"7f515b1d_5553a8e2","line":3621,"range":{"start_line":3621,"start_character":29,"end_line":3621,"end_character":31},"updated":"2017-09-29 19:28:58.000000000","message":"We don\u0027t do the translation stuff anymore.","commit_id":"265a4f3171b3bfdcab95a1f6de7ff43489a0b253"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"0c1b616207a556eae36be64354f293a04f301db2","unresolved":false,"context_lines":[{"line_number":3619,"context_line":"                    migration.uuid)"},{"line_number":3620,"context_line":"                if deleted:"},{"line_number":3621,"context_line":"                    LOG.info(_(\u0027Source node %(node)s confirmed migration \u0027"},{"line_number":3622,"context_line":"                               \u0027%(mig)s; deleted migration-based \u0027"},{"line_number":3623,"context_line":"                               \u0027allocation\u0027),"},{"line_number":3624,"context_line":"                             {\u0027node\u0027: nodename, \u0027mig\u0027: migration.uuid})"},{"line_number":3625,"context_line":"                    # NOTE(danms): We succeeded, which means we do not"},{"line_number":3626,"context_line":"                    # need to do the complex double allocation dance"}],"source_content_type":"text/x-python","patch_set":10,"id":"7f515b1d_1563f0b3","line":3623,"range":{"start_line":3622,"start_character":41,"end_line":3623,"end_character":42},"updated":"2017-09-29 19:28:58.000000000","message":"delete_allocation_for_instance will also log this on success:\n\nLOG.info(_LI(\u0027Deleted allocation for instance %s\u0027),\n                     uuid)\n\nWhich will be a bit confusing. We should rename instance there to \u0027consumer\u0027 so it\u0027s more generic.","commit_id":"265a4f3171b3bfdcab95a1f6de7ff43489a0b253"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"9b29154eb994909e488140450df051568dce2341","unresolved":false,"context_lines":[{"line_number":3624,"context_line":"                             {\u0027node\u0027: nodename, \u0027mig\u0027: migration.uuid})"},{"line_number":3625,"context_line":"                    # NOTE(danms): We succeeded, which means we do not"},{"line_number":3626,"context_line":"                    # need to do the complex double allocation dance"},{"line_number":3627,"context_line":"                    return"},{"line_number":3628,"context_line":"            else:"},{"line_number":3629,"context_line":"                # We\u0027re reverting (or failed) on the source, so we"},{"line_number":3630,"context_line":"                # need to check if our migration holds a claim and if"}],"source_content_type":"text/x-python","patch_set":10,"id":"7f515b1d_d4da0176","line":3627,"updated":"2017-09-29 15:17:54.000000000","message":"++","commit_id":"265a4f3171b3bfdcab95a1f6de7ff43489a0b253"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"0c1b616207a556eae36be64354f293a04f301db2","unresolved":false,"context_lines":[{"line_number":3626,"context_line":"                    # need to do the complex double allocation dance"},{"line_number":3627,"context_line":"                    return"},{"line_number":3628,"context_line":"            else:"},{"line_number":3629,"context_line":"                # We\u0027re reverting (or failed) on the source, so we"},{"line_number":3630,"context_line":"                # need to check if our migration holds a claim and if"},{"line_number":3631,"context_line":"                # so, avoid doing the legacy behavior below."},{"line_number":3632,"context_line":"                mig_allocs \u003d self.reportclient.get_allocations_for_instance("},{"line_number":3633,"context_line":"                    cn_uuid, migration)"},{"line_number":3634,"context_line":"                if mig_allocs:"}],"source_content_type":"text/x-python","patch_set":10,"id":"7f515b1d_75cd8483","line":3631,"range":{"start_line":3629,"start_character":16,"end_line":3631,"end_character":60},"updated":"2017-09-29 19:28:58.000000000","message":"So revert_resize starts on the dest node and casts to finish_revert_resize on the source node. But finish_revert_resize doesn\u0027t call this method, so how would we get here?","commit_id":"265a4f3171b3bfdcab95a1f6de7ff43489a0b253"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"bc7667c7aea511e4d7867e106be0e4d1a46f7fcb","unresolved":false,"context_lines":[{"line_number":3626,"context_line":"                    # need to do the complex double allocation dance"},{"line_number":3627,"context_line":"                    return"},{"line_number":3628,"context_line":"            else:"},{"line_number":3629,"context_line":"                # We\u0027re reverting (or failed) on the source, so we"},{"line_number":3630,"context_line":"                # need to check if our migration holds a claim and if"},{"line_number":3631,"context_line":"                # so, avoid doing the legacy behavior below."},{"line_number":3632,"context_line":"                mig_allocs \u003d self.reportclient.get_allocations_for_instance("},{"line_number":3633,"context_line":"                    cn_uuid, migration)"},{"line_number":3634,"context_line":"                if mig_allocs:"}],"source_content_type":"text/x-python","patch_set":10,"id":"7f515b1d_6c47f6bd","line":3631,"range":{"start_line":3629,"start_character":16,"end_line":3631,"end_character":60},"in_reply_to":"7f515b1d_753c642e","updated":"2017-09-30 15:49:53.000000000","message":"But revert_resize starts on the dest node, source nodename would be the dest node, so the check on L3614 above would be False, right?","commit_id":"265a4f3171b3bfdcab95a1f6de7ff43489a0b253"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"87fc52297b28b9e149396e143b5d1bb5e89e24b5","unresolved":false,"context_lines":[{"line_number":3626,"context_line":"                    # need to do the complex double allocation dance"},{"line_number":3627,"context_line":"                    return"},{"line_number":3628,"context_line":"            else:"},{"line_number":3629,"context_line":"                # We\u0027re reverting (or failed) on the source, so we"},{"line_number":3630,"context_line":"                # need to check if our migration holds a claim and if"},{"line_number":3631,"context_line":"                # so, avoid doing the legacy behavior below."},{"line_number":3632,"context_line":"                mig_allocs \u003d self.reportclient.get_allocations_for_instance("},{"line_number":3633,"context_line":"                    cn_uuid, migration)"},{"line_number":3634,"context_line":"                if mig_allocs:"}],"source_content_type":"text/x-python","patch_set":10,"id":"7f515b1d_753c642e","line":3631,"range":{"start_line":3629,"start_character":16,"end_line":3631,"end_character":60},"in_reply_to":"7f515b1d_75cd8483","updated":"2017-09-29 19:36:47.000000000","message":"Yeah I guess this comment was copied and edited from above. Should be s/source/dest/. Called from pretty early in revert_resize()","commit_id":"265a4f3171b3bfdcab95a1f6de7ff43489a0b253"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"0c1b616207a556eae36be64354f293a04f301db2","unresolved":false,"context_lines":[{"line_number":3632,"context_line":"                mig_allocs \u003d self.reportclient.get_allocations_for_instance("},{"line_number":3633,"context_line":"                    cn_uuid, migration)"},{"line_number":3634,"context_line":"                if mig_allocs:"},{"line_number":3635,"context_line":"                    LOG.info(_(\u0027Source node %(node)s reverted migration \u0027"},{"line_number":3636,"context_line":"                               \u0027%(mig)s; not deleting migration-based \u0027"},{"line_number":3637,"context_line":"                               \u0027allocation\u0027),"},{"line_number":3638,"context_line":"                             {\u0027node\u0027: nodename, \u0027mig\u0027: migration.uuid})"}],"source_content_type":"text/x-python","patch_set":10,"id":"7f515b1d_556cc89a","line":3635,"range":{"start_line":3635,"start_character":29,"end_line":3635,"end_character":30},"updated":"2017-09-29 19:28:58.000000000","message":"blarg","commit_id":"265a4f3171b3bfdcab95a1f6de7ff43489a0b253"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"9b29154eb994909e488140450df051568dce2341","unresolved":false,"context_lines":[{"line_number":3642,"context_line":"            # (and we must not be doing a same-host migration if we"},{"line_number":3643,"context_line":"            # made it past the check above), so we need to check to"},{"line_number":3644,"context_line":"            # see if the source did migration-based allocation"},{"line_number":3645,"context_line":"            # accounting"},{"line_number":3646,"context_line":"            allocs \u003d self.reportclient.get_allocations_for_instance("},{"line_number":3647,"context_line":"                cn_uuid, migration)"},{"line_number":3648,"context_line":"            if allocs:"}],"source_content_type":"text/x-python","patch_set":10,"id":"7f515b1d_d47441d1","line":3645,"updated":"2017-09-29 15:17:54.000000000","message":"so, yeah, we don\u0027t care about the migration status if we\u0027re reverting, since the move operation is not done yet.","commit_id":"265a4f3171b3bfdcab95a1f6de7ff43489a0b253"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"9b29154eb994909e488140450df051568dce2341","unresolved":false,"context_lines":[{"line_number":3648,"context_line":"            if allocs:"},{"line_number":3649,"context_line":"                # NOTE(danms): The source did migration-based allocation"},{"line_number":3650,"context_line":"                # accounting, so we should let the source node rejigger"},{"line_number":3651,"context_line":"                # the allocations in finish_resize_revert()"},{"line_number":3652,"context_line":"                LOG.info(_(\u0027Destination node %(node)s reverted migration \u0027"},{"line_number":3653,"context_line":"                           \u0027%(mig)s; not deleting migration-based \u0027"},{"line_number":3654,"context_line":"                           \u0027allocation\u0027),"}],"source_content_type":"text/x-python","patch_set":10,"id":"7f515b1d_efa526a3","line":3651,"updated":"2017-09-29 15:17:54.000000000","message":"And that will be done by the new way with https://review.openstack.org/#/c/498949/","commit_id":"265a4f3171b3bfdcab95a1f6de7ff43489a0b253"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"0c1b616207a556eae36be64354f293a04f301db2","unresolved":false,"context_lines":[{"line_number":3649,"context_line":"                # NOTE(danms): The source did migration-based allocation"},{"line_number":3650,"context_line":"                # accounting, so we should let the source node rejigger"},{"line_number":3651,"context_line":"                # the allocations in finish_resize_revert()"},{"line_number":3652,"context_line":"                LOG.info(_(\u0027Destination node %(node)s reverted migration \u0027"},{"line_number":3653,"context_line":"                           \u0027%(mig)s; not deleting migration-based \u0027"},{"line_number":3654,"context_line":"                           \u0027allocation\u0027),"},{"line_number":3655,"context_line":"                         {\u0027node\u0027: nodename, \u0027mig\u0027: migration.uuid})"}],"source_content_type":"text/x-python","patch_set":10,"id":"7f515b1d_b55bfcf3","line":3652,"range":{"start_line":3652,"start_character":25,"end_line":3652,"end_character":26},"updated":"2017-09-29 19:28:58.000000000","message":"don\u0027t need these translated","commit_id":"265a4f3171b3bfdcab95a1f6de7ff43489a0b253"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"0c1b616207a556eae36be64354f293a04f301db2","unresolved":false,"context_lines":[{"line_number":3657,"context_line":""},{"line_number":3658,"context_line":"        # TODO(danms): Remove below this line when we remove compatibility"},{"line_number":3659,"context_line":"        # for double-accounting migrations (likely rocky)"},{"line_number":3660,"context_line":"        LOG.info(_(\u0027Doing legacy allocation math for migration %(mig)s after \u0027"},{"line_number":3661,"context_line":"                   \u0027instance move\u0027),"},{"line_number":3662,"context_line":"                 {\u0027mig\u0027: migration.uuid},"},{"line_number":3663,"context_line":"                 instance\u003dinstance)"}],"source_content_type":"text/x-python","patch_set":10,"id":"7f515b1d_9576c06f","line":3660,"range":{"start_line":3660,"start_character":17,"end_line":3660,"end_character":18},"updated":"2017-09-29 19:28:58.000000000","message":"same","commit_id":"265a4f3171b3bfdcab95a1f6de7ff43489a0b253"}],"nova/scheduler/client/report.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"0c1b616207a556eae36be64354f293a04f301db2","unresolved":false,"context_lines":[{"line_number":1165,"context_line":"        return r.status_code \u003d\u003d 204"},{"line_number":1166,"context_line":""},{"line_number":1167,"context_line":"    @safe_connect"},{"line_number":1168,"context_line":"    def delete_allocation_for_instance(self, uuid):"},{"line_number":1169,"context_line":"        url \u003d \u0027/allocations/%s\u0027 % uuid"},{"line_number":1170,"context_line":"        r \u003d self.delete(url)"},{"line_number":1171,"context_line":"        if r:"}],"source_content_type":"text/x-python","patch_set":10,"id":"7f515b1d_757b4427","line":1168,"range":{"start_line":1168,"start_character":30,"end_line":1168,"end_character":38},"updated":"2017-09-29 19:28:58.000000000","message":"At some later point we need to rename this.","commit_id":"265a4f3171b3bfdcab95a1f6de7ff43489a0b253"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"0c1b616207a556eae36be64354f293a04f301db2","unresolved":false,"context_lines":[{"line_number":1169,"context_line":"        url \u003d \u0027/allocations/%s\u0027 % uuid"},{"line_number":1170,"context_line":"        r \u003d self.delete(url)"},{"line_number":1171,"context_line":"        if r:"},{"line_number":1172,"context_line":"            LOG.info(_LI(\u0027Deleted allocation for instance %s\u0027),"},{"line_number":1173,"context_line":"                     uuid)"},{"line_number":1174,"context_line":"            return True"},{"line_number":1175,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":10,"id":"7f515b1d_f58f3427","line":1172,"range":{"start_line":1172,"start_character":49,"end_line":1172,"end_character":57},"updated":"2017-09-29 19:28:58.000000000","message":"s/instance/consumer/\n\ncould be a follow up","commit_id":"265a4f3171b3bfdcab95a1f6de7ff43489a0b253"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"0c1b616207a556eae36be64354f293a04f301db2","unresolved":false,"context_lines":[{"line_number":1177,"context_line":"            # delete something which doesn\u0027t actually exist."},{"line_number":1178,"context_line":"            if r.status_code !\u003d 404:"},{"line_number":1179,"context_line":"                LOG.warning("},{"line_number":1180,"context_line":"                    _LW(\u0027Unable to delete allocation for instance \u0027"},{"line_number":1181,"context_line":"                        \u0027%(uuid)s: (%(code)i %(text)s)\u0027),"},{"line_number":1182,"context_line":"                    {\u0027uuid\u0027: uuid,"},{"line_number":1183,"context_line":"                     \u0027code\u0027: r.status_code,"}],"source_content_type":"text/x-python","patch_set":10,"id":"7f515b1d_b5853c09","line":1180,"range":{"start_line":1180,"start_character":57,"end_line":1180,"end_character":65},"updated":"2017-09-29 19:28:58.000000000","message":"consumer","commit_id":"265a4f3171b3bfdcab95a1f6de7ff43489a0b253"}],"nova/tests/unit/compute/test_compute_mgr.py":[{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"1e4c3de63aff38292618dec14e9b3a48384ba3a9","unresolved":false,"context_lines":[{"line_number":5945,"context_line":"            self.compute._delete_allocation_after_move(self.instance,"},{"line_number":5946,"context_line":"                                                       self.migration,"},{"line_number":5947,"context_line":"                                                       mock.sentinel.flavor,"},{"line_number":5948,"context_line":"                                                       \u0027dst\u0027)"},{"line_number":5949,"context_line":"            cn_uuid \u003d mock_rt().get_node_uuid.return_value"},{"line_number":5950,"context_line":"            ga \u003d mock_report.get_allocations_for_instance"},{"line_number":5951,"context_line":"            ga.assert_called_once_with(cn_uuid, self.migration)"}],"source_content_type":"text/x-python","patch_set":9,"id":"7f515b1d_4138c3ed","line":5948,"updated":"2017-09-27 17:49:15.000000000","message":"Worth adding this here?\n\n self.assertFalse(mock_report.delete_allocation_for_instance.called)","commit_id":"7038b3f9a9525211092aad2db9332e85d969885f"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"1e4c3de63aff38292618dec14e9b3a48384ba3a9","unresolved":false,"context_lines":[{"line_number":5961,"context_line":""},{"line_number":5962,"context_line":"        # No allocations by migration, legacy cleanup"},{"line_number":5963,"context_line":"        doit(False)"},{"line_number":5964,"context_line":""},{"line_number":5965,"context_line":"    def test_consoles_enabled(self):"},{"line_number":5966,"context_line":"        self.flags(enabled\u003dFalse, group\u003d\u0027vnc\u0027)"},{"line_number":5967,"context_line":"        self.flags(enabled\u003dFalse, group\u003d\u0027spice\u0027)"}],"source_content_type":"text/x-python","patch_set":9,"id":"7f515b1d_2407151b","line":5964,"updated":"2017-09-27 17:49:15.000000000","message":"worth adding any test scenarios for same-host migrations or is that covered with the legacy code path tests?","commit_id":"7038b3f9a9525211092aad2db9332e85d969885f"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"57593172798661cff73d75c84f1e179e2a8cfc15","unresolved":false,"context_lines":[{"line_number":5961,"context_line":""},{"line_number":5962,"context_line":"        # No allocations by migration, legacy cleanup"},{"line_number":5963,"context_line":"        doit(False)"},{"line_number":5964,"context_line":""},{"line_number":5965,"context_line":"    def test_consoles_enabled(self):"},{"line_number":5966,"context_line":"        self.flags(enabled\u003dFalse, group\u003d\u0027vnc\u0027)"},{"line_number":5967,"context_line":"        self.flags(enabled\u003dFalse, group\u003d\u0027spice\u0027)"}],"source_content_type":"text/x-python","patch_set":9,"id":"7f515b1d_b7be80b1","line":5964,"in_reply_to":"7f515b1d_2407151b","updated":"2017-09-28 14:28:36.000000000","message":"It\u0027s covered better than I can cover it here by the functional tests we got in late pike I think.","commit_id":"7038b3f9a9525211092aad2db9332e85d969885f"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"02c1ab452e212f07bce05f5c2f3743661a577bf8","unresolved":false,"context_lines":[{"line_number":5961,"context_line":""},{"line_number":5962,"context_line":"        # No allocations by migration, legacy cleanup"},{"line_number":5963,"context_line":"        doit(False)"},{"line_number":5964,"context_line":""},{"line_number":5965,"context_line":"    def test_consoles_enabled(self):"},{"line_number":5966,"context_line":"        self.flags(enabled\u003dFalse, group\u003d\u0027vnc\u0027)"},{"line_number":5967,"context_line":"        self.flags(enabled\u003dFalse, group\u003d\u0027spice\u0027)"}],"source_content_type":"text/x-python","patch_set":9,"id":"7f515b1d_22bdac01","line":5964,"in_reply_to":"7f515b1d_b7be80b1","updated":"2017-09-28 14:49:17.000000000","message":"Fair point indeed. OK, thanks. :)","commit_id":"7038b3f9a9525211092aad2db9332e85d969885f"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"bc7667c7aea511e4d7867e106be0e4d1a46f7fcb","unresolved":false,"context_lines":[{"line_number":5636,"context_line":"            self.migration.uuid \u003d uuids.migration"},{"line_number":5637,"context_line":"            self.migration.source_compute \u003d \u0027src\u0027"},{"line_number":5638,"context_line":"            self.migration.source_node \u003d \u0027srcnode\u0027"},{"line_number":5639,"context_line":"            self.migration.dest_compute \u003d self.instance.host"},{"line_number":5640,"context_line":"            self.migration.dest_node \u003d self.instance.node"},{"line_number":5641,"context_line":""},{"line_number":5642,"context_line":"            # Inform compute that instance uses non-shared or shared storage"},{"line_number":5643,"context_line":"            _is_instance_storage_shared.return_value \u003d is_shared"}],"source_content_type":"text/x-python","patch_set":10,"id":"7f515b1d_2c7c5eea","line":5640,"range":{"start_line":5639,"start_character":12,"end_line":5640,"end_character":57},"updated":"2017-09-30 15:49:53.000000000","message":"This seems like a lie to make the test work, but I might just not be following this correctly. For a cold migrate, the dest_compute/node aren\u0027t going to be the instance.host/node, that\u0027s going to be set for the source_compute/node in the move_claim code:\n\nhttps://github.com/openstack/nova/blob/3e37c2e10e1701c4cc782f31b9e5917011123261/nova/compute/resource_tracker.py#L373","commit_id":"265a4f3171b3bfdcab95a1f6de7ff43489a0b253"}]}
