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.sdc.api.notification.IArtifactInfo;
29 import org.onap.sdc.tosca.parser.api.ISdcCsarHelper;
30 import org.onap.sdc.tosca.parser.impl.SdcToscaParserFactory;
31 import org.onap.sdc.toscaparser.api.NodeTemplate;
32 import org.onap.sdc.toscaparser.api.elements.Metadata;
33 import org.onap.so.asdc.client.exceptions.ASDCDownloadException;
34 import org.onap.so.db.catalog.beans.AllottedResource;
35 import org.onap.so.db.catalog.beans.AllottedResourceCustomization;
36 import org.onap.so.db.catalog.beans.CollectionNetworkResourceCustomization;
37 import org.onap.so.db.catalog.beans.CollectionResource;
38 import org.onap.so.db.catalog.beans.CollectionResourceCustomization;
39 import org.onap.so.db.catalog.beans.ConfigurationResource;
40 import org.onap.so.db.catalog.beans.ConfigurationResourceCustomization;
41 import org.onap.so.db.catalog.beans.NetworkCollectionResourceCustomization;
42 import org.onap.so.db.catalog.beans.NetworkInstanceGroup;
43 import org.onap.so.db.catalog.beans.NetworkResource;
44 import org.onap.so.db.catalog.beans.NetworkResourceCustomization;
45 import org.onap.so.db.catalog.beans.PnfResourceCustomization;
46 import org.onap.so.db.catalog.beans.Service;
47 import org.onap.so.db.catalog.beans.ServiceProxyResourceCustomization;
48 import org.onap.so.db.catalog.beans.TempNetworkHeatTemplateLookup;
49 import org.onap.so.db.catalog.beans.ToscaCsar;
50 import org.onap.so.db.catalog.beans.VfModule;
51 import org.onap.so.db.catalog.beans.VfModuleCustomization;
52 import org.onap.so.db.catalog.beans.VnfResourceCustomization;
53 import org.onap.so.logger.ErrorCode;
54 import org.onap.so.logger.MessageEnum;
55 import org.slf4j.Logger;
56 import org.slf4j.LoggerFactory;
57 import org.springframework.beans.factory.annotation.Value;
59 public class ToscaResourceStructure {
61 protected static final Logger logger = LoggerFactory.getLogger(ToscaResourceStructure.class);
64 * mso config path, used for the config files, like download csar files.
66 private String msoConfigPath;
68 Metadata serviceMetadata;
69 private Service catalogService;
70 ISdcCsarHelper sdcCsarHelper;
71 List<NodeTemplate> allottedList;
72 List<NodeTemplate> networkTypes;
73 List<NodeTemplate> vfTypes;
74 String heatTemplateUUID;
75 String volHeatTemplateUUID;
76 String volHeatEnvTemplateUUID;
77 String envHeatTemplateUUID;
79 String workloadPerformance;
80 String serviceVersion;
81 private boolean isDeployedSuccessfully = false;
84 private NetworkResourceCustomization catalogNetworkResourceCustomization;
86 private NetworkResource catalogNetworkResource;
88 private List<NetworkInstanceGroup> catalogNetworkInstanceGroup;
90 private CollectionNetworkResourceCustomization catalogCollectionNetworkResourceCustomization;
92 private CollectionResource catalogCollectionResource;
94 private CollectionResourceCustomization catalogCollectionResourceCustomization;
96 private NetworkCollectionResourceCustomization catalogNetworkCollectionResourceCustomization;
98 private ServiceProxyResourceCustomization catalogServiceProxyResourceCustomization;
100 private ConfigurationResource catalogConfigurationResource;
102 private ConfigurationResourceCustomization catalogConfigurationResourceCustomization;
104 private AllottedResourceCustomization catalogResourceCustomization;
106 private VfModule vfModule;
108 private VfModuleCustomization vfModuleCustomization;
110 private VnfResourceCustomization vnfResourceCustomization;
112 private PnfResourceCustomization pnfResourceCustomization;
114 private AllottedResource allottedResource;
116 private AllottedResourceCustomization allottedResourceCustomization;
118 private TempNetworkHeatTemplateLookup tempNetworkHeatTemplateLookup;
120 private IArtifactInfo toscaArtifact;
122 private ToscaCsar toscaCsar;
124 public ToscaResourceStructure() {
125 this(System.getProperty("mso.config.path"));
128 public ToscaResourceStructure(final String msoConfigPath) {
129 this.msoConfigPath = msoConfigPath;
130 logger.info("MSO config path is: {}", msoConfigPath);
133 public void updateResourceStructure(IArtifactInfo artifact) throws ASDCDownloadException {
136 SdcToscaParserFactory factory = SdcToscaParserFactory.getInstance();// Autoclosable
139 Paths.get(msoConfigPath, "ASDC", artifact.getArtifactVersion(), artifact.getArtifactName())
140 .normalize().toString();
142 File spoolFile = new File(filePath);
144 logger.debug("ASDC File path is: {}", spoolFile.getAbsolutePath());
145 logger.info("{} {} {} {}", MessageEnum.ASDC_RECEIVE_SERVICE_NOTIF.toString(), "***PATH", "ASDC",
146 spoolFile.getAbsolutePath());
148 sdcCsarHelper = factory.getSdcCsarHelper(spoolFile.getAbsolutePath(), false);
150 } catch (Exception e) {
151 logger.debug(e.getMessage(), e);
152 logger.error("{} {} {} {} {} {}", MessageEnum.ASDC_GENERAL_EXCEPTION_ARG.toString(),
153 "Exception caught during parser *****LOOK********* " + artifact.getArtifactName(), "ASDC",
154 "processResourceNotification", ErrorCode.BusinessProcesssError.getValue(),
155 "Exception in " + "processResourceNotification", e);
157 throw new ASDCDownloadException("Exception caught when passing the csar file to the parser ", e);
160 serviceMetadata = sdcCsarHelper.getServiceMetadata();
164 public String getHeatTemplateUUID() {
165 return heatTemplateUUID;
168 public void setHeatTemplateUUID(String heatTemplateUUID) {
169 this.heatTemplateUUID = heatTemplateUUID;
172 public List<NodeTemplate> getAllottedList() {
176 public void setAllottedList(List<NodeTemplate> allottedList) {
177 this.allottedList = allottedList;
180 public ISdcCsarHelper getSdcCsarHelper() {
181 return sdcCsarHelper;
184 public void setSdcCsarHelper(ISdcCsarHelper sdcCsarHelper) {
185 this.sdcCsarHelper = sdcCsarHelper;
188 public Metadata getServiceMetadata() {
189 return serviceMetadata;
192 public Service getCatalogService() {
193 return catalogService;
196 public void setServiceMetadata(Metadata serviceMetadata) {
197 this.serviceMetadata = serviceMetadata;
200 public void setCatalogService(Service catalogService) {
201 this.catalogService = catalogService;
204 public List<NodeTemplate> getNetworkTypes() {
208 public void setNetworkTypes(List<NodeTemplate> networkTypes) {
209 this.networkTypes = networkTypes;
212 public List<NodeTemplate> getVfTypes() {
216 public void setVfTypes(List<NodeTemplate> vfTypes) {
217 this.vfTypes = vfTypes;
220 public AllottedResourceCustomization getCatalogResourceCustomization() {
221 return catalogResourceCustomization;
224 public void setCatalogResourceCustomization(AllottedResourceCustomization catalogResourceCustomization) {
225 this.catalogResourceCustomization = catalogResourceCustomization;
229 public NetworkResourceCustomization getCatalogNetworkResourceCustomization() {
230 return catalogNetworkResourceCustomization;
234 public void setCatalogNetworkResourceCustomization(
235 NetworkResourceCustomization catalogNetworkResourceCustomization) {
236 this.catalogNetworkResourceCustomization = catalogNetworkResourceCustomization;
239 public NetworkResource getCatalogNetworkResource() {
240 return catalogNetworkResource;
243 public void setCatalogNetworkResource(NetworkResource catalogNetworkResource) {
244 this.catalogNetworkResource = catalogNetworkResource;
247 public VfModule getCatalogVfModule() {
251 public void setCatalogVfModule(VfModule vfModule) {
252 this.vfModule = vfModule;
255 * public VnfResource getCatalogVnfResource() { return vnfResource; }
257 * public void setCatalogVnfResource(VnfResource vnfResource) { this.vnfResource = vnfResource; }
261 public VnfResourceCustomization getCatalogVnfResourceCustomization() {
262 return vnfResourceCustomization;
265 public void setCatalogVnfResourceCustomization(VnfResourceCustomization vnfResourceCustomization) {
266 this.vnfResourceCustomization = vnfResourceCustomization;
269 public PnfResourceCustomization getPnfResourceCustomization() {
270 return pnfResourceCustomization;
273 public void setPnfResourceCustomization(PnfResourceCustomization pnfResourceCustomization) {
274 this.pnfResourceCustomization = pnfResourceCustomization;
278 public VfModuleCustomization getCatalogVfModuleCustomization() {
279 return vfModuleCustomization;
282 public void setCatalogVfModuleCustomization(VfModuleCustomization vfModuleCustomization) {
283 this.vfModuleCustomization = vfModuleCustomization;
286 public AllottedResource getAllottedResource() {
287 return allottedResource;
290 public void setAllottedResource(AllottedResource allottedResource) {
291 this.allottedResource = allottedResource;
294 public AllottedResourceCustomization getCatalogAllottedResourceCustomization() {
295 return allottedResourceCustomization;
298 public void setCatalogAllottedResourceCustomization(AllottedResourceCustomization allottedResourceCustomization) {
299 this.allottedResourceCustomization = allottedResourceCustomization;
302 public TempNetworkHeatTemplateLookup getCatalogTempNetworkHeatTemplateLookup() {
303 return tempNetworkHeatTemplateLookup;
306 public void setCatalogTempNetworkHeatTemplateLookup(TempNetworkHeatTemplateLookup tempNetworkHeatTemplateLookup) {
307 this.tempNetworkHeatTemplateLookup = tempNetworkHeatTemplateLookup;
310 public String getHeatFilesUUID() {
311 return heatFilesUUID;
314 public void setHeatFilesUUID(String heatFilesUUID) {
315 this.heatFilesUUID = heatFilesUUID;
318 public IArtifactInfo getToscaArtifact() {
319 return toscaArtifact;
322 public void setToscaArtifact(IArtifactInfo toscaArtifact) {
323 this.toscaArtifact = toscaArtifact;
326 public ToscaCsar getCatalogToscaCsar() {
330 public void setCatalogToscaCsar(ToscaCsar toscaCsar) {
331 this.toscaCsar = toscaCsar;
334 public String getVolHeatTemplateUUID() {
335 return volHeatTemplateUUID;
338 public void setVolHeatTemplateUUID(String volHeatTemplateUUID) {
339 this.volHeatTemplateUUID = volHeatTemplateUUID;
342 public String getEnvHeatTemplateUUID() {
343 return envHeatTemplateUUID;
346 public void setEnvHeatTemplateUUID(String envHeatTemplateUUID) {
347 this.envHeatTemplateUUID = envHeatTemplateUUID;
350 public String getVolHeatEnvTemplateUUID() {
351 return volHeatEnvTemplateUUID;
354 public void setVolHeatEnvTemplateUUID(String volHeatEnvTemplateUUID) {
355 this.volHeatEnvTemplateUUID = volHeatEnvTemplateUUID;
358 public String getServiceVersion() {
359 return serviceVersion;
362 public void setServiceVersion(String serviceVersion) {
363 this.serviceVersion = serviceVersion;
366 public String getWorkloadPerformance() {
367 return workloadPerformance;
370 public void setWorkloadPerformance(String workloadPerformance) {
371 this.workloadPerformance = workloadPerformance;
374 public VfModule getVfModule() {
378 public void setVfModule(VfModule vfModule) {
379 this.vfModule = vfModule;
382 public VfModuleCustomization getVfModuleCustomization() {
383 return vfModuleCustomization;
386 public void setVfModuleCustomization(VfModuleCustomization vfModuleCustomization) {
387 this.vfModuleCustomization = vfModuleCustomization;
391 public VnfResourceCustomization getVnfResourceCustomization() {
392 return vnfResourceCustomization;
395 public void setVnfResourceCustomization(VnfResourceCustomization vnfResourceCustomization) {
396 this.vnfResourceCustomization = vnfResourceCustomization;
399 public AllottedResourceCustomization getAllottedResourceCustomization() {
400 return allottedResourceCustomization;
403 public void setAllottedResourceCustomization(AllottedResourceCustomization allottedResourceCustomization) {
404 this.allottedResourceCustomization = allottedResourceCustomization;
407 public TempNetworkHeatTemplateLookup getTempNetworkHeatTemplateLookup() {
408 return tempNetworkHeatTemplateLookup;
411 public void setTempNetworkHeatTemplateLookup(TempNetworkHeatTemplateLookup tempNetworkHeatTemplateLookup) {
412 this.tempNetworkHeatTemplateLookup = tempNetworkHeatTemplateLookup;
415 public List<NetworkInstanceGroup> getCatalogNetworkInstanceGroup() {
416 return catalogNetworkInstanceGroup;
419 public void setCatalogNetworkInstanceGroup(List<NetworkInstanceGroup> catalogNetworkInstanceGroup) {
420 this.catalogNetworkInstanceGroup = catalogNetworkInstanceGroup;
423 public CollectionNetworkResourceCustomization getCatalogCollectionNetworkResourceCustomization() {
424 return catalogCollectionNetworkResourceCustomization;
427 public void setCatalogCollectionNetworkResourceCustomization(
428 CollectionNetworkResourceCustomization catalogCollectionNetworkResourceCustomization) {
429 this.catalogCollectionNetworkResourceCustomization = catalogCollectionNetworkResourceCustomization;
432 public CollectionResource getCatalogCollectionResource() {
433 return catalogCollectionResource;
436 public void setCatalogCollectionResource(CollectionResource catalogCollectionResource) {
437 this.catalogCollectionResource = catalogCollectionResource;
440 public CollectionResourceCustomization getCatalogCollectionResourceCustomization() {
441 return catalogCollectionResourceCustomization;
444 public void setCatalogCollectionResourceCustomization(
445 CollectionResourceCustomization catalogCollectionResourceCustomization) {
446 this.catalogCollectionResourceCustomization = catalogCollectionResourceCustomization;
449 public NetworkCollectionResourceCustomization getCatalogNetworkCollectionResourceCustomization() {
450 return catalogNetworkCollectionResourceCustomization;
453 public void setCatalogNetworkCollectionResourceCustomization(
454 NetworkCollectionResourceCustomization catalogNetworkCollectionResourceCustomization) {
455 this.catalogNetworkCollectionResourceCustomization = catalogNetworkCollectionResourceCustomization;
458 public ServiceProxyResourceCustomization getCatalogServiceProxyResourceCustomization() {
459 return catalogServiceProxyResourceCustomization;
462 public void setCatalogServiceProxyResourceCustomization(
463 ServiceProxyResourceCustomization catalogServiceProxyResourceCustomization) {
464 this.catalogServiceProxyResourceCustomization = catalogServiceProxyResourceCustomization;
467 public ConfigurationResource getCatalogConfigurationResource() {
468 return catalogConfigurationResource;
471 public void setCatalogConfigurationResource(ConfigurationResource catalogConfigurationResource) {
472 this.catalogConfigurationResource = catalogConfigurationResource;
475 public ConfigurationResourceCustomization getCatalogConfigurationResourceCustomization() {
476 return catalogConfigurationResourceCustomization;
479 public void setCatalogConfigurationResourceCustomization(
480 ConfigurationResourceCustomization catalogConfigurationResourceCustomization) {
481 this.catalogConfigurationResourceCustomization = catalogConfigurationResourceCustomization;
484 public ToscaCsar getToscaCsar() {
488 public void setToscaCsar(ToscaCsar toscaCsar) {
489 this.toscaCsar = toscaCsar;
492 public boolean isDeployedSuccessfully() {
493 return isDeployedSuccessfully;
496 public void setSuccessfulDeployment() {
497 isDeployedSuccessfully = true;