From c0edbf1ee7ceb3939e2197042279c4775c98b42c Mon Sep 17 00:00:00 2001
From: gifrerenom <lluis.gifre@cttc.es>
Date: Wed, 6 Mar 2024 19:00:49 +0000
Subject: [PATCH] Optical component:

- Pre-merge cleanup
---
 proto/context.proto                           |  4 +-
 proto/openconfig_device.proto                 |  1 -
 .../service/ContextServiceServicerImpl.py     |  2 +-
 src/device/service/DeviceService.py           |  1 -
 .../service/DeviceServiceServicerImpl.py      | 20 +++----
 src/device/service/OpenConfigServicer.py      | 56 +++----------------
 src/device/service/drivers/__init__.py        |  8 +--
 .../drivers/oc_driver/templates/Tools.py      |  1 +
 8 files changed, 26 insertions(+), 67 deletions(-)

diff --git a/proto/context.proto b/proto/context.proto
index a734b3a96..8a6b019dc 100644
--- a/proto/context.proto
+++ b/proto/context.proto
@@ -211,8 +211,8 @@ enum DeviceDriverEnum {
   DEVICEDRIVER_XR = 6;
   DEVICEDRIVER_IETF_L2VPN = 7;
   DEVICEDRIVER_GNMI_OPENCONFIG = 8;
-  DEVICEDRIVER_IETF_ACTN = 9;
-  DEVICEDRIVER_FLEXSCALE = 10;
+  DEVICEDRIVER_FLEXSCALE = 9;
+  DEVICEDRIVER_IETF_ACTN = 10;
   DEVICEDRIVER_OC = 11;
 }
 
diff --git a/proto/openconfig_device.proto b/proto/openconfig_device.proto
index c622c77e4..913ac247e 100644
--- a/proto/openconfig_device.proto
+++ b/proto/openconfig_device.proto
@@ -16,7 +16,6 @@ syntax = "proto3";
 package openconfig_device;
 
 import "context.proto";
-import "monitoring.proto";
 
 service OpenConfigService {
   rpc AddOpenConfigDevice   (context.OpticalConfig) returns (context.OpticalConfigId) {}
diff --git a/src/context/service/ContextServiceServicerImpl.py b/src/context/service/ContextServiceServicerImpl.py
index de6b02a56..a102fa176 100644
--- a/src/context/service/ContextServiceServicerImpl.py
+++ b/src/context/service/ContextServiceServicerImpl.py
@@ -45,7 +45,7 @@ from .database.Slice import (
     slice_delete, slice_get, slice_list_ids, slice_list_objs, slice_select, slice_set, slice_unset)
 from .database.Topology import (
     topology_delete, topology_get, topology_get_details, topology_list_ids, topology_list_objs, topology_set)
-from .database.OpticalConfig import (set_opticalconfig,select_opticalconfig,get_opticalconfig)
+from .database.OpticalConfig import set_opticalconfig, select_opticalconfig, get_opticalconfig
 
 LOGGER = logging.getLogger(__name__)
 
diff --git a/src/device/service/DeviceService.py b/src/device/service/DeviceService.py
index 544f250f6..c7868e445 100644
--- a/src/device/service/DeviceService.py
+++ b/src/device/service/DeviceService.py
@@ -39,7 +39,6 @@ class DeviceService(GenericGrpcService):
         self.monitoring_loops.start()
         add_DeviceServiceServicer_to_server(self.device_servicer, self.server)
         add_OpenConfigServiceServicer_to_server(self.openconfig_device_servicer,self.server)
-        
 
     def stop(self):
         super().stop()
diff --git a/src/device/service/DeviceServiceServicerImpl.py b/src/device/service/DeviceServiceServicerImpl.py
index 6abb06dd0..76fb65454 100644
--- a/src/device/service/DeviceServiceServicerImpl.py
+++ b/src/device/service/DeviceServiceServicerImpl.py
@@ -20,7 +20,9 @@ from common.Settings import ENVVAR_SUFIX_SERVICE_HOST, get_env_var_name
 from common.method_wrappers.Decorator import MetricTypeEnum, MetricsPool, safe_and_metered_rpc_method
 from common.method_wrappers.ServiceExceptions import NotFoundException, OperationFailedException
 from common.proto.context_pb2 import (
-    Device, DeviceConfig, DeviceDriverEnum, DeviceId, DeviceOperationalStatusEnum, Empty, Link,OpticalConfig,OpticalConfigId)
+    Device, DeviceConfig, DeviceDriverEnum, DeviceId, DeviceOperationalStatusEnum, Empty, Link,
+    OpticalConfig, OpticalConfigId
+)
 from common.proto.device_pb2 import MonitoringSettings
 from common.proto.device_pb2_grpc import DeviceServiceServicer
 from common.tools.context_queries.Device import get_device
@@ -54,15 +56,14 @@ class DeviceServiceServicerImpl(DeviceServiceServicer):
 
     @safe_and_metered_rpc_method(METRICS_POOL, LOGGER)
     def AddDevice(self, request : Device, context : grpc.ServicerContext) -> DeviceId:
-  
         t0 = time.time()
 
         device_uuid = request.device_id.device_uuid.uuid
 
         connection_config_rules = check_connect_rules(request.device_config)
-        if (request.device_drivers[0]!= DeviceDriverEnum.DEVICEDRIVER_OC) :
+        if request.device_drivers[0] != DeviceDriverEnum.DEVICEDRIVER_OC:
             check_no_endpoints(request.device_endpoints)
-            
+
         t1 = time.time()
 
         context_client = ContextClient()
@@ -143,13 +144,12 @@ class DeviceServiceServicerImpl(DeviceServiceServicer):
                 device.device_operational_status = DeviceOperationalStatusEnum.DEVICEOPERATIONALSTATUS_ENABLED
            
             # temporary line 
-            if (request.device_drivers[0]== DeviceDriverEnum.DEVICEDRIVER_OC and len(request.device_endpoints)>0):
-             
-                for endpoint in request.device_endpoints:
-                    #endpoint.endpoint_id.device_id.CopyFrom(device.device_id)
-                    pass
+            if request.device_drivers[0] == DeviceDriverEnum.DEVICEDRIVER_OC and len(request.device_endpoints) > 0:
+                #for endpoint in request.device_endpoints:
+                #    #endpoint.endpoint_id.device_id.CopyFrom(device.device_id)
+                #    pass
                 device.device_endpoints.extend(request.device_endpoints)
-          
+
             device_id = context_client.SetDevice(device)
 
             t10 = time.time()
diff --git a/src/device/service/OpenConfigServicer.py b/src/device/service/OpenConfigServicer.py
index fc4e75e67..1060449f1 100644
--- a/src/device/service/OpenConfigServicer.py
+++ b/src/device/service/OpenConfigServicer.py
@@ -12,16 +12,12 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-import grpc, logging, os, time,json
-from typing import Dict
-from prometheus_client import Histogram
-from common.Constants import ServiceNameEnum
-from common.Settings import ENVVAR_SUFIX_SERVICE_HOST, get_env_var_name
-from common.method_wrappers.Decorator import MetricTypeEnum, MetricsPool, safe_and_metered_rpc_method
-from common.method_wrappers.ServiceExceptions import NotFoundException, OperationFailedException
+import grpc, logging, json
+from common.method_wrappers.Decorator import MetricsPool, safe_and_metered_rpc_method
+from common.method_wrappers.ServiceExceptions import NotFoundException
 from common.proto.context_pb2 import (
-    Device, DeviceConfig, DeviceDriverEnum, DeviceId, DeviceOperationalStatusEnum, Empty, Link,OpticalConfig,OpticalConfigId ,OpticalConfig,OpticalConfigList)
-from common.proto.device_pb2 import MonitoringSettings
+    Device, DeviceId, DeviceOperationalStatusEnum, Empty, OpticalConfig, OpticalConfig
+)
 from common.proto.device_pb2_grpc import DeviceServiceServicer
 from common.tools.context_queries.Device import get_device
 from common.tools.mutex_queues.MutexQueues import MutexQueues
@@ -29,13 +25,8 @@ from context.client.ContextClient import ContextClient
 from .driver_api._Driver import _Driver
 from .driver_api.DriverInstanceCache import DriverInstanceCache, get_driver
 from .monitoring.MonitoringLoops import MonitoringLoops
-from .drivers.oc_driver.OCDriver import OCDriver
-from .ErrorMessages import ERROR_MISSING_DRIVER, ERROR_MISSING_KPI
 from .Tools import extract_resources
-from .Tools import (
-    check_connect_rules, check_no_endpoints, compute_rules_to_add_delete, configure_rules, deconfigure_rules,
-    get_device_controller_uuid, populate_config_rules, populate_endpoint_monitoring_resources, populate_endpoints,
-    populate_initial_config_rules, subscribe_kpi, unsubscribe_kpi, update_endpoints)
+from .Tools import check_no_endpoints
 
 LOGGER = logging.getLogger(__name__)
 
@@ -52,12 +43,10 @@ class OpenConfigServicer(DeviceServiceServicer):
         self.monitoring_loops = monitoring_loops
         self.mutex_queues = MutexQueues()
         LOGGER.debug('Servicer Created')
-    
+
     @safe_and_metered_rpc_method(METRICS_POOL, LOGGER)
     def AddOpenConfigDevice(self, request : OpticalConfig, context : grpc.ServicerContext) -> DeviceId:
-           
             device_uuid = request.device_id.device_uuid.uuid
-       
             check_no_endpoints(request.device_endpoints)
 
             context_client = ContextClient()
@@ -78,56 +67,29 @@ class OpenConfigServicer(DeviceServiceServicer):
 
             # update device_uuid to honor UUID provided by Context
             device_uuid = device.device_id.device_uuid.uuid
-           
-     
-            
             self.mutex_queues.wait_my_turn(device_uuid)
-           
             try:
-               
                 device_id = context_client.SetDevice(device)
             except Exception as error :
                 LOGGER.debug("error %s",error)    
-                
-   
 
- 
-    #modified Andrea
     @safe_and_metered_rpc_method(METRICS_POOL, LOGGER)
-    def ConfigureOpticalDevice (self, request : OpticalConfig, context:grpc.ServicerContext) -> Empty:
-     
+    def ConfigureOpticalDevice (self, request : OpticalConfig, context : grpc.ServicerContext) -> Empty:
         device_uuid = request.opticalconfig_id.opticalconfig_uuid
-      
         resources=[]
-        result=None
-
         config =json.loads(request.config)
-       
-       
-   
         try:
-            
             context_client = ContextClient()
-           
             device = get_device(
                 context_client, device_uuid, rw_copy=True, include_endpoints=True, include_components=False,
                 include_config_rules=False)
-           
             if device is None:
-              
                 raise NotFoundException('Device', device_uuid, extra_details='loading in ConfigureDevice')
             resources,conditions=extract_resources(config=config,device=device)
             driver : _Driver = get_driver(self.driver_instance_cache, device)
-          
             result = driver.SetConfig(resources=resources,conditions=conditions)
-            #todo
-            #add a control with the NETCONF get
+            #TODO: add a control with the NETCONF get
             #driver.GetConfig(resource_keys=filter_fields)
-            
         except Exception as e:
                 LOGGER.info("error in configuring %s",e)    
-
-        
-    
         return Empty()
- 
\ No newline at end of file
diff --git a/src/device/service/drivers/__init__.py b/src/device/service/drivers/__init__.py
index 4c0a89ebd..1e8cff605 100644
--- a/src/device/service/drivers/__init__.py
+++ b/src/device/service/drivers/__init__.py
@@ -167,19 +167,17 @@ if LOAD_ALL_DEVICE_DRIVERS:
                 FilterFieldEnum.DRIVER: DeviceDriverEnum.DEVICEDRIVER_FLEXSCALE,
             }
         ]))
+
 if LOAD_ALL_DEVICE_DRIVERS:
     from .oc_driver.OCDriver import OCDriver # pylint: disable=wrong-import-position
     DRIVERS.append(
         (OCDriver, [
-            
             {
                 # Real Packet Router, specifying OpenConfig Driver => use OpenConfigDriver
-                FilterFieldEnum.DEVICE_TYPE:[ 
-                  
+                FilterFieldEnum.DEVICE_TYPE: [
                     DeviceTypeEnum.OPTICAL_ROADM,
                     DeviceTypeEnum.OPTICAL_TRANSPONDER
-                    
-                                             ],
+                ],
                 FilterFieldEnum.DRIVER     : DeviceDriverEnum.DEVICEDRIVER_OC,
             }
         ]))
diff --git a/src/device/service/drivers/oc_driver/templates/Tools.py b/src/device/service/drivers/oc_driver/templates/Tools.py
index 1af7b9b7f..909bdd83b 100644
--- a/src/device/service/drivers/oc_driver/templates/Tools.py
+++ b/src/device/service/drivers/oc_driver/templates/Tools.py
@@ -11,6 +11,7 @@
 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 # See the License for the specific language governing permissions and
 # limitations under the License.
+
 import re,logging
 import json
 import lxml.etree as ET
-- 
GitLab