def _migrate_device(LOG, a10_config, db_sessions, lb_id, tenant_id, tenant_device_binding): if a10_config.get('use_database'): entry_name = aten2oct.get_device_name_by_tenant( db_sessions['a10_nlbaas_session'], tenant_device_binding) else: devices = a10_config.get('devices') entry_name = acos_client.Hash( list(devices)).get_server(tenant_device_binding) device_info = a10_config.get_device(entry_name) device_name = device_info.get('name') LOG.info('Migrating Thunder config entry %s with name %s', entry_name, device_name) use_parent = a10_config.get('use_parent_project') try: k_session = db_sessions.get('k_session') aten2oct.migrate_thunder(db_sessions['a10_oct_session'], lb_id, tenant_id, device_info, use_parent, k_session) except aten2oct.UnsupportedAXAPIVersionException as e: LOG.warning( 'Skipping loadbalancer %s for config entry %s with AXAPI version %s. ' 'Only AXAPI version 3.0 is supported.', lb_id, entry_name, e.axapi_version) return return device_info
def __init__(self, driver, devices=None): self.driver = driver if devices is not None: self.devices = devices else: self.devices = self.driver.config.get_devices() self.appliance_hash = acos_client.Hash(self.devices.keys())
def __init__(self, openstack_driver): self.openstack_driver = openstack_driver self.config = a10_config.A10Config() self.appliance_hash = acos_client.Hash(self.config.devices.keys()) if self.config.verify_appliances: self._verify_appliances() LOG.info("A10-neutron-lbaas: initializing, version=%s, acos_client=%s", a10_neutron_lbaas.__version__, acos_client.VERSION)
def test_hash(self): h = acos_client.Hash(servers) a = h.get_server('aaa') h.get_server('bbb') h.get_server('ccc') self.assertEqual(a, h.get_server('aaa'))
def __init__(self, driver): self.driver = driver self.appliance_hash = acos_client.Hash(self.driver.config.devices.keys())
dev5 = {'name': 'dev5'} dev6 = {'name': 'dev6'} devices1 = {'dev1': dev1} devices2 = { 'dev1': dev1, 'dev2': dev2, 'dev3': dev3, 'dev4': dev4, 'dev5': dev5, 'dev6': dev6, } TENANT_ID = 'xxx' EXPECTED_DEV1 = acos_client.Hash(devices1.keys()).get_server(TENANT_ID) HARDCODE_RESULT1 = 'dev1' EXPECTED_DEV2 = acos_client.Hash(devices2.keys()).get_server(TENANT_ID) HARDCODE_RESULT2 = 'dev2' class TestSelectDevice(test_base.UnitTestBase): def test_test_setup(self): self.assertEqual(EXPECTED_DEV1, HARDCODE_RESULT1) self.assertEqual(EXPECTED_DEV2, HARDCODE_RESULT2) self.assertNotEqual(EXPECTED_DEV1, EXPECTED_DEV2) def test_select_device_hash(self): h = hooks.PlumbingHooks(None, devices=devices1) d = h._select_device_hash(TENANT_ID) self.assertEqual(d['name'], EXPECTED_DEV1)
dev5 = {'name': 'dev5'} dev6 = {'name': 'dev6'} devices1 = {'dev1': dev1} devices2 = { 'dev1': dev1, 'dev2': dev2, 'dev3': dev3, 'dev4': dev4, 'dev5': dev5, 'dev6': dev6, } TENANT_ID = 'xxx' EXPECTED_DEV1 = acos_client.Hash(list(devices1)).get_server(TENANT_ID) HARDCODE_RESULT1 = 'dev1' EXPECTED_DEV2 = acos_client.Hash(list(devices2)).get_server(TENANT_ID) HARDCODE_RESULT2 = 'dev2' @attr(db=True) class TestSelectDevice(test_base.UnitTestBase): def test_test_setup(self): self.assertEqual(EXPECTED_DEV1, HARDCODE_RESULT1) self.assertEqual(EXPECTED_DEV2, HARDCODE_RESULT2) self.assertNotEqual(EXPECTED_DEV1, EXPECTED_DEV2) def test_select_device_hash(self): h = hooks.PlumbingHooks(None, devices=devices1)
def _late_init(self): if self.devices is None: self.devices = self.driver.config.get_devices() if self.appliance_hash is None: self.appliance_hash = acos_client.Hash(self.devices.keys())