Example #1
0
def put_interface_policy(device):
    if device.in_policy is None and device.out_policy is None:
        return

    url = Template(uniconfig_url_uniconfig_ifc_policy_config).substitute({'ifc': device.interface})
    ifc_config = {
        "frinx-openconfig-network-instance:interface": [
            {
                "interface-id": device.interface,
                "config": {
                    "interface-id": device.interface
                }
            }
        ]
    }

    if device.in_policy is not None:
        ifc_config['frinx-openconfig-network-instance:interface'][0]['config']['frinx-brocade-pf-interfaces-extension:input-service-policy'] = device.in_policy
    if device.out_policy is not None:
        ifc_config['frinx-openconfig-network-instance:interface'][0]['config']['frinx-brocade-pf-interfaces-extension:output-service-policy'] = device.out_policy

    ifc_response = uniconfig_worker.write_structured_data({'inputData': {
        'device_id': device.id,
        'uri': url,
        "template": ifc_config,
        'params': {}
    }})
    ifc_response.update({'ifc_data': ifc_config})
    return ifc_response
Example #2
0
def put_ve_interface(service, device):
    url = Template(vll_service_worker.uniconfig_url_uniconfig_ifc_config).substitute({'ifc': device.ve_interface})
    ifc_config = {
        "frinx-openconfig-interfaces:interface": [
            {
                "name": device.ve_interface,
                "config": {
                    "type": "iana-if-type:l3ipvlan",
                    "enabled": True,
                    "name": device.ve_interface,
                    "description": "IUP-" + service.id,
                }
            }
        ]
    }

    if device.ip is not None:
        x = device.ip.split('/')
        ifc_config["frinx-openconfig-interfaces:interface"][0].update({"subinterfaces": {
            "subinterface": [
                {
                    "index": 0,
                    "config": {
                        "index": 0
                    },
                    "frinx-openconfig-if-ip:ipv4": {
                        "addresses": {
                            "address": [
                                {
                                    "ip": x[0],
                                    "config": {
                                        "prefix-length": x[1],
                                        "ip": x[0]
                                    }
                                }
                            ]
                        }
                    }
                }]
        }})

    if device.vlan is not None:
        ifc_config['frinx-openconfig-interfaces:interface'][0].update({"frinx-openconfig-vlan:routed-vlan": {
            "config": {
                "vlan": device.vlan
            }
        }})

    ifc_response = uniconfig_worker.write_structured_data({'inputData': {
        'device_id': device.id,
        'uri': url,
        "template": ifc_config,
        'params': {}
    }})
    ifc_response.update({'ifc_data': ifc_config})
    return ifc_response
Example #3
0
def put_interface(service, device):
    url = Template(vll_service_worker.uniconfig_url_uniconfig_ifc_config).substitute({'ifc': device.interface})
    ifc_config = {
        "frinx-openconfig-interfaces:interface": [
            {
                "name": device.interface,
                "config": {
                    "type": "iana-if-type:ethernetCsmacd",
                    "enabled": True,
                    "name": device.interface,
                    "description": "IUP-" + device.description if device.description else "IUP-phys-" + service.id,
                    "frinx-brocade-if-extension:priority": 3,
                    "frinx-brocade-if-extension:priority-force": True

                },
                "frinx-openconfig-if-ethernet:ethernet": {
                    "frinx-openconfig-vlan:switched-vlan": {
                        "config": {
                            "interface-mode": "ACCESS" if device.untagged else "TRUNK"
                        }
                    }
                }
            }
        ]
    }

    if device.untagged:
        ifc_config["frinx-openconfig-interfaces:interface"][0]['frinx-openconfig-if-ethernet:ethernet']['frinx-openconfig-vlan:switched-vlan']['config']["access-vlan"] = device.vlan
    else:
        ifc_config["frinx-openconfig-interfaces:interface"][0]['frinx-openconfig-if-ethernet:ethernet']['frinx-openconfig-vlan:switched-vlan']['config']["trunk-vlans"] = [device.vlan]

    if device.auto_negotiate is not None:
        ifc_config['frinx-openconfig-interfaces:interface'][0].update({"frinx-openconfig-if-ethernet:ethernet": {
            "config": {
                "auto-negotiate": device.auto_negotiate
            }
        }})

    if device.tpid is not None:
        ifc_config['frinx-openconfig-interfaces:interface'][0]['config']["frinx-openconfig-vlan:tpid"] = Device.switch_tpid.get(device.tpid)

    ifc_response = uniconfig_worker.write_structured_data({'inputData': {
        'device_id': device.id,
        'uri': url,
        "template": ifc_config,
        'params': {}
    }})
    ifc_response.update({'ifc_data': ifc_config})
    return ifc_response
Example #4
0
def device_create_vll_local(task):
    vll_config = create_vll_local_request(task)
    response = uniconfig_worker.write_structured_data({
        'inputData': {
            'device_id':
            task['inputData']['id'],
            'uri': (Template(
                uniconfig_url_uniconfig_network_instance_config).substitute(
                    {'vll': (task['inputData']['service_id'])})),
            'template':
            vll_config,
            'params': {}
        }
    })
    response.update({'vll_data': vll_config})
    return response
Example #5
0
def put_vlan(service, device):
    url = Template(uniconfig_url_uniconfig_vlan_config).substitute({'vlan': device.vlan})
    vlan_config = {
        "frinx-openconfig-network-instance:vlan": [
            {
                "vlan-id": device.vlan,
                "config": {
                    "vlan-id": device.vlan,
                    "status": "ACTIVE",
                    "name": service.id
                }
            }]
    }

    vlan_response = uniconfig_worker.write_structured_data({'inputData': {
        'device_id': device.id,
        'uri': url,
        "template": vlan_config,
        'params': {}
    }})
    vlan_response.update({'vlan_data': vlan_config})
    return vlan_response
Example #6
0
def put_isis(device):
    url = Template(uniconfig_url_uniconfig_isis_config).substitute({'ifc': device.ve_interface})
    isis_config = {
        "frinx-openconfig-network-instance:interface": [
            {
                "interface-id": device.ve_interface,
                "config": {
                    "interface-id": device.ve_interface,
                    "passive": True
                }
            }
        ]
    }

    isis_response = uniconfig_worker.write_structured_data({'inputData': {
        'device_id': device.id,
        'uri': url,
        "template": isis_config,
        'params': {}
    }})
    isis_response.update({'isis_data': isis_config})
    return isis_response
Example #7
0
def put_minimal_interface(device):
    url = Template(uniconfig_url_uniconfig_ifc_config).substitute({'ifc': device.interface})
    ifc_config = {
        "frinx-openconfig-interfaces:interface": [
            {
                "name": device.interface,
                "config": {
                    "type": "iana-if-type:ethernetCsmacd",
                    "enabled": True,
                    "name": device.interface
                }
            }
        ]
    }

    ifc_response = uniconfig_worker.write_structured_data({'inputData': {
        'device_id': device.id,
        'uri': url,
        "template": ifc_config,
        'params': {}
    }})
    ifc_response.update({'ifc_data': ifc_config})
    return ifc_response
Example #8
0
def put_interface(service, device):
    url = Template(uniconfig_url_uniconfig_ifc_config).substitute({'ifc': device.interface})
    ifc_config = {
        "frinx-openconfig-interfaces:interface": [
            {
                "name": device.interface,
                "config": {
                    "type": "iana-if-type:ethernetCsmacd",
                    "enabled": True,
                    "name": device.interface,
                    "description": device.description if device.description else service.id,
                    "frinx-brocade-if-extension:priority": 3,
                    "frinx-brocade-if-extension:priority-force": True
                }
            }
        ]
    }

    if device.auto_negotiate is not None:
        ifc_config['frinx-openconfig-interfaces:interface'][0].update({"frinx-openconfig-if-ethernet:ethernet": {
            "config": {
                "auto-negotiate": device.auto_negotiate
            }
        }})

    if device.tpid is not None:
        ifc_config['frinx-openconfig-interfaces:interface'][0]['config']["frinx-openconfig-vlan:tpid"] = Device.switch_tpid.get(device.tpid)

    ifc_response = uniconfig_worker.write_structured_data({'inputData': {
        'device_id': device.id,
        'uri': url,
        "template": ifc_config,
        'params': {}
    }})
    ifc_response.update({'ifc_data': ifc_config})
    return ifc_response