diff --git a/octavia/amphorae/drivers/noop_driver/driver.py b/octavia/amphorae/drivers/noop_driver/driver.py index e55c7cf3b6..9824b98c74 100644 --- a/octavia/amphorae/drivers/noop_driver/driver.py +++ b/octavia/amphorae/drivers/noop_driver/driver.py @@ -80,10 +80,11 @@ class NoopManager(object): self.__class__.__name__, amphora.id) self.amphoraconfig[amphora.id] = (amphora.id, 'finalize amphora') - def post_network_plug(self, amphora): - LOG.debug("Amphora %s no-op, post network plug amphora %s", - self.__class__.__name__, amphora.id) - self.amphoraconfig[amphora.id] = (amphora.id, 'post_network_plug') + def post_network_plug(self, amphora, port): + LOG.debug("Amphora %s no-op, post network plug amphora %s, port %s", + self.__class__.__name__, amphora.id, port.id) + self.amphoraconfig[amphora.id, port.id] = (amphora.id, port.id, + 'post_network_plug') def post_vip_plug(self, load_balancer, amphorae_network_config): LOG.debug("Amphora %s no-op, post vip plug load balancer %s", @@ -125,9 +126,9 @@ class NoopAmphoraLoadBalancerDriver(driver_base.AmphoraLoadBalancerDriver): self.driver.finalize_amphora(amphora) - def post_network_plug(self, amphora): + def post_network_plug(self, amphora, port): - self.driver.post_network_plug(amphora) + self.driver.post_network_plug(amphora, port) def post_vip_plug(self, load_balancer, amphorae_network_config): diff --git a/octavia/compute/drivers/noop_driver/driver.py b/octavia/compute/drivers/noop_driver/driver.py index f8cf6d60f3..927bc3afc5 100644 --- a/octavia/compute/drivers/noop_driver/driver.py +++ b/octavia/compute/drivers/noop_driver/driver.py @@ -13,7 +13,10 @@ # under the License. from oslo_log import log as logging +from oslo_utils import uuidutils +from octavia.common import constants +from octavia.common import data_models from octavia.compute import compute_base as driver_base LOG = logging.getLogger(__name__) @@ -26,19 +29,21 @@ class NoopManager(object): def build(self, name="amphora_name", amphora_flavor=None, image_id=None, key_name=None, sec_groups=None, network_ids=None, - config_drive_files=None, user_data=None): + config_drive_files=None, user_data=None, port_ids=None): LOG.debug("Compute %s no-op, build name %s, amphora_flavor %s, " "image_id %s, key_name %s, sec_groups %s, network_ids %s," - "config_drive_files %s, user_data %s", + "config_drive_files %s, user_data %s, port_ids %s", self.__class__.__name__, name, amphora_flavor, image_id, key_name, sec_groups, network_ids, config_drive_files, - user_data) + user_data, port_ids) self.computeconfig[(name, amphora_flavor, image_id, key_name, - sec_groups, network_ids, config_drive_files, - user_data)] = (name, amphora_flavor, - image_id, key_name, sec_groups, - network_ids, config_drive_files, - user_data, 'build') + user_data)] = ( + name, amphora_flavor, + image_id, key_name, sec_groups, + network_ids, config_drive_files, + user_data, port_ids, 'build') + compute_id = uuidutils.generate_uuid() + return compute_id def delete(self, amphora_id): LOG.debug("Compute %s no-op, amphora_id %s", @@ -49,11 +54,17 @@ class NoopManager(object): LOG.debug("Compute %s no-op, amphora_id %s", self.__class__.__name__, amphora_id) self.computeconfig[amphora_id] = (amphora_id, 'status') + return constants.UP def get_amphora(self, amphora_id): LOG.debug("Compute %s no-op, amphora_id %s", self.__class__.__name__, amphora_id) self.computeconfig[amphora_id] = (amphora_id, 'get_amphora') + return data_models.Amphora( + compute_id=amphora_id, + status=constants.ACTIVE, + lb_network_ip='192.0.2.1' + ) class NoopComputeDriver(driver_base.ComputeBase): @@ -63,17 +74,18 @@ class NoopComputeDriver(driver_base.ComputeBase): def build(self, name="amphora_name", amphora_flavor=None, image_id=None, key_name=None, sec_groups=None, network_ids=None, - config_drive_files=None, user_data=None): + config_drive_files=None, user_data=None, port_ids=None): - self.driver.build(name, amphora_flavor, image_id, key_name, - sec_groups, network_ids, config_drive_files, - user_data) + compute_id = self.driver.build(name, amphora_flavor, image_id, + key_name, sec_groups, network_ids, + config_drive_files, user_data, port_ids) + return compute_id def delete(self, amphora_id): self.driver.delete(amphora_id) def status(self, amphora_id): - self.driver.status(amphora_id) + return self.driver.status(amphora_id) def get_amphora(self, amphora_id): - self.driver.get_amphora(amphora_id) + return self.driver.get_amphora(amphora_id) diff --git a/octavia/controller/worker/tasks/compute_tasks.py b/octavia/controller/worker/tasks/compute_tasks.py index 59f5f9e24e..a0fd4bead8 100644 --- a/octavia/controller/worker/tasks/compute_tasks.py +++ b/octavia/controller/worker/tasks/compute_tasks.py @@ -125,7 +125,7 @@ class DeleteAmphoraeOnLoadBalancer(BaseComputeTask): def execute(self, loadbalancer): for amp in loadbalancer.amphorae: try: - self.compute.delete(compute_id=amp.compute_id) + self.compute.delete(amp.compute_id) except Exception as e: LOG.error(_LE("Nova delete for amphora id: %(amp)s failed:" "%(exp)s"), {'amp': amp.id, 'exp': e}) diff --git a/octavia/network/drivers/noop_driver/driver.py b/octavia/network/drivers/noop_driver/driver.py index c9f3854744..00c479418e 100644 --- a/octavia/network/drivers/noop_driver/driver.py +++ b/octavia/network/drivers/noop_driver/driver.py @@ -13,8 +13,11 @@ # under the License. from oslo_log import log as logging +from oslo_utils import uuidutils +from octavia.common import data_models from octavia.network import base as driver_base +from octavia.network import data_models as network_models LOG = logging.getLogger(__name__) @@ -29,6 +32,10 @@ class NoopManager(object): self.__class__.__name__, load_balancer) self.networkconfigconfig[load_balancer] = ( load_balancer, 'allocate_vip') + return data_models.Vip(ip_address='198.51.100.1', + subnet_id=uuidutils.generate_uuid(), + port_id=uuidutils.generate_uuid(), + load_balancer_id=load_balancer.id) def deallocate_vip(self, vip): LOG.debug("Network %s no-op, deallocate_vip vip %s", @@ -43,6 +50,17 @@ class NoopManager(object): self.networkconfigconfig[(load_balancer.id, vip.ip_address)] = (load_balancer, vip, 'plug_vip') + amps = [] + for amphora in load_balancer.amphorae: + amps.append(data_models.Amphora( + id=amphora.id, + compute_id=amphora.compute_id, + vrrp_ip='198.51.100.1', + ha_ip='198.51.100.1', + vrrp_port_id=uuidutils.generate_uuid(), + ha_port_id=uuidutils.generate_uuid() + )) + return amps def unplug_vip(self, load_balancer, vip): LOG.debug("Network %s no-op, unplug_vip load_balancer %s, vip %s", @@ -58,6 +76,13 @@ class NoopManager(object): network_id, ip_address) self.networkconfigconfig[(compute_id, network_id, ip_address)] = ( compute_id, network_id, ip_address, 'plug_network') + return network_models.Interface( + id=uuidutils.generate_uuid(), + compute_id=compute_id, + network_id=network_id, + fixed_ips=[], + port_id=uuidutils.generate_uuid() + ) def unplug_network(self, compute_id, network_id, ip_address=None): LOG.debug("Network %s no-op, unplug_network compute_id %s, " @@ -71,6 +96,7 @@ class NoopManager(object): self.__class__.__name__, compute_id) self.networkconfigconfig[compute_id] = ( compute_id, 'get_plugged_networks') + return [] def update_vip(self, load_balancer): LOG.debug("Network %s no-op, update_vip load_balancer %s", @@ -81,16 +107,19 @@ class NoopManager(object): LOG.debug("Network %s no-op, get_network network_id %s", self.__class__.__name__, network_id) self.networkconfigconfig[network_id] = (network_id, 'get_network') + return network_models.Network(id=uuidutils.generate_uuid()) def get_subnet(self, subnet_id): LOG.debug("Subnet %s no-op, get_subnet subnet_id %s", self.__class__.__name__, subnet_id) self.networkconfigconfig[subnet_id] = (subnet_id, 'get_subnet') + return network_models.Subnet(id=uuidutils.generate_uuid()) def get_port(self, port_id): LOG.debug("Port %s no-op, get_port port_id %s", self.__class__.__name__, port_id) self.networkconfigconfig[port_id] = (port_id, 'get_port') + return network_models.Port(id=uuidutils.generate_uuid()) def failover_preparation(self, amphora): LOG.debug("failover %s no-op, failover_preparation, amphora id %s", @@ -103,38 +132,38 @@ class NoopNetworkDriver(driver_base.AbstractNetworkDriver): self.driver = NoopManager() def allocate_vip(self, load_balancer): - self.driver.allocate_vip(load_balancer) + return self.driver.allocate_vip(load_balancer) def deallocate_vip(self, vip): self.driver.deallocate_vip(vip) def plug_vip(self, load_balancer, vip): - self.driver.plug_vip(load_balancer, vip) + return self.driver.plug_vip(load_balancer, vip) def unplug_vip(self, load_balancer, vip): self.driver.unplug_vip(load_balancer, vip) def plug_network(self, amphora_id, network_id, ip_address=None): - self.driver.plug_network(amphora_id, network_id, ip_address) + return self.driver.plug_network(amphora_id, network_id, ip_address) def unplug_network(self, amphora_id, network_id, ip_address=None): self.driver.unplug_network(amphora_id, network_id, ip_address=ip_address) def get_plugged_networks(self, amphora_id): - self.driver.get_plugged_networks(amphora_id) + return self.driver.get_plugged_networks(amphora_id) def update_vip(self, load_balancer): self.driver.update_vip(load_balancer) def get_network(self, network_id): - self.driver.get_network(network_id) + return self.driver.get_network(network_id) def get_subnet(self, subnet_id): - self.driver.get_subnet(subnet_id) + return self.driver.get_subnet(subnet_id) def get_port(self, port_id): - self.driver.get_port(port_id) + return self.driver.get_port(port_id) def failover_preparation(self, amphora): self.driver.failover_preparation(amphora) diff --git a/octavia/tests/unit/amphorae/drivers/test_noop_amphoraloadbalancer_driver.py b/octavia/tests/unit/amphorae/drivers/test_noop_amphoraloadbalancer_driver.py index 1ab5f7372b..ec34999f80 100644 --- a/octavia/tests/unit/amphorae/drivers/test_noop_amphoraloadbalancer_driver.py +++ b/octavia/tests/unit/amphorae/drivers/test_noop_amphoraloadbalancer_driver.py @@ -55,6 +55,7 @@ class TestNoopAmphoraLoadBalancerDriver(base.TestCase): id=FAKE_UUID_1, amphorae=[self.amphora], vip=self.vip, listeners=[self.listener]) self.network = network_models.Network(id=self.FAKE_UUID_1) + self.port = network_models.Port(id=uuidutils.generate_uuid()) self.amphorae_net_configs = { self.amphora.id: network_models.AmphoraNetworkConfig( @@ -109,10 +110,10 @@ class TestNoopAmphoraLoadBalancerDriver(base.TestCase): self.amphora.id]) def test_post_network_plug(self): - self.driver.post_network_plug(self.amphora) - self.assertEqual((self.amphora.id, 'post_network_plug'), - self.driver.driver.amphoraconfig[ - self.amphora.id]) + self.driver.post_network_plug(self.amphora, self.port) + self.assertEqual((self.amphora.id, self.port.id, 'post_network_plug'), + self.driver.driver.amphoraconfig[( + self.amphora.id, self.port.id)]) def test_post_vip_plug(self): self.driver.post_vip_plug(self.load_balancer, diff --git a/octavia/tests/unit/controller/worker/tasks/test_compute_tasks.py b/octavia/tests/unit/controller/worker/tasks/test_compute_tasks.py index 7371178b1b..cd970b0bc2 100644 --- a/octavia/tests/unit/controller/worker/tasks/test_compute_tasks.py +++ b/octavia/tests/unit/controller/worker/tasks/test_compute_tasks.py @@ -220,7 +220,7 @@ class TestComputeTasks(base.TestCase): delete_amps = compute_tasks.DeleteAmphoraeOnLoadBalancer() delete_amps.execute(_load_balancer_mock) - mock_driver.delete.assert_called_once_with(compute_id=COMPUTE_ID) + mock_driver.delete.assert_called_once_with(COMPUTE_ID) @mock.patch('stevedore.driver.DriverManager.driver') def test_compute_delete(self, mock_driver):