diff options
Diffstat (limited to 'nokiav2/driver/src/main/java/org/onap/vfc/nfvo/driver/vnfm/svnfm/nokia/packagetransformer/OnapVnfdBuilder.java')
-rw-r--r-- | nokiav2/driver/src/main/java/org/onap/vfc/nfvo/driver/vnfm/svnfm/nokia/packagetransformer/OnapVnfdBuilder.java | 81 |
1 files changed, 48 insertions, 33 deletions
diff --git a/nokiav2/driver/src/main/java/org/onap/vfc/nfvo/driver/vnfm/svnfm/nokia/packagetransformer/OnapVnfdBuilder.java b/nokiav2/driver/src/main/java/org/onap/vfc/nfvo/driver/vnfm/svnfm/nokia/packagetransformer/OnapVnfdBuilder.java index 01256aa0..03c27a83 100644 --- a/nokiav2/driver/src/main/java/org/onap/vfc/nfvo/driver/vnfm/svnfm/nokia/packagetransformer/OnapVnfdBuilder.java +++ b/nokiav2/driver/src/main/java/org/onap/vfc/nfvo/driver/vnfm/svnfm/nokia/packagetransformer/OnapVnfdBuilder.java @@ -16,6 +16,7 @@ package org.onap.vfc.nfvo.driver.vnfm.svnfm.nokia.packagetransformer; +import com.google.common.annotations.VisibleForTesting; import com.google.gson.Gson; import com.google.gson.JsonArray; import com.google.gson.JsonElement; @@ -26,6 +27,7 @@ import org.yaml.snakeyaml.Yaml; import java.util.Map; import java.util.NoSuchElementException; import java.util.Set; +import java.util.regex.Pattern; import static org.onap.vfc.nfvo.driver.vnfm.svnfm.nokia.util.CbamUtils.child; import static org.onap.vfc.nfvo.driver.vnfm.svnfm.nokia.util.CbamUtils.childElement; @@ -39,6 +41,16 @@ public class OnapVnfdBuilder { public static final String PROPERTIES = "properties"; public static final String REQUIREMENTS = "requirements"; + @VisibleForTesting + static String indent(String content, int prefixSize) { + StringBuilder sb = new StringBuilder(); + for (int i = 0; i < prefixSize; i++) { + sb.append(" "); + } + Pattern pattern = Pattern.compile("^(.*)$", Pattern.MULTILINE); + return pattern.matcher(content).replaceAll(sb.toString() + "$1"); + } + /** * @param cbamVnfd the CBAM VNFD * @return the converted ONAP VNFD @@ -118,42 +130,45 @@ public class OnapVnfdBuilder { memorySize = childElement(child(child(virtualCompute, PROPERTIES), "virtual_memory"), "virtual_mem_size").getAsString(); } else if ("virtual_storage".equals(s)) { - String item = - " - virtual_storage:\n" + - " capability: tosca.capabilities.nfv.VirtualStorage\n" + - " node: " + next.getValue().getAsString() + "\n"; + String item = indent( + "- virtual_storage:\n" + + " capability: tosca.capabilities.nfv.VirtualStorage\n" + + " node: " + next.getValue().getAsString() + "\n", 4); body.append(item); } next.getValue(); } - String header = " " + name + ":\n" + - " type: tosca.nodes.nfv.VDU.Compute\n" + - " capabilities:\n" + - " virtual_compute:\n" + - " properties:\n" + - " virtual_memory:\n" + - " virtual_mem_size: " + memorySize + "\n" + - " virtual_cpu:\n" + - " num_virtual_cpu: " + cpuCount + "\n" + - " " + REQUIREMENTS + ":\n"; + String header = indent(name + ":\n" + + " type: tosca.nodes.nfv.VDU.Compute\n" + + " capabilities:\n" + + " virtual_compute:\n" + + indent( + "properties:\n" + + " virtual_memory:\n" + + " virtual_mem_size: " + memorySize + "\n" + + " virtual_cpu:\n" + + " num_virtual_cpu: " + cpuCount + "\n", 3) + + " " + REQUIREMENTS + ":\n", 2); return header + body.toString(); } private String buildEcp(String name, JsonElement ecp, Set<Map.Entry<String, JsonElement>> nodes) { if (ecp.getAsJsonObject().has(REQUIREMENTS)) { - JsonArray requirements = ecp.getAsJsonObject().get(REQUIREMENTS).getAsJsonArray(); - String icpName = getIcpName(requirements); + String icpName = getIcpName(ecp.getAsJsonObject().get(REQUIREMENTS).getAsJsonArray()); if (icpName != null) { - JsonObject icpNode = get(icpName, nodes).getAsJsonObject(); - if (icpNode.has(REQUIREMENTS)) { - requirements = icpNode.getAsJsonObject().get(REQUIREMENTS).getAsJsonArray(); - String vdu = getVdu(requirements); - if (vdu != null) { - JsonObject properties = child(icpNode, PROPERTIES); - return buildVduCpd(name, vdu, properties); - } - } + return buildIcp(name, icpName, nodes); + } + } + return ""; + } + + private String buildIcp(String name, String icpName, Set<Map.Entry<String, JsonElement>> nodes) { + JsonObject icpNode = get(icpName, nodes).getAsJsonObject(); + if (icpNode.has(REQUIREMENTS)) { + String vdu = getVdu(icpNode.getAsJsonObject().get(REQUIREMENTS).getAsJsonArray()); + if (vdu != null) { + return buildVduCpd(name, vdu, child(icpNode, PROPERTIES)); } } return ""; @@ -188,15 +203,15 @@ public class OnapVnfdBuilder { } private String buildVduCpd(String name, String vdu, JsonObject properties) { - return " " + name + ":\n" + - " type: tosca.nodes.nfv.VduCpd\n" + - " " + PROPERTIES + ":\n" + - " layer_protocol: " + childElement(properties, "layer_protocol").getAsString() + "\n" + - " role: leaf\n" + + return indent(name + ":\n" + + " type: tosca.nodes.nfv.VduCpd\n" + + " " + PROPERTIES + ":\n" + + " layer_protocol: " + childElement(properties, "layer_protocol").getAsString() + "\n" + + " role: leaf\n" + (properties.has(DESCRIPTION) ? - " description: " + childElement(properties, DESCRIPTION).getAsString() + "\n" : "") + - " requirements:\n" + - " - virtual_binding: " + vdu + "\n"; + " description: " + childElement(properties, DESCRIPTION).getAsString() + "\n" : "") + + " requirements:\n" + + " - virtual_binding: " + vdu + "\n", 2); } private String buildIcp(String name, JsonObject icp) { |