Exemplo n.º 1
0
def convert_interface_to_data_model(interface_obj):
    vlan_map_list = interface_obj.get('vlan_map')
    interface_num = interface_obj.get('interface_num')
    interface_dm = data_models.Interface()
    if not interface_num:
        raise exceptions.MissingInterfaceNumConfigError()
    if not type(interface_num) == int:
        raise exceptions.InvalidInterfaceNumberConfigError(interface_num)
    if not vlan_map_list:
        LOG.warning("Empty vlan map provided in configuration file")
    for vlan_map in vlan_map_list:
        vlan_id = vlan_map.get('vlan_id')
        if not vlan_id:
            raise exceptions.MissingVlanIDConfigError(interface_num)
        if not type(vlan_id) == int:
            raise exceptions.InvalidVlanIdConfigError(vlan_id)
        if vlan_id in interface_dm.tags:
            raise exceptions.DuplicateVlanTagsConfigError(
                interface_num, vlan_id)
        if vlan_map.get('use_dhcp') and vlan_map.get('use_dhcp') not in (
                "True", "False"):
            raise exceptions.InvalidUseDhcpConfigError(
                vlan_map.get('use_dhcp'))
        if vlan_map.get('use_dhcp') == 'True':
            if vlan_map.get('ve_ip'):
                raise exceptions.VirtEthCollisionConfigError(
                    interface_num, vlan_id)
            else:
                interface_dm.ve_ips.append('dhcp')
        if not vlan_map.get('use_dhcp') or vlan_map.get('use_dhcp') == 'False':
            if not vlan_map.get('ve_ip'):
                raise exceptions.VirtEthMissingConfigError(
                    interface_num, vlan_id)
            interface_dm.ve_ips.append(
                validate_partial_ipv4(vlan_map.get('ve_ip')))
        interface_dm.tags.append(vlan_id)
    interface_dm.interface_num = interface_num

    return interface_dm
Exemplo n.º 2
0
                               'project-1': VTHUNDER_1,
                               'project-2': VTHUNDER_2}

DEVICE_FLAVOR_KEY = '[dev]rack_thunder_3'
RESULT_HMT_HARDWARE_DEVICE_LIST = {
    DEVICE_FLAVOR_KEY: VTHUNDER_3_DEV,
    a10constants.MOCK_CHILD_PROJECT_ID: VTHUNDER_3
}

INTERFACE_CONF = {"interface_num": 1,
                  "vlan_map": [
                      {"vlan_id": 11, "ve_ip": "10.20"},
                      {"vlan_id": 12, "use_dhcp": "True"},
                      {"vlan_id": 13, "ve_ip": "10.30"}]
                  }
INTERFACE = data_models.Interface(interface_num=1, tags=[11, 12, 13], ve_ips=[
                                  "10.20", "dhcp", "10.30"])
DEVICE_NETWORK_MAP = [data_models.DeviceNetworkMap(
    vcs_device_id=1, ethernet_interfaces=[INTERFACE])]
HARDWARE_VLAN_INFO = {
    "interface_vlan_map": {
        "device_1": {
            "vcs_device_id": 1,
            "ethernet_interfaces": [INTERFACE_CONF]
        }
    }
}

NAT_FLAVOR = {"pool_name": "p1", "start_address": "1.1.1.1", "end_address": "1.1.1.3"}


class FakeProject(object):