Exemple #1
0
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()
Exemple #2
0
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()
Exemple #3
0
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()
Exemple #5
0
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
Exemple #6
0
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()
Exemple #7
0
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()
Exemple #8
0
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
Exemple #9
0
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()
Exemple #10
0
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()
Exemple #11
0
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()
Exemple #13
0
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
Exemple #15
0
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