diff --git a/inventory_provider/routes/classifier.py b/inventory_provider/routes/classifier.py index d2b46d342a1793562e52aa5cd04ca265c88a480c..732d614b02cdc65b85a01f94b6876e6d106a379f 100644 --- a/inventory_provider/routes/classifier.py +++ b/inventory_provider/routes/classifier.py @@ -175,12 +175,15 @@ def get_interface_services_and_loc(ims_source_equipment, ims_interface, redis): keys_to_remove = set(_s.keys()) - keys for k in keys_to_remove: _s.pop(k) + + result = {} + raw_services = redis.get( f'ims:interface_services:{ims_source_equipment}:{ims_interface}') - result = {} if raw_services: - result['services'] = [] + # result['services'] = [] related_services = {} + services = {} contacts = set() for s in json.loads(raw_services.decode('utf-8')): related_services.update( @@ -188,9 +191,16 @@ def get_interface_services_and_loc(ims_source_equipment, ims_interface, redis): contacts.update(set(s.pop('contacts', set()))) if s['circuit_type'] == 'service': _format_service(s) - result['services'].append(s) + services['id'] = s + + def _sorted_by_name(things_with_name): + return sorted( + list(things_with_name), + key=lambda x: x['name']) + result['contacts'] = sorted(list(contacts)) - result['related-services'] = list(related_services.values()) + result['services'] = _sorted_by_name(services.values()) + result['related-services'] = _sorted_by_name(related_services.values()) if not result['services']: result.pop('services', None)