Example #1
0
    def test_get_connector_config(self):
        connector = TestConnector(self.dispatcher)
        self.assertDictEqual(
            {
                'enabled': True
            },
            connector.config)

        dispatcher = Dispatcher(Config(filename='test/configuration_examples/configuration.json'), auto_load=False)
        connector = TestConnector(dispatcher)
        self.assertDictEqual(
            {
                'enabled': True,
                'key': 'value'
            },
            connector.config)

        connector2 = Test2Connector(dispatcher)
        self.assertDictEqual(
            {
                'enabled': True
            },
            connector2.config)
        connector3 = Test3Connector(dispatcher)
        dispatcher.get_connector_config(connector3)
Example #2
0
 def setUp(self):
     logging.basicConfig(
         filename='test/unittest.log',
         format="%(asctime)s - %(levelname)s - %(name)s:%(funcName)s - %(message)s",
         level=logging.DEBUG,
         filemode='w'
     )
     self.dispatcher = Dispatcher(
         Config(filename='test/configuration_examples/simple.json'),
         auto_load=False
     )
Example #3
0
 def setUp(self):
     logging.basicConfig(
         filename='test/unittest.log',
         format=
         "%(asctime)s - %(levelname)s - %(name)s:%(funcName)s - %(message)s",
         level=logging.DEBUG,
         filemode='w')
     self.dispatcher = Dispatcher(
         Config(filename='test/configuration_examples/configuration.json'))
     self.connector = ObserviumConnector(self.dispatcher)
 def setUp(self):
     logging.basicConfig(
         filename='test/unittest.log',
         format=
         "%(asctime)s - %(levelname)s - %(name)s:%(funcName)s - %(message)s",
         level=logging.DEBUG,
         filemode='w')
     self.dispatcher = Dispatcher(
         Config(filename='test/configuration_examples/configuration.json'))
     self.connector = SqliteConnector(self.dispatcher)
     self.connector.create_ptr_table()
     ptr = {
         'ip_address': u'10.10.10.10',
         'hostname': 'cmts-sc-1.domain.example',
         'if_name': 'Ethernet0/0/0',
         'ptr': 'cmts-sc-1-et0-0-0.domain.example'
     }
     self.connector.save_ptr(Ptr(**ptr))
Example #5
0
 def test_autoload(self):
     self.dispatcher = Dispatcher(
         Config(filename='test/configuration_examples/simple.json'),
         connectors_dir='/../test/connectors/modules'
     )
Example #6
0
class TestDispatcher(unittest.TestCase):
    def setUp(self):
        logging.basicConfig(
            filename='test/unittest.log',
            format="%(asctime)s - %(levelname)s - %(name)s:%(funcName)s - %(message)s",
            level=logging.DEBUG,
            filemode='w'
        )
        self.dispatcher = Dispatcher(
            Config(filename='test/configuration_examples/simple.json'),
            auto_load=False
        )

    def test_register_connector(self):
        self.assertListEqual([], self.dispatcher.get_connector_list())
        TestConnector(self.dispatcher)
        self.assertListEqual(['TestConnector'], self.dispatcher.get_connector_list())
        Test2Connector(self.dispatcher)
        self.assertListEqual(['TestConnector', 'Test2Connector'], self.dispatcher.get_connector_list())
        # Test3 doesn't have enabled flag set. Should be ignored
        Test3Connector(self.dispatcher)
        self.assertListEqual(['TestConnector', 'Test2Connector'], self.dispatcher.get_connector_list())

    def test_connector_load(self):
        self.assertListEqual([], self.dispatcher.devices.keys())
        TestConnector(self.dispatcher)
        self.dispatcher.load()
        # No invalid hostnames included
        self.assertListEqual(
            sorted(['cmts-1.domain.example.', 'cmts-2.domain.example.']),
            sorted(self.dispatcher.devices.keys())
        )
        Test2Connector(self.dispatcher)
        self.dispatcher.load()
        # No invalid hostnames included
        self.assertListEqual(
            sorted(['cmts-1.domain.example.', 'cmts-2.domain.example.', 'server.domain.example.']),
            sorted(self.dispatcher.devices.keys())
        )

    def test_autoload(self):
        self.dispatcher = Dispatcher(
            Config(filename='test/configuration_examples/simple.json'),
            connectors_dir='/../test/connectors/modules'
        )

    def test_save_ptrs(self):
        TestConnector(self.dispatcher)
        Test2Connector(self.dispatcher)
        self.dispatcher.save_ptr(Ptr(
            ip_address=u'10.10.10.10',
            hostname='host.domain.example',
            if_name='Ethernet1/0',
            ptr='host-eth1/0.domain.example'
        ))
        self.dispatcher.save_ptrs({})

    def test_get_connector_config(self):
        connector = TestConnector(self.dispatcher)
        self.assertDictEqual(
            {
                'enabled': True
            },
            connector.config)

        dispatcher = Dispatcher(Config(filename='test/configuration_examples/configuration.json'), auto_load=False)
        connector = TestConnector(dispatcher)
        self.assertDictEqual(
            {
                'enabled': True,
                'key': 'value'
            },
            connector.config)

        connector2 = Test2Connector(dispatcher)
        self.assertDictEqual(
            {
                'enabled': True
            },
            connector2.config)
        connector3 = Test3Connector(dispatcher)
        dispatcher.get_connector_config(connector3)
Example #7
0
                    action="store_true")
parser.add_argument("-t",
                    "--terse",
                    help="terse output - don't display domains",
                    action="store_true")

args = parser.parse_args()

hostname = args.hostname
check_only = args.check
diff_only = args.diff
terse = args.terse

config = Config(check_only=check_only, diff_only=diff_only, terse=terse)

dispatcher = Dispatcher(config)

print "Loaded connectors: %s" % ', '.join(dispatcher.get_connector_list())

dns = DnsCheck(config=config)
output = TabularUtf8Output()

fqdn = dns.get_fqdn(hostname)
if fqdn:
    d = Device(hostname=fqdn, config=config)
    if d.get_interfaces():
        d.check_ptrs()
        print output.display_device_detailed(d)

        # Filter all PTRs that don't have status equal to STATUS_NOT_UPDATED or STATUS_NOT_CREATED
        ptrs_for_update = {
Example #8
0
args = parser.parse_args()

check_only = args.check
diff_only = not args.full
terse = args.terse

ptrs = {}
failed_devices = []

interface_number = 0
ip_address_number = 0

config = Config(check_only=check_only, diff_only=diff_only, terse=terse)

dispatcher = Dispatcher(config)
output = TabularUtf8Output()

print "Loaded connectors: %s" % ', '.join(dispatcher.get_connector_list())
dispatcher.load()
total_devices = len(dispatcher.devices)
print "Loaded %d device(s) from %d connector(s)" % (
    total_devices, len(dispatcher.get_connector_list()))
print "Fetching data from devices:"
# Number of devices we've finished so far
iterator = 0
for device in dispatcher.devices.keys():
    # Create Device instance from hostname
    # dispatcher.devices[device] = Device(device, config, dispatcher.dns)
    # Fetch interfaces
    if dispatcher.devices[device].get_interfaces():
Example #9
0
 def test_simple(self):
     dispatcher = Dispatcher(
         Config(filename='test/configuration_examples/simple.json'))
     connector = ObserviumConnector(dispatcher)
     connector.load_devices()