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: