Skip to content
Snippets Groups Projects
Commit 39f3bb6e authored by Robert Latta's avatar Robert Latta
Browse files

removed redundant code

parent 4894ecfa
No related branches found
No related tags found
No related merge requests found
......@@ -104,7 +104,7 @@ def after_request(resp):
@lru_cache(256)
def get_ims_equipment_name(equipment_name: str, r: Redis=None) -> str:
def get_ims_equipment_name(equipment_name: str, r: Redis = None) -> str:
if not r:
r = common.get_current_redis()
ims_equipment_name = equipment_name.upper()
......@@ -120,42 +120,6 @@ def get_ims_interface(interface: str) -> str:
return interface.upper()
def related_interfaces(hostname, interface):
r = common.get_current_redis()
prefix = f'netconf-interfaces:{hostname}:'
for k in r.keys(f'{prefix}{interface}.*'):
k = k.decode('utf-8')
assert k.startswith(prefix) # sanity
assert len(k) > len(prefix) # sanity (contains at least an interface)
yield k[len(prefix):]
def get_related_services(source_equipment: str, interface: str, r) -> dict:
"""
Finds the related-services for the given interface
and also gets the related-services for the related interfaces
e.g. ae20 will also find services on all logical units of ae20 (ae20.1 ...)
:param source_equipment: equipment name
:param interface: interface name
:param r: redis connection
:return: Dict
"""
ims_source_equipment = get_ims_equipment_name(source_equipment, r)
ims_interface = get_ims_interface(interface)
if_services = r.get(f'ims:interface_services:{ims_source_equipment}:'
f'{ims_interface}')
if if_services:
for s in json.loads(if_services.decode('utf-8')):
yield from s['related-services']
for related in related_interfaces(source_equipment, interface):
ims_interface = get_ims_interface(related)
rif_services = r.get(
f'ims:interface_services:{ims_source_equipment}:{ims_interface}')
if rif_services:
for s in json.loads(rif_services.decode('utf-8')):
yield from s['related-services']
def get_interface_services_and_loc(ims_source_equipment, ims_interface, redis):
def _format_service(_s):
......@@ -174,18 +138,20 @@ def get_interface_services_and_loc(ims_source_equipment, ims_interface, redis):
result = {}
if raw_services:
result['services'] = []
related_services = {}
contacts = set()
for s in json.loads(raw_services.decode('utf-8')):
related_services.update(
{r['id']: r for r in s['related-services']})
if s['monitored']:
contacts.update(set(s.pop('contacts', set())))
_format_service(s)
result['services'].append(s)
result['related-services'] = list(related_services.values())
result['contacts'] = sorted(list(contacts))
# non-monitored related services are not added by the worker so don't
# need filtering out here
result['related-services'] = list(
get_related_services(ims_source_equipment, ims_interface, redis))
if not result['services']:
result.pop('services', None)
if result['related-services']:
......@@ -548,8 +514,8 @@ def peer_info(address_str: str) -> Response:
result['vpn-rr-peer-info'] = vpn_rr_peering_info
result['locations'].append(build_locations(
_location_from_equipment(
get_ims_equipment_name(vpn_rr_peering_info['router'], r)
, r)))
get_ims_equipment_name(
vpn_rr_peering_info['router'], r), r)))
asn_group_info = _asn_group_info(r, address_str)
if asn_group_info:
......@@ -622,7 +588,6 @@ def get_trap_metadata(source_equipment: str, interface: str, circuit_id: str) \
cache_key = f'classifier-cache:infinera:{source_equipment}:{interface}'
result = _ignore_cache_or_retrieve(request, cache_key, r)
if not result:
......@@ -918,8 +883,8 @@ def get_coriant_info(equipment_name: str, entity_string: str) -> Response:
p['a']['pop']['name'] = s.get('pop_name', '')
p['a']['pop']['city'] = s.get('pop_name', '')
p['a']['pop']['abbreviation'] = s.get('pop_abbreviation', '')
p['b'] = p['a']
result['path'] = p
p['b'] = p['a']
result['path'] = p
result['locations'] = _remove_duplicates_from_list(result['locations'])
result = json.dumps(result)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment