diff --git a/octavia/compute/drivers/nova_driver.py b/octavia/compute/drivers/nova_driver.py index 68a7567fba..e7b361aeb0 100644 --- a/octavia/compute/drivers/nova_driver.py +++ b/octavia/compute/drivers/nova_driver.py @@ -123,8 +123,7 @@ class VirtualMachineManager(compute_base.ComputeBase): raise exceptions.ComputeGetException() return self._translate_amphora(amphora) - @staticmethod - def _translate_amphora(nova_response): + def _translate_amphora(self, nova_response): '''Convert a nova virtual machine into an amphora object. :param nova_response: JSON response from nova @@ -132,12 +131,12 @@ class VirtualMachineManager(compute_base.ComputeBase): ''' # Extract information from nova response to populate desired amphora # fields - lb_network_ip = None - for network_name in nova_response.addresses: - if network_name == CONF.networking.lb_network_name: - lb_network_ip = ( - nova_response.addresses[network_name][0]['addr']) + lb_network_ip = nova_response.addresses[ + self._nova_client.networks.get( + CONF.controller_worker.amp_network).label + ][0]['addr'] + response = models.Amphora( compute_id=nova_response.id, status=nova_response.status, diff --git a/octavia/tests/unit/compute/drivers/test_nova_driver.py b/octavia/tests/unit/compute/drivers/test_nova_driver.py index 0b9cba0a6e..45c0775d93 100644 --- a/octavia/tests/unit/compute/drivers/test_nova_driver.py +++ b/octavia/tests/unit/compute/drivers/test_nova_driver.py @@ -32,7 +32,7 @@ CONF = cfg.CONF class TestNovaClient(base.TestCase): def setUp(self): - net_name = uuidutils.generate_uuid() + net_name = "lb-mgmt-net" CONF.set_override(group='networking', name='lb_network_name', override=net_name) CONF.set_override(group='keystone_authtoken', name='auth_version', @@ -48,8 +48,14 @@ class TestNovaClient(base.TestCase): self.nova_response.status = 'ACTIVE' self.nova_response.addresses = {net_name: [{'addr': '10.0.0.1'}]} + self.nova_network = mock.Mock() + self.nova_network.label = net_name + self.manager = nova_common.VirtualMachineManager() self.manager.manager = mock.MagicMock() + self.manager._nova_client = mock.MagicMock() + + self.manager._nova_client.networks.get.return_value = self.nova_network self.manager.manager.get.return_value = self.nova_response self.manager.manager.create.return_value = self.nova_response