diff --git a/inventory_provider/tasks/worker.py b/inventory_provider/tasks/worker.py index f9b1e36b0ece9857c254da5a4c14e628fda41bb9..a3b96c6d9691b3b58cf15a5cf45ae7ac3e360ec0 100644 --- a/inventory_provider/tasks/worker.py +++ b/inventory_provider/tasks/worker.py @@ -1110,16 +1110,26 @@ def transform_ims_data(data): node_pair_services[ f"{circ['equipment']}/{circ['other_end_equipment']}" ][circ['id']] = circ + try: + # get the physical port circuit, if it exists + # https://jira.software.geant.org/browse/POL1-687 + port_circuit = next( + c for c in circuits if c.get('port_type') == 'ports') + except StopIteration: + port_circuit = None sid = None if circ['id'] in circuit_ids_and_sids: sid = circuit_ids_and_sids[circ['id']] - elif 'sid' in details: if len(circuits) > 1: - # we don't know which circuit - # to give the SID in this case, so skip - continue + if port_circuit != circ: + # if this is not the physical port circuit + # related to this port, then we don't want to + # assign the SID to this circuit, so skip. + continue + + # assign the SID from the port to this circuit sid = details['sid'] if sid is None: