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(