Exemple #1
0
def parse_config(host, addr):
    # search mgmt interface in .txt files
    # interface GigabitEthernet3 is MGMT interface
    txt_cfg = lab_folder + host + ".txt"
    mgmt_interface = "GigabitEthernet3"
    ip_param = "ip address " + addr + " 255.255.255.0"

    parse = CiscoConfParse(txt_cfg, factory=True)
    interface = parse.find_interface_objects(mgmt_interface)
    # add interface gig3

    if interface == []:
        print("creating mgmt interface")
        parse.insert_before('line con 0', 'interface GigabitEthernet3')
        parse.commit()

        for obj in parse.find_interface_objects(mgmt_interface):
            obj.append_to_family('!')
            obj.append_to_family(' no shutdown')
            obj.append_to_family(' ' + ip_param)
            obj.append_to_family(' description MGMT')

        parse.commit()
        parse.save_as(txt_cfg)
    else:
        print("Interface already configured")
        pass
print("Vlans from config file: %s" % str(sys.argv[1]))

raw_input("Press Return to continue to Router/SVI Section...")

int = config.find_objects_w_child(parentspec=r"^interface",
                                  childspec=r"ip address")
lint = len(int)
for i in int:
    print i

print("Number of items in list: %s" % lint)
print("Routed Interfaces from config file: %s" % str(sys.argv[1]))

raw_input("Press Return to continue to IP Section...")

ipint = config.find_interface_objects("^interface")
lipint = len(ipint)
for i in ipint:
    print i

print("Number of items in list: %s" % lipint)
print("IPs from config file: %s" % str(sys.argv[1]))

raw_input("Press Return to continue to Other IP Section...")

ipint2 = config.find_children_w_parents("^interface\s", "ip address")
lipint2 = len(ipint2)
print ipint2
for i in ipint2:
    print i
print ("Vlans from config file: %s" % str(sys.argv[1]))

raw_input("Press Return to continue to Router/SVI Section...")

int = config.find_objects_w_child(parentspec=r"^interface",childspec=r"ip address")
lint = len(int)
for i in int:
    print i

print ("Number of items in list: %s" % lint)
print ("Routed Interfaces from config file: %s" % str(sys.argv[1]))


raw_input("Press Return to continue to IP Section...")

ipint = config.find_interface_objects("^interface")
lipint = len(ipint)
for i in ipint:
    print i

print ("Number of items in list: %s" % lipint)
print ("IPs from config file: %s" % str(sys.argv[1]))

raw_input("Press Return to continue to Other IP Section...")

ipint2 = config.find_children_w_parents("^interface\s","ip address")
lipint2 = len(ipint2)
print ipint2
for i in ipint2:
    print i