Feb-09-2019, 05:24 PM
Hi All,
trying to print interfaces details from router, below is the my code.
name description vlan ip policy
interface Eth-Trunk1.158 EXT_MATHWORKS', 'INDIA', 'PRIVATE', 'LIMITED_1105725697 158 111.93.206.33', '255.255.255.252 10Mb
trying to print interfaces details from router, below is the my code.
from ciscoconfparse import CiscoConfParse interfaces = {} cisco_cfg = CiscoConfParse("configuration.txt") rtr_interfaces = cisco_cfg.find_objects(r"^interface") for intfaces in rtr_interfaces: details = intfaces.children interfaces.update({'name': intfaces.text}) for names in details: if 'vlan-type'in names.text: vlan = names.text.split(' ')[3] if not vlan: interfaces.update({'vlan':' '}) else: interfaces.update({'vlan': vlan }) if 'description' in names.text: description = names.text.split(' ')[2:] if not description: interfaces.update({'description': 'n/a'}) else: interfaces.update({'description': description}) if 'ip address' in names.text: ip = names.text.split(' ')[2:] if not ip: interfaces.update({'ip': 'n/a'}) else: interfaces.update({'ip': ip}) if 'qos-profile' in names.text: policy = names.text.split(' ')[2] if not policy: #interfaces.update({'policy': 'n/a'}) if 'user-queue' in names.text: user_queue = names.text.split(' ')[4] if not user_queue: interfaces.update({'policy': 'n/a'}) else: interfaces.update({'policy':user_queue}) else: # if 'user-queue' in names.text: #policy = names.text.split(' ')[2] interfaces.update({'policy': policy}) for details in interfaces.items(): print("%s"%(details,))
Output:('name', 'interface Eth-Trunk1.130')
('description', ['EXT_MISUMI', 'INDIA', 'PVT', 'LTD_12405738282'])
('vlan', '130')
('ip', ['address', '111.93.33.201', '255.255.255.248'])
('policy', '30Mb')
('name', 'interface Eth-Trunk1.155')
('description', ['EXT_IREO-12405068279'])
('vlan', '155')
('ip', ['address', '111.93.232.221', '255.255.255.252'])
('policy', 'Internet_8Mb')
('name', 'interface Eth-Trunk1.157')
('description', ['EXT_IREO-12405068279'])
('vlan', '155')
('ip', ['address', '111.93.232.221', '255.255.255.252'])
('policy', 'Internet_8Mb')
('name', 'interface Eth-Trunk1.158')
('description', ['EXT_MATHWORKS', 'INDIA', 'PRIVATE', 'LIMITED_1105725697'])
('vlan', '158')
('ip', ['address', '111.93.206.33', '255.255.255.252'])
('policy', '10Mb')
would like to print like belowname description vlan ip policy
interface Eth-Trunk1.158 EXT_MATHWORKS', 'INDIA', 'PRIVATE', 'LIMITED_1105725697 158 111.93.206.33', '255.255.255.252 10Mb