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

refactored for easier debugging; changed status mapping

parent bf6725b8
Branches
Tags
No related merge requests found
......@@ -20,7 +20,7 @@ IMS_OPSDB_STATUS_MAP = {
InventoryStatus.IN_SERVICE: 'operational',
InventoryStatus.MIGRATION: 'planned',
InventoryStatus.OUT_OF_SERVICE: 'terminated',
InventoryStatus.READY_FOR_CEASURE: 'disposed'
InventoryStatus.READY_FOR_CEASURE: 'operational'
}
STATUSES_TO_IGNORE = \
[InventoryStatus.OUT_OF_SERVICE.value,
......@@ -220,32 +220,37 @@ def get_port_details(ds: IMS):
ims.INTERNAL_PORT_PROPERTIES['Node'],
ims.PORT_PROPERTIES['Shelf']
}
for p in chain(
ds.get_all_entities('port', port_nav_props, step_count=2000),
ds.get_all_entities(
'internalport', internal_port_nav_props, step_count=2000)
):
vendor = None
interface_name = None
try:
vendor = p['node']['equipmentdefinition']['vendor']['name'].lower()
except (TypeError, KeyError):
pass
# if there become more exceptions we will need to abstract this
if vendor == 'infinera' and p.get('shelf', None):
# this is here instead of chaining to make debugging easier
def _process_ports(ports, p_type):
for p in ports:
vendor = None
interface_name = None
try:
interface_name = f"{p['shelf']['sequencenumber']}-{p['name']}"
except KeyError:
vendor = p['node']['equipmentdefinition']['vendor']['name'].lower()
except (TypeError, KeyError):
pass
# if there become more exceptions we will need to abstract this
if vendor == 'infinera' and p.get('shelf', None):
try:
interface_name = f"{p['shelf']['sequencenumber']}-{p['name']}"
except KeyError:
pass
if not interface_name:
interface_name = p['name']
data = {
'port_id': p['id'],
'equipment_name': p['node']['name'],
'interface_name': interface_name
}
yield data
yield from _process_ports(ds.get_all_entities(
'port', port_nav_props, step_count=2000), 'external')
yield from _process_ports(ds.get_all_entities(
'internalport', internal_port_nav_props, step_count=2000), 'internal')
if not interface_name:
interface_name = p['name']
data = {
'port_id': p['id'],
'equipment_name': p['node']['name'],
'interface_name': interface_name
}
yield data
def get_circuit_hierarchy(ds: IMS):
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment