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 import org.openecomp.sdc.common.api.Constants;
39 import org.openecomp.sdc.common.util.ValidationUtils;
40 public class ArtifactUtils {
42 public static ArtifactDefinition findMasterArtifact(Map<String, ArtifactDefinition> deplymentArtifact, List<ArtifactDefinition> artifacts, List<String> artifactsList) {
43 for (String artifactUid : artifactsList) {
44 for (Entry<String, ArtifactDefinition> entry : deplymentArtifact.entrySet()) {
45 ArtifactDefinition artifact = entry.getValue();
46 if (artifactUid.equalsIgnoreCase(artifact.getUniqueId())) {
47 artifacts.add(artifact);
52 if (artifacts.size() == 1) {
53 return artifacts.get(0);
55 ArtifactDefinition masterArtifact = null;
56 for (ArtifactDefinition artifactInfo : artifacts) {
57 String atrifactType = artifactInfo.getArtifactType();
58 if (atrifactType.equalsIgnoreCase(ArtifactTypeEnum.HEAT_VOL.getType()) || atrifactType.equalsIgnoreCase(ArtifactTypeEnum.HEAT_NET.getType())) {
59 masterArtifact = artifactInfo;
62 if (atrifactType.equalsIgnoreCase(ArtifactTypeEnum.HEAT.getType())) {
63 masterArtifact = artifactInfo;
67 return masterArtifact;
70 public static Map<String, Object> buildJsonForUpdateArtifact(String artifactId, String artifactName, String artifactType,
71 ArtifactGroupTypeEnum artifactGroupType, String label, String displayName, String description,
72 byte[] artifactContentent, List<ArtifactTemplateInfo> updatedRequiredArtifacts, boolean isFromCsar) {
74 Map<String, Object> json = new HashMap<String, Object>();
75 if (artifactId != null && !artifactId.isEmpty())
76 json.put(Constants.ARTIFACT_ID, artifactId);
78 json.put(Constants.ARTIFACT_NAME, artifactName);
79 json.put(Constants.ARTIFACT_TYPE, artifactType);
80 json.put(Constants.ARTIFACT_DESCRIPTION, description);
81 json.put(Constants.IS_FROM_CSAR, isFromCsar);
83 String encodedPayload = new String(artifactContentent);
86 encodedPayload = Base64.encodeBase64String(artifactContentent);
89 json.put(Constants.ARTIFACT_PAYLOAD_DATA, encodedPayload);
90 json.put(Constants.ARTIFACT_DISPLAY_NAME, displayName);
91 json.put(Constants.ARTIFACT_LABEL, label);
92 json.put(Constants.ARTIFACT_GROUP_TYPE, artifactGroupType.getType());
93 json.put(Constants.REQUIRED_ARTIFACTS,
94 (updatedRequiredArtifacts == null || updatedRequiredArtifacts.isEmpty()) ? new ArrayList<>()
95 : updatedRequiredArtifacts.stream()
96 .filter(e -> e.getType().equals(ArtifactTypeEnum.HEAT_ARTIFACT.getType())
97 || e.getType().equals(ArtifactTypeEnum.HEAT_NESTED.getType()))
98 .map(e -> e.getFileName()).collect(Collectors.toList()));
102 public static Map<String, Object> buildJsonForArtifact(ArtifactTemplateInfo artifactTemplateInfo,
103 byte[] artifactContentent, int atrifactLabelCounter) {
105 Map<String, Object> json = new HashMap<String, Object>();
106 String artifactName = artifactTemplateInfo.getFileName();
108 json.put(Constants.ARTIFACT_NAME, artifactTemplateInfo.getFileName());
109 json.put(Constants.ARTIFACT_TYPE, artifactTemplateInfo.getType());
110 json.put(Constants.ARTIFACT_DESCRIPTION, "created from csar");
112 String encodedPayload = Base64.encodeBase64String(artifactContentent);
114 json.put(Constants.ARTIFACT_PAYLOAD_DATA, encodedPayload);
115 String displayName = artifactName;
116 if (artifactName.lastIndexOf(".") > 0)
117 displayName = artifactName.substring(0, artifactName.lastIndexOf("."));
118 json.put(Constants.ARTIFACT_DISPLAY_NAME, displayName);
119 String label = ValidationUtils.normalizeArtifactLabel(artifactTemplateInfo.getType() + atrifactLabelCounter);
120 json.put(Constants.ARTIFACT_LABEL, label);
121 json.put(Constants.ARTIFACT_GROUP_TYPE, ArtifactGroupTypeEnum.DEPLOYMENT.getType());
122 List<ArtifactTemplateInfo> requiredArtifacts = artifactTemplateInfo.getRelatedArtifactsInfo();
123 json.put(Constants.REQUIRED_ARTIFACTS,
124 (requiredArtifacts == null || requiredArtifacts.isEmpty()) ? new ArrayList<>()
125 : requiredArtifacts.stream()
126 .filter(e -> e.getType().equals(ArtifactTypeEnum.HEAT_ARTIFACT.getType())
127 || e.getType().equals(ArtifactTypeEnum.HEAT_NESTED.getType()))
128 .map(e -> e.getFileName()).collect(Collectors.toList()));
132 public static ArtifactDefinition findArtifactInList(List<ArtifactDefinition> createdArtifacts, String artifactId) {
133 for (ArtifactDefinition artifact : createdArtifacts) {
134 if (artifact.getUniqueId().equals(artifactId)) {