def main(args): ''' main ''' rtrs = yaml.load(file(args[0]).read()) for rtr in rtrs: ndev = NetworkDevice(**rtr) ndev.connect() print "Connection established to: %s" % ndev.net_element.properties.sys_name print ndev.net_element.properties.product_id print ndev.net_element.properties.SerialNo ndev.disconnect()
def main(args): ''' main ''' rtrs = yaml.load(file(args[0]).read()) for rtr in rtrs: ndev = NetworkDevice(**rtr) ndev.connect() print "Connection established to: %s" % ndev.net_element.properties.sys_name vty_svc = VtyService(ndev.net_element) vty_svc.open() for cmd in CMDS: out = vty_svc.write(cmd) print out ndev.disconnect()
def main(args): ''' main ''' rtrs = yaml.load(file(args[0]).read()) for rtr in rtrs: ndev = NetworkDevice(**rtr) ndev.connect() print "Connection established to: %s" % ndev.net_element.properties.sys_name InterfaceTypes = NetworkInterface.InterfaceTypes filter = InterfaceFilter(None, InterfaceTypes.ONEP_IF_TYPE_ETHERNET) ndev_if = ndev.net_element.get_interface_list(filter) for inf in ndev_if: print "%s interface stats:" % inf.name print inf.get_statistics() ndev.disconnect()
def main(): ''' Using onePK and the VTY Service obtain the output from the 'show version' command. Use 'terminal length 0' to disable output paging (i.e. disable '--More--' prompting). ''' pynet_rtr1 = dict( ip='10.10.10.10', username='******', password='******', pin_file='pynet-rtr1-pin.txt', port=15002 ) pynet_rtr2 = dict( ip='10.10.10.10', username='******', password='******', pin_file='pynet-rtr2-pin.txt', port=8002 ) for a_rtr in (pynet_rtr1, pynet_rtr2): rtr_obj = NetworkDevice(**a_rtr) rtr_obj.establish_session() rtr_name = rtr_obj.net_element.properties.sys_name vty_service = VtyService(rtr_obj.net_element) vty_service.open() cmd = "terminal length 0" cli = vty_service.write(cmd) cmd = "show version" cli = vty_service.write(cmd) print "\n" + "*" * 80 print "** CONNECTED TO: {}".format(rtr_name) print "*" * 80 print cli print "*" * 80 print "\n\n" rtr_obj.disconnect()
def main(): pynet_rtr1 = dict(ip='10.10.10.10', username='******', password='******', pin_file='pynet-rtr1-pin.txt', port=15002) pynet_rtr2 = dict(ip='10.10.10.10', username='******', password='******', pin_file='pynet-rtr2-pin.txt', port=8002) for a_rtr in (pynet_rtr1, pynet_rtr2): rtr_obj = NetworkDevice(**a_rtr) rtr_obj.establish_session() print "\nConnection established to: {}".format( rtr_obj.net_element.properties.sys_name) print rtr_obj.net_element.properties.product_id print rtr_obj.net_element.properties.SerialNo rtr_obj.disconnect() print
def main(): pynet_rtr1 = dict(ip='50.242.94.227', username='******', password='******', pin_file='pynet-rtr1-pin.txt', port=15002) pynet_rtr2 = dict(ip='50.242.94.227', username='******', password='******', pin_file='pynet-rtr2-pin.txt', port=8002) for a_rtr in (pynet_rtr1, pynet_rtr2): rtr_obj = NetworkDevice(**a_rtr) rtr_obj.establish_session() InterfaceTypes = NetworkInterface.InterfaceTypes filter = InterfaceFilter(None, InterfaceTypes.ONEP_IF_TYPE_ETHERNET) filtered_list = rtr_obj.net_element.get_interface_list(filter) #for intf in filtered_list interface = filtered_list[0] print "Interface Statistics: " + rtr_obj.net_element.properties.sys_name + ": " + interface.name print interface.get_statistics() rtr_obj.disconnect()
def main(): pynet_rtr1 = dict(ip='50.242.94.227', username='******', password='******', pin_file='pynet-rtr1-pin.txt', port=15002) pynet_rtr2 = dict(ip='50.242.94.227', username='******', password='******', pin_file='pynet-rtr2-pin.txt', port=8002) for a_rtr in (pynet_rtr1, pynet_rtr2): rtr_obj = NetworkDevice(**a_rtr) rtr_obj.establish_session() vty_service = VtyService(rtr_obj.net_element) vty_service.open() router_name = rtr_name = rtr_obj.net_element.properties.sys_name cmd = "show version" cli = vty_service.write(cmd) print rtr_name print cli rtr_obj.disconnect()
def main(): pynet_rtr1 = dict( ip = '10.10.10.10', username = '******', password = '******', pin_file = 'pynet-rtr1-pin.txt', port = 15002 ) pynet_rtr2 = dict( ip = '10.10.10.10', username = '******', password = '******', pin_file = 'pynet-rtr2-pin.txt', port = 8002 ) for a_rtr in (pynet_rtr1, pynet_rtr2): rtr_obj = NetworkDevice(**a_rtr) rtr_obj.establish_session() # Create a filter for only Enet interfaces filter = InterfaceFilter(None,NetworkInterface.InterfaceTypes.ONEP_IF_TYPE_ETHERNET) # Get the interfaces int_list = rtr_obj.net_element.get_interface_list(filter) print for intf in int_list: if 'FastEthernet4' in intf.name: rtr_name = rtr_obj.net_element.properties.sys_name print "{} ({}) interface statistics:".format(rtr_name, intf.name) print intf.get_statistics() rtr_obj.disconnect() print
def main(): '''Create an onep object, establish a connection with an element, and return its system name, product ID, and serial number.''' rtr1_obj = NetworkDevice(**rtr1) rtr1_obj.establish_session() print 'Stats for {}:'.format(rtr1_obj.net_element.properties.sys_name) print 'Product ID: {}'.format(rtr1_obj.net_element.properties.product_id) print 'Serial No.: {}'.format(rtr1_obj.net_element.properties.SerialNo) rtr1_obj.disconnect()
def main(): """ Create an onep object and establish a connection with an element. :return:system name and interface FastEthernet4 stats. """ for rtr in (rtr1, rtr2): rtr_obj = NetworkDevice(**rtr) rtr_obj.establish_session() print 'Stats for {}:'.format(rtr_obj.net_element.properties.sys_name) for i in get_intstat(rtr_obj): if 'FastEthernet4' in i.name: print i.get_statistics() rtr_obj.disconnect()
def main(): """ reate an onep object, establish a connection with an element :return: output of the show version CLI command """ for rtr in (rtr1, rtr2): rtr_obj = NetworkDevice(**rtr) rtr_obj.establish_session() vty_service = VtyService(rtr_obj.net_element) vty_service.open() print 'Stats for {}:'.format(rtr_obj.net_element.properties.sys_name) set_command(vty_service, 'terminal length 0') print set_command(vty_service, 'show version') rtr_obj.disconnect()
def main(): ''' Using onePK and the VTY Service obtain the output from the 'show version' command. Use 'terminal length 0' to disable output paging (i.e. disable '--More--' prompting). ''' pynet_rtr1 = dict(ip='10.10.10.10', username='******', password='******', pin_file='pynet-rtr1-pin.txt', port=15002) pynet_rtr2 = dict(ip='10.10.10.10', username='******', password='******', pin_file='pynet-rtr2-pin.txt', port=8002) for a_rtr in (pynet_rtr1, pynet_rtr2): rtr_obj = NetworkDevice(**a_rtr) rtr_obj.establish_session() rtr_name = rtr_obj.net_element.properties.sys_name vty_service = VtyService(rtr_obj.net_element) vty_service.open() cmd = "terminal length 0" cli = vty_service.write(cmd) cmd = "show version" cli = vty_service.write(cmd) print "\n" + "*" * 80 print "** CONNECTED TO: {}".format(rtr_name) print "*" * 80 print cli print "*" * 80 print "\n\n" rtr_obj.disconnect()
def main(): pynet_rtr1 = dict( ip = '10.10.10.10', username = '******', password = '******', pin_file = 'pynet-rtr1-pin.txt', port = 15002 ) pynet_rtr2 = dict( ip = '10.10.10.10', username = '******', password = '******', pin_file = 'pynet-rtr2-pin.txt', port = 8002 ) for a_rtr in (pynet_rtr1, pynet_rtr2): rtr_obj = NetworkDevice(**a_rtr) rtr_obj.establish_session() rtr_name = rtr_obj.net_element.properties.sys_name vty_service = VtyService(rtr_obj.net_element) vty_service.open() CMD = "terminal length 0" cli = vty_service.write(CMD) CMD = "show version" cli = vty_service.write(CMD) print "\n" + "*" * 80 print "** CONNECTED TO: {}".format(rtr_name) print "*" * 80 print cli print "*" * 80 print "\n\n" rtr_obj.disconnect()
def main(): pynet_rtr1 = dict(ip='10.10.10.10', username='******', password='******', pin_file='pynet-rtr1-pin.txt', port=15002) pynet_rtr2 = dict(ip='10.10.10.10', username='******', password='******', pin_file='pynet-rtr2-pin.txt', port=8002) for a_rtr in (pynet_rtr1, pynet_rtr2): rtr_obj = NetworkDevice(**a_rtr) rtr_obj.establish_session() # Create a filter for only Enet interfaces a_filter = InterfaceFilter( None, NetworkInterface.InterfaceTypes.ONEP_IF_TYPE_ETHERNET) # Get the interfaces int_list = rtr_obj.net_element.get_interface_list(a_filter) print for intf in int_list: if 'FastEthernet4' in intf.name: rtr_name = rtr_obj.net_element.properties.sys_name print "{} ({}) interface statistics:".format( rtr_name, intf.name) print intf.get_statistics() rtr_obj.disconnect() print
def gather_inventory(DEBUG=False): ''' Gathers inventory for all network devices in the database ''' network_devices = NetworkDevice.objects.all() class_select = {'cisco_ios_ssh': GatherInventory, 'arista_eos_ssh': AristaGatherInventory} for a_device in network_devices: if 'ssh' in a_device.device_class: # instanciate SSHConnection object, connect to SSH device, turn off # paging and send show version command. Parse output to update # network device object then print the inventory of the object some_obj = SSHConnection(a_device) some_obj.establish_conn() some_obj.disable_paging() output = some_obj.send_command('show version\n') obj_inventory = class_select[a_device.device_class](a_device, output) obj_inventory.find_device_type() obj_inventory.find_model() obj_inventory.find_os_version() obj_inventory.find_serial_number() obj_inventory.find_up_time() obj_inventory.find_vendor() print_inventory(a_device) elif 'onepk' in a_device.device_class: # instanciate onePK object through onepk_helper, connect to onePK # device, using onePK methods update network device object then # print the inventory of the object if DEBUG: print('onePK inventory for {} {}'.format(a_device.device_name, a_device.device_class)) pin_file_path = '/home/dholcombe/CISCO/pynet-rtr1-pin.txt' onepk_creds = dict(ip=a_device.ip_address, username=a_device.credentials.username, password=a_device.credentials.password, pin_file=pin_file_path, port=a_device.api_port) onepk_device = OnepkDevice(**onepk_creds) onepk_device.establish_session() # gather_inventory_onepk() a_device.device_type = 'router' a_device.vendor = 'Cisco OnePK' a_device.model = onepk_device.net_element.properties.product_id a_device.serial_number = onepk_device.net_element.properties.SerialNo a_device.uptime_seconds = onepk_device.net_element.properties.sys_uptime match = re.search(r'Version.*', onepk_device.net_element.properties.sys_descr) if match: a_device.os_version = match.group() onepk_device.disconnect() a_device.save() print_inventory(a_device) elif 'eapi' in a_device.device_class: if DEBUG: print('eapi inventory for {} {}'.format(a_device.device_name, a_device.device_class)) # this could have been a function gather_inventory_eapi(). # Credentials for the api connection eapi_creds = dict(hostname=a_device.ip_address, username=a_device.credentials.username, password=a_device.credentials.password, port=a_device.api_port) # create url string to the api device and enables some funcitons # like run_command eapi = eapilib.create_connection(**eapi_creds) # send 'show version command' (returns a list) # pops the output (dict) show_version = eapi.run_commands(['show version']).pop() # assigns variables using show version output a_device.vendor = 'Arista API' a_device.device_type = 'Switch' a_device.model = show_version['version'] a_device.serial_number = show_version['systemMacAddress'] a_device.uptime_seconds = show_version['bootupTimestamp'] a_device.save() print_inventory(a_device)
pynet_rtr1 = dict( ip = '10.10.10.10', username = '******', password = '******', pin_file = 'pynet-rtr1-pin.txt', port = 15002 ) pynet_rtr2 = dict( ip = '10.10.10.10', username = '******', password = '******', pin_file = 'pynet-rtr2-pin.txt', port = 8002 ) rtr1_obj = NetworkDevice(**pynet_rtr1) rtr2_obj = NetworkDevice(**pynet_rtr2) print "\nPrinting routing table from pynet_rtr1" rtr1_obj.establish_session() display_routes(rtr1_obj.net_element) rtr1_obj.disconnect() print "\nPrinting routing table from pynet_rtr2" rtr2_obj.establish_session() display_routes(rtr2_obj.net_element) rtr2_obj.disconnect() print