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.components.distribution.engine;
23 import org.openecomp.sdc.be.datatypes.elements.ArtifactDataDefinition;
24 import org.openecomp.sdc.be.model.ArtifactDefinition;
25 import org.openecomp.sdc.be.model.ComponentInstance;
26 import org.openecomp.sdc.be.model.Service;
27 import org.openecomp.sdc.common.api.ArtifactTypeEnum;
29 import java.util.ArrayList;
30 import java.util.Collection;
31 import java.util.List;
33 import java.util.stream.Collectors;
35 public class ArtifactInfoImpl implements IArtifactInfo {
37 private String artifactName;
38 private ArtifactTypeEnum artifactType;
39 private String artifactURL;
40 private String artifactChecksum;
41 private String artifactDescription;
42 private Integer artifactTimeout;
43 private String artifactUUID;
44 private String artifactVersion;
45 private String generatedFromUUID;
46 private List<String> relatedArtifacts;
48 public ArtifactInfoImpl() {
51 private ArtifactInfoImpl(ArtifactDefinition artifactDef, String generatedFromUUID, List<String> relatedArtifacts) {
52 artifactName = artifactDef.getArtifactName();
53 artifactType = ArtifactTypeEnum.findType(artifactDef.getArtifactType());
54 artifactChecksum = artifactDef.getArtifactChecksum();
55 artifactDescription = artifactDef.getDescription();
56 artifactTimeout = artifactDef.getTimeout();
57 artifactUUID = artifactDef.getArtifactUUID();
58 artifactVersion = artifactDef.getArtifactVersion();
59 this.relatedArtifacts = relatedArtifacts;
60 this.generatedFromUUID = generatedFromUUID;
63 public static List<ArtifactInfoImpl> convertToArtifactInfoImpl(Service service, ComponentInstance resourceInstance, Collection<ArtifactDefinition> list) {
64 List<ArtifactInfoImpl> ret = new ArrayList<>();
65 Map<String, List<ArtifactDefinition>> artifactIdToDef = list.stream().collect(Collectors.groupingBy(ArtifactDefinition::getUniqueId));
67 for (ArtifactDefinition artifactDef : list) {
68 String generatedFromUUID = null;
69 if (artifactDef.getGeneratedFromId() != null && !artifactDef.getGeneratedFromId().isEmpty()) {
70 ArtifactDefinition artifactFrom = artifactIdToDef.get(artifactDef.getGeneratedFromId()).get(0);
71 generatedFromUUID = artifactFrom.getArtifactUUID();
73 ArtifactInfoImpl artifactInfoImpl = new ArtifactInfoImpl(artifactDef, generatedFromUUID, getUpdatedRequiredArtifactsFromNamesToUuids(artifactDef, resourceInstance.getDeploymentArtifacts()));
74 String artifactURL = ServiceDistributionArtifactsBuilder.buildResourceInstanceArtifactUrl(service, resourceInstance, artifactDef.getArtifactName());
75 artifactInfoImpl.setArtifactURL(artifactURL);
76 ret.add(artifactInfoImpl);
83 public static List<ArtifactInfoImpl> convertServiceArtifactToArtifactInfoImpl(Service service, Collection<ArtifactDefinition> list) {
84 List<ArtifactInfoImpl> ret = new ArrayList<>();
85 Map<String, List<ArtifactDefinition>> artifactIdToDef = list.stream().collect(Collectors.groupingBy(ArtifactDefinition::getUniqueId));
87 for (ArtifactDefinition artifactDef : list) {
88 String generatedFromUUID = null;
89 if (artifactDef.getGeneratedFromId() != null && !artifactDef.getGeneratedFromId().isEmpty()) {
90 ArtifactDefinition artifactFrom = artifactIdToDef.get(artifactDef.getGeneratedFromId()).get(0);
91 generatedFromUUID = artifactFrom.getArtifactUUID();
93 ArtifactInfoImpl artifactInfoImpl = new ArtifactInfoImpl(artifactDef, generatedFromUUID, getUpdatedRequiredArtifactsFromNamesToUuids(artifactDef, service.getDeploymentArtifacts()));
94 String artifactURL = ServiceDistributionArtifactsBuilder.buildServiceArtifactUrl(service, artifactDef.getArtifactName());
95 artifactInfoImpl.setArtifactURL(artifactURL);
96 ret.add(artifactInfoImpl);
103 private static List<String> getUpdatedRequiredArtifactsFromNamesToUuids(ArtifactDefinition artifactDefinition, Map<String, ArtifactDefinition> artifacts) {
104 List<String> requiredArtifacts = null;
105 if (artifactDefinition != null && artifactDefinition.getRequiredArtifacts() != null && !artifactDefinition.getRequiredArtifacts().isEmpty() && artifacts != null && !artifacts.isEmpty()) {
106 requiredArtifacts = artifacts.values().stream().filter(art -> artifactDefinition.getRequiredArtifacts().contains(art.getArtifactName())).map(ArtifactDataDefinition::getArtifactUUID).collect(Collectors.toList());
108 return requiredArtifacts;
111 public String getArtifactName() {
115 public void setArtifactName(String artifactName) {
116 this.artifactName = artifactName;
119 public ArtifactTypeEnum getArtifactType() {
123 public void setArtifactType(ArtifactTypeEnum artifactType) {
124 this.artifactType = artifactType;
127 public String getArtifactURL() {
131 public void setArtifactURL(String artifactURL) {
132 this.artifactURL = artifactURL;
135 public String getArtifactChecksum() {
136 return artifactChecksum;
139 public void setArtifactChecksum(String artifactChecksum) {
140 this.artifactChecksum = artifactChecksum;
143 public String getArtifactDescription() {
144 return artifactDescription;
147 public void setArtifactDescription(String artifactDescription) {
148 this.artifactDescription = artifactDescription;
151 public Integer getArtifactTimeout() {
152 return artifactTimeout;
155 public void setArtifactTimeout(Integer artifactTimeout) {
156 this.artifactTimeout = artifactTimeout;
159 public List<String> getRelatedArtifacts() {
160 return relatedArtifacts;
163 public void setRelatedArtifacts(List<String> relatedArtifacts) {
164 this.relatedArtifacts = relatedArtifacts;
168 public String toString() {
169 return "ArtifactInfoImpl [artifactName=" + artifactName + ", artifactType=" + artifactType + ", artifactURL=" + artifactURL + ", artifactChecksum=" + artifactChecksum + ", artifactDescription=" + artifactDescription + ", artifactTimeout="
170 + artifactTimeout + ", artifactUUID=" + artifactUUID + ", artifactVersion=" + artifactVersion + ", generatedFromUUID=" + generatedFromUUID + ", relatedArtifacts=" + relatedArtifacts + "]";
173 public String getArtifactUUID() {
177 public void setArtifactUUID(String artifactUUID) {
178 this.artifactUUID = artifactUUID;
181 public String getArtifactVersion() {
182 return artifactVersion;
185 public void setArtifactVersion(String artifactVersion) {
186 this.artifactVersion = artifactVersion;
189 public String getGeneratedFromUUID() {
190 return generatedFromUUID;
193 public void setGeneratedFromUUID(String generatedFromUUID) {
194 this.generatedFromUUID = generatedFromUUID;