コード例 #1
0
def map_config_to_obj(module):
    config = get_config(module)
    configobj = NetworkConfig(indent=1, contents=config)

    match = re.findall(r'^interface (\S+)', config, re.M)
    if not match:
        return list()

    instances = list()

    for item in set(match):
        ipv4 = parse_config_argument(configobj, item, 'ip address')
        if ipv4:
            # eg. 192.168.2.10 255.255.255.0 -> 192.168.2.10/24
            address = ipv4.strip().split(' ')
            if len(address) == 2 and is_netmask(address[1]):
                ipv4 = '{0}/{1}'.format(address[0],
                                        to_text(to_masklen(address[1])))

        obj = {
            'name': item,
            'ipv4': ipv4,
            'ipv6': parse_config_argument(configobj, item, 'ipv6 address'),
            'state': 'present'
        }
        instances.append(obj)

    return instances
コード例 #2
0
def map_config_to_obj(module):
    config = get_config(module)
    configobj = NetworkConfig(indent=1, contents=config)

    match = re.findall(r"^interface (\S+)", config, re.M)
    if not match:
        return list()

    instances = list()

    for item in set(match):
        ipv4 = parse_config_argument(configobj, item, "ip address")
        if ipv4:
            # eg. 192.168.2.10 255.255.255.0 -> 192.168.2.10/24
            address = ipv4.strip().split(" ")
            if len(address) == 2 and is_netmask(address[1]):
                ipv4 = "{0}/{1}".format(address[0],
                                        to_text(to_masklen(address[1])))

        obj = {
            "name": item,
            "ipv4": ipv4,
            "ipv6": parse_config_argument(configobj, item, "ipv6 address"),
            "state": "present",
        }
        instances.append(obj)

    return instances
コード例 #3
0
def map_config_to_obj(module):
    compare = module.params['check_running_config']
    config = get_config(module, flags=['| begin interface'], compare=compare)
    configobj = NetworkConfig(indent=1, contents=config)

    match = re.findall(r'^interface (\S+ \S+)', config, re.M)
    if not match:
        return list()

    instances = list()

    for item in set(match):
        ipv4 = parse_config_argument(configobj, item, 'ip address')
        if ipv4:
            address = ipv4.strip().split(' ')
            if len(address) == 2 and is_netmask(address[1]):
                ipv4 = '{0}/{1}'.format(address[0], to_text(to_masklen(address[1])))
        obj = {
            'name': item,
            'ipv4': ipv4,
            'ipv6': parse_config_argument(configobj, item, 'ipv6 address'),
            'state': 'present'
        }
        instances.append(obj)

    return instances
コード例 #4
0
ファイル: bgp.py プロジェクト: alliedtelesis/ansible_awplus
def generate_network_commands(want, have):
    commands = []

    for w_network in want:

        masklen = w_network.get('masklen', 32)
        if is_netmask(masklen):
            masklen = to_masklen(masklen)
        subnet = to_subnet(w_network['prefix'], masklen)
        prefix = subnet.split('/')[0]
        w_network['prefix'] = prefix

        if remove_empties(w_network) not in have:
            command = 'network {}'.format(subnet)
            if w_network.get('route_map'):
                command += ' route-map {}'.format(w_network['route_map'])
            if w_network.get('backdoor'):
                command += ' backdoor'
            commands.append(command)

    return commands