2 * ============LICENSE_START=======================================================
4 * ================================================================================
5 * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
6 * ================================================================================
7 * Modifications Copyright (c) 2019 Samsung
8 * ================================================================================
9 * Licensed under the Apache License, Version 2.0 (the "License");
10 * you may not use this file except in compliance with the License.
11 * You may obtain a copy of the License at
13 * http://www.apache.org/licenses/LICENSE-2.0
15 * Unless required by applicable law or agreed to in writing, software
16 * distributed under the License is distributed on an "AS IS" BASIS,
17 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18 * See the License for the specific language governing permissions and
19 * limitations under the License.
20 * ============LICENSE_END=========================================================
23 package org.onap.so.asdc.installer;
26 import java.nio.file.Paths;
27 import java.util.List;
29 import org.onap.sdc.api.notification.IArtifactInfo;
30 import org.onap.sdc.tosca.parser.api.ISdcCsarHelper;
31 import org.onap.sdc.tosca.parser.impl.SdcToscaParserFactory;
32 import org.onap.sdc.toscaparser.api.NodeTemplate;
33 import org.onap.sdc.toscaparser.api.elements.Metadata;
34 import org.onap.so.asdc.client.exceptions.ASDCDownloadException;
35 import org.onap.so.db.catalog.beans.AllottedResource;
36 import org.onap.so.db.catalog.beans.AllottedResourceCustomization;
37 import org.onap.so.db.catalog.beans.CollectionNetworkResourceCustomization;
38 import org.onap.so.db.catalog.beans.CollectionResource;
39 import org.onap.so.db.catalog.beans.CollectionResourceCustomization;
40 import org.onap.so.db.catalog.beans.ConfigurationResource;
41 import org.onap.so.db.catalog.beans.ConfigurationResourceCustomization;
42 import org.onap.so.db.catalog.beans.NetworkCollectionResourceCustomization;
43 import org.onap.so.db.catalog.beans.NetworkInstanceGroup;
44 import org.onap.so.db.catalog.beans.NetworkResource;
45 import org.onap.so.db.catalog.beans.NetworkResourceCustomization;
46 import org.onap.so.db.catalog.beans.PnfResourceCustomization;
47 import org.onap.so.db.catalog.beans.Service;
48 import org.onap.so.db.catalog.beans.ServiceProxyResourceCustomization;
49 import org.onap.so.db.catalog.beans.TempNetworkHeatTemplateLookup;
50 import org.onap.so.db.catalog.beans.ToscaCsar;
51 import org.onap.so.db.catalog.beans.VfModule;
52 import org.onap.so.db.catalog.beans.VfModuleCustomization;
53 import org.onap.so.db.catalog.beans.VnfResourceCustomization;
54 import org.onap.so.logger.ErrorCode;
55 import org.onap.so.logger.MessageEnum;
56 import org.slf4j.Logger;
57 import org.slf4j.LoggerFactory;
58 import org.springframework.beans.factory.annotation.Value;
60 public class ToscaResourceStructure {
62 protected static final Logger logger = LoggerFactory.getLogger(ToscaResourceStructure.class);
65 * mso config path, used for the config files, like download csar files.
67 private String msoConfigPath;
69 Metadata serviceMetadata;
70 private Service catalogService;
71 ISdcCsarHelper sdcCsarHelper;
72 List<NodeTemplate> allottedList;
73 List<NodeTemplate> networkTypes;
74 List<NodeTemplate> vfTypes;
75 String heatTemplateUUID;
76 String volHeatTemplateUUID;
77 String volHeatEnvTemplateUUID;
78 String envHeatTemplateUUID;
80 String workloadPerformance;
81 String serviceVersion;
82 private boolean isDeployedSuccessfully=false;
85 private NetworkResourceCustomization catalogNetworkResourceCustomization;
87 private NetworkResource catalogNetworkResource;
89 private List<NetworkInstanceGroup> catalogNetworkInstanceGroup;
91 private CollectionNetworkResourceCustomization catalogCollectionNetworkResourceCustomization;
93 private CollectionResource catalogCollectionResource;
95 private CollectionResourceCustomization catalogCollectionResourceCustomization;
97 private NetworkCollectionResourceCustomization catalogNetworkCollectionResourceCustomization;
99 private ServiceProxyResourceCustomization catalogServiceProxyResourceCustomization;
101 private ConfigurationResource catalogConfigurationResource;
103 private ConfigurationResourceCustomization catalogConfigurationResourceCustomization;
105 private AllottedResourceCustomization catalogResourceCustomization;
107 private VfModule vfModule;
109 private VfModuleCustomization vfModuleCustomization;
111 private VnfResourceCustomization vnfResourceCustomization;
113 private PnfResourceCustomization pnfResourceCustomization;
115 private AllottedResource allottedResource;
117 private AllottedResourceCustomization allottedResourceCustomization;
119 private TempNetworkHeatTemplateLookup tempNetworkHeatTemplateLookup;
121 private IArtifactInfo toscaArtifact;
123 private ToscaCsar toscaCsar;
125 public ToscaResourceStructure(){
126 this(System.getProperty("mso.config.path"));
129 public ToscaResourceStructure(final String msoConfigPath){
130 this.msoConfigPath = msoConfigPath;
131 logger.info("MSO config path is: {}", msoConfigPath);
134 public void updateResourceStructure(IArtifactInfo artifact) throws ASDCDownloadException {
137 SdcToscaParserFactory factory = SdcToscaParserFactory.getInstance();//Autoclosable
139 String filePath = Paths.get(msoConfigPath, "ASDC", artifact.getArtifactVersion(), artifact.getArtifactName()).normalize().toString();
141 File spoolFile = new File(filePath);
143 logger.debug("ASDC File path is: {}", spoolFile.getAbsolutePath());
144 logger.info("{} {} {} {}", MessageEnum.ASDC_RECEIVE_SERVICE_NOTIF.toString(), "***PATH", "ASDC",
145 spoolFile.getAbsolutePath());
147 sdcCsarHelper = factory.getSdcCsarHelper(spoolFile.getAbsolutePath(),false);
150 logger.debug(e.getMessage(), e);
151 logger.error("{} {} {} {} {} {}", MessageEnum.ASDC_GENERAL_EXCEPTION_ARG.toString(),
152 "Exception caught during parser *****LOOK********* " + artifact.getArtifactName(), "ASDC",
153 "processResourceNotification", ErrorCode.BusinessProcesssError.getValue(),
154 "Exception in " + "processResourceNotification", e);
156 throw new ASDCDownloadException ("Exception caught when passing the csar file to the parser ", e);
159 serviceMetadata = sdcCsarHelper.getServiceMetadata();
163 public String getHeatTemplateUUID() {
164 return heatTemplateUUID;
167 public void setHeatTemplateUUID(String heatTemplateUUID) {
168 this.heatTemplateUUID = heatTemplateUUID;
171 public List<NodeTemplate> getAllottedList() {
175 public void setAllottedList(List<NodeTemplate> allottedList) {
176 this.allottedList = allottedList;
179 public ISdcCsarHelper getSdcCsarHelper() {
180 return sdcCsarHelper;
183 public void setSdcCsarHelper(ISdcCsarHelper sdcCsarHelper) {
184 this.sdcCsarHelper = sdcCsarHelper;
187 public Metadata getServiceMetadata() {
188 return serviceMetadata;
191 public Service getCatalogService() {
192 return catalogService;
195 public void setServiceMetadata(Metadata serviceMetadata) {
196 this.serviceMetadata = serviceMetadata;
199 public void setCatalogService(Service catalogService) {
200 this.catalogService = catalogService;
203 public List<NodeTemplate> getNetworkTypes() {
207 public void setNetworkTypes(List<NodeTemplate> networkTypes) {
208 this.networkTypes = networkTypes;
211 public List<NodeTemplate> getVfTypes() {
215 public void setVfTypes(List<NodeTemplate> vfTypes) {
216 this.vfTypes = vfTypes;
219 public AllottedResourceCustomization getCatalogResourceCustomization() {
220 return catalogResourceCustomization;
223 public void setCatalogResourceCustomization(
224 AllottedResourceCustomization catalogResourceCustomization) {
225 this.catalogResourceCustomization = catalogResourceCustomization;
229 public NetworkResourceCustomization getCatalogNetworkResourceCustomization() {
230 return catalogNetworkResourceCustomization;
233 public void setCatalogNetworkResourceCustomization(NetworkResourceCustomization catalogNetworkResourceCustomization) {
234 this.catalogNetworkResourceCustomization = catalogNetworkResourceCustomization;
237 public NetworkResource getCatalogNetworkResource() {
238 return catalogNetworkResource;
241 public void setCatalogNetworkResource(NetworkResource catalogNetworkResource) {
242 this.catalogNetworkResource = catalogNetworkResource;
245 public VfModule getCatalogVfModule() {
249 public void setCatalogVfModule(VfModule vfModule) {
250 this.vfModule = vfModule;
253 public VnfResource getCatalogVnfResource() {
257 public void setCatalogVnfResource(VnfResource vnfResource) {
258 this.vnfResource = vnfResource;
263 public VnfResourceCustomization getCatalogVnfResourceCustomization() {
264 return vnfResourceCustomization;
267 public void setCatalogVnfResourceCustomization(
268 VnfResourceCustomization vnfResourceCustomization) {
269 this.vnfResourceCustomization = vnfResourceCustomization;
272 public PnfResourceCustomization getPnfResourceCustomization() {
273 return pnfResourceCustomization;
276 public void setPnfResourceCustomization(PnfResourceCustomization pnfResourceCustomization) {
277 this.pnfResourceCustomization = pnfResourceCustomization;
281 public VfModuleCustomization getCatalogVfModuleCustomization() {
282 return vfModuleCustomization;
285 public void setCatalogVfModuleCustomization(VfModuleCustomization vfModuleCustomization) {
286 this.vfModuleCustomization = vfModuleCustomization;
289 public AllottedResource getAllottedResource() {
290 return allottedResource;
293 public void setAllottedResource(AllottedResource allottedResource) {
294 this.allottedResource = allottedResource;
297 public AllottedResourceCustomization getCatalogAllottedResourceCustomization() {
298 return allottedResourceCustomization;
301 public void setCatalogAllottedResourceCustomization(
302 AllottedResourceCustomization allottedResourceCustomization) {
303 this.allottedResourceCustomization = allottedResourceCustomization;
306 public TempNetworkHeatTemplateLookup getCatalogTempNetworkHeatTemplateLookup() {
307 return tempNetworkHeatTemplateLookup;
310 public void setCatalogTempNetworkHeatTemplateLookup(
311 TempNetworkHeatTemplateLookup tempNetworkHeatTemplateLookup) {
312 this.tempNetworkHeatTemplateLookup = tempNetworkHeatTemplateLookup;
315 public String getHeatFilesUUID() {
316 return heatFilesUUID;
319 public void setHeatFilesUUID(String heatFilesUUID) {
320 this.heatFilesUUID = heatFilesUUID;
323 public IArtifactInfo getToscaArtifact() {
324 return toscaArtifact;
327 public void setToscaArtifact(IArtifactInfo toscaArtifact) {
328 this.toscaArtifact = toscaArtifact;
331 public ToscaCsar getCatalogToscaCsar() {
335 public void setCatalogToscaCsar(ToscaCsar toscaCsar) {
336 this.toscaCsar = toscaCsar;
339 public String getVolHeatTemplateUUID() {
340 return volHeatTemplateUUID;
343 public void setVolHeatTemplateUUID(String volHeatTemplateUUID) {
344 this.volHeatTemplateUUID = volHeatTemplateUUID;
347 public String getEnvHeatTemplateUUID() {
348 return envHeatTemplateUUID;
351 public void setEnvHeatTemplateUUID(String envHeatTemplateUUID) {
352 this.envHeatTemplateUUID = envHeatTemplateUUID;
355 public String getVolHeatEnvTemplateUUID() {
356 return volHeatEnvTemplateUUID;
359 public void setVolHeatEnvTemplateUUID(String volHeatEnvTemplateUUID) {
360 this.volHeatEnvTemplateUUID = volHeatEnvTemplateUUID;
363 public String getServiceVersion() {
364 return serviceVersion;
367 public void setServiceVersion(String serviceVersion) {
368 this.serviceVersion = serviceVersion;
371 public String getWorkloadPerformance() {
372 return workloadPerformance;
375 public void setWorkloadPerformance(String workloadPerformance) {
376 this.workloadPerformance = workloadPerformance;
379 public VfModule getVfModule() {
383 public void setVfModule(VfModule vfModule) {
384 this.vfModule = vfModule;
387 public VfModuleCustomization getVfModuleCustomization() {
388 return vfModuleCustomization;
391 public void setVfModuleCustomization(VfModuleCustomization vfModuleCustomization) {
392 this.vfModuleCustomization = vfModuleCustomization;
396 public VnfResourceCustomization getVnfResourceCustomization() {
397 return vnfResourceCustomization;
400 public void setVnfResourceCustomization(
401 VnfResourceCustomization vnfResourceCustomization) {
402 this.vnfResourceCustomization = vnfResourceCustomization;
405 public AllottedResourceCustomization getAllottedResourceCustomization() {
406 return allottedResourceCustomization;
409 public void setAllottedResourceCustomization(
410 AllottedResourceCustomization allottedResourceCustomization) {
411 this.allottedResourceCustomization = allottedResourceCustomization;
414 public TempNetworkHeatTemplateLookup getTempNetworkHeatTemplateLookup() {
415 return tempNetworkHeatTemplateLookup;
418 public void setTempNetworkHeatTemplateLookup(
419 TempNetworkHeatTemplateLookup tempNetworkHeatTemplateLookup) {
420 this.tempNetworkHeatTemplateLookup = tempNetworkHeatTemplateLookup;
423 public List<NetworkInstanceGroup> getCatalogNetworkInstanceGroup() {
424 return catalogNetworkInstanceGroup;
427 public void setCatalogNetworkInstanceGroup(List<NetworkInstanceGroup> catalogNetworkInstanceGroup) {
428 this.catalogNetworkInstanceGroup = catalogNetworkInstanceGroup;
431 public CollectionNetworkResourceCustomization getCatalogCollectionNetworkResourceCustomization() {
432 return catalogCollectionNetworkResourceCustomization;
435 public void setCatalogCollectionNetworkResourceCustomization(
436 CollectionNetworkResourceCustomization catalogCollectionNetworkResourceCustomization) {
437 this.catalogCollectionNetworkResourceCustomization = catalogCollectionNetworkResourceCustomization;
440 public CollectionResource getCatalogCollectionResource() {
441 return catalogCollectionResource;
444 public void setCatalogCollectionResource(CollectionResource catalogCollectionResource) {
445 this.catalogCollectionResource = catalogCollectionResource;
448 public CollectionResourceCustomization getCatalogCollectionResourceCustomization() {
449 return catalogCollectionResourceCustomization;
452 public void setCatalogCollectionResourceCustomization(
453 CollectionResourceCustomization catalogCollectionResourceCustomization) {
454 this.catalogCollectionResourceCustomization = catalogCollectionResourceCustomization;
457 public NetworkCollectionResourceCustomization getCatalogNetworkCollectionResourceCustomization() {
458 return catalogNetworkCollectionResourceCustomization;
461 public void setCatalogNetworkCollectionResourceCustomization(
462 NetworkCollectionResourceCustomization catalogNetworkCollectionResourceCustomization) {
463 this.catalogNetworkCollectionResourceCustomization = catalogNetworkCollectionResourceCustomization;
466 public ServiceProxyResourceCustomization getCatalogServiceProxyResourceCustomization() {
467 return catalogServiceProxyResourceCustomization;
470 public void setCatalogServiceProxyResourceCustomization(
471 ServiceProxyResourceCustomization catalogServiceProxyResourceCustomization) {
472 this.catalogServiceProxyResourceCustomization = catalogServiceProxyResourceCustomization;
475 public ConfigurationResource getCatalogConfigurationResource() {
476 return catalogConfigurationResource;
479 public void setCatalogConfigurationResource(ConfigurationResource catalogConfigurationResource) {
480 this.catalogConfigurationResource = catalogConfigurationResource;
483 public ConfigurationResourceCustomization getCatalogConfigurationResourceCustomization() {
484 return catalogConfigurationResourceCustomization;
487 public void setCatalogConfigurationResourceCustomization(
488 ConfigurationResourceCustomization catalogConfigurationResourceCustomization) {
489 this.catalogConfigurationResourceCustomization = catalogConfigurationResourceCustomization;
492 public ToscaCsar getToscaCsar() {
496 public void setToscaCsar(ToscaCsar toscaCsar) {
497 this.toscaCsar = toscaCsar;
500 public boolean isDeployedSuccessfully() {
501 return isDeployedSuccessfully;
504 public void setSuccessfulDeployment() {
505 isDeployedSuccessfully = true;