From 20fd29c4ce840628e2a0f3c1659baa6f29ef6a49 Mon Sep 17 00:00:00 2001
From: gifrerenom <lluis.gifre@cttc.es>
Date: Wed, 16 Oct 2024 16:03:46 +0000
Subject: [PATCH] Service - L3 VPN gNMI OpenConfig Service Handler:

- Extended IP address setting recognition
---
 .../ConfigRuleComposer.py                     | 19 +++++++++++++++++--
 1 file changed, 17 insertions(+), 2 deletions(-)

diff --git a/src/service/service/service_handlers/l3nm_gnmi_openconfig/ConfigRuleComposer.py b/src/service/service/service_handlers/l3nm_gnmi_openconfig/ConfigRuleComposer.py
index 20595e896..777cc4588 100644
--- a/src/service/service/service_handlers/l3nm_gnmi_openconfig/ConfigRuleComposer.py
+++ b/src/service/service/service_handlers/l3nm_gnmi_openconfig/ConfigRuleComposer.py
@@ -85,8 +85,23 @@ class EndpointComposer:
             self.objekt = endpoint_obj
         if settings is None: return
         json_settings : Dict = settings.value
-        self.ipv4_address = json_settings['address_ip']
-        self.ipv4_prefix_len = json_settings['address_prefix']
+
+        if 'address_ip' in json_settings:
+            self.ipv4_address = json_settings['address_ip']
+        elif 'ip_address' in json_settings:
+            self.ipv4_address = json_settings['ip_address']
+        else:
+            MSG = 'IP Address not found. Tried: address_ip and ip_address. endpoint_obj={:s} settings={:s}'
+            LOGGER.warning(MSG.format(str(endpoint_obj), str(settings)))
+
+        if 'address_prefix' in json_settings:
+            self.ipv4_prefix_len = json_settings['address_prefix']
+        elif 'prefix_length' in json_settings:
+            self.ipv4_prefix_len = json_settings['prefix_length']
+        else:
+            MSG = 'IP Address Prefix not found. Tried: address_prefix and prefix_length. endpoint_obj={:s} settings={:s}'
+            LOGGER.warning(MSG.format(str(endpoint_obj), str(settings)))
+
         self.sub_interface_index = json_settings.get('index', 0)
 
     def get_config_rules(self, network_instance_name : str, delete : bool = False) -> List[Dict]:
-- 
GitLab