)]}'
{"nova/test.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"e5726a1d066f4a8d5057b3c989466e8eb474f6a1","unresolved":false,"context_lines":[{"line_number":402,"context_line":""},{"line_number":403,"context_line":"    def start_service(self, name, host\u003dNone, **kwargs):"},{"line_number":404,"context_line":"        cell \u003d None"},{"line_number":405,"context_line":"        # if the host is None then the CONF.host remains defaulted to"},{"line_number":406,"context_line":"        # \u0027fake-mini\u0027 (originally done in ConfFixture)"},{"line_number":407,"context_line":"        if host is not None:"},{"line_number":408,"context_line":"            # Make sure that CONF.host is relevant to the right hostname"}],"source_content_type":"text/x-python","patch_set":5,"id":"bfb3d3c7_51c862a4","line":405,"updated":"2019-05-30 21:59:28.000000000","message":"I guess we need this moved out of the conditional for non-compute services?","commit_id":"14fcd4c24b7714975e58da4042799b02b0464fac"}],"nova/tests/unit/compute/test_compute_mgr.py":[{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"7367faf64da1c2db8215792cfa12632bf89fa77b","unresolved":false,"context_lines":[{"line_number":8871,"context_line":"        \"\"\""},{"line_number":8872,"context_line":"        instance \u003d fake_instance.fake_instance_obj("},{"line_number":8873,"context_line":"            self.context, host\u003dself.compute.host, vm_state\u003dvm_states.STOPPED,"},{"line_number":8874,"context_line":"            node\u003d\u0027fake-node\u0027, expected_attrs\u003d[\u0027system_metadata\u0027, \u0027flavor\u0027])"},{"line_number":8875,"context_line":"        migration \u003d mock.MagicMock(spec\u003d\u0027nova.objects.Migration\u0027)"},{"line_number":8876,"context_line":"        request_spec \u003d mock.MagicMock(spec\u003d\u0027nova.objects.RequestSpec\u0027)"},{"line_number":8877,"context_line":"        ex \u003d exception.InstanceFaultRollback("}],"source_content_type":"text/x-python","patch_set":8,"id":"9fb8cfa7_7f8b17bf","line":8874,"updated":"2019-06-27 15:04:58.000000000","message":"this is the new addition since PS7","commit_id":"b5666fb49239dbed6777481be63276db35ed8118"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"c7c4ea0b6d914ea5fd9279b5bb3544ff680d30fc","unresolved":false,"context_lines":[{"line_number":8890,"context_line":"                # UnableToMigrateToSelf inside InstanceFaultRollback."},{"line_number":8891,"context_line":"                exception.UnableToMigrateToSelf, self.compute.prep_resize,"},{"line_number":8892,"context_line":"                self.context, instance.image_meta, instance, instance.flavor,"},{"line_number":8893,"context_line":"                request_spec, filter_properties\u003d{}, node\u003dinstance.node,"},{"line_number":8894,"context_line":"                clean_shutdown\u003dTrue, migration\u003dmigration, host_list\u003d[])"},{"line_number":8895,"context_line":"        # The instance.vm_state should remain unchanged"},{"line_number":8896,"context_line":"        # (_error_out_instance_on_exception will set to ACTIVE by default)."}],"source_content_type":"text/x-python","patch_set":8,"id":"9fb8cfa7_ae0ad11c","line":8893,"range":{"start_line":8893,"start_character":52,"end_line":8893,"end_character":70},"updated":"2019-06-27 01:37:59.000000000","message":"Note to self: if node isn\u0027t set on the instance object, it will try to pull from the driver (FakeDriver) get_available_nodes, and this change defaults the FakeDriver\u0027s self._nodes to None instead of the old default list. Since this test isn\u0027t concerned with underlying nodes, it\u0027s probably OK to bypass the get_available_nodes call to the driver.","commit_id":"b5666fb49239dbed6777481be63276db35ed8118"}],"nova/virt/fake.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"850e60e28c7defb27568cd4bf45b049bf5c5f61c","unresolved":false,"context_lines":[{"line_number":146,"context_line":"    def _init_nodes(self):"},{"line_number":147,"context_line":"        # Mock this in your test is you need more than one node under the same"},{"line_number":148,"context_line":"        # compute host"},{"line_number":149,"context_line":"        return [CONF.host]"},{"line_number":150,"context_line":""},{"line_number":151,"context_line":"    def init_host(self, host):"},{"line_number":152,"context_line":"        return"}],"source_content_type":"text/x-python","patch_set":2,"id":"bfb3d3c7_40c2a487","line":149,"range":{"start_line":149,"start_character":16,"end_line":149,"end_character":25},"updated":"2019-05-17 16:17:44.000000000","message":"This is still a global that can cause problems when you\u0027ve got multiple compute services in a test.\n\nI was playing with something much simpler recently where I needed the get_volume_connector method to return the actual \u0027host\u0027 value that was used to start the service which should be unique per compute service. What I did was just create a self.host variable in __init__ and then set it in init_host() because that\u0027s the host value used when starting the service and should be unique. Then I could just self.host in get_volume_connector.\n\nCan we do something like that here as well? _init_nodes probably couldn\u0027t be called from __init__ but we could call self._init_nodes() from init_host after setting self.host, or just drop _init_nodes and set self._nodes directly in init_host.","commit_id":"746054c173f1d8e580f054c7ba759274c33a3f3d"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"b3e9934f62158bf8b3cdacc0e08b2e6b41f75ab8","unresolved":false,"context_lines":[{"line_number":146,"context_line":"    def _init_nodes(self):"},{"line_number":147,"context_line":"        # Mock this in your test is you need more than one node under the same"},{"line_number":148,"context_line":"        # compute host"},{"line_number":149,"context_line":"        return [CONF.host]"},{"line_number":150,"context_line":""},{"line_number":151,"context_line":"    def init_host(self, host):"},{"line_number":152,"context_line":"        return"}],"source_content_type":"text/x-python","patch_set":2,"id":"bfb3d3c7_c2cb9f6f","line":149,"range":{"start_line":149,"start_character":16,"end_line":149,"end_character":25},"in_reply_to":"bfb3d3c7_40c2a487","updated":"2019-05-23 09:59:15.000000000","message":"Done","commit_id":"746054c173f1d8e580f054c7ba759274c33a3f3d"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"21d9c0dfbc8f823958e656630f2342879128e300","unresolved":false,"context_lines":[{"line_number":151,"context_line":"    def init_host(self, host):"},{"line_number":152,"context_line":"        self._host \u003d host"},{"line_number":153,"context_line":"        # NOTE(gibi): this is unnecessary complex and fragile but this is"},{"line_number":154,"context_line":"        # how many current functional sample tests expect the node name."},{"line_number":155,"context_line":"        self._nodes \u003d ([\u0027fake-mini\u0027] if self._host \u003d\u003d \u0027compute\u0027"},{"line_number":156,"context_line":"                       else [self._host])"},{"line_number":157,"context_line":""},{"line_number":158,"context_line":"    def _set_nodes(self, nodes):"},{"line_number":159,"context_line":"        # NOTE(gibi): this is not part of the driver interface but used"}],"source_content_type":"text/x-python","patch_set":4,"id":"bfb3d3c7_13332b16","line":156,"range":{"start_line":154,"start_character":8,"end_line":156,"end_character":41},"updated":"2019-05-24 17:51:19.000000000","message":"Based on this, do we still need all of the other test changes in this patch?","commit_id":"714d4f3454ce82af19f0536c5b084dc3991ae9f3"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"503a0c03df028c05fcd25db65a8a0a20e0b92a7f","unresolved":false,"context_lines":[{"line_number":151,"context_line":"    def init_host(self, host):"},{"line_number":152,"context_line":"        self._host \u003d host"},{"line_number":153,"context_line":"        # NOTE(gibi): this is unnecessary complex and fragile but this is"},{"line_number":154,"context_line":"        # how many current functional sample tests expect the node name."},{"line_number":155,"context_line":"        self._nodes \u003d ([\u0027fake-mini\u0027] if self._host \u003d\u003d \u0027compute\u0027"},{"line_number":156,"context_line":"                       else [self._host])"},{"line_number":157,"context_line":""},{"line_number":158,"context_line":"    def _set_nodes(self, nodes):"},{"line_number":159,"context_line":"        # NOTE(gibi): this is not part of the driver interface but used"}],"source_content_type":"text/x-python","patch_set":4,"id":"bfb3d3c7_c705c347","line":156,"range":{"start_line":154,"start_character":8,"end_line":156,"end_character":41},"in_reply_to":"bfb3d3c7_13332b16","updated":"2019-05-27 07:45:45.000000000","message":"Most of the test changes in this patch are removing the call to the \u0027set_nodes()\u0027 global. Which is the goal of this patch. There is one hickup in the \u0027os-hypervisors/v2.53/hypervisors-list\u0027 sample test I was not able to avoid.\n\nIf I remove this delicacy from here then a lot more other api and notification sample tests needs adjustment.","commit_id":"714d4f3454ce82af19f0536c5b084dc3991ae9f3"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"e5726a1d066f4a8d5057b3c989466e8eb474f6a1","unresolved":false,"context_lines":[{"line_number":150,"context_line":""},{"line_number":151,"context_line":"    def init_host(self, host):"},{"line_number":152,"context_line":"        self._host \u003d host"},{"line_number":153,"context_line":"        # NOTE(gibi): this is unnecessary complex and fragile but this is"},{"line_number":154,"context_line":"        # how many current functional sample tests expect the node name."},{"line_number":155,"context_line":"        self._nodes \u003d ([\u0027fake-mini\u0027] if self._host \u003d\u003d \u0027compute\u0027"},{"line_number":156,"context_line":"                       else [self._host])"}],"source_content_type":"text/x-python","patch_set":5,"id":"bfb3d3c7_7148062c","line":153,"range":{"start_line":153,"start_character":30,"end_line":153,"end_character":41},"updated":"2019-05-30 21:59:28.000000000","message":"unnecessarily","commit_id":"14fcd4c24b7714975e58da4042799b02b0464fac"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"e5726a1d066f4a8d5057b3c989466e8eb474f6a1","unresolved":false,"context_lines":[{"line_number":152,"context_line":"        self._host \u003d host"},{"line_number":153,"context_line":"        # NOTE(gibi): this is unnecessary complex and fragile but this is"},{"line_number":154,"context_line":"        # how many current functional sample tests expect the node name."},{"line_number":155,"context_line":"        self._nodes \u003d ([\u0027fake-mini\u0027] if self._host \u003d\u003d \u0027compute\u0027"},{"line_number":156,"context_line":"                       else [self._host])"},{"line_number":157,"context_line":""},{"line_number":158,"context_line":"    def _set_nodes(self, nodes):"}],"source_content_type":"text/x-python","patch_set":5,"id":"bfb3d3c7_f165d6b5","line":155,"updated":"2019-05-30 21:59:28.000000000","message":"Hmm, should we only do this is self._nodes is None, meaning a test didn\u0027t already call _set_nodes? Maybe it\u0027s not really possible to call _set_nodes before init_host because init_host is called on start() of the Service.","commit_id":"14fcd4c24b7714975e58da4042799b02b0464fac"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"e5726a1d066f4a8d5057b3c989466e8eb474f6a1","unresolved":false,"context_lines":[{"line_number":152,"context_line":"        self._host \u003d host"},{"line_number":153,"context_line":"        # NOTE(gibi): this is unnecessary complex and fragile but this is"},{"line_number":154,"context_line":"        # how many current functional sample tests expect the node name."},{"line_number":155,"context_line":"        self._nodes \u003d ([\u0027fake-mini\u0027] if self._host \u003d\u003d \u0027compute\u0027"},{"line_number":156,"context_line":"                       else [self._host])"},{"line_number":157,"context_line":""},{"line_number":158,"context_line":"    def _set_nodes(self, nodes):"}],"source_content_type":"text/x-python","patch_set":5,"id":"bfb3d3c7_d130d2a1","line":155,"range":{"start_line":155,"start_character":37,"end_line":155,"end_character":63},"updated":"2019-05-30 21:59:28.000000000","message":"I\u0027m assuming this is because of the \"host\u003dhost or name\" here:\n\nhttps://review.opendev.org/#/c/656709/5/nova/test.py@419","commit_id":"14fcd4c24b7714975e58da4042799b02b0464fac"}]}
