From 963b589dd350423780f0f27f43b11d17034303c6 Mon Sep 17 00:00:00 2001 From: Christos Tranoris Date: Fri, 28 Jun 2024 00:07:28 +0300 Subject: [PATCH] fix for https://labs.etsi.org/rep/osl/code/org.etsi.osl.tmf.api/-/issues/42 --- .../ServiceSpecificationRepoService.java | 2 +- .../etsi/osl/tmf/util/PrimitivesParser.java | 29 +++++++++++++++---- 2 files changed, 24 insertions(+), 7 deletions(-) diff --git a/src/main/java/org/etsi/osl/tmf/scm633/reposervices/ServiceSpecificationRepoService.java b/src/main/java/org/etsi/osl/tmf/scm633/reposervices/ServiceSpecificationRepoService.java index 9fd54747..3ebca014 100644 --- a/src/main/java/org/etsi/osl/tmf/scm633/reposervices/ServiceSpecificationRepoService.java +++ b/src/main/java/org/etsi/osl/tmf/scm633/reposervices/ServiceSpecificationRepoService.java @@ -1144,7 +1144,7 @@ public class ServiceSpecificationRepoService { return null; } - logger.error("nsdid returned: " + nsd.getName()); + logger.debug("nsdid returned: " + nsd.getName()); List newRfservices = new ArrayList<>(); diff --git a/src/main/java/org/etsi/osl/tmf/util/PrimitivesParser.java b/src/main/java/org/etsi/osl/tmf/util/PrimitivesParser.java index 64557ad5..645b2dbe 100644 --- a/src/main/java/org/etsi/osl/tmf/util/PrimitivesParser.java +++ b/src/main/java/org/etsi/osl/tmf/util/PrimitivesParser.java @@ -34,6 +34,7 @@ import org.yaml.snakeyaml.Yaml; import com.fasterxml.jackson.databind.ObjectMapper; import java.io.File; +import java.util.ArrayList; import java.util.HashMap; import java.util.Map; @@ -107,10 +108,20 @@ public class PrimitivesParser { public static JSONObject processNSD(NetworkServiceDescriptor nsd) { // Parse the NSD descriptor from string to YAML Yaml yaml = new Yaml(); - Map yamlMap = yaml.load(nsd.getDescriptor()); - - // Parse the NSD descriptor from YAML to JSONObject - JSONObject nsdJson = new JSONObject(yamlMap); + JSONObject nsdJson; + + Object obj = yaml.load(nsd.getDescriptor()); + + if ( obj instanceof ArrayList) { + // Parse the NSD descriptor from YAML to JSONObject + nsdJson = new JSONObject( (ArrayList)obj ); + + }else { + Map yamlMap = ( Map ) obj; + // Parse the NSD descriptor from YAML to JSONObject + nsdJson = new JSONObject(yamlMap); + } + return nsdJson; } @@ -164,8 +175,14 @@ public class PrimitivesParser { // Attach the empty array to the JSONObject under the key "vnfs" vnfs.put("vnfs", vnfsArray); - - JSONArray nsdArray = nsdJson.getJSONObject("nsd").getJSONArray("nsd"); + JSONArray nsdArray = null; + if ( nsdJson.has("nsd") ) { + nsdArray = nsdJson.getJSONObject("nsd").getJSONArray("nsd"); + } else { + nsdArray = new JSONArray(); + nsdArray.put(nsdJson); + } + // Assuming that there might be multiple 'nsd' entries, iterate over them processNSDEntries(nsdArray, vnfsArray); -- GitLab