Example #1
0
def main():
    '''
    For each of the SRX's interfaces, display: the operational state,
    packets-in, and packets-out. You will probably want to use EthPortTable for
    this.
    '''
    pwd = getpass()
    try:
        a_device = Device(host='184.105.247.76', user='******', password=pwd)
        a_device.open()
        ports = EthPortTable(a_device)
        ports.get()
        print "\n"*2
        for port in ports.keys():
            print "#"*80
            print "Operational state, Packets-in and Packets-out for Port {0} are :".format(port)
            print "#"*80
            print "Operational state is : {0}".format(ports[port]['oper'])
            print "Packets-in are : {0}".format(ports[port]['rx_packets'])
            print " Packets-out are : {0}".format(ports[port]['tx_packets'])
            print "*"*80
            print "\n"*2
        print
    except:
        print
        print "Authentication Error"
        print
class JuniperObject(object):
    def __init__(self, jnp_dev):
        self.conn = jnp_dev
        self.config = None
        self.ports = {}
        self.routes = {}

    def __get_ports(self):
        self.ports = EthPortTable(self.conn)
        self.ports.get()

    def __get_routes(self):
        self.routes = RouteTable(self.conn)
        self.routes.get()
   
    def config_mode(self):
        self.config = Config(self.conn)
        self.config.lock()

    def send_command(self, command, cmd_format, cmd_merge):
        self.config.load(command, format=cmd_format, merge=cmd_merge)

    def file_command(self, file_path, file_format, file_merge):
        self.config.load(path=file_path, format=file_format, merge=file_merge)
   
    def get_diff(self):
        return self.config.diff()

    def commit(self, comment=None):
        self.config.commit(comment=comment)
   
    def rollback(self):
        self.config.rollback(0)

    def unlock(self):
        self.config.unlock()

    def show_all_interfaces(self):
        self.__get_ports()
        print "Juniper SRX Interface Statistics"
        for my_key in self.ports.keys():
            print "---------------------------------"
            print my_key + ":"
            print "Operational Status: " + self.ports[my_key]['oper']
            print "Packets In: " + self.ports[my_key]['rx_packets']
            print "Packets Out: " + self.ports[my_key]['tx_packets']

    def show_all_routes(self):
        self.__get_routes()
        print "Juniper SRX Routing Table"
        for my_key in self.routes.keys():
            print "---------------------------------"
            print my_key + ":"
            print "  Next Hop: {}".format(self.routes[my_key]['nexthop'])
            print "  Age: {}".format(self.routes[my_key]['age'])
            print "  via: {}".format(self.routes[my_key]['via'])
            print "  Protocol: {}".format(self.routes[my_key]['protocol'])
Example #3
0
class JuniperObject(object):
    def __init__(self, jnp_dev):
        self.conn = jnp_dev
        self.config = None
        self.ports = {}
        self.routes = {}

    def __get_ports(self):
        self.ports = EthPortTable(self.conn)
        self.ports.get()

    def __get_routes(self):
        self.routes = RouteTable(self.conn)
        self.routes.get()

    def config_mode(self):
        self.config = Config(self.conn)
        self.config.lock()

    def send_command(self, command, cmd_format, cmd_merge):
        self.config.load(command, format=cmd_format, merge=cmd_merge)

    def file_command(self, file_path, file_format, file_merge):
        self.config.load(path=file_path, format=file_format, merge=file_merge)

    def get_diff(self):
        return self.config.diff()

    def commit(self, comment=None):
        self.config.commit(comment=comment)

    def rollback(self):
        self.config.rollback(0)

    def unlock(self):
        self.config.unlock()

    def show_all_interfaces(self):
        self.__get_ports()
        print "Juniper SRX Interface Statistics"
        for my_key in self.ports.keys():
            print "---------------------------------"
            print my_key + ":"
            print "Operational Status: " + self.ports[my_key]['oper']
            print "Packets In: " + self.ports[my_key]['rx_packets']
            print "Packets Out: " + self.ports[my_key]['tx_packets']

    def show_all_routes(self):
        self.__get_routes()
        print "Juniper SRX Routing Table"
        for my_key in self.routes.keys():
            print "---------------------------------"
            print my_key + ":"
            print "  Next Hop: {}".format(self.routes[my_key]['nexthop'])
            print "  Age: {}".format(self.routes[my_key]['age'])
            print "  via: {}".format(self.routes[my_key]['via'])
            print "  Protocol: {}".format(self.routes[my_key]['protocol'])
Example #4
0
    def _get_interfaces(self):
        eth_ifaces = EthPortTable(self.native)
        eth_ifaces.get()

        loop_ifaces = LoopbackTable(self.native)
        loop_ifaces.get()

        ifaces = eth_ifaces.keys()
        ifaces.extend(loop_ifaces.keys())

        return ifaces
Example #5
0
    def _get_interfaces(self):
        eth_ifaces = EthPortTable(self.native)
        eth_ifaces.get()

        loop_ifaces = LoopbackTable(self.native)
        loop_ifaces.get()

        ifaces = eth_ifaces.keys()
        ifaces.extend(loop_ifaces.keys())

        return ifaces
Example #6
0
def main(args):
    '''Acquire necessary input options, interact with SRX device as specified per CLI args.'''
    parser = argparse.ArgumentParser(
        description='Interact with specified SRX device as specified')
    parser.add_argument('--version', action='version', version=__version__)
    parser.add_argument('-d', '--datafile', help='specify YAML file to read router info from',
                        default=SRX_FILE)
    parser.add_argument('--prompt', action='store_true',
                        help='prompt for router info (do not try to read in from file)',
                        default=False)
    parser.add_argument('-v', '--verbose', action='store_true', help='display verbose output',
                        default=False)
    args = parser.parse_args()
    # Debugging
    #if args.verbose:
    #    print 'Args = {}'.format(args)

    # Initialize data structures
    mysrx = {}
    if not args.prompt:
        mysrx = yaml_input(args.datafile, args.verbose)
        # Debugging
        #if args.verbose:
        #    print 'mysrx = {}'.format(mysrx)
    else:
        if args.verbose:
            print 'Prompting specified - asking user for all connection details'
    check_input(mysrx, args.verbose)

    mysrx_conn = Device(host=mysrx['HOST'], user=mysrx['USER'], password=mysrx['PASSWORD'])
    if args.verbose:
        print 'Opening NETCONF connection to {}...'.format(mysrx['HOST'])
    mysrx_conn.open()
    # Set timeout - default of 30 seconds can be problematic, must set after open()
    mysrx_conn.timeout = TIMEOUT

    ethports = EthPortTable(mysrx_conn)
    if args.verbose:
        print 'Gathering EthPortTable info from {}...'.format(mysrx['HOST'])
    ethports.get()

    print 'Device Ethernet Port information for {}:'.format(mysrx['HOST'])
    for int_key in ethports.keys():
        print '{}:'.format(int_key)
        for int_subkey in ethports[int_key].keys():
            if int_subkey == 'oper':
                print '  \\Operational Status:   {}'.format(ethports[int_key][int_subkey])
            elif int_subkey == 'rx_packets':
                print '  \\Received Packets:     {}'.format(ethports[int_key][int_subkey])
            elif int_subkey == 'tx_packets':
                print '  \\Transmitted Packets:  {}'.format(ethports[int_key][int_subkey])
    mysrx_conn.close()
Example #7
0
def main():
    '''
    Main function
    '''
    a_device = remote_conn(HOST, USER, PWD)
    if not a_device:
        sys.exit('Fix the above errors. Exiting...')

    ports = EthPortTable(a_device)
    ports.get()
    for port in ports.keys():
        print port
        port_items = dict(ports[port].items())
        print '   Oper: %s' % (port_items['oper'])
        print '   rx: %s' % (port_items['rx_packets'])
        print '   tx: %s' % (port_items['tx_packets'])
        print
Example #8
0
from jnpr.junos import Device
from jnpr.junos.op.ethport import EthPortTable
from getpass import getpass
from pprint import pprint
import ipdb

a_device = Device(host="srx2.lasthop.io", user="******", password=getpass())
a_device.open()

ipdb.set_trace()
ports = EthPortTable(a_device)
ports.get()

print(ports)
print(ports.keys())
pprint(ports.values())
pprint(ports.items())
Example #9
0
from jnpr.junos.op.ethport import EthPortTable
from getpass import getpass
from pprint import pprint



pwd = getpass()
a_device = Device(host='50.242.94.227', user='******', password=pwd)
a_device.open()
pprint(a_device.facts)



ports = EthPortTable(a_device)
ports.get()
ports.keys()

ports.items()
ports.values()

ports['fe-0/0/1']
ports['fe-0/0/1'].items()
for k,v in ports['fe-0/0/1'].items():
	print k, v

ports['fe-0/0/1']['oper']
ports['fe-0/0/1']['macaddr']



from jnpr.junos.op.arp import ArpTable
Example #10
0
from jnpr.junos import Device
from jnpr.junos.op.ethport import EthPortTable
a_device = Device(host="184.105.247.76", user='******', password='******')
a_device.open()
a_device.timeout = 120
ports = EthPortTable(a_device)
ports.get()

for int in ports.keys():
    print '=========='
    print "Stats for interface {}".format(int)
    for k,v in ports[int].items():
        if k == 'rx_packets' or k == 'tx_packets':
            print k, v
    print '=========='

#!/usr/bin/env python
from __future__ import print_function
from jnpr.junos import Device
from jnpr.junos.op.ethport import EthPortTable
from getpass import getpass

juniper_srx = {
    "host": "184.105.247.76",
    "user": "******",
    "password": getpass(),
}

a_device = Device(**juniper_srx)
a_device.open()
eth_ports = EthPortTable(a_device)
eth_ports.get()
print(eth_ports.keys())
#!/usr/bin/env python
# 2. For each of the SRX's interfaces, display: the operational state, 
# packets-in, and packets-out. You will probably want to use EthPortTable
# for this.

from jnpr.junos import Device
from jnpr.junos.op.ethport import EthPortTable
from pprint import pprint
from getpass import getpass

pwd = getpass()
a_device = Device(host='50.76.53.27', user='******', password=pwd)
a_device.open()     # Establich connection to Juniper SRX device

# Instantiagte an EthPortTable object
ports = EthPortTable(a_device)

# Retrieve data from ports
ports.get()

# Retrieve port numbers and recursively obtain other info from there   
for a_port in ports.keys():
    print ("Port: %s, Operating state: %s, Rx Packets: %s, Tx Packets: %s" 
           % (a_port,
              ports[a_port]['oper'],
              ports[a_port]['rx_packets'],
              ports[a_port]['tx_packets']))
# mm = tamtamnewclass
Example #13
0
#!/usr/bin/env python
from jnpr.junos import Device
from jnpr.junos.op.ethport import EthPortTable
from getpass import getpass

juniper_srx = {
    "host": "184.105.247.76",
    "user": "******",
    "password": getpass(),
}

a_device = Device(**juniper_srx)
a_device.open()
eth_ports = EthPortTable(a_device)
eth_ports.get()
print eth_ports.keys()
Example #14
0
'''
Class Juniper Automation Exercise 2
For each of the SRX's interfaces, display: the operational state, 
packets-in, and packets-out. You will probably want to use EthPortTable for 
this.
'''

from jnpr.junos import Device
from pprint import pprint
from jnpr.junos.op.ethport import EthPortTable


a_device = Device(host='184.105.247.76', user='******', password='******')
a_device.open()

ports = EthPortTable(a_device)
ports.get()

for i in ports.keys():
    print '*' * 80
    print i
    for k,v in ports[i].items():
        print k, v