Example #1
0
    ifIndex = library.get(saved_data.community_string, ip.format(), 'IF-MIB', 'ifIndex')
    ifName = library.get(saved_data.community_string, ip.format(), 'IF-MIB', 'ifName')
    print("Interface index Loaded")

    # Initialize interface class
    print("Organizing data")
    interface_record = {}
    for i in range(len(ifIndex[0])):
        interface_record[ifIndex[0][i]] = library.Interface(ifIndex[0][i], ifName[0][i])

    # Appends MAC addresses table to the interface class
    for i in range(len(cam_table[0])):
        mac = re.search(r'[0-9:a-fA-F]{17}', cam_table[1][i]).group()
        interface_record[cam_table[0][i]].mac_table.append(netaddr.EUI(mac))

    library.send_command('flow-control', chan=chan, configure=True)

    interface_configs = running_config.find_objects(r'interface.*')

    # Searches for live mac address and configures based on spreadsheet
    print("Searching interfaces for devices")
    for interface in sorted(interface_record):
        for mac in interface_record[interface].mac_table:
            for search in oui_discovery.items():
                try:
                    if mac.oui in search[1]:
                        if interface_record[interface].flag is 'switch':
                            continue
                        interface_record[interface].flag = search[0].lower()
                        print("Interface {0}: MAC {1}: Flag: {2}".format(
                            interface_record[interface].ifName, str(mac), interface_record[interface].flag)
Example #2
0
        reader = csv.DictReader(f)
        for row in reader:
            if 'x' in row.values():
                iface['/1/'.join(row['D Port'].split('/'))].append(row.keys()[row.values().index('x')])
                port_assignments[row['Switch IP']].update(iface)

for ip in saved_data.iplist:

    # Opens SSH connection
    print("Opening SSH connection to {0}".format(ip.format()))
    chan, ssh = library.login(ip.format(), saved_data.username, saved_data.psk)

    if len(saved_data.tftp) > 3:
        # Updates Boot Rom and waits for startup
        print("Loading boot loader")
        library.send_command('copy tftp flash {0} 08030d/ICX7450/Boot/spz10105.bin boot'.format(saved_data.tftp),
                             chan=chan)

        # Visual timer to wait for boot rom to finish loading
        for t in range(30, -1, -5):
            minutes = t / 60
            seconds = t % 60
            print "%d:%2d" % (minutes, seconds),
            time.sleep(5.0)
        print("Done")

    # Removes vlan 24 & 26
    print("Removing vlan 24, 26, and 70")
    library.send_command('no vlan 24', 'no vlan 26', 'no vlan 70', configure=True, chan=chan)

    # Adds vlan 20
    print("Adding vlan 20 and 70")