From c9ffdee80a9201445d2547cf86095cc87db8c7eb Mon Sep 17 00:00:00 2001 From: Erik Reid <erik.reid@geant.org> Date: Wed, 16 Jun 2021 17:57:49 +0200 Subject: [PATCH] worker prep for gws-direct --- inventory_provider/tasks/worker.py | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/inventory_provider/tasks/worker.py b/inventory_provider/tasks/worker.py index a36a5faf..fa4b8c35 100644 --- a/inventory_provider/tasks/worker.py +++ b/inventory_provider/tasks/worker.py @@ -579,6 +579,7 @@ def update_circuit_hierarchy_and_port_id_services(self, use_current=False): port_id_services = defaultdict(list) interface_services = defaultdict(list) access_services = {} + gws_indirect_services = {} def _convert_to_bits(value, unit): unit = unit.lower() @@ -765,6 +766,10 @@ def update_circuit_hierarchy_and_port_id_services(self, use_current=False): if circ['service_type'].lower() == 'geant ip': access_services[circ['id']] = circ + if circ['service_type'].lower() == 'gws - indirect' \ + and circ['status'].lower() == 'operational': + gws_indirect_services[circ['id']] = circ + interface_services[k].extend(circuits) if use_current: @@ -782,6 +787,8 @@ def update_circuit_hierarchy_and_port_id_services(self, use_current=False): rp = r.pipeline() for k in r.scan_iter('ims:access_services:*', count=1000): rp.delete(k) + for k in r.scan_iter('ims:gws_indirect:*', count=1000): + rp.delete(k) rp.execute() rp = r.pipeline() for circ in hierarchy.values(): @@ -810,6 +817,18 @@ def update_circuit_hierarchy_and_port_id_services(self, use_current=False): 'speed_value': v['calculated-speed'], 'speed_unit': 'n/a' })) + + for v in gws_indirect_services.values(): + rp.set( + f'ims:gws_indirect:{v["name"]}', + json.dumps({ + 'id': v['id'], + 'name': v['name'], + 'customer': v['project'], + 'hostname': v['equipment'], + 'interface_name': v['port'], + 'speed_value': v['calculated-speed'] + })) rp.execute() -- GitLab