From f2f26f828537c3da06ac3c335f2a70061debd814 Mon Sep 17 00:00:00 2001
From: gifrerenom <lluis.gifre@cttc.es>
Date: Tue, 21 Feb 2023 11:19:58 +0000
Subject: [PATCH] Slice component:

- Added close connection to enable load balancing in requests
---
 src/slice/service/SliceServiceServicerImpl.py | 16 +++++++++++++---
 1 file changed, 13 insertions(+), 3 deletions(-)

diff --git a/src/slice/service/SliceServiceServicerImpl.py b/src/slice/service/SliceServiceServicerImpl.py
index 717127a00..acec3ae30 100644
--- a/src/slice/service/SliceServiceServicerImpl.py
+++ b/src/slice/service/SliceServiceServicerImpl.py
@@ -64,7 +64,9 @@ class SliceServiceServicerImpl(SliceServiceServicer):
             # unable to identify the kind of slice; just update endpoints, constraints and config rules
             # update the slice in database, and return
             # pylint: disable=no-member
-            return context_client.SetSlice(slice_rw)
+            reply = context_client.SetSlice(slice_rw)
+            context_client.close()
+            return reply
 
         slice_with_uuids = context_client.GetSlice(slice_id_with_uuids)
 
@@ -82,10 +84,12 @@ class SliceServiceServicerImpl(SliceServiceServicer):
             slice_active.CopyFrom(slice_)
             slice_active.slice_status.slice_status = SliceStatusEnum.SLICESTATUS_ACTIVE # pylint: disable=no-member
             context_client.SetSlice(slice_active)
+            interdomain_client.close()
+            context_client.close()
             return slice_id
 
         if self._slice_grouper.is_enabled:
-            grouped = self._slice_grouper.group(slice_with_uuids)
+            grouped = self._slice_grouper.group(slice_with_uuids) # pylint: disable=unused-variable
 
         # Local domain slice
         service_id = ServiceId()
@@ -159,6 +163,9 @@ class SliceServiceServicerImpl(SliceServiceServicer):
         slice_active.CopyFrom(slice_)
         slice_active.slice_status.slice_status = SliceStatusEnum.SLICESTATUS_ACTIVE # pylint: disable=no-member
         context_client.SetSlice(slice_active)
+
+        service_client.close()
+        context_client.close()
         return slice_id
 
     @safe_and_metered_rpc_method(METRICS_POOL, LOGGER)
@@ -195,6 +202,7 @@ class SliceServiceServicerImpl(SliceServiceServicer):
         try:
             _slice = context_client.GetSlice(request)
         except: # pylint: disable=bare-except
+            context_client.close()
             return Empty()
 
         if is_multi_domain(context_client, _slice.slice_endpoint_ids):
@@ -208,7 +216,7 @@ class SliceServiceServicerImpl(SliceServiceServicer):
             context_client.SetSlice(current_slice)
 
             if self._slice_grouper.is_enabled:
-                ungrouped = self._slice_grouper.ungroup(current_slice)
+                ungrouped = self._slice_grouper.ungroup(current_slice) # pylint: disable=unused-variable
 
             service_client = ServiceClient()
             for service_id in _slice.slice_service_ids:
@@ -219,6 +227,8 @@ class SliceServiceServicerImpl(SliceServiceServicer):
                 context_client.UnsetSlice(current_slice)
 
                 service_client.DeleteService(service_id)
+            service_client.close()
 
         context_client.RemoveSlice(request)
+        context_client.close()
         return Empty()
-- 
GitLab