Skip to content
Snippets Groups Projects
Commit f00ccfaf authored by Ville Hallivuori's avatar Ville Hallivuori
Browse files

Fix xr service handler for cases where XR constellation is represented as single device

parent 741d929b
No related branches found
No related tags found
2 merge requests!142Release TeraFlowSDN 2.1,!85Fix xr service handler for cases where XR constellation is represented as single device
......@@ -42,6 +42,13 @@ class TapiXrServiceHandler(_ServiceHandler):
) -> List[Union[bool, Exception]]:
chk_type('endpoints', endpoints, list)
# When using regular mode where XR constellation is a single device, we get two endpoints.
# Convert that representation to a form that is understood by the service handler that
# expects constellation to be represented as multiple devices.
if len(endpoints) == 2:
endpoints = [None, endpoints[0], endpoints[1], None]
if len(endpoints) != 4: return []
service_uuid = self.__service.service_id.service_uuid.uuid
......@@ -68,10 +75,17 @@ class TapiXrServiceHandler(_ServiceHandler):
raise Exception('Different Src-Dst devices not supported by now')
controller = src_controller
# If the special mode that splits XR constellation to multiple modelled devices is used,
# add the device name to interface name. Otherwise use it as is (it will already contain pipe character
# end edge device name). This code should be refactored, as interface name structure is internal matter
# to XR driver and subject to change.
constellation_unique_src = src_endpoint.name if "|" in src_endpoint.name else '|'.join([src_device.name, src_endpoint.name])
constellation_unique_dst = dst_endpoint.name if "|" in dst_endpoint.name else '|'.join([dst_device.name, dst_endpoint.name])
json_config_rule = json_config_rule_set('/services/service[{:s}]'.format(service_uuid), {
'uuid' : service_uuid,
'input_sip_name' : '|'.join([src_device.name, src_endpoint.name]),
'output_sip_name': '|'.join([dst_device.name, dst_endpoint.name]),
'input_sip_name' : constellation_unique_src,
'output_sip_name': constellation_unique_dst,
'capacity_unit' : capacity_unit,
'capacity_value' : capacity_value,
})
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment