Ejemplo n.º 1
0
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)
Ejemplo n.º 4
0
 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'))
Ejemplo n.º 5
0
 def __init__(self, driver):
     self.driver = driver
     self.appliance_hash = acos_client.Hash(self.driver.config.devices.keys())
Ejemplo n.º 6
0
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)
Ejemplo n.º 8
0
 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())