aboutsummaryrefslogtreecommitdiffstats
path: root/catalog-be/src/main/java/org/openecomp/sdc/be/components/csar/YamlTemplateParsingHandler.java
diff options
context:
space:
mode:
authorLiang Ding <liang.ding@intel.com>2019-04-15 00:05:05 -0700
committerOfir Sonsino <ofir.sonsino@intl.att.com>2019-10-30 07:56:21 +0000
commit8ff60789e080dd99c604d31a6e754be164fba11e (patch)
treebae4286ab2b19a0d0a3a6ebedd57e17aa42dceea /catalog-be/src/main/java/org/openecomp/sdc/be/components/csar/YamlTemplateParsingHandler.java
parentc42c9f75adb72f80e57694b5bf67db7c94f33a89 (diff)
add artifacts support in TOSCA exported yml file
Change-Id: I56f8a6a1ce758876e83a7ee8318b79644ae7d5cb Issue-ID: SDC-1952 Signed-off-by: Liang Ding <liang.ding@intel.com>
Diffstat (limited to 'catalog-be/src/main/java/org/openecomp/sdc/be/components/csar/YamlTemplateParsingHandler.java')
-rw-r--r--catalog-be/src/main/java/org/openecomp/sdc/be/components/csar/YamlTemplateParsingHandler.java67
1 files changed, 67 insertions, 0 deletions
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 7b3d4fac25..cff6c26e58 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
@@ -467,6 +467,7 @@ public class YamlTemplateParsingHandler {
setToscaResourceType(createdNodesToscaResourceNames, nodeTemplateInfo, nodeTemplateJsonMap);
setRequirements(nodeTemplateInfo, nodeTemplateJsonMap);
setCapabilities(nodeTemplateInfo, nodeTemplateJsonMap);
+ setArtifacts(nodeTemplateInfo, nodeTemplateJsonMap);
updateProperties(nodeTemplateInfo, nodeTemplateJsonMap);
setDirectives(nodeTemplateInfo, nodeTemplateJsonMap);
setNodeFilter(nodeTemplateInfo, nodeTemplateJsonMap);
@@ -515,6 +516,15 @@ public class YamlTemplateParsingHandler {
}
}
+ private void setArtifacts(UploadComponentInstanceInfo nodeTemplateInfo, Map<String, Object> nodeTemplateJsonMap) {
+ if (nodeTemplateJsonMap.containsKey(ARTIFACTS.getElementName())) {
+ Map<String, Map<String, UploadArtifactInfo>> eitherArtifactsRes = createArtifactsModuleFromYaml(nodeTemplateJsonMap);
+ if (!eitherArtifactsRes.isEmpty()) {
+ nodeTemplateInfo.setArtifacts(eitherArtifactsRes);
+ }
+ }
+ }
+
private void setRequirements(UploadComponentInstanceInfo nodeTemplateInfo, Map<String, Object> nodeTemplateJsonMap) {
if (nodeTemplateJsonMap.containsKey(REQUIREMENTS.getElementName())) {
Map<String, List<UploadReqInfo>> regResponse = createReqModuleFromYaml(nodeTemplateJsonMap);
@@ -591,6 +601,63 @@ public class YamlTemplateParsingHandler {
}
@SuppressWarnings("unchecked")
+ private Map<String, Map<String, UploadArtifactInfo>> createArtifactsModuleFromYaml(Map<String, Object> nodeTemplateJsonMap) {
+ Map<String, Map<String, UploadArtifactInfo>> moduleArtifacts = new HashMap<>();
+ Either<List<Object>, ResultStatusEnum> ArtifactsListRes =
+ findFirstToscaListElement(nodeTemplateJsonMap, ARTIFACTS);
+ if (ArtifactsListRes.isLeft()) {
+ for (Object jsonArtifactObj : ArtifactsListRes.left().value()) {
+ String key = ((Map<String, Object>) jsonArtifactObj).keySet().iterator().next();
+ Object artifactJson = ((Map<String, Object>) jsonArtifactObj).get(key);
+ addModuleNodeTemplateArtifacts(moduleArtifacts, artifactJson, key);
+ }
+ } else {
+ Either<Map<String, Map<String, Object>>, ResultStatusEnum> ArtifactsMapRes =
+ findFirstToscaMapElement(nodeTemplateJsonMap, ARTIFACTS);
+ if (ArtifactsMapRes.isLeft()) {
+ for (Map.Entry<String, Map<String, Object>> entry : ArtifactsMapRes.left().value().entrySet()) {
+ String artifactName = entry.getKey();
+ Object artifactJson = entry.getValue();
+ addModuleNodeTemplateArtifacts(moduleArtifacts, artifactJson, artifactName);
+ }
+ }
+ }
+ return moduleArtifacts;
+ }
+
+ private void addModuleNodeTemplateArtifacts(Map<String, Map<String, UploadArtifactInfo>> moduleArtifacts, Object artifactJson, String artifactName) {
+
+ UploadArtifactInfo artifact = buildModuleNodeTemplateArtifact(artifactJson);
+ artifact.setName(artifactName);
+ if (moduleArtifacts.containsKey(ARTIFACTS.getElementName())) {
+ moduleArtifacts.get(ARTIFACTS.getElementName()).put(artifactName, artifact);
+ } else {
+ Map<String, UploadArtifactInfo> map = new HashMap<>();
+ map.put(artifactName, artifact);
+ moduleArtifacts.put(ARTIFACTS.getElementName(), map);
+ }
+ }
+
+ @SuppressWarnings("unchecked")
+ private UploadArtifactInfo buildModuleNodeTemplateArtifact(Object artifactObject) {
+ UploadArtifactInfo artifactTemplateInfo = new UploadArtifactInfo();
+ if (artifactObject instanceof Map) {
+ fillArtifact(artifactTemplateInfo, (Map<String, Object>) artifactObject);
+ }
+ return artifactTemplateInfo;
+ }
+
+ private void fillArtifact(UploadArtifactInfo artifactTemplateInfo, Map<String, Object> nodeTemplateJsonMap) {
+ if (nodeTemplateJsonMap.containsKey(TYPE.getElementName())) {
+ artifactTemplateInfo.setType((String) nodeTemplateJsonMap.get(TYPE.getElementName()));
+ }
+ if (nodeTemplateJsonMap.containsKey(FILE.getElementName())) {
+ artifactTemplateInfo.setFile((String) nodeTemplateJsonMap.get(FILE.getElementName()));
+ }
+ }
+
+
+ @SuppressWarnings("unchecked")
private Map<String, List<UploadCapInfo>> createCapModuleFromYaml(Map<String, Object> nodeTemplateJsonMap) {
Map<String, List<UploadCapInfo>> moduleCap = new HashMap<>();
Either<List<Object>, ResultStatusEnum> capabilitiesListRes =