diff --git a/inventory_provider/routes/poller.py b/inventory_provider/routes/poller.py index c2e5f8906480772d3c9936e97b589a1d2a2bd4bb..c9c283c5bff11e0655bfd009f77cd9c216260798 100644 --- a/inventory_provider/routes/poller.py +++ b/inventory_provider/routes/poller.py @@ -116,6 +116,9 @@ class BRIAN_DASHBOARDS(Enum): # NREN customer NREN = auto() + # COPERNICUS + COPERNICUS = auto() + # only used in INTERFACE_LIST_SCHEMA and sphinx docs _DASHBOARD_IDS = [d.name for d in list(BRIAN_DASHBOARDS)] @@ -415,7 +418,8 @@ def _get_dashboards(interface): router = interface.get('router', '').lower() ifc_name = interface.get('name', '') description = interface.get('description', '').strip() - + if re.search(r'COPERNICUS.*?\|', description, flags=re.IGNORECASE): + yield BRIAN_DASHBOARDS.COPERNICUS if 'SRV_CLS' in description: yield BRIAN_DASHBOARDS.CLS if 'SRV_CLS PRIVATE' in description: @@ -507,6 +511,8 @@ def _get_dashboard_data(ifc): host = ifc['router'] location = host.split('.')[1].upper() name = f'{name} - {location}' + elif BRIAN_DASHBOARDS.COPERNICUS.name in dashboards: + name = "COPERNICUS" else: name = _get_customer_name(description) diff --git a/test/test_general_poller_routes.py b/test/test_general_poller_routes.py index 80b8c5ce797a68f5faed6493418bc4f9852dc91e..59b8065377dddfab93e338c0ed2a3851b5bd7d21 100644 --- a/test/test_general_poller_routes.py +++ b/test/test_general_poller_routes.py @@ -296,7 +296,9 @@ def test_fw_counter_bytes_oid_values(customer, interface_name, expected_oid): ('SRV_MDVPN CUSTOMER REDIRIS #RedIRIS_AP1_BGP_LU_CoC_1 | MD VPN CoC-REDIRIS - ', # noqa: E501 ['MDVPN_CUSTOMERS', 'NREN']), ('SRV_L2CIRCUIT CUSTOMER TENET PSNC #lon-lon-GEANTOPEN-PSNC-TENET-18067 |', # noqa: E501 - ['GEANTOPEN', 'L2_CIRCUIT']) + ['GEANTOPEN', 'L2_CIRCUIT']), + ('SRV_L3VPN RE_INTERCONNECT REDCLARA #REDCLARA-MAD-COPERNICUS | ASN27750', + ['LHCONE', 'COPERNICUS', 'RE_PEER']) ]) def test_interface_dashboard_mapping(description, expected_dashboards): interface = { @@ -375,6 +377,14 @@ def test_interface_dashboard_mapping(description, expected_dashboards): 'description': 'SRV_MDVPN CUSTOMER', 'dashboards': ['MDVPN_CUSTOMERS', 'NREN'] }, {'name': 'SRV_MDVPN CUSTOMER', 'interface_type': 'LOGICAL'}), + ({ + 'description': 'SRV_MDVPN CUSTOMER', + 'dashboards': ['MDVPN_CUSTOMERS', 'NREN'] + }, {'name': 'SRV_MDVPN CUSTOMER', 'interface_type': 'LOGICAL'}), + ({ + 'description': 'SRV_L3VPN RE_INTERCONNECT REDCLARA #REDCLARA-MAD-COPERNICUS | ASN27750', # noqa: E501 + 'dashboards': ['COPERNICUS'] + }, {'name': 'COPERNICUS', 'interface_type': 'LOGICAL'}), ]) def test_description_dashboard_parsing(interface, dashboard_info): diff --git a/test/test_worker.py b/test/test_worker.py index 7b75b400c18418ae8d0d65f729ba5db3f9132cd9..a6a44ab09a9f1ee0dafff65e2074b16b4a875c79 100644 --- a/test/test_worker.py +++ b/test/test_worker.py @@ -74,7 +74,7 @@ def test_extract_ims_data(mocker): assert res['customer_contacts'] == {'123': 'CON A', '456': 'CON B'} assert res['circuit_ids_to_monitor'] == [123, 456, 789] assert res['additional_circuit_customer_ids'] == \ - [{'id a': ['A', 'A2']}, {'id b': ['B']}] + [{'id a': ['A', 'A2']}, {'id b': ['B']}] assert res['hierarchy'] == { '1': {'id': '1', 'value': 'A'}, '2': {'id': '2', 'value': 'B'} @@ -436,7 +436,7 @@ def test_persist_ims_data(mocker, data_config, mocked_redis): ["poller_cache:eq1", "poller_cache:eq2"] assert json.loads(r.get("ims:sid_services").decode("utf-8")) == \ - data["sid_services"] + data["sid_services"] def test_retrieve_and_persist_neteng_managed_device_list(