From db0c5aad39824e05b2e7deb212abc23d8da7acae Mon Sep 17 00:00:00 2001
From: gifrerenom <lluis.gifre@cttc.es>
Date: Tue, 23 Apr 2024 09:53:33 +0000
Subject: [PATCH] Device component - OpenConfig driver:

- Fixes in per-vendor specificities
- Cosmetic improvements
---
 src/device/service/drivers/openconfig/templates/Tools.py      | 4 ++--
 src/device/service/drivers/openconfig/templates/__init__.py   | 3 ++-
 .../openconfig/templates/network_instance/edit_config.xml     | 2 +-
 3 files changed, 5 insertions(+), 4 deletions(-)

diff --git a/src/device/service/drivers/openconfig/templates/Tools.py b/src/device/service/drivers/openconfig/templates/Tools.py
index d49d66c7a..c4ef22b1e 100644
--- a/src/device/service/drivers/openconfig/templates/Tools.py
+++ b/src/device/service/drivers/openconfig/templates/Tools.py
@@ -61,8 +61,8 @@ def generate_templates(resource_key: str, resource_value: str, delete: bool,vend
         elif "inter_instance_policies" in resource_key:
             result_templates.append(associate_RP_to_NI(data))
         elif "protocols" in resource_key:
-            result_templates.append(add_protocol_NI(data, vendor, delete))
-            # if vendor == "ADVA": result_templates.append(add_protocol_NI(data, vendor, delete))
+            if vendor is None or vendor == "ADVA":
+                result_templates.append(add_protocol_NI(data, vendor, delete))
         elif "table_connections" in resource_key:
             result_templates.append(create_table_conns(data, delete))
         elif "interface" in resource_key:
diff --git a/src/device/service/drivers/openconfig/templates/__init__.py b/src/device/service/drivers/openconfig/templates/__init__.py
index 5c5424d28..969ca9f60 100644
--- a/src/device/service/drivers/openconfig/templates/__init__.py
+++ b/src/device/service/drivers/openconfig/templates/__init__.py
@@ -121,7 +121,8 @@ def compose_config( # template generation
             templates.append(JINJA_ENV.get_template('acl/acl-set/acl-entry/edit_config.xml'))
             templates.append(JINJA_ENV.get_template('acl/interfaces/ingress/edit_config.xml'))
         data : Dict[str, Any] = json.loads(resource_value)
-        operation = 'delete' if delete else ''
+        operation = 'delete' if delete else 'merge' # others
+        #operation = 'delete' if delete else '' # ipinfusion?
 
         return [
             '<config>{:s}</config>'.format(
diff --git a/src/device/service/drivers/openconfig/templates/network_instance/edit_config.xml b/src/device/service/drivers/openconfig/templates/network_instance/edit_config.xml
index 891881867..6b6b733da 100644
--- a/src/device/service/drivers/openconfig/templates/network_instance/edit_config.xml
+++ b/src/device/service/drivers/openconfig/templates/network_instance/edit_config.xml
@@ -1,5 +1,5 @@
 <network-instances xmlns="http://openconfig.net/yang/network-instance">
-    <network-instance{% if operation is defined  %} xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0" nc:operation="{{operation}}"{% endif %}>
+    <network-instance{% if operation is defined %} xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0" nc:operation="{{operation}}"{% endif %}>
         <name>{{name}}</name>
         {% if operation is not defined or operation != 'delete' %}
         <config>
-- 
GitLab