Example #1
0
    def __init__(self,
                 devices=None,
                 commands=None,
                 creds=None,
                 incremental=None,
                 max_conns=10,
                 verbose=False,
                 timeout=DEFAULT_TIMEOUT,
                 production_only=True,
                 allow_fallback=True,
                 force_cli=False):
        if devices is None:
            raise exceptions.ImproperlyConfigured(
                'You must specify some ``devices`` to interact with!')

        self.devices = devices
        self.commands = self.commands or (commands or []
                                          )  # Always fallback to []
        self.creds = creds
        self.incremental = incremental
        self.max_conns = max_conns
        self.verbose = verbose
        self.timeout = timeout if timeout != self.timeout else self.timeout  # In seconds
        self.nd = NetDevices(production_only=production_only)
        self.allow_fallback = allow_fallback
        self.force_cli = force_cli
        self.curr_conns = 0
        self.jobs = []
        self.errors = {}
        self.results = self.results or {}  # Always fallback to {}
        #self.deferrals = []
        self.supported_platforms = self._validate_platforms()
        self._setup_jobs()
Example #2
0
 def test_os(self):
     self.nd = NetDevices()
     self.device = self.nd[DEVICE_NAME]
     self.device.vendor = "cisco"
     self.device.operatingSystem = "NXOS"
     self.nodename = self.device.nodeName
     self.assertEquals("cisco_nxos", self.device.os)
Example #3
0
def _setup_aclsdb(nd, device_name=DEVICE_NAME, acl=ACL_NAME):
    """Add an explicit ACL to the dummy AclsDB"""
    #print 'Setting up ACLsdb: %s => %s' % (acl, device_name)
    dev = nd.find(device_name)
    if acl not in dev.acls:
        adb.add_acl(dev, acl)
    NetDevices._Singleton = None
    nd = NetDevices()
Example #4
0
    def setUp(self):
        data = cStringIO.StringIO(text_fsm_data)
        self.re_table = textfsm.TextFSM(data)
        self.assertTrue(isinstance(self.re_table, textfsm.textfsm.TextFSM))

        self.nd = NetDevices()
        self.device = self.nd[DEVICE_NAME]
        self.device.vendor = "cisco"
        self.device.operatingSystem = "ios"
Example #5
0
 def setUp(self):
     self.nd = NetDevices()
     _setup_aclsdb(self.nd)
     self.q = queue.Queue(verbose=False)
     self.acl = ACL_NAME
     self.acl_list = [self.acl]
     self.device = self.nd.find(DEVICE_NAME)
     self.device_name = DEVICE_NAME
     self.device_list = [self.device_name]
     self.user = USERNAME
Example #6
0
def main():
    """A simple syntax check and dump of all we see and know!"""
    print 'Syntax ok.'
    if len(sys.argv) > 1:
        from trigger.netdevices import NetDevices
        nd = NetDevices()
        names = sorted(nd)
        for name in names:
            dev = nd[name]
            if dev.deviceType not in ('ROUTER', 'SWITCH'):
                continue
            acls = sorted(dev.acls)
            print '%-39s %s' % (name, ' '.join(acls))
Example #7
0
def test_trigger():
    from twisted.internet import reactor

    nd = NetDevices()
    dev = nd.find('fortinet')
    d = defer.Deferred()
    creds = tacacsrc.get_device_password(dev.nodeName)
    factory = TriggerSSHPtyClientFactory(d,
                                         Interactor(),
                                         creds,
                                         display_banner=None,
                                         init_commands=None,
                                         device=dev)
    reactor.connectTCP(dev.nodeName, 22, factory)
    d.addCallback(lambda x: stop_reactor())
    cli.setup_tty_for_pty(reactor.run)
Example #8
0
    def __init__(self,
                 devices=None,
                 commands=None,
                 creds=None,
                 incremental=None,
                 max_conns=10,
                 verbose=False,
                 timeout=DEFAULT_TIMEOUT,
                 production_only=True,
                 allow_fallback=True,
                 with_errors=True,
                 force_cli=False,
                 with_acls=False,
                 command_interval=0,
                 stop_reactor=True):
        if devices is None:
            raise exceptions.ImproperlyConfigured(
                'You must specify some `devices` to interact with!')

        self.devices = devices
        self.commands = self.commands or (commands or []
                                          )  # Always fallback to []
        self.creds = creds
        self.incremental = incremental
        self.max_conns = max_conns
        self.verbose = verbose
        self.timeout = timeout if timeout != self.timeout else self.timeout
        self.nd = NetDevices(production_only=production_only,
                             with_acls=with_acls)
        self.allow_fallback = allow_fallback
        self.with_errors = with_errors
        self.force_cli = force_cli
        self.command_interval = command_interval
        self.stop_reactor = self.stop_reactor or stop_reactor
        self.curr_conns = 0
        self.jobs = []

        # Always fallback to {} for these
        self.errors = self.errors if self.errors is not None else {}
        self.results = self.results if self.results is not None else {}
        self.parsed_results = self.parsed_results if self.parsed_results is not None else collections.defaultdict(
            dict)

        #self.deferrals = []
        self.supported_platforms = self._validate_platforms()
        self._setup_jobs()
Example #9
0
def get_bulk_acls():
    """
    Returns a dict of acls with an applied count over settings.AUTOLOAD_BULK_THRESH
    """
    from trigger.netdevices import NetDevices
    nd = NetDevices()
    all_acls = defaultdict(int)
    for dev in nd.all():
        for acl in dev.acls:
            all_acls[acl] += 1

    bulk_acls = {}
    for acl, count in all_acls.items():
        if count >= settings.AUTOLOAD_BULK_THRESH and acl != '':
            bulk_acls[acl] = count

    return bulk_acls
Example #10
0
from trigger.acl.models import create_tables
from trigger.acl.db import AclsDB
from trigger.netdevices import NetDevices
from trigger.utils import get_user
from trigger import exceptions
import unittest

# Globals
DEVICE_NAME = 'test1-abc.net.aol.com'
ACL_NAME = 'foo'
USERNAME = get_user()

# Setup
create_tables()
adb = AclsDB()
nd = NetDevices()
# These must happen after we populate the dummy AclsDB

def _setup_aclsdb(nd, device_name=DEVICE_NAME, acl=ACL_NAME):
    """Add an explicit ACL to the dummy AclsDB"""
    #print 'Setting up ACLsdb: %s => %s' % (acl, device_name)
    dev = nd.find(device_name)
    if acl not in dev.acls:
        adb.add_acl(dev, acl)
    NetDevices._Singleton = None
    nd = NetDevices()

class TestAclQueue(unittest.TestCase):
    def setUp(self):
        self.nd = NetDevices()
        _setup_aclsdb(self.nd)
Example #11
0
 def setUp(self):
     self.nd = NetDevices()
     self.device = self.nd[DEVICE_NAME]
     self.device2 = self.nd[DEVICE2_NAME]
     self.nodename = self.device.nodeName
     self.device.explicit_acls = set(['test1-abc-only'])
#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
tests/trigger_acceptance_test.py - Acceptance test suite that verifies trigger functionality
in very brief
"""

from trigger.netdevices import NetDevices
netdevices = NetDevices(with_acls=False)
nd=NetDevices(with_acls=False)
print nd.values()

__author__ = 'Murat Ezbiderli'
__maintainer__ = 'Salesforce'
__copyright__ = 'Copyright 2012-2013 Salesforce Inc.'
__version__ = '2.1'

import os
import unittest

from trigger.netdevices import NetDevices

class NetDevicesTest(unittest.TestCase):

    def setUp(self):
        self.nd = NetDevices(with_acls=False)
	print self.nd.values()
        self.nodename = self.nd.keys()[0]
        self.nodeobj = self.nd.values()[0]

    def testBasics(self):
Example #13
0
 def setUp(self):
     self.nd = NetDevices()
     self.device = self.nd[DEVICE_NAME]
     self.nodename = self.device.nodeName
Example #14
0
 def setUp(self):
     self.nd = NetDevices(with_acls=False)
     self.nodename = self.nd.keys()[0]
     self.device = self.nd.values()[0]
Example #15
0
		else:
			#Appending the content to the master report file.
			report_file.seek(0)
			master_report.write('\n\n*** Device: ' + each_device + ' ***\n\n')
			master_report.write(report_file.read())

		
		
#Defining the list of devices to monitor. These are my Cisco 2691 / Juniper SRX100H / Arista vEOS devices. Replace with your own.
devices = ['172.16.1.2', '172.16.1.100', '172.16.1.101']



#Extracting the running config to a file, depending on the device vendor (Cisco, Juniper or Arista).
for each_device in devices:
	lab = NetDevices()
	device = lab.find(each_device)
	
	#Using Trigger to check for the device vendor.
	if str(device.vendor) == 'cisco':
		diff_function('cisco_ios', 'cisco', 'mihai', 'python', 'show running')
	
	#Using Trigger to check for the device vendor.
	elif str(device.vendor) == 'juniper':
		diff_function('juniper', 'juniper', 'mihai1', 'python1', 'show configuration')
			
	#Using Trigger to check for the device vendor.
	elif str(device.vendor) == 'arista':  	
		diff_function('arista_eos', 'arista', 'mihai', 'python', 'show running')
		
	else:
Example #16
0
quickly. For example::
"""

import os
from trigger import tacacsrc
from trigger.conf import settings
from trigger.netdevices import NetDevices
from trigger.contrib.commando.plugins import gather_info


settings.NETDEVICES_SOURCE = os.path.abspath('het-netdevices.json')
settings.DEFAULT_REALM = 'het'
os.environ['TRIGGER_ENABLEPW'] = \
    tacacsrc.get_device_password(settings.DEFAULT_REALM).password

device_list = NetDevices()
gi = GatherInfo(devices=device_list)
gi.run()

print(gi.results)

gi = GatherInfo(devices='hsc-hmg-uu-gw')
gi.run()

print(gi.results)

from trigger.netdevices import NetDevices
from trigger.contrib.commando.plugins import gather_info
nd = NetDevices()
device_list = []
devs = [nd.find('hsc-hmg-uu-gw'), nd.find('hsc-hmg-vz-gw1')]
Example #17
0
 def __init__(self, verbose=True):
     self.nd = NetDevices()
     self.verbose = verbose
     self.login = get_user()
Example #18
0
 def setUp(self):
     self.router = NetDevices()['iwg1-r3.router.aol.com']
     self.when = datetime(2006, 7, 24, 20, tzinfo=UTC)
Example #19
0
 def setUp(self):
     self.router = NetDevices()['test1-abc.net.aol.com']
     self.when = datetime(2006, 7, 24, 20, tzinfo=UTC)
Example #20
0
 def __init__(self, verbose=True):
     self.dbconn = self._get_firewall_db_conn()
     self.cursor = self.dbconn.cursor()
     self.nd = NetDevices()
     self.verbose = verbose
Example #21
0
 def setUp(self):
     self.nd = NetDevices()
     self.nodename = self.nd.keys()[0]
     self.device = self.nd.values()[0]
Example #22
0
 def setUp(self):
     self.nd = NetDevices()
     self.nodename = self.nd.keys()[0]
     self.device = self.nd.values()[0]
     self.device.explicit_acls = set(['test1-abc-only'])
Example #23
0
def get_netdevices(production_only=True, with_acls=True):
    """Shortcut to import, instantiate, and return a NetDevices instance."""
    from trigger.netdevices import NetDevices
    return NetDevices(production_only=production_only, with_acls=with_acls)
Example #24
0
 def setUp(self):
     self.nd = NetDevices()
     self.acl = ACL_NAME
     self.device = self.nd.find(DEVICE_NAME)
     self.implicit_acls = set(['115j', 'router-protect.core'])