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[1]) return interface
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[1]) return interface
def resolve_trunk_vlans(interface_data): for line in interface_data: if regex.match("switchport \S+ allowed vlan (add )?(\S+)", line): return parse_vlan_ranges(regex[1]) return []
def resolve_trunk_vlans(interface_data): for line in interface_data: if regex.match("switchport \S+ allowed vlan add (\S+)", line): return parse_vlan_ranges(regex[0]) return []