From: Assaf Muller Date: Tue, 24 Mar 2015 23:56:37 +0000 (-0400) Subject: Use router state in get_ha_device_name and ha_network_added X-Git-Url: https://review.fuel-infra.org/gitweb?a=commitdiff_plain;h=af1f99478722893ea5e68e79ea8790f7e390a631;p=openstack-build%2Fneutron-build.git Use router state in get_ha_device_name and ha_network_added get_ha_device_name and ha_network_added were moved from the agent to the router class, but they're not using the router state. Rather, they're accepting arguments that they don't need. Partially-Implements: bp/restructure-l3-agent Change-Id: I9a70cbc4c45ceadd8b0a86c49ac35f0885db4997 --- diff --git a/neutron/agent/l3/ha_router.py b/neutron/agent/l3/ha_router.py index 9d845d994..f6ecc06ec 100644 --- a/neutron/agent/l3/ha_router.py +++ b/neutron/agent/l3/ha_router.py @@ -83,10 +83,7 @@ class HaRouter(router.RouterInfo): self._set_subnet_info(ha_port) self.ha_port = ha_port self._init_keepalived_manager(process_monitor) - self.ha_network_added(ha_port['network_id'], - ha_port['id'], - ha_port['ip_cidr'], - ha_port['mac_address']) + self.ha_network_added() self.update_initial_state(state_change_callback) self.spawn_state_change_monitor(process_monitor) @@ -105,7 +102,7 @@ class HaRouter(router.RouterInfo): config = self.keepalived_manager.config - interface_name = self.get_ha_device_name(self.ha_port['id']) + interface_name = self.get_ha_device_name() ha_port_cidr = self.ha_port['subnet']['cidr'] instance = keepalived.KeepalivedInstance( 'BACKUP', @@ -139,22 +136,26 @@ class HaRouter(router.RouterInfo): def _get_primary_vip(self): return self._get_keepalived_instance().get_primary_vip() - def get_ha_device_name(self, port_id): - return (HA_DEV_PREFIX + port_id)[:self.driver.DEV_NAME_LEN] + def get_ha_device_name(self): + return (HA_DEV_PREFIX + self.ha_port['id'])[:self.driver.DEV_NAME_LEN] - def ha_network_added(self, network_id, port_id, internal_cidr, - mac_address): - interface_name = self.get_ha_device_name(port_id) - self.driver.plug(network_id, port_id, interface_name, mac_address, + def ha_network_added(self): + interface_name = self.get_ha_device_name() + + self.driver.plug(self.ha_port['network_id'], + self.ha_port['id'], + interface_name, + self.ha_port['mac_address'], namespace=self.ns_name, prefix=HA_DEV_PREFIX) - self.driver.init_l3(interface_name, [internal_cidr], + self.driver.init_l3(interface_name, + [self.ha_port['ip_cidr']], namespace=self.ns_name, preserve_ips=[self._get_primary_vip()]) def ha_network_removed(self): - interface_name = self.get_ha_device_name(self.ha_port['id']) - self.driver.unplug(interface_name, namespace=self.ns_name, + self.driver.unplug(self.get_ha_device_name(), + namespace=self.ns_name, prefix=HA_DEV_PREFIX) self.ha_port = None @@ -279,7 +280,7 @@ class HaRouter(router.RouterInfo): default_cmd_callback=self._get_state_change_monitor_callback()) def _get_state_change_monitor_callback(self): - ha_device = self.get_ha_device_name(self.ha_port['id']) + ha_device = self.get_ha_device_name() ha_cidr = self._get_primary_vip() def callback(pid_file): @@ -312,7 +313,7 @@ class HaRouter(router.RouterInfo): def update_initial_state(self, callback): ha_device = ip_lib.IPDevice( - self.get_ha_device_name(self.ha_port['id']), + self.get_ha_device_name(), self.ns_name) addresses = ha_device.addr.list() cidrs = (address['cidr'] for address in addresses) diff --git a/neutron/tests/functional/agent/test_l3_agent.py b/neutron/tests/functional/agent/test_l3_agent.py index 83d521e96..518d1b866 100644 --- a/neutron/tests/functional/agent/test_l3_agent.py +++ b/neutron/tests/functional/agent/test_l3_agent.py @@ -153,7 +153,7 @@ class L3AgentTestFramework(base.BaseOVSLinuxTestCase): def get_expected_keepalive_configuration(self, router): router_id = router.router_id - ha_device_name = router.get_ha_device_name(router.ha_port['id']) + ha_device_name = router.get_ha_device_name() ha_device_cidr = router.ha_port['ip_cidr'] external_port = router.get_ex_gw_port() ex_port_ipv6 = ip_lib.get_ipv6_lladdr(external_port['mac_address']) @@ -275,8 +275,7 @@ class L3AgentTestFramework(base.BaseOVSLinuxTestCase): namespace=router.ns_name) for fip in floating_ips) def fail_ha_router(self, router): - device_name = router.get_ha_device_name( - router.router[l3_constants.HA_INTERFACE_KEY]['id']) + device_name = router.get_ha_device_name() ha_device = ip_lib.IPDevice(device_name, router.ns_name) ha_device.link.set_down() @@ -510,9 +509,10 @@ class L3AgentTestCase(L3AgentTestFramework): self.assertEqual(expected_gateway, existing_gateway) def _assert_ha_device(self, router): - self.assertTrue(self.device_exists_with_ip_mac( - router.router[l3_constants.HA_INTERFACE_KEY], - router.get_ha_device_name, router.ns_name)) + device = router.router[l3_constants.HA_INTERFACE_KEY] + self.assertTrue(ip_lib.device_exists_with_ip_mac( + router.get_ha_device_name(), device['ip_cidr'], + device['mac_address'], router.ns_name)) @classmethod def _get_addresses_on_device(cls, namespace, interface): @@ -535,7 +535,7 @@ class L3AgentTestCase(L3AgentTestFramework): router1._get_primary_vip(), self._get_addresses_on_device( router1.ns_name, - router1.get_ha_device_name(router1.ha_port['id']))) + router1.get_ha_device_name())) class L3HATestFramework(L3AgentTestFramework): @@ -578,8 +578,7 @@ class L3HATestFramework(L3AgentTestFramework): utils.wait_until_true(lambda: router1.ha_state == 'master') utils.wait_until_true(lambda: router2.ha_state == 'backup') - device_name = router1.get_ha_device_name( - router1.router[l3_constants.HA_INTERFACE_KEY]['id']) + device_name = router1.get_ha_device_name() ha_device = ip_lib.IPDevice(device_name, namespace=router1.ns_name) ha_device.link.set_down()