diff --git a/inventory_provider/routes/ims_classifier.py b/inventory_provider/routes/ims_classifier.py
index f5482d01538621de9d79348d62313178bce5a1a5..f75c17663d5a3eee103ce5e969bbb792d675c1db 100644
--- a/inventory_provider/routes/ims_classifier.py
+++ b/inventory_provider/routes/ims_classifier.py
@@ -13,7 +13,8 @@ from redis import Redis
 
 from inventory_provider.db.ims import IMS_SERVICE_NAMES
 from inventory_provider.routes import common
-from inventory_provider.routes.classifier import _asn_group_info
+from inventory_provider.routes.classifier import _asn_group_info, \
+    _link_interface_info
 
 routes = Blueprint("ims-inventory-data-classifier-support-routes", __name__)
 
@@ -313,24 +314,13 @@ def get_juniper_link_info(source_equipment: str, interface: str) -> Response:
     if result:
         result = result.decode('utf-8')
     else:
-
         result = {
             'locations': []
         }
 
-        ifc_info = r.get(f'netconf-interfaces:{source_equipment}:{interface}')
-        if ifc_info:
-            result['interface'] = json.loads(ifc_info.decode('utf-8'))
-        else:
-            # warning: this should match the structure returned by
-            #          juniper:list_interfaces:_ifc_info
-            result['interface'] = {
-                'name': interface,
-                'description': '',
-                'bundle': [],
-                'ipv4': [],
-                'ipv6': []
-            }
+        result['interface'] = _link_interface_info(
+            r, source_equipment, interface)
+
         bundle_members = r.get(
             f'netconf-interface-bundles:{source_equipment}:{interface}')
         if bundle_members:
@@ -339,15 +329,6 @@ def get_juniper_link_info(source_equipment: str, interface: str) -> Response:
         else:
             result['interface']['bundle_members'] = []
 
-        snmp_info = r.get(
-            f'snmp-interfaces-single:{source_equipment}:{interface}')
-        if snmp_info:
-            snmp_info = json.loads(snmp_info.decode('utf-8'))
-            ifc_info['snmp'] = {
-                'community': snmp_info['community'],
-                'index': snmp_info['index']
-            }
-
         result.update(get_interface_services_and_locs(
             ims_source_equipment,
             ims_interface,
@@ -531,7 +512,9 @@ def peer_info(address_str: str) -> Response:
 def get_trap_metadata(source_equipment: str, interface: str, circuit_id: str) \
         -> Response:
 
-    # interface = interface.replace('-T', '-')
+    ims_source_equipment = get_ims_equipment_name(source_equipment)
+    ims_interface = get_ims_interface(interface)
+
     cache_key = f'ims-classifier-cache:infinera:{source_equipment}:{interface}'
 
     r = common.get_current_redis()
@@ -557,6 +540,12 @@ def get_trap_metadata(source_equipment: str, interface: str, circuit_id: str) \
 
         # todo - carry on from here
 
+        result.update(get_interface_services_and_locs(
+            ims_source_equipment,
+            ims_interface,
+            r
+        ))
+
         services = r.get(
             f'ims:interface_services:{source_equipment}:{interface}')
         if services: