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

Merge branch 'feature/POL1-538' into develop

parents 7c5aafa8 c3198b92
No related branches found
No related tags found
No related merge requests found
...@@ -84,6 +84,15 @@ def get_monitored_circuit_ids(ds: IMS): ...@@ -84,6 +84,15 @@ def get_monitored_circuit_ids(ds: IMS):
yield d['extrafieldvalueobjectinfo']['objectid'] 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): def get_service_types(ds: IMS):
for d in ds.get_filtered_entities( for d in ds.get_filtered_entities(
'ComboBoxData', 'ComboBoxData',
......
...@@ -719,6 +719,7 @@ def extract_ims_data(): ...@@ -719,6 +719,7 @@ def extract_ims_data():
lg_routers = [] lg_routers = []
customer_contacts = {} customer_contacts = {}
circuit_ids_to_monitor = [] circuit_ids_to_monitor = []
circuit_ids_and_sids = {}
additional_circuit_customer_ids = {} additional_circuit_customer_ids = {}
hierarchy = {} hierarchy = {}
...@@ -743,6 +744,11 @@ def extract_ims_data(): ...@@ -743,6 +744,11 @@ def extract_ims_data():
circuit_ids_to_monitor = \ circuit_ids_to_monitor = \
list(ims_data.get_monitored_circuit_ids(ds=_ds())) 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(): def _populate_additional_circuit_customer_ids():
nonlocal additional_circuit_customer_ids nonlocal additional_circuit_customer_ids
additional_circuit_customer_ids = \ additional_circuit_customer_ids = \
...@@ -756,6 +762,7 @@ def extract_ims_data(): ...@@ -756,6 +762,7 @@ def extract_ims_data():
executor.submit(_populate_customer_contacts): 'customer_contacts', executor.submit(_populate_customer_contacts): 'customer_contacts',
executor.submit(_populate_circuit_ids_to_monitor): executor.submit(_populate_circuit_ids_to_monitor):
'circuit_ids_to_monitor', 'circuit_ids_to_monitor',
executor.submit(_populate_sids): 'sids',
executor.submit(_populate_additional_circuit_customer_ids): executor.submit(_populate_additional_circuit_customer_ids):
'additional_circuit_customer_ids' 'additional_circuit_customer_ids'
} }
...@@ -804,6 +811,7 @@ def extract_ims_data(): ...@@ -804,6 +811,7 @@ def extract_ims_data():
'lg_routers': lg_routers, 'lg_routers': lg_routers,
'customer_contacts': customer_contacts, 'customer_contacts': customer_contacts,
'circuit_ids_to_monitor': circuit_ids_to_monitor, 'circuit_ids_to_monitor': circuit_ids_to_monitor,
'circuit_ids_sids': circuit_ids_and_sids,
'additional_circuit_customer_ids': additional_circuit_customer_ids, 'additional_circuit_customer_ids': additional_circuit_customer_ids,
'hierarchy': hierarchy, 'hierarchy': hierarchy,
'port_id_details': port_id_details, 'port_id_details': port_id_details,
......
...@@ -8,7 +8,7 @@ from inventory_provider.db.ims import InventoryStatus ...@@ -8,7 +8,7 @@ from inventory_provider.db.ims import InventoryStatus
from inventory_provider.db.ims_data import lookup_lg_routers, \ from inventory_provider.db.ims_data import lookup_lg_routers, \
get_node_locations, IMS_OPSDB_STATUS_MAP, \ get_node_locations, IMS_OPSDB_STATUS_MAP, \
get_port_id_services, get_port_details, \ 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): def _json_test_data(filename):
...@@ -298,3 +298,54 @@ def test_get_node_location(mocker): ...@@ -298,3 +298,54 @@ def test_get_node_location(mocker):
'latitude': 51.5308142, '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
...@@ -56,6 +56,14 @@ def test_extract_ims_data(mocker): ...@@ -56,6 +56,14 @@ def test_extract_ims_data(mocker):
{'port_a_id': '2', 'value': '2A'} {'port_a_id': '2', 'value': '2A'}
] ]
) )
mocker.patch(
'inventory_provider.tasks.worker.ims_data.get_ids_and_sids',
return_value=(x for x in [
(111111, 'SID-01'),
(111112, 'SID-02'),
(111113, 'SID-03')
])
)
res = extract_ims_data() res = extract_ims_data()
assert res['locations'] == {'loc_a': 'LOC A', 'loc_b': 'LOC B'} assert res['locations'] == {'loc_a': 'LOC A', 'loc_b': 'LOC B'}
assert res['lg_routers'] == ['lg router 1', 'lg router 2'] assert res['lg_routers'] == ['lg router 1', 'lg router 2']
...@@ -81,6 +89,11 @@ def test_extract_ims_data(mocker): ...@@ -81,6 +89,11 @@ def test_extract_ims_data(mocker):
], ],
'2': [{'port_a_id': '2', 'value': '2A'}] '2': [{'port_a_id': '2', 'value': '2A'}]
} }
assert res['circuit_ids_sids'] == {
111111: 'SID-01',
111112: 'SID-02',
111113: 'SID-03'
}
def test_transform_ims_data(): def test_transform_ims_data():
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment