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;
28 import org.onap.so.logger.LoggingAnchor;
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
140 Paths.get(msoConfigPath, "ASDC", artifact.getArtifactVersion(), artifact.getArtifactName())
141 .normalize().toString();
143 File spoolFile = new File(filePath);
145 logger.debug("ASDC File path is: {}", spoolFile.getAbsolutePath());
146 logger.info(LoggingAnchor.FOUR, MessageEnum.ASDC_RECEIVE_SERVICE_NOTIF.toString(), "***PATH", "ASDC",
147 spoolFile.getAbsolutePath());
149 sdcCsarHelper = factory.getSdcCsarHelper(spoolFile.getAbsolutePath(), false);
151 } catch (Exception e) {
152 logger.debug(e.getMessage(), e);
153 logger.error(LoggingAnchor.SIX, MessageEnum.ASDC_GENERAL_EXCEPTION_ARG.toString(),
154 "Exception caught during parser *****LOOK********* " + artifact.getArtifactName(), "ASDC",
155 "processResourceNotification", ErrorCode.BusinessProcesssError.getValue(),
156 "Exception in " + "processResourceNotification", e);
158 throw new ASDCDownloadException("Exception caught when passing the csar file to the parser ", e);
161 serviceMetadata = sdcCsarHelper.getServiceMetadata();
165 public String getHeatTemplateUUID() {
166 return heatTemplateUUID;
169 public void setHeatTemplateUUID(String heatTemplateUUID) {
170 this.heatTemplateUUID = heatTemplateUUID;
173 public List<NodeTemplate> getAllottedList() {
177 public void setAllottedList(List<NodeTemplate> allottedList) {
178 this.allottedList = allottedList;
181 public ISdcCsarHelper getSdcCsarHelper() {
182 return sdcCsarHelper;
185 public void setSdcCsarHelper(ISdcCsarHelper sdcCsarHelper) {
186 this.sdcCsarHelper = sdcCsarHelper;
189 public Metadata getServiceMetadata() {
190 return serviceMetadata;
193 public Service getCatalogService() {
194 return catalogService;
197 public void setServiceMetadata(Metadata serviceMetadata) {
198 this.serviceMetadata = serviceMetadata;
201 public void setCatalogService(Service catalogService) {
202 this.catalogService = catalogService;
205 public List<NodeTemplate> getNetworkTypes() {
209 public void setNetworkTypes(List<NodeTemplate> networkTypes) {
210 this.networkTypes = networkTypes;
213 public List<NodeTemplate> getVfTypes() {
217 public void setVfTypes(List<NodeTemplate> vfTypes) {
218 this.vfTypes = vfTypes;
221 public AllottedResourceCustomization getCatalogResourceCustomization() {
222 return catalogResourceCustomization;
225 public void setCatalogResourceCustomization(AllottedResourceCustomization catalogResourceCustomization) {
226 this.catalogResourceCustomization = catalogResourceCustomization;
230 public NetworkResourceCustomization getCatalogNetworkResourceCustomization() {
231 return catalogNetworkResourceCustomization;
235 public void setCatalogNetworkResourceCustomization(
236 NetworkResourceCustomization catalogNetworkResourceCustomization) {
237 this.catalogNetworkResourceCustomization = catalogNetworkResourceCustomization;
240 public NetworkResource getCatalogNetworkResource() {
241 return catalogNetworkResource;
244 public void setCatalogNetworkResource(NetworkResource catalogNetworkResource) {
245 this.catalogNetworkResource = catalogNetworkResource;
248 public VfModule getCatalogVfModule() {
252 public void setCatalogVfModule(VfModule vfModule) {
253 this.vfModule = vfModule;
256 * public VnfResource getCatalogVnfResource() { return vnfResource; }
258 * public void setCatalogVnfResource(VnfResource vnfResource) { this.vnfResource = vnfResource; }
262 public VnfResourceCustomization getCatalogVnfResourceCustomization() {
263 return vnfResourceCustomization;
266 public void setCatalogVnfResourceCustomization(VnfResourceCustomization vnfResourceCustomization) {
267 this.vnfResourceCustomization = vnfResourceCustomization;
270 public PnfResourceCustomization getPnfResourceCustomization() {
271 return pnfResourceCustomization;
274 public void setPnfResourceCustomization(PnfResourceCustomization pnfResourceCustomization) {
275 this.pnfResourceCustomization = pnfResourceCustomization;
279 public VfModuleCustomization getCatalogVfModuleCustomization() {
280 return vfModuleCustomization;
283 public void setCatalogVfModuleCustomization(VfModuleCustomization vfModuleCustomization) {
284 this.vfModuleCustomization = vfModuleCustomization;
287 public AllottedResource getAllottedResource() {
288 return allottedResource;
291 public void setAllottedResource(AllottedResource allottedResource) {
292 this.allottedResource = allottedResource;
295 public AllottedResourceCustomization getCatalogAllottedResourceCustomization() {
296 return allottedResourceCustomization;
299 public void setCatalogAllottedResourceCustomization(AllottedResourceCustomization allottedResourceCustomization) {
300 this.allottedResourceCustomization = allottedResourceCustomization;
303 public TempNetworkHeatTemplateLookup getCatalogTempNetworkHeatTemplateLookup() {
304 return tempNetworkHeatTemplateLookup;
307 public void setCatalogTempNetworkHeatTemplateLookup(TempNetworkHeatTemplateLookup tempNetworkHeatTemplateLookup) {
308 this.tempNetworkHeatTemplateLookup = tempNetworkHeatTemplateLookup;
311 public String getHeatFilesUUID() {
312 return heatFilesUUID;
315 public void setHeatFilesUUID(String heatFilesUUID) {
316 this.heatFilesUUID = heatFilesUUID;
319 public IArtifactInfo getToscaArtifact() {
320 return toscaArtifact;
323 public void setToscaArtifact(IArtifactInfo toscaArtifact) {
324 this.toscaArtifact = toscaArtifact;
327 public ToscaCsar getCatalogToscaCsar() {
331 public void setCatalogToscaCsar(ToscaCsar toscaCsar) {
332 this.toscaCsar = toscaCsar;
335 public String getVolHeatTemplateUUID() {
336 return volHeatTemplateUUID;
339 public void setVolHeatTemplateUUID(String volHeatTemplateUUID) {
340 this.volHeatTemplateUUID = volHeatTemplateUUID;
343 public String getEnvHeatTemplateUUID() {
344 return envHeatTemplateUUID;
347 public void setEnvHeatTemplateUUID(String envHeatTemplateUUID) {
348 this.envHeatTemplateUUID = envHeatTemplateUUID;
351 public String getVolHeatEnvTemplateUUID() {
352 return volHeatEnvTemplateUUID;
355 public void setVolHeatEnvTemplateUUID(String volHeatEnvTemplateUUID) {
356 this.volHeatEnvTemplateUUID = volHeatEnvTemplateUUID;
359 public String getServiceVersion() {
360 return serviceVersion;
363 public void setServiceVersion(String serviceVersion) {
364 this.serviceVersion = serviceVersion;
367 public String getWorkloadPerformance() {
368 return workloadPerformance;
371 public void setWorkloadPerformance(String workloadPerformance) {
372 this.workloadPerformance = workloadPerformance;
375 public VfModule getVfModule() {
379 public void setVfModule(VfModule vfModule) {
380 this.vfModule = vfModule;
383 public VfModuleCustomization getVfModuleCustomization() {
384 return vfModuleCustomization;
387 public void setVfModuleCustomization(VfModuleCustomization vfModuleCustomization) {
388 this.vfModuleCustomization = vfModuleCustomization;
392 public VnfResourceCustomization getVnfResourceCustomization() {
393 return vnfResourceCustomization;
396 public void setVnfResourceCustomization(VnfResourceCustomization vnfResourceCustomization) {
397 this.vnfResourceCustomization = vnfResourceCustomization;
400 public AllottedResourceCustomization getAllottedResourceCustomization() {
401 return allottedResourceCustomization;
404 public void setAllottedResourceCustomization(AllottedResourceCustomization allottedResourceCustomization) {
405 this.allottedResourceCustomization = allottedResourceCustomization;
408 public TempNetworkHeatTemplateLookup getTempNetworkHeatTemplateLookup() {
409 return tempNetworkHeatTemplateLookup;
412 public void setTempNetworkHeatTemplateLookup(TempNetworkHeatTemplateLookup tempNetworkHeatTemplateLookup) {
413 this.tempNetworkHeatTemplateLookup = tempNetworkHeatTemplateLookup;
416 public List<NetworkInstanceGroup> getCatalogNetworkInstanceGroup() {
417 return catalogNetworkInstanceGroup;
420 public void setCatalogNetworkInstanceGroup(List<NetworkInstanceGroup> catalogNetworkInstanceGroup) {
421 this.catalogNetworkInstanceGroup = catalogNetworkInstanceGroup;
424 public CollectionNetworkResourceCustomization getCatalogCollectionNetworkResourceCustomization() {
425 return catalogCollectionNetworkResourceCustomization;
428 public void setCatalogCollectionNetworkResourceCustomization(
429 CollectionNetworkResourceCustomization catalogCollectionNetworkResourceCustomization) {
430 this.catalogCollectionNetworkResourceCustomization = catalogCollectionNetworkResourceCustomization;
433 public CollectionResource getCatalogCollectionResource() {
434 return catalogCollectionResource;
437 public void setCatalogCollectionResource(CollectionResource catalogCollectionResource) {
438 this.catalogCollectionResource = catalogCollectionResource;
441 public CollectionResourceCustomization getCatalogCollectionResourceCustomization() {
442 return catalogCollectionResourceCustomization;
445 public void setCatalogCollectionResourceCustomization(
446 CollectionResourceCustomization catalogCollectionResourceCustomization) {
447 this.catalogCollectionResourceCustomization = catalogCollectionResourceCustomization;
450 public NetworkCollectionResourceCustomization getCatalogNetworkCollectionResourceCustomization() {
451 return catalogNetworkCollectionResourceCustomization;
454 public void setCatalogNetworkCollectionResourceCustomization(
455 NetworkCollectionResourceCustomization catalogNetworkCollectionResourceCustomization) {
456 this.catalogNetworkCollectionResourceCustomization = catalogNetworkCollectionResourceCustomization;
459 public ServiceProxyResourceCustomization getCatalogServiceProxyResourceCustomization() {
460 return catalogServiceProxyResourceCustomization;
463 public void setCatalogServiceProxyResourceCustomization(
464 ServiceProxyResourceCustomization catalogServiceProxyResourceCustomization) {
465 this.catalogServiceProxyResourceCustomization = catalogServiceProxyResourceCustomization;
468 public ConfigurationResource getCatalogConfigurationResource() {
469 return catalogConfigurationResource;
472 public void setCatalogConfigurationResource(ConfigurationResource catalogConfigurationResource) {
473 this.catalogConfigurationResource = catalogConfigurationResource;
476 public ConfigurationResourceCustomization getCatalogConfigurationResourceCustomization() {
477 return catalogConfigurationResourceCustomization;
480 public void setCatalogConfigurationResourceCustomization(
481 ConfigurationResourceCustomization catalogConfigurationResourceCustomization) {
482 this.catalogConfigurationResourceCustomization = catalogConfigurationResourceCustomization;
485 public ToscaCsar getToscaCsar() {
489 public void setToscaCsar(ToscaCsar toscaCsar) {
490 this.toscaCsar = toscaCsar;
493 public boolean isDeployedSuccessfully() {
494 return isDeployedSuccessfully;
497 public void setSuccessfulDeployment() {
498 isDeployedSuccessfully = true;