)]}'
{"nova/conductor/tasks/migrate.py":[{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"e41940d4fad53794f9c109473650cd5da8fa5b46","unresolved":false,"context_lines":[{"line_number":353,"context_line":"        (host, node) \u003d (selection.service_host, selection.nodename)"},{"line_number":354,"context_line":""},{"line_number":355,"context_line":"        # If the Selection object has the AZ set use that. Note that the"},{"line_number":356,"context_line":"        # field might not be set if RPC is pinned to an older version"},{"line_number":357,"context_line":"        # during a rolling upgrade."},{"line_number":358,"context_line":"        if \u0027availability_zone\u0027 in selection:"},{"line_number":359,"context_line":"            self.instance.availability_zone \u003d selection.availability_zone"}],"source_content_type":"text/x-python","patch_set":3,"id":"3fa7e38b_eb4ff331","line":356,"range":{"start_line":356,"start_character":36,"end_line":356,"end_character":49},"updated":"2019-10-02 14:51:49.000000000","message":"This isn\u0027t true is it? The object will have it set if the control services are new enough to send it, regardless of what RPC is pinned to.","commit_id":"6daecdc6d7a59378968f7cec988facfe20895d46"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"a20332af45c4c0493eaf66ae5fb394d0836cd096","unresolved":false,"context_lines":[{"line_number":353,"context_line":"        (host, node) \u003d (selection.service_host, selection.nodename)"},{"line_number":354,"context_line":""},{"line_number":355,"context_line":"        # If the Selection object has the AZ set use that. Note that the"},{"line_number":356,"context_line":"        # field might not be set if RPC is pinned to an older version"},{"line_number":357,"context_line":"        # during a rolling upgrade."},{"line_number":358,"context_line":"        if \u0027availability_zone\u0027 in selection:"},{"line_number":359,"context_line":"            self.instance.availability_zone \u003d selection.availability_zone"}],"source_content_type":"text/x-python","patch_set":3,"id":"3fa7e38b_eb993379","line":356,"range":{"start_line":356,"start_character":36,"end_line":356,"end_character":49},"in_reply_to":"3fa7e38b_cb19d722","updated":"2019-10-02 14:57:44.000000000","message":"If conductor is older than scheduler, then conductor will explode when receiving the newer object. It can\u0027t backport something it doesn\u0027t understand. Hence my point, unless you broke the rules and upgraded compute first, this really shouldn\u0027t happen. So I\u0027d just say something like \"AZ was added in v1.2 of the selection object, so make sure to handle the case where it\u0027s missing\" or something like that.","commit_id":"6daecdc6d7a59378968f7cec988facfe20895d46"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"706d94d8e9c160a109095c4e1b1764d8da716541","unresolved":false,"context_lines":[{"line_number":353,"context_line":"        (host, node) \u003d (selection.service_host, selection.nodename)"},{"line_number":354,"context_line":""},{"line_number":355,"context_line":"        # If the Selection object has the AZ set use that. Note that the"},{"line_number":356,"context_line":"        # field might not be set if RPC is pinned to an older version"},{"line_number":357,"context_line":"        # during a rolling upgrade."},{"line_number":358,"context_line":"        if \u0027availability_zone\u0027 in selection:"},{"line_number":359,"context_line":"            self.instance.availability_zone \u003d selection.availability_zone"}],"source_content_type":"text/x-python","patch_set":3,"id":"3fa7e38b_cb19d722","line":356,"range":{"start_line":356,"start_character":36,"end_line":356,"end_character":49},"in_reply_to":"3fa7e38b_eb4ff331","updated":"2019-10-02 14:54:28.000000000","message":"So the only way this wouldn\u0027t be set is if conductor is older than scheduler and conductor downgrades the object when scheduler sends it to conductor and removes the field?","commit_id":"6daecdc6d7a59378968f7cec988facfe20895d46"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"2df669282b76324bc9c7e560811b866a8d7dc760","unresolved":false,"context_lines":[{"line_number":353,"context_line":"        (host, node) \u003d (selection.service_host, selection.nodename)"},{"line_number":354,"context_line":""},{"line_number":355,"context_line":"        # If the Selection object has the AZ set use that. Note that the"},{"line_number":356,"context_line":"        # field might not be set if RPC is pinned to an older version"},{"line_number":357,"context_line":"        # during a rolling upgrade."},{"line_number":358,"context_line":"        if \u0027availability_zone\u0027 in selection:"},{"line_number":359,"context_line":"            self.instance.availability_zone \u003d selection.availability_zone"}],"source_content_type":"text/x-python","patch_set":3,"id":"3fa7e38b_d602d709","line":356,"range":{"start_line":356,"start_character":36,"end_line":356,"end_character":49},"in_reply_to":"3fa7e38b_eb993379","updated":"2019-10-02 17:42:43.000000000","message":"Done","commit_id":"6daecdc6d7a59378968f7cec988facfe20895d46"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"0cdb114d61093e91b387944d9297e4b77b9c991d","unresolved":false,"context_lines":[{"line_number":359,"context_line":"        else:"},{"line_number":360,"context_line":"            self.instance.availability_zone \u003d ("},{"line_number":361,"context_line":"                availability_zones.get_host_availability_zone("},{"line_number":362,"context_line":"                    self.context, host))"},{"line_number":363,"context_line":""},{"line_number":364,"context_line":"        LOG.debug(\"Calling prep_resize with selected host: %s; \""},{"line_number":365,"context_line":"                  \"Selected node: %s; Alternates: %s\", host, node,"}],"source_content_type":"text/x-python","patch_set":4,"id":"3fa7e38b_82a2d94a","line":362,"updated":"2019-10-02 21:16:57.000000000","message":"Same comment here about some unit testage.","commit_id":"ac85b76178017b4bda30502a6ebb9c990435ec72"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"fbee7de1db227a432c70520a04abef27dbf314a4","unresolved":false,"context_lines":[{"line_number":359,"context_line":"        else:"},{"line_number":360,"context_line":"            self.instance.availability_zone \u003d ("},{"line_number":361,"context_line":"                availability_zones.get_host_availability_zone("},{"line_number":362,"context_line":"                    self.context, host))"},{"line_number":363,"context_line":""},{"line_number":364,"context_line":"        LOG.debug(\"Calling prep_resize with selected host: %s; \""},{"line_number":365,"context_line":"                  \"Selected node: %s; Alternates: %s\", host, node,"}],"source_content_type":"text/x-python","patch_set":4,"id":"3fa7e38b_a89d770b","line":362,"in_reply_to":"3fa7e38b_82a2d94a","updated":"2019-10-02 22:18:51.000000000","message":"Same reply, and mentioned in the commit message.","commit_id":"ac85b76178017b4bda30502a6ebb9c990435ec72"}],"nova/tests/functional/regressions/test_bug_1781286.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"5e633bcd7151d784bd734fa393f13d956fe1d6bd","unresolved":false,"context_lines":[{"line_number":166,"context_line":"        mock.patch.stopall()"},{"line_number":167,"context_line":"        server \u003d self._wait_for_state_change(self.api, server, \u0027VERIFY_RESIZE\u0027)"},{"line_number":168,"context_line":"        final_host \u003d server[\u0027OS-EXT-SRV-ATTR:host\u0027]"},{"line_number":169,"context_line":"        self.assertNotEqual(original_host, final_host)"},{"line_number":170,"context_line":"        self.assertNotEqual(self.rescheduled, final_host)"},{"line_number":171,"context_line":"        # We should have rescheduled and the instance AZ should be set from the"},{"line_number":172,"context_line":"        # Selection object. Since neither compute host is in an AZ, the server"},{"line_number":173,"context_line":"        # is in the default AZ from config."}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_5fd4ccbd","line":170,"range":{"start_line":169,"start_character":8,"end_line":170,"end_character":57},"updated":"2019-10-01 21:36:18.000000000","message":"This could just use self.assertNotIn.","commit_id":"fd6b69cc1bdb195889e27c2a0ea86f367a5e7344"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"16b0aaf9bbe5ca9da312bad6ed1679ce08543771","unresolved":false,"context_lines":[{"line_number":163,"context_line":"        # Note that we use stopall here because we actually called _prep_resize"},{"line_number":164,"context_line":"        # twice so we have more than one instance of the mock that needs to be"},{"line_number":165,"context_line":"        # stopped."},{"line_number":166,"context_line":"        mock.patch.stopall()"},{"line_number":167,"context_line":"        server \u003d self._wait_for_state_change(self.api, server, \u0027VERIFY_RESIZE\u0027)"},{"line_number":168,"context_line":"        final_host \u003d server[\u0027OS-EXT-SRV-ATTR:host\u0027]"},{"line_number":169,"context_line":"        self.assertNotIn(final_host, [original_host, self.rescheduled])"}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa7e38b_e53082eb","line":166,"updated":"2019-10-02 13:21:15.000000000","message":"We could avoid this by using a mock.patch as a context manager in wrap_prep_resize instead of the fixture.","commit_id":"cf87eb4859fd6bb5f7d514042ec31f8b3a3de2fc"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"cd24fd44b0c5a8d7fbe65a53b1bb0f2216428428","unresolved":false,"context_lines":[{"line_number":163,"context_line":"        # Note that we use stopall here because we actually called _prep_resize"},{"line_number":164,"context_line":"        # twice so we have more than one instance of the mock that needs to be"},{"line_number":165,"context_line":"        # stopped."},{"line_number":166,"context_line":"        mock.patch.stopall()"},{"line_number":167,"context_line":"        server \u003d self._wait_for_state_change(self.api, server, \u0027VERIFY_RESIZE\u0027)"},{"line_number":168,"context_line":"        final_host \u003d server[\u0027OS-EXT-SRV-ATTR:host\u0027]"},{"line_number":169,"context_line":"        self.assertNotIn(final_host, [original_host, self.rescheduled])"}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa7e38b_904b0a5e","line":166,"in_reply_to":"3fa7e38b_103abacc","updated":"2019-10-02 14:00:23.000000000","message":"The one difference in this one is prep_resize does and RPC call to conductor for the reschedule so it might be possible to use a context manager here. build_and_run_instance in the other test though is doing an RPC cast to build_instances in conductor so I don\u0027t think it\u0027s possible there.","commit_id":"cf87eb4859fd6bb5f7d514042ec31f8b3a3de2fc"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"5ffb47e0cc2625570bd29122e89b6a54d7bec5ce","unresolved":false,"context_lines":[{"line_number":163,"context_line":"        # Note that we use stopall here because we actually called _prep_resize"},{"line_number":164,"context_line":"        # twice so we have more than one instance of the mock that needs to be"},{"line_number":165,"context_line":"        # stopped."},{"line_number":166,"context_line":"        mock.patch.stopall()"},{"line_number":167,"context_line":"        server \u003d self._wait_for_state_change(self.api, server, \u0027VERIFY_RESIZE\u0027)"},{"line_number":168,"context_line":"        final_host \u003d server[\u0027OS-EXT-SRV-ATTR:host\u0027]"},{"line_number":169,"context_line":"        self.assertNotIn(final_host, [original_host, self.rescheduled])"}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa7e38b_103abacc","line":166,"in_reply_to":"3fa7e38b_e53082eb","updated":"2019-10-02 13:59:04.000000000","message":"Same reply as in https://review.opendev.org/#/c/686047/.","commit_id":"cf87eb4859fd6bb5f7d514042ec31f8b3a3de2fc"}]}
