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.config.ConfigurationManager;
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<ArtifactInfoImpl>();
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);
79 ret.stream().forEach(ArtifactInfoImpl::updateArtifactTimeout);
84 public static List<ArtifactInfoImpl> convertServiceArtifactToArtifactInfoImpl(Service service, Collection<ArtifactDefinition> list) {
85 List<ArtifactInfoImpl> ret = new ArrayList<ArtifactInfoImpl>();
86 Map<String, List<ArtifactDefinition>> artifactIdToDef = list.stream().collect(Collectors.groupingBy(ArtifactDefinition::getUniqueId));
88 for (ArtifactDefinition artifactDef : list) {
89 String generatedFromUUID = null;
90 if (artifactDef.getGeneratedFromId() != null && !artifactDef.getGeneratedFromId().isEmpty()) {
91 ArtifactDefinition artifactFrom = artifactIdToDef.get(artifactDef.getGeneratedFromId()).get(0);
92 generatedFromUUID = artifactFrom.getArtifactUUID();
94 ArtifactInfoImpl artifactInfoImpl = new ArtifactInfoImpl(artifactDef, generatedFromUUID, getUpdatedRequiredArtifactsFromNamesToUuids(artifactDef, service.getDeploymentArtifacts()));
95 String artifactURL = ServiceDistributionArtifactsBuilder.buildServiceArtifactUrl(service, artifactDef.getArtifactName());
96 artifactInfoImpl.setArtifactURL(artifactURL);
97 ret.add(artifactInfoImpl);
104 private static List<String> getUpdatedRequiredArtifactsFromNamesToUuids(ArtifactDefinition artifactDefinition, Map<String, ArtifactDefinition> artifacts) {
105 List<String> requiredArtifacts = null;
106 if (artifactDefinition != null && artifactDefinition.getRequiredArtifacts() != null && !artifactDefinition.getRequiredArtifacts().isEmpty() && artifacts != null && !artifacts.isEmpty()) {
107 requiredArtifacts = artifacts.values().stream().filter(art -> artifactDefinition.getRequiredArtifacts().contains(art.getArtifactName())).map(art -> art.getArtifactUUID()).collect(Collectors.toList());
109 return requiredArtifacts;
112 public String getArtifactName() {
116 public void setArtifactName(String artifactName) {
117 this.artifactName = artifactName;
120 public ArtifactTypeEnum getArtifactType() {
124 public void setArtifactType(ArtifactTypeEnum artifactType) {
125 this.artifactType = artifactType;
128 public String getArtifactURL() {
132 public void setArtifactURL(String artifactURL) {
133 this.artifactURL = artifactURL;
136 public String getArtifactChecksum() {
137 return artifactChecksum;
140 public void setArtifactChecksum(String artifactChecksum) {
141 this.artifactChecksum = artifactChecksum;
144 public String getArtifactDescription() {
145 return artifactDescription;
148 public void setArtifactDescription(String artifactDescription) {
149 this.artifactDescription = artifactDescription;
152 public Integer getArtifactTimeout() {
153 return artifactTimeout;
156 public void setArtifactTimeout(Integer artifactTimeout) {
157 this.artifactTimeout = artifactTimeout;
160 public List<String> getRelatedArtifacts() {
161 return relatedArtifacts;
164 public void setRelatedArtifacts(List<String> relatedArtifacts) {
165 this.relatedArtifacts = relatedArtifacts;
169 public String toString() {
170 return "ArtifactInfoImpl [artifactName=" + artifactName + ", artifactType=" + artifactType + ", artifactURL=" + artifactURL + ", artifactChecksum=" + artifactChecksum + ", artifactDescription=" + artifactDescription + ", artifactTimeout="
171 + artifactTimeout + ", artifactUUID=" + artifactUUID + ", artifactVersion=" + artifactVersion + ", generatedFromUUID=" + generatedFromUUID + ", relatedArtifacts=" + relatedArtifacts + "]";
174 public String getArtifactUUID() {
178 public void setArtifactUUID(String artifactUUID) {
179 this.artifactUUID = artifactUUID;
182 public String getArtifactVersion() {
183 return artifactVersion;
186 public void setArtifactVersion(String artifactVersion) {
187 this.artifactVersion = artifactVersion;
190 public String getGeneratedFromUUID() {
191 return generatedFromUUID;
194 public void setGeneratedFromUUID(String generatedFromUUID) {
195 this.generatedFromUUID = generatedFromUUID;
198 public void updateArtifactTimeout(){
199 int currentConfigTimeout = ConfigurationManager.getConfigurationManager().getDistributionEngineConfiguration().getCurrentArtifactInstallationTimeout();
200 if(artifactTimeout == null || artifactTimeout < currentConfigTimeout)
201 artifactTimeout = currentConfigTimeout;