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

added SID retrieval and test

parent 7c5aafa8
Branches
Tags
No related merge requests found
......@@ -84,6 +84,15 @@ def get_monitored_circuit_ids(ds: IMS):
yield d['extrafieldvalueobjectinfo']['objectid']
def get_ids_and_sids(ds: IMS):
for sid_circuit in ds.get_filtered_entities(
'ExtraFieldValue',
'extrafieldid == 3209 | value <> ""',
step_count=10000
):
yield sid_circuit['objectid'], sid_circuit['value']
def get_service_types(ds: IMS):
for d in ds.get_filtered_entities(
'ComboBoxData',
......
......@@ -719,6 +719,7 @@ def extract_ims_data():
lg_routers = []
customer_contacts = {}
circuit_ids_to_monitor = []
circuit_ids_and_sids = {}
additional_circuit_customer_ids = {}
hierarchy = {}
......@@ -743,6 +744,11 @@ def extract_ims_data():
circuit_ids_to_monitor = \
list(ims_data.get_monitored_circuit_ids(ds=_ds()))
def _populate_sids():
nonlocal circuit_ids_and_sids
circuit_ids_and_sids = \
{cid: sid for cid, sid in ims_data.get_ids_and_sids(ds=_ds())}
def _populate_additional_circuit_customer_ids():
nonlocal additional_circuit_customer_ids
additional_circuit_customer_ids = \
......@@ -756,6 +762,7 @@ def extract_ims_data():
executor.submit(_populate_customer_contacts): 'customer_contacts',
executor.submit(_populate_circuit_ids_to_monitor):
'circuit_ids_to_monitor',
executor.submit(_populate_sids): 'sids',
executor.submit(_populate_additional_circuit_customer_ids):
'additional_circuit_customer_ids'
}
......@@ -804,6 +811,7 @@ def extract_ims_data():
'lg_routers': lg_routers,
'customer_contacts': customer_contacts,
'circuit_ids_to_monitor': circuit_ids_to_monitor,
'circuit_ids_sids': circuit_ids_and_sids,
'additional_circuit_customer_ids': additional_circuit_customer_ids,
'hierarchy': hierarchy,
'port_id_details': port_id_details,
......
......@@ -8,7 +8,7 @@ from inventory_provider.db.ims import InventoryStatus
from inventory_provider.db.ims_data import lookup_lg_routers, \
get_node_locations, IMS_OPSDB_STATUS_MAP, \
get_port_id_services, get_port_details, \
get_circuit_hierarchy, NODE_LOCATION_SCHEMA
get_circuit_hierarchy, get_ids_and_sids, NODE_LOCATION_SCHEMA
def _json_test_data(filename):
......@@ -298,3 +298,54 @@ def test_get_node_location(mocker):
'latitude': 51.5308142,
}
})
def test_get_circuit_ids_and_sids(mocker):
ims = mocker.patch('inventory_provider.db.ims.IMS')
ims.return_value.get_filtered_entities.return_value = \
[
{
'id': 999999,
'extrafieldid': 3209,
'objectid': 111111,
'value': 'SID-01',
'extrafield': None,
'links': None,
'extrafieldvalueobjectinfo': None,
'rowversion': '2021-12-10T19:40:51',
'errors': None,
'haserrors': False
},{
'id': 999998,
'extrafieldid': 3209,
'objectid': 111112,
'value': 'SID-02',
'extrafield': None,
'links': None,
'extrafieldvalueobjectinfo': None,
'rowversion': '2021-12-10T19:40:51',
'errors': None,
'haserrors': False
},{
'id': 999997,
'extrafieldid': 3209,
'objectid': 111113,
'value': 'SID-03',
'extrafield': None,
'links': None,
'extrafieldvalueobjectinfo': None,
'rowversion': '2021-12-10T19:40:51',
'errors': None,
'haserrors': False
},
]
expected_response = [
(111111, 'SID-01'),
(111112, 'SID-02'),
(111113, 'SID-03')
]
ds = inventory_provider.db.ims.IMS(
'dummy_base', 'dummy_username', 'dummy_password')
res = list(get_ids_and_sids(ds))
assert res == expected_response
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment