From 0a03b17f330185b0832c8d737ee4ccb8f0d8d2ac Mon Sep 17 00:00:00 2001
From: gifrerenom <lluis.gifre@cttc.es>
Date: Tue, 28 Mar 2023 15:25:36 +0000
Subject: [PATCH] Device component:

- Removed endpoints when running SetDevice method in ConfigureDevice for performance enhancement.
---
 src/device/service/DeviceServiceServicerImpl.py | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/src/device/service/DeviceServiceServicerImpl.py b/src/device/service/DeviceServiceServicerImpl.py
index 2b08b6c7e..205d769ac 100644
--- a/src/device/service/DeviceServiceServicerImpl.py
+++ b/src/device/service/DeviceServiceServicerImpl.py
@@ -160,6 +160,12 @@ class DeviceServiceServicerImpl(DeviceServiceServicer):
                 for error in errors: LOGGER.error(error)
                 raise OperationFailedException('ConfigureDevice', extra_details=errors)
 
+            # Context Performance+Scalability enhancement:
+            # This method, besides P4 logic, does not add/update/delete endpoints.
+            # Remove endpoints to reduce number of inserts done by Context.
+            # TODO: Add logic to inspect endpoints and keep only those ones modified with respect to Context.
+            del device.device_endpoints[:]
+
             # Note: Rules are updated by configure_rules() and deconfigure_rules() methods.
             device_id = context_client.SetDevice(device)
             return device_id
-- 
GitLab