From 20d8340fe46bee8722f0e069bf2109eb92036e3d Mon Sep 17 00:00:00 2001
From: gifrerenom <lluis.gifre@cttc.es>
Date: Fri, 20 Jan 2023 17:26:18 +0000
Subject: [PATCH] Compute/InterDomain/Slice components:

- removed check of reply.entity_id==request.entity_id; context computes UUID-like identifiers based from requested identifiers for performance reasons
---
 .../nbi_plugins/ietf_l2vpn/L2VPN_Services.py         |  4 +---
 .../ietf_l2vpn/L2VPN_SiteNetworkAccesses.py          |  4 +---
 .../service/InterdomainServiceServicerImpl.py        | 10 ++++------
 .../_old_code/InterdomainServiceServicerImpl.py      | 12 +++++-------
 src/slice/service/SliceServiceServicerImpl.py        | 11 +++--------
 5 files changed, 14 insertions(+), 27 deletions(-)

diff --git a/src/compute/service/rest_server/nbi_plugins/ietf_l2vpn/L2VPN_Services.py b/src/compute/service/rest_server/nbi_plugins/ietf_l2vpn/L2VPN_Services.py
index f27d852f0..248b99896 100644
--- a/src/compute/service/rest_server/nbi_plugins/ietf_l2vpn/L2VPN_Services.py
+++ b/src/compute/service/rest_server/nbi_plugins/ietf_l2vpn/L2VPN_Services.py
@@ -50,9 +50,7 @@ class L2VPN_Services(Resource):
                 slice_request.slice_status.slice_status = SliceStatusEnum.SLICESTATUS_PLANNED
 
                 slice_client = SliceClient()
-                slice_reply = slice_client.CreateSlice(slice_request)
-                if slice_reply != slice_request.slice_id: # pylint: disable=no-member
-                    raise Exception('Slice creation failed. Wrong Slice Id was returned')
+                slice_client.CreateSlice(slice_request)
 
                 response = jsonify({})
                 response.status_code = HTTP_CREATED
diff --git a/src/compute/service/rest_server/nbi_plugins/ietf_l2vpn/L2VPN_SiteNetworkAccesses.py b/src/compute/service/rest_server/nbi_plugins/ietf_l2vpn/L2VPN_SiteNetworkAccesses.py
index 819d8995d..0b8305ed7 100644
--- a/src/compute/service/rest_server/nbi_plugins/ietf_l2vpn/L2VPN_SiteNetworkAccesses.py
+++ b/src/compute/service/rest_server/nbi_plugins/ietf_l2vpn/L2VPN_SiteNetworkAccesses.py
@@ -129,9 +129,7 @@ def process_list_site_network_access(
         sna_request = process_site_network_access(context_client, site_id, site_network_access)
         LOGGER.debug('sna_request = {:s}'.format(grpc_message_to_json_string(sna_request)))
         try:
-            sna_reply = slice_client.UpdateSlice(sna_request)
-            if sna_reply != sna_request.slice_id: # pylint: disable=no-member
-                raise Exception('Slice update failed. Wrong Slice Id was returned')
+            slice_client.UpdateSlice(sna_request)
         except Exception as e: # pylint: disable=broad-except
             msg = 'Something went wrong Updating VPN {:s}'
             LOGGER.exception(msg.format(grpc_message_to_json_string(sna_request)))
diff --git a/src/interdomain/service/InterdomainServiceServicerImpl.py b/src/interdomain/service/InterdomainServiceServicerImpl.py
index c0c351451..6844393fe 100644
--- a/src/interdomain/service/InterdomainServiceServicerImpl.py
+++ b/src/interdomain/service/InterdomainServiceServicerImpl.py
@@ -13,7 +13,7 @@
 # limitations under the License.
 
 import grpc, logging, uuid
-from common.Constants import DEFAULT_CONTEXT_UUID, DEFAULT_TOPOLOGY_UUID
+from common.Constants import DEFAULT_CONTEXT_NAME, DEFAULT_TOPOLOGY_NAME
 from common.proto.context_pb2 import AuthenticationResult, Slice, SliceId, SliceStatusEnum, TeraFlowController, TopologyId
 from common.proto.interdomain_pb2_grpc import InterdomainServiceServicer
 from common.method_wrappers.Decorator import MetricsPool, safe_and_metered_rpc_method
@@ -95,17 +95,15 @@ class InterdomainServiceServicerImpl(InterdomainServiceServicer):
                 LOGGER.info('[loop] [local] domain_uuid={:s} is_local_domain={:s} slice_uuid={:s}'.format(
                     str(domain_uuid), str(is_local_domain), str(slice_uuid)))
 
-                # local slices always in DEFAULT_CONTEXT_UUID
+                # local slices always in DEFAULT_CONTEXT_NAME
                 #context_uuid = request.slice_id.context_id.context_uuid.uuid
-                context_uuid = DEFAULT_CONTEXT_UUID
+                context_uuid = DEFAULT_CONTEXT_NAME
                 endpoint_ids = map_abstract_endpoints_to_real(context_client, domain_uuid, endpoint_ids)
                 sub_slice = compose_slice(
                     context_uuid, slice_uuid, endpoint_ids, constraints=request.slice_constraints,
                     config_rules=request.slice_config.config_rules)
                 LOGGER.info('[loop] [local] sub_slice={:s}'.format(grpc_message_to_json_string(sub_slice)))
                 sub_slice_id = slice_client.CreateSlice(sub_slice)
-                if sub_slice_id != sub_slice.slice_id: # pylint: disable=no-member
-                    raise Exception('Local Slice creation failed. Wrong Slice Id was returned')
             else:
                 slice_uuid = request.slice_id.slice_uuid.uuid
                 LOGGER.info('[loop] [remote] domain_uuid={:s} is_local_domain={:s} slice_uuid={:s}'.format(
@@ -113,7 +111,7 @@ class InterdomainServiceServicerImpl(InterdomainServiceServicer):
 
                 # create context/topology for the remote domains where we are creating slices
                 create_context(context_client, domain_uuid)
-                create_topology(context_client, domain_uuid, DEFAULT_TOPOLOGY_UUID)
+                create_topology(context_client, domain_uuid, DEFAULT_TOPOLOGY_NAME)
 
                 sub_slice = compose_slice(
                     domain_uuid, slice_uuid, endpoint_ids, constraints=request.slice_constraints,
diff --git a/src/interdomain/service/_old_code/InterdomainServiceServicerImpl.py b/src/interdomain/service/_old_code/InterdomainServiceServicerImpl.py
index f38185781..00c0b8d77 100644
--- a/src/interdomain/service/_old_code/InterdomainServiceServicerImpl.py
+++ b/src/interdomain/service/_old_code/InterdomainServiceServicerImpl.py
@@ -108,16 +108,14 @@ class InterdomainServiceServicerImpl(InterdomainServiceServicer):
             slice_endpoint_id.device_id.device_uuid.uuid = 'R1@D2'
             slice_endpoint_id.endpoint_uuid.uuid = '2/1'
 
-        local_slice_reply = slice_client.CreateSlice(local_slice_request)
-        if local_slice_reply != local_slice_request.slice_id: # pylint: disable=no-member
-            raise Exception('Local Slice creation failed. Wrong Slice Id was returned')
+        local_slice_id_reply = slice_client.CreateSlice(local_slice_request)
 
         subslice_id = reply.slice_subslice_ids.add()
-        subslice_id.context_id.context_uuid.uuid = local_slice_request.slice_id.context_id.context_uuid.uuid
-        subslice_id.slice_uuid.uuid = local_slice_request.slice_id.slice_uuid.uuid
+        subslice_id.context_id.context_uuid.uuid = local_slice_id_reply.context_id.context_uuid.uuid
+        subslice_id.slice_uuid.uuid = local_slice_id_reply.slice_uuid.uuid
 
-        context_client.SetSlice(reply)
-        return reply.slice_id
+        reply_slice_id = context_client.SetSlice(reply)
+        return reply_slice_id
 
     @safe_and_metered_rpc_method(METRICS_POOL, LOGGER)
     def Authenticate(self, request : TeraFlowController, context : grpc.ServicerContext) -> AuthenticationResult:
diff --git a/src/slice/service/SliceServiceServicerImpl.py b/src/slice/service/SliceServiceServicerImpl.py
index aa41a77ac..d693abd8f 100644
--- a/src/slice/service/SliceServiceServicerImpl.py
+++ b/src/slice/service/SliceServiceServicerImpl.py
@@ -81,7 +81,7 @@ class SliceServiceServicerImpl(SliceServiceServicer):
         service_id = ServiceId()
         # pylint: disable=no-member
         context_uuid = service_id.context_id.context_uuid.uuid = request.slice_id.context_id.context_uuid.uuid
-        slice_uuid = service_uuid = service_id.service_uuid.uuid = request.slice_id.slice_uuid.uuid
+        service_uuid = service_id.service_uuid.uuid = request.slice_id.slice_uuid.uuid
 
         service_client = ServiceClient()
         try:
@@ -92,10 +92,7 @@ class SliceServiceServicerImpl(SliceServiceServicer):
             service_request.service_id.CopyFrom(service_id)
             service_request.service_type = ServiceTypeEnum.SERVICETYPE_UNKNOWN
             service_request.service_status.service_status = ServiceStatusEnum.SERVICESTATUS_PLANNED
-            service_reply = service_client.CreateService(service_request)
-            if service_reply != service_request.service_id: # pylint: disable=no-member
-                # pylint: disable=raise-missing-from
-                raise Exception('Service creation failed. Wrong Service Id was returned')
+            service_client.CreateService(service_request)
             _service = context_client.GetService(service_id)
         service_request = Service()
         service_request.CopyFrom(_service)
@@ -137,9 +134,7 @@ class SliceServiceServicerImpl(SliceServiceServicer):
             service_request.service_type = ServiceTypeEnum.SERVICETYPE_L2NM
             LOGGER.info('assume L2')
 
-        service_reply = service_client.UpdateService(service_request)
-        if service_reply != service_request.service_id: # pylint: disable=no-member
-            raise Exception('Service update failed. Wrong Service Id was returned')
+        service_client.UpdateService(service_request)
 
         copy_endpoint_ids(request.slice_endpoint_ids, slice_request.slice_endpoint_ids)
         copy_constraints(request.slice_constraints, slice_request.slice_constraints)
-- 
GitLab