diff --git a/inventory_provider/config.py b/inventory_provider/config.py index 676debfcfde1c50d12a3fbdde0513140d82b5e35..ac25ad76483abc8b64d956c9790fab0211c9eaef 100644 --- a/inventory_provider/config.py +++ b/inventory_provider/config.py @@ -23,7 +23,6 @@ CONFIG_SCHEMA = { "type": "object", "properties": { - "alarms-db": {"$ref": "#/definitions/database_credentials"}, "ops-db": {"$ref": "#/definitions/database_credentials"}, "oid_list.conf": {"type": "string"}, "ssh": { @@ -76,7 +75,6 @@ CONFIG_SCHEMA = { } }, "required": [ - "alarms-db", "ops-db", "oid_list.conf", "ssh", diff --git a/inventory_provider/db/alarmsdb.py b/inventory_provider/db/alarmsdb.py deleted file mode 100644 index f638acda7b89d965922a70cccdaf812fad155ba9..0000000000000000000000000000000000000000 --- a/inventory_provider/db/alarmsdb.py +++ /dev/null @@ -1,75 +0,0 @@ -# TODO: remove all of this, as well as config parameters, -# ... and from puppet -from inventory_provider.db import db - - -def get_last_known_infinera_interface_status(crs, equipment, interface): - query = "SELECT status FROM infinera_alarms" \ - " WHERE" \ - " CONCAT(ne_name, '-', REPLACE(object_name, 'T', '')) = %s" \ - " ORDER BY ne_init_time DESC, ne_clear_time DESC LIMIT 1" - search_string = equipment + "-" + interface - crs.execute(query, (search_string,)) - result = crs.fetchone() - if not result: - return "unknown" - elif result[0] == "Raised": - return "down" - else: - return "up" - - -def get_last_known_coriant_interface_status(crs, equipment, interface): - query = "SELECT status FROM coriant_alarms" \ - " WHERE ne_id_name = %s AND entity_string LIKE %s" \ - " ORDER BY last_event_time DESC LIMIT 1" - crs.execute(query, (equipment, interface + "-%")) - result = crs.fetchone() - if not result: - return "unknown" - elif result[0] == "Raised": - return "down" - else: - return "up" - - -def get_last_known_juniper_link_interface_status( - crs, equipment, interface): - query = "SELECT IF(link_admin_status = 'up'" \ - " AND link_oper_status = 'up', 1, 0) AS up FROM juniper_alarms" \ - " WHERE equipment_name = %s AND link_interface_name = %s" \ - " ORDER BY alarm_id DESC LIMIT 1" - crs.execute(query, ('lo0.' + equipment, interface)) - result = crs.fetchone() - if not result: - return "unknown" - elif result[0] == 0: - return "down" - else: - return "up" - - -def get_last_known_interface_status(crs, equipment, interface): - result = get_last_known_infinera_interface_status( - crs, equipment, interface) - if result == "unknown": - result = get_last_known_coriant_interface_status( - crs, equipment, interface) - if result == "unknown": - result = get_last_known_juniper_link_interface_status( - crs, equipment, interface) - return result - - -def _load_juniper_servers_table(connection): - with db.cursor(connection) as crs: - crs.execute('select ip_address, project_name from juniper_servers') - for row in crs.fetchall(): - yield { - 'ip_address': row[0], - 'project_name': row[1] - } - - -# def load_cache(connection): -# yield "juniper_servers", list(_load_juniper_servers_table(connection)) diff --git a/inventory_provider/tasks/worker.py b/inventory_provider/tasks/worker.py index a3fd3a270f9fe961e4880f4266c4baeb1a6eed38..d1800813488a1042558beb66b5c30607ccdf5135 100644 --- a/inventory_provider/tasks/worker.py +++ b/inventory_provider/tasks/worker.py @@ -12,7 +12,7 @@ from inventory_provider.tasks.app import app from inventory_provider.tasks.common import get_redis from inventory_provider import config from inventory_provider import environment -from inventory_provider.db import db, opsdb, alarmsdb +from inventory_provider.db import db, opsdb from inventory_provider import snmp from inventory_provider import juniper @@ -183,27 +183,6 @@ def update_circuit_hierarchy(): logger.debug('<<< update_circuit_hierarchy') -@app.task -def update_interface_statuses(): - logger = logging.getLogger(__name__) - logger.debug('>>> update_interface_statuses') - - with db.connection(InventoryTask.config["ops-db"]) as cx: - services = opsdb.get_circuits(cx) - with db.connection(InventoryTask.config["alarms-db"]) as cx: - with db.cursor(cx) as csr: - for service in services: - key = 'alarmsdb:interface_status:%s:%s' \ - % (service['equipment'], service['interface_name']) - status = alarmsdb.get_last_known_interface_status( - csr, - service["equipment"], - service["interface_name"]) - _save_value(key, status) - - logger.debug('<<< update_interface_statuses') - - @app.task def update_geant_lambdas(): logger = logging.getLogger(__name__) @@ -493,7 +472,6 @@ def launch_refresh_cache_all(config): # juniper netconf & snmp data subtasks = [ update_equipment_locations.s(), - # update_interface_statuses.s() ] for hostname in _derive_router_hostnames(config): logger.debug( diff --git a/test/conftest.py b/test/conftest.py index dcc66f45fd54ebb62a5939c1816da7a7cc85ada6..94640bff7fd0da534938314a00ea55d1b9528513 100644 --- a/test/conftest.py +++ b/test/conftest.py @@ -22,12 +22,6 @@ TEST_DATA_DIRNAME = os.path.realpath(os.path.join( def data_config_filename(tmp_dir_name): config = { - "alarms-db": { - "hostname": "xxxxxxx.yyyyy.zzz", - "dbname": "xxxxxx", - "username": "xxxxxx", - "password": "xxxxxxxx" - }, "ops-db": { "hostname": "xxxxxxx.yyyyy.zzz", "dbname": "xxxxxx", diff --git a/test/test_alarmsdb.py b/test/test_alarmsdb.py deleted file mode 100644 index 6e6b336956dad0d49c035d928682167a752ce0e5..0000000000000000000000000000000000000000 --- a/test/test_alarmsdb.py +++ /dev/null @@ -1,91 +0,0 @@ -import inventory_provider.db.alarmsdb as alarmsdb - - -def test_infinera_interface_status(mocker): - mock = mocker.Mock() - mock.fetchone.return_value = ('Raised',) - assert alarmsdb.get_last_known_infinera_interface_status( - mock, 'eq1', 'intfc1' - ) == "down" - - mock.fetchone.return_value = ("Clear",) - assert alarmsdb.get_last_known_infinera_interface_status( - mock, 'eq1', 'intfc1' - ) == "up" - - mock.fetchone.return_value = () - assert alarmsdb.get_last_known_infinera_interface_status( - mock, 'eq1', 'intfc1' - ) == "unknown" - - mock.execute.assert_called_with( - "SELECT status FROM infinera_alarms WHERE" - " CONCAT(ne_name, '-', REPLACE(object_name, 'T', '')) = %s" - " ORDER BY ne_init_time DESC, ne_clear_time DESC LIMIT 1", - ("eq1-intfc1",)) - - -def test_coriant_interface_status(mocker): - mock = mocker.Mock() - mock.fetchone.return_value = ('Raised',) - assert alarmsdb.get_last_known_coriant_interface_status( - mock, 'eq1', 'intfc1' - ) == "down" - - mock.fetchone.return_value = ("Clear",) - assert alarmsdb.get_last_known_coriant_interface_status( - mock, 'eq1', 'intfc1' - ) == "up" - - mock.fetchone.return_value = () - assert alarmsdb.get_last_known_coriant_interface_status( - mock, 'eq1', 'intfc1' - ) == "unknown" - - mock.execute.assert_called_with( - "SELECT status FROM coriant_alarms" - " WHERE ne_id_name = %s AND entity_string LIKE %s" - " ORDER BY last_event_time DESC LIMIT 1", - ("eq1", "intfc1-%")) - - -def test_juniper_interface_status(mocker): - mock = mocker.Mock() - mock.fetchone.return_value = (0,) - assert alarmsdb.get_last_known_juniper_link_interface_status( - mock, 'eq1', 'intfc1' - ) == "down" - - mock.fetchone.return_value = (1,) - assert alarmsdb.get_last_known_juniper_link_interface_status( - mock, 'eq1', 'intfc1' - ) == "up" - - mock.fetchone.return_value = () - assert alarmsdb.get_last_known_juniper_link_interface_status( - mock, 'eq1', 'intfc1' - ) == "unknown" - - mock.execute.assert_called_with( - "SELECT IF(link_admin_status = 'up'" - " AND link_oper_status = 'up', 1, 0)" - " AS up FROM juniper_alarms" - " WHERE equipment_name = %s AND link_interface_name = %s" - " ORDER BY alarm_id DESC LIMIT 1", - ("lo0.eq1", "intfc1")) - - -def test_interface_status(mocker): - mocked_infinera = mocker.patch( - 'inventory_provider.db.alarmsdb' - '.get_last_known_infinera_interface_status') - mocked_infinera.return_value = "unknown" - mocked_coriant = mocker.patch( - 'inventory_provider.db.alarmsdb' - '.get_last_known_coriant_interface_status') - mocked_coriant.return_value = "unknown" - mocked_juniper = mocker.patch( - 'inventory_provider.db.alarmsdb.' - 'get_last_known_juniper_link_interface_status') - mocked_juniper.return_value = "unknown" - assert alarmsdb.get_last_known_interface_status(None, '', '') == "unknown"