From 3c33df0dc2d58d8e8bdbb52c0ca1ce8f93bce415 Mon Sep 17 00:00:00 2001 From: JvD_Ericsson Date: Tue, 18 Jan 2022 10:17:58 +0000 Subject: [PATCH] Support node template artifact properties Add properties variable to relevant classes and update functions to set these vaules Added properties to an artifact in ETSI-VNF-SAMPLE.csar Issue-ID: SDC-3847 Signed-off-by: JvD_Ericsson Change-Id: Id4f835826be7556cd97403da2018644c6dfea95b --- .../components/csar/YamlTemplateParsingHandler.java | 7 +++++++ .../sdc/be/components/impl/ResourceBusinessLogic.java | 8 ++++++++ .../openecomp/sdc/be/tosca/ToscaExportHandler.java | 1 + .../sdc/be/tosca/model/ToscaTemplateArtifact.java | 3 +++ .../openecomp/sdc/be/model/UploadArtifactInfo.java | 1 + .../elements/ToscaArtifactDataDefinition.java | 3 +++ .../sdc/tosca/datatypes/model/ArtifactDefinition.java | 3 +++ .../test/resources/Files/ETSI/ETSI-VNF-SAMPLE.csar | Bin 2765 -> 2806 bytes 8 files changed, 26 insertions(+) diff --git a/catalog-be/src/main/java/org/openecomp/sdc/be/components/csar/YamlTemplateParsingHandler.java b/catalog-be/src/main/java/org/openecomp/sdc/be/components/csar/YamlTemplateParsingHandler.java index a991f7e0d4..3faf750a73 100644 --- a/catalog-be/src/main/java/org/openecomp/sdc/be/components/csar/YamlTemplateParsingHandler.java +++ b/catalog-be/src/main/java/org/openecomp/sdc/be/components/csar/YamlTemplateParsingHandler.java @@ -832,6 +832,13 @@ public class YamlTemplateParsingHandler { if (nodeTemplateJsonMap.containsKey(FILE.getElementName())) { artifactTemplateInfo.setFile((String) nodeTemplateJsonMap.get(FILE.getElementName())); } + if (nodeTemplateJsonMap.containsKey(PROPERTIES.getElementName())) { + Map> props = buildPropModuleFromYaml(nodeTemplateJsonMap); + if (!props.isEmpty()) { + List properties = props.values().stream().flatMap(Collection::stream).collect(toList()); + artifactTemplateInfo.setProperties(properties); + } + } } @SuppressWarnings("unchecked") diff --git a/catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/ResourceBusinessLogic.java b/catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/ResourceBusinessLogic.java index 666529986c..8c97a04a74 100644 --- a/catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/ResourceBusinessLogic.java +++ b/catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/ResourceBusinessLogic.java @@ -3409,6 +3409,14 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic { ToscaArtifactDataDefinition to = new ToscaArtifactDataDefinition(); to.setFile(entry.getValue().getFile()); to.setType(entry.getValue().getType()); + if(isNotEmpty(entry.getValue().getProperties())) { + Map newPropertiesMap = new HashMap<>(); + List artifactPropsInfo = entry.getValue().getProperties(); + for(UploadPropInfo propInfo: artifactPropsInfo) { + newPropertiesMap.put(propInfo.getName(), propInfo.getValue()); + } + to.setProperties(newPropertiesMap); + } toscaArtifacts.put(entry.getKey(), to); } componentInstance.setToscaArtifacts(toscaArtifacts); diff --git a/catalog-be/src/main/java/org/openecomp/sdc/be/tosca/ToscaExportHandler.java b/catalog-be/src/main/java/org/openecomp/sdc/be/tosca/ToscaExportHandler.java index cdd5d60ed4..b6bd2a3967 100644 --- a/catalog-be/src/main/java/org/openecomp/sdc/be/tosca/ToscaExportHandler.java +++ b/catalog-be/src/main/java/org/openecomp/sdc/be/tosca/ToscaExportHandler.java @@ -1548,6 +1548,7 @@ public class ToscaExportHandler { ToscaTemplateArtifact artifact = new ToscaTemplateArtifact(); artifact.setFile(entry.getValue().getFile()); artifact.setType(entry.getValue().getType()); + artifact.setProperties(entry.getValue().getProperties()); arts.put(entry.getKey(), artifact); } return arts; diff --git a/catalog-be/src/main/java/org/openecomp/sdc/be/tosca/model/ToscaTemplateArtifact.java b/catalog-be/src/main/java/org/openecomp/sdc/be/tosca/model/ToscaTemplateArtifact.java index 894a806de0..9824552f6f 100644 --- a/catalog-be/src/main/java/org/openecomp/sdc/be/tosca/model/ToscaTemplateArtifact.java +++ b/catalog-be/src/main/java/org/openecomp/sdc/be/tosca/model/ToscaTemplateArtifact.java @@ -22,10 +22,13 @@ package org.openecomp.sdc.be.tosca.model; import lombok.Getter; import lombok.Setter; +import java.util.Map; + @Getter @Setter public class ToscaTemplateArtifact { private String file; private String type; + private Map properties; } diff --git a/catalog-model/src/main/java/org/openecomp/sdc/be/model/UploadArtifactInfo.java b/catalog-model/src/main/java/org/openecomp/sdc/be/model/UploadArtifactInfo.java index 183f18c0b4..33fbc4aa0d 100644 --- a/catalog-model/src/main/java/org/openecomp/sdc/be/model/UploadArtifactInfo.java +++ b/catalog-model/src/main/java/org/openecomp/sdc/be/model/UploadArtifactInfo.java @@ -33,4 +33,5 @@ public class UploadArtifactInfo extends UploadInfo { private List validSourceTypes; private String file; private String type; + private List properties; } diff --git a/common-be/src/main/java/org/openecomp/sdc/be/datatypes/elements/ToscaArtifactDataDefinition.java b/common-be/src/main/java/org/openecomp/sdc/be/datatypes/elements/ToscaArtifactDataDefinition.java index 554d37e13a..64c7bf00b3 100644 --- a/common-be/src/main/java/org/openecomp/sdc/be/datatypes/elements/ToscaArtifactDataDefinition.java +++ b/common-be/src/main/java/org/openecomp/sdc/be/datatypes/elements/ToscaArtifactDataDefinition.java @@ -22,10 +22,13 @@ package org.openecomp.sdc.be.datatypes.elements; import lombok.Getter; import lombok.Setter; +import java.util.Map; + @Getter @Setter public class ToscaArtifactDataDefinition { private String file; private String type; + private Map properties; } diff --git a/common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/ArtifactDefinition.java b/common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/ArtifactDefinition.java index 90809f0304..ee6bbd092a 100644 --- a/common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/ArtifactDefinition.java +++ b/common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/ArtifactDefinition.java @@ -22,6 +22,8 @@ package org.onap.sdc.tosca.datatypes.model; import lombok.Getter; import lombok.Setter; +import java.util.Map; + @Getter @Setter public class ArtifactDefinition { @@ -31,4 +33,5 @@ public class ArtifactDefinition { private String repository; private String description; private String deploy_path; + private Map properties; } diff --git a/integration-tests/src/test/resources/Files/ETSI/ETSI-VNF-SAMPLE.csar b/integration-tests/src/test/resources/Files/ETSI/ETSI-VNF-SAMPLE.csar index 20ea03ba1e37ca78b81bd47301f49ac5f4d4be4b..85ce2c6418e5d12ab3290d1bc80a220eddfe3e47 100644 GIT binary patch delta 937 zcmV;a16KUa74{Xd>j4t4i8NF=aZQdf0{{RR4FCWZ0Fz+}7=Nu-&2HN;488}*I|#k> zG;i5%xfNK871+9AD|!`Fi%Nvak|)U?^7f--$F;*bE|%#KB;w!4j})au7fQh;C~bAr z&IaCs5BO!vI#JM7ZGay{W%!1FSg$06((5{QI(uLNe5*@f5l~Y^U`{c?p6*apM8V^s zhOk|)7;}DCxPKZfl&-3aB+RnnV^dX!NBo+!a7pmG1<93nRS#pN{oT3P=}nMiCoHM4 zq{o!=h$uu>H@ z_GHyp1S%3CH&W($jvdWrqa0#LK}RV`P@*w$%akwyx_v_WePrmX(lKP(ngAY=u|2xV z8&6+4->Na@P*7%w_m0SC=L`sY+&;2&FSj!|9x>Lv#Kuce2mOV3v~bo*ApJ^ebsK}u z-G+RhsecVRJJ#jlZjSmP4d=NYr&l_QsD!pLjCS9!Rv0Zgem1?6K{Rzm3rXda0*Y!F z2NywWH^sYRLoxM&^I((_Ei%u?6{oKLruG`Ym-GJOXBO2m6u# zfsOvaL%D}aWQ+6J(KHqkSpXo@B;#o^k)#&y>&^gyfLEd%#l*>I%4+0rKe=48QQgE- zkYc#Bcs;rP@>&??6YT$T&#qU|)y}xxfghhT82bb&a+QDgKWUZH*dOeVR>=F*;5Bzk zZ+}2<4SH|T**-hRM=d=&UT23X8JuLkky%Ct&UCntDL_s@mB! zLiZhzD>l{B5vqGE&gNu4GdA7J#9bu;-#1*%N!||@#4 z{lZw7A)gMo9YlU)XiHQ1ar^m>?jq1g>$+b30ka(iBm@qxi8NF=aZQdf0{{RR4Uj4gZiIr0wZ_Bp`0{{Sd43qf*9e-BMj?*v@zE|oy_{NDq#jUrM z*ou{4L9p7Z<&DRUg<}WX3F_N3cG7IJLz5N7hpO@XeKVf{%}gx^4{clc){f@ekXLgiw0j#9pTY7QlD91Qr1`MFi#)6YTMTsv-&=PYs0qcEgzS z$HFyWp?`FBQzT)Q6(8HWK0V;yq=id@*BwZ%ysHNo6YcNL#a?fQBs*bAjU_#%oJT|< zvZnQo3uwr0Sc8re!rDnNEL5&Fl05+{J>a%XMmeQMlt0B0iW~>65VeoGPa`iY>Wp?+ zF@a|xdTo!-yB>bE+JnR#d<)wRt$~N&T3^B>J%6jZ;u8q-O?ZqE!H2b~jAoBkeMO)m z734%$`J2;A)lNxAnbYjT%|j?zkuTbW8F#SREj$4uf(GVXPpGnujH(5W6-(Vu-*%2 zgMZG>=W>6zRQfRu=eeGyS2~NRgtjqEcHgp27%e&ewu6&VG ziuc8iVj2X?V3ZLZR-R8!oVxm(+H3q?U-xG}3#isAj;$fvGV(+$SHYQiqJW5a5mKim z_^aV$FBHlsT80sviob=2u@e{7X>HogQY#!HJg zv+FOf6*8Y;|Cf7qyNRxG#vM=m{FK4iFQ8(r^7rsbPbtybGHlz^ncc% z_Xg$mOFT}eLQ&qlNT!513BM68BZM<27s3K$;t6Ilh-)K8dwlYU>xK6dZ~|+M?L6yF z7c205(w|Bj;JcYS+(LJ6isGHHS-(h+<~L-dhxfr4rZ{Lb2B*VB$B7P9UiqP3gN-7e z;qa&}LbWh=3)xWyIYQ)T)LA$e{}H(Te4x7sG}6LtH-7+7O9KRx%n2H^WCaEU4t