2 * ============LICENSE_START=======================================================
4 * ================================================================================
5 * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
6 * ================================================================================
7 * Licensed under the Apache License, Version 2.0 (the "License");
8 * you may not use this file except in compliance with the License.
9 * You may obtain a copy of the License at
11 * http://www.apache.org/licenses/LICENSE-2.0
13 * Unless required by applicable law or agreed to in writing, software
14 * distributed under the License is distributed on an "AS IS" BASIS,
15 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 * See the License for the specific language governing permissions and
17 * limitations under the License.
18 * ============LICENSE_END=========================================================
21 package org.openecomp.sdc.be.datamodel.utils;
23 import org.apache.commons.codec.binary.Base64;
24 import org.openecomp.sdc.be.info.ArtifactTemplateInfo;
25 import org.openecomp.sdc.be.model.ArtifactDefinition;
26 import org.openecomp.sdc.common.api.ArtifactGroupTypeEnum;
27 import org.openecomp.sdc.common.api.ArtifactTypeEnum;
28 import org.openecomp.sdc.common.api.Constants;
29 import org.openecomp.sdc.common.util.ValidationUtils;
31 import java.util.ArrayList;
32 import java.util.HashMap;
33 import java.util.List;
35 import java.util.Map.Entry;
36 import java.util.stream.Collectors;
38 public class ArtifactUtils {
40 public static ArtifactDefinition findMasterArtifact(Map<String, ArtifactDefinition> deplymentArtifact, List<ArtifactDefinition> artifacts, List<String> artifactsList) {
41 for (String artifactUid : artifactsList) {
42 for (Entry<String, ArtifactDefinition> entry : deplymentArtifact.entrySet()) {
43 ArtifactDefinition artifact = entry.getValue();
44 if (artifactUid.equalsIgnoreCase(artifact.getUniqueId())) {
45 artifacts.add(artifact);
50 if (artifacts.size() == 1) {
51 return artifacts.get(0);
53 ArtifactDefinition masterArtifact = null;
54 for (ArtifactDefinition artifactInfo : artifacts) {
55 String atrifactType = artifactInfo.getArtifactType();
56 if (atrifactType.equalsIgnoreCase(ArtifactTypeEnum.HEAT_VOL.getType()) || atrifactType.equalsIgnoreCase(ArtifactTypeEnum.HEAT_NET.getType())) {
57 masterArtifact = artifactInfo;
60 if (atrifactType.equalsIgnoreCase(ArtifactTypeEnum.HEAT.getType())) {
61 masterArtifact = artifactInfo;
65 return masterArtifact;
68 public static Map<String, Object> buildJsonForUpdateArtifact(String artifactId, String artifactName, String artifactType,
69 ArtifactGroupTypeEnum artifactGroupType, String label, String displayName, String description,
70 byte[] artifactContentent, List<ArtifactTemplateInfo> updatedRequiredArtifacts, boolean isFromCsar) {
72 Map<String, Object> json = new HashMap<>();
73 if (artifactId != null && !artifactId.isEmpty())
74 json.put(Constants.ARTIFACT_ID, artifactId);
76 json.put(Constants.ARTIFACT_NAME, artifactName);
77 json.put(Constants.ARTIFACT_TYPE, artifactType);
78 json.put(Constants.ARTIFACT_DESCRIPTION, description);
79 json.put(Constants.IS_FROM_CSAR, isFromCsar);
81 String encodedPayload = Base64.encodeBase64String(artifactContentent);
83 json.put(Constants.ARTIFACT_PAYLOAD_DATA, encodedPayload);
84 json.put(Constants.ARTIFACT_DISPLAY_NAME, displayName);
85 json.put(Constants.ARTIFACT_LABEL, label);
86 json.put(Constants.ARTIFACT_GROUP_TYPE, artifactGroupType.getType());
87 json.put(Constants.REQUIRED_ARTIFACTS,
88 (updatedRequiredArtifacts == null || updatedRequiredArtifacts.isEmpty()) ? new ArrayList<>()
89 : updatedRequiredArtifacts.stream()
90 .filter(e -> e.getType().equals(ArtifactTypeEnum.HEAT_ARTIFACT.getType())
91 || e.getType().equals(ArtifactTypeEnum.HEAT_NESTED.getType()))
92 .map(ArtifactTemplateInfo::getFileName).collect(Collectors.toList()));
96 public static Map<String, Object> buildJsonForArtifact(ArtifactTemplateInfo artifactTemplateInfo,
97 byte[] artifactContentent, int atrifactLabelCounter, boolean isFromcsar) {
99 Map<String, Object> json = new HashMap<>();
100 String artifactName = artifactTemplateInfo.getFileName();
102 json.put(Constants.ARTIFACT_NAME, artifactTemplateInfo.getFileName());
103 json.put(Constants.ARTIFACT_TYPE, artifactTemplateInfo.getType());
104 json.put(Constants.ARTIFACT_DESCRIPTION, "created from csar");
105 json.put(Constants.IS_FROM_CSAR, isFromcsar);
107 String encodedPayload = Base64.encodeBase64String(artifactContentent);
109 json.put(Constants.ARTIFACT_PAYLOAD_DATA, encodedPayload);
110 String displayName = artifactName;
111 if (artifactName.lastIndexOf(".") > 0)
112 displayName = artifactName.substring(0, artifactName.lastIndexOf("."));
113 json.put(Constants.ARTIFACT_DISPLAY_NAME, displayName);
114 String label = ValidationUtils.normalizeArtifactLabel(artifactTemplateInfo.getType() + atrifactLabelCounter);
115 json.put(Constants.ARTIFACT_LABEL, label);
116 json.put(Constants.ARTIFACT_GROUP_TYPE, ArtifactGroupTypeEnum.DEPLOYMENT.getType());
117 List<ArtifactTemplateInfo> requiredArtifacts = artifactTemplateInfo.getRelatedArtifactsInfo();
118 json.put(Constants.REQUIRED_ARTIFACTS,
119 (requiredArtifacts == null || requiredArtifacts.isEmpty()) ? new ArrayList<>()
120 : requiredArtifacts.stream()
121 .filter(e -> e.getType().equals(ArtifactTypeEnum.HEAT_ARTIFACT.getType())
122 || e.getType().equals(ArtifactTypeEnum.HEAT_NESTED.getType()))
123 .map(ArtifactTemplateInfo::getFileName).collect(Collectors.toList()));
127 public static ArtifactDefinition findArtifactInList(List<ArtifactDefinition> createdArtifacts, String artifactId) {
128 for (ArtifactDefinition artifact : createdArtifacts) {
129 if (artifact.getUniqueId().equals(artifactId)) {