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

removed redundant code

parent 4894ecfa
Branches
Tags
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.
Please register or to comment