コード例 #1
0
ファイル: dell.py プロジェクト: idjaw/netman
    def read_interface(self, interface_name):
        data = self.get_interface_data(interface_name)

        interface = Interface(name=interface_name, port_mode=ACCESS, shutdown=False)
        for line in data:
            if regex.match("switchport mode \S+", line):
                interface.port_mode = TRUNK
            if regex.match("shutdown", line):
                interface.shutdown = True
            if regex.match("switchport access vlan (\d+)", line):
                interface.access_vlan = int(regex[0])
            if regex.match("switchport general pvid (\d+)", line):
                interface.trunk_native_vlan = int(regex[0])
            if regex.match("switchport \S+ allowed vlan add (\S+)", line):
                interface.trunk_vlans += parse_vlan_ranges(regex[0])
            if regex.match("mtu (\d+)", line):
                interface.mtu = int(regex[0])

        return interface
コード例 #2
0
ファイル: arista.py プロジェクト: simon-begin/netman
def parse_interfaces(interfaces_data, switchports_data):
    interfaces = []
    for interface_data in interfaces_data.values():
        if regex.match("(\w*Ethernet[^\s]*)", interface_data["name"]) or \
                regex.match("(Port-channel[^\s]*)", interface_data["name"]):

            interface = Interface(name=interface_data["name"], shutdown=False)

            if interface_data["lineProtocolStatus"] == "down":
                interface.shutdown = True

            interface.mtu = int(interface_data["mtu"])
            interface.auto_negotiation = ON if interface_data["autoNegotiate"] == "on" else OFF

            if interface.name in switchports_data:
                patch_switchport(interface, switchports_data[interface.name]["switchportInfo"])

            interfaces.append(interface)

    return interfaces