diff --git a/inventory_provider/routes/classifier.py b/inventory_provider/routes/classifier.py index b6d83118bdab6ffb9a58781710462d7b3d36ed11..c4aaf73fee717ac24964ccde4e0432cae8586fc1 100644 --- a/inventory_provider/routes/classifier.py +++ b/inventory_provider/routes/classifier.py @@ -294,11 +294,18 @@ def get_trap_metadata(source_equipment, interface, circuit_id): result = result.decode('utf-8') else: result = {} + top_level_services = [] services = r.get( 'opsdb:interface_services:%s:%s' % (source_equipment, interface)) if services: result['services'] = json.loads(services.decode('utf=8')) + for s in result['services']: + tls = get_top_level_services(s['id'], r) + if tls: + top_level_services.extend(tls) + if top_level_services: + result['related-services'] = top_level_services gl = r.get('opsdb:geant_lambdas:%s' % circuit_id.lower()) if gl: diff --git a/test/test_infinera_classifier.py b/test/test_infinera_classifier.py index 892bd06f2bda4e1a407e3fad631af793d206acf2..81d2ad96d0f2fa43e9a5fc34983a4f511789d5e9 100644 --- a/test/test_infinera_classifier.py +++ b/test/test_infinera_classifier.py @@ -81,6 +81,10 @@ INFINERA_LINK_METADATA = { "type": "array", "items": {"$ref": "#/definitions/service-info"} }, + "related-services": { + "type": "array", + "items": {"$ref": "#/definitions/service-info"} + }, "geant-lambda": { "$ref": "#/definitions/geant-lambda" },