3efc503fcb07c3ecb3213b74c9edb9cea06ecd89
[so.git] / asdc-controller / src / main / java / org / onap / so / asdc / installer / ToscaResourceStructure.java
1 /*-
2  * ============LICENSE_START=======================================================
3  * ONAP - SO
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
12  * 
13  *      http://www.apache.org/licenses/LICENSE-2.0
14  * 
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=========================================================
21  */
22
23 package org.onap.so.asdc.installer;
24
25 import java.io.File;
26 import java.nio.file.Paths;
27 import java.util.List;
28
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;
59
60 public class ToscaResourceStructure {
61
62         protected static final Logger logger = LoggerFactory.getLogger(ToscaResourceStructure.class);
63
64         /**
65          * mso config path, used for the config files, like download csar files.
66          */
67         private String msoConfigPath;
68         
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;
79         String heatFilesUUID;
80         String workloadPerformance;
81         String serviceVersion;
82         private boolean isDeployedSuccessfully=false;
83         
84         
85         private NetworkResourceCustomization catalogNetworkResourceCustomization;
86         
87         private NetworkResource catalogNetworkResource;
88         
89         private List<NetworkInstanceGroup> catalogNetworkInstanceGroup;
90         
91         private CollectionNetworkResourceCustomization catalogCollectionNetworkResourceCustomization;
92         
93         private CollectionResource catalogCollectionResource;
94         
95         private CollectionResourceCustomization catalogCollectionResourceCustomization;
96         
97         private NetworkCollectionResourceCustomization catalogNetworkCollectionResourceCustomization;
98                 
99         private ServiceProxyResourceCustomization catalogServiceProxyResourceCustomization;
100         
101         private ConfigurationResource catalogConfigurationResource;
102         
103         private ConfigurationResourceCustomization catalogConfigurationResourceCustomization;
104                 
105         private AllottedResourceCustomization catalogResourceCustomization;
106         
107         private VfModule vfModule;
108         
109         private VfModuleCustomization vfModuleCustomization;
110
111         private VnfResourceCustomization vnfResourceCustomization;
112
113         private PnfResourceCustomization pnfResourceCustomization;
114                 
115         private AllottedResource allottedResource;
116         
117         private AllottedResourceCustomization allottedResourceCustomization;
118         
119         private TempNetworkHeatTemplateLookup tempNetworkHeatTemplateLookup;
120         
121         private IArtifactInfo toscaArtifact;
122         
123         private ToscaCsar toscaCsar;
124         
125         public ToscaResourceStructure(){
126                 this(System.getProperty("mso.config.path"));
127         }
128
129         public ToscaResourceStructure(final String msoConfigPath){
130                 this.msoConfigPath = msoConfigPath;
131                 logger.info("MSO config path is: {}", msoConfigPath);
132         }
133
134         public void updateResourceStructure(IArtifactInfo artifact) throws ASDCDownloadException {
135
136                 try {
137                         SdcToscaParserFactory factory = SdcToscaParserFactory.getInstance();//Autoclosable
138
139                         String filePath = Paths.get(msoConfigPath, "ASDC",  artifact.getArtifactVersion(), artifact.getArtifactName()).normalize().toString();
140
141                         File spoolFile = new File(filePath);
142
143                         logger.debug("ASDC File path is: {}", spoolFile.getAbsolutePath());
144                         logger.info("{} {} {} {}", MessageEnum.ASDC_RECEIVE_SERVICE_NOTIF.toString(), "***PATH", "ASDC",
145                                 spoolFile.getAbsolutePath());
146
147                         sdcCsarHelper = factory.getSdcCsarHelper(spoolFile.getAbsolutePath(),false);
148
149                 }catch(Exception e){
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);
155                         
156                         throw new ASDCDownloadException ("Exception caught when passing the csar file to the parser ", e);
157                 }       
158
159                         serviceMetadata = sdcCsarHelper.getServiceMetadata();
160         
161         }
162         
163         public String getHeatTemplateUUID() {
164                 return heatTemplateUUID;
165         }
166
167         public void setHeatTemplateUUID(String heatTemplateUUID) {
168                 this.heatTemplateUUID = heatTemplateUUID;
169         }
170
171         public List<NodeTemplate> getAllottedList() {
172                 return allottedList;
173         }
174
175         public void setAllottedList(List<NodeTemplate> allottedList) {
176                 this.allottedList = allottedList;
177         }
178
179         public ISdcCsarHelper getSdcCsarHelper() {
180                 return sdcCsarHelper;
181         }
182
183         public void setSdcCsarHelper(ISdcCsarHelper sdcCsarHelper) {
184                 this.sdcCsarHelper = sdcCsarHelper;
185         }
186
187         public Metadata getServiceMetadata() {
188                 return serviceMetadata;
189         }
190         
191         public Service getCatalogService() {
192                 return catalogService;
193         }
194
195         public void setServiceMetadata(Metadata serviceMetadata) {
196                 this.serviceMetadata = serviceMetadata;
197         }
198         
199         public void setCatalogService(Service catalogService) {
200                 this.catalogService = catalogService;
201         }
202
203         public List<NodeTemplate> getNetworkTypes() {
204                 return networkTypes;
205         }
206
207         public void setNetworkTypes(List<NodeTemplate> networkTypes) {
208                 this.networkTypes = networkTypes;
209         }
210         
211         public List<NodeTemplate> getVfTypes() {
212                 return vfTypes;
213         }
214
215         public void setVfTypes(List<NodeTemplate> vfTypes) {
216                 this.vfTypes = vfTypes;
217         }
218
219         public AllottedResourceCustomization getCatalogResourceCustomization() {
220                 return catalogResourceCustomization;
221         }
222
223         public void setCatalogResourceCustomization(
224                         AllottedResourceCustomization catalogResourceCustomization) {
225                 this.catalogResourceCustomization = catalogResourceCustomization;
226         }
227         
228         // Network Only
229         public NetworkResourceCustomization getCatalogNetworkResourceCustomization() {
230                 return catalogNetworkResourceCustomization;
231         }
232         // Network Only
233         public void setCatalogNetworkResourceCustomization(NetworkResourceCustomization catalogNetworkResourceCustomization) {
234                 this.catalogNetworkResourceCustomization = catalogNetworkResourceCustomization;
235         }
236
237         public NetworkResource getCatalogNetworkResource() {
238                 return catalogNetworkResource;
239         }
240
241         public void setCatalogNetworkResource(NetworkResource catalogNetworkResource) {
242                 this.catalogNetworkResource = catalogNetworkResource;
243         }
244
245         public VfModule getCatalogVfModule() {
246                 return vfModule;
247         }
248
249         public void setCatalogVfModule(VfModule vfModule) {
250                 this.vfModule = vfModule;
251         }
252 /*
253         public VnfResource getCatalogVnfResource() {
254                 return vnfResource;
255         }
256
257         public void setCatalogVnfResource(VnfResource vnfResource) {
258                 this.vnfResource = vnfResource;
259         }
260         
261         */
262
263         public VnfResourceCustomization getCatalogVnfResourceCustomization() {
264                 return vnfResourceCustomization;
265         }
266
267         public void setCatalogVnfResourceCustomization(
268                         VnfResourceCustomization vnfResourceCustomization) {
269                 this.vnfResourceCustomization = vnfResourceCustomization;
270         }
271
272         public PnfResourceCustomization getPnfResourceCustomization() {
273                 return pnfResourceCustomization;
274         }
275
276         public void setPnfResourceCustomization(PnfResourceCustomization pnfResourceCustomization) {
277                 this.pnfResourceCustomization = pnfResourceCustomization;
278         }
279
280
281         public VfModuleCustomization getCatalogVfModuleCustomization() {
282                 return vfModuleCustomization;
283         }
284
285         public void setCatalogVfModuleCustomization(VfModuleCustomization vfModuleCustomization) {
286                 this.vfModuleCustomization = vfModuleCustomization;
287         }
288
289         public AllottedResource getAllottedResource() {
290                 return allottedResource;
291         }
292
293         public void setAllottedResource(AllottedResource allottedResource) {
294                 this.allottedResource = allottedResource;
295         }
296
297         public AllottedResourceCustomization getCatalogAllottedResourceCustomization() {
298                 return allottedResourceCustomization;
299         }
300
301         public void setCatalogAllottedResourceCustomization(
302                         AllottedResourceCustomization allottedResourceCustomization) {
303                 this.allottedResourceCustomization = allottedResourceCustomization;
304         }
305
306         public TempNetworkHeatTemplateLookup getCatalogTempNetworkHeatTemplateLookup() {
307                 return tempNetworkHeatTemplateLookup;
308         }
309
310         public void setCatalogTempNetworkHeatTemplateLookup(
311                         TempNetworkHeatTemplateLookup tempNetworkHeatTemplateLookup) {
312                 this.tempNetworkHeatTemplateLookup = tempNetworkHeatTemplateLookup;
313         }
314
315         public String getHeatFilesUUID() {
316                 return heatFilesUUID;
317         }
318
319         public void setHeatFilesUUID(String heatFilesUUID) {
320                 this.heatFilesUUID = heatFilesUUID;
321         }
322
323         public IArtifactInfo getToscaArtifact() {
324                 return toscaArtifact;
325         }
326
327         public void setToscaArtifact(IArtifactInfo toscaArtifact) {
328                 this.toscaArtifact = toscaArtifact;
329         }
330
331         public ToscaCsar getCatalogToscaCsar() {
332                 return toscaCsar;
333         }
334
335         public void setCatalogToscaCsar(ToscaCsar toscaCsar) {
336                 this.toscaCsar = toscaCsar;
337         }
338
339         public String getVolHeatTemplateUUID() {
340                 return volHeatTemplateUUID;
341         }
342
343         public void setVolHeatTemplateUUID(String volHeatTemplateUUID) {
344                 this.volHeatTemplateUUID = volHeatTemplateUUID;
345         }
346
347         public String getEnvHeatTemplateUUID() {
348                 return envHeatTemplateUUID;
349         }
350
351         public void setEnvHeatTemplateUUID(String envHeatTemplateUUID) {
352                 this.envHeatTemplateUUID = envHeatTemplateUUID;
353         }
354         
355         public String getVolHeatEnvTemplateUUID() {
356                 return volHeatEnvTemplateUUID;
357         }
358
359         public void setVolHeatEnvTemplateUUID(String volHeatEnvTemplateUUID) {
360                 this.volHeatEnvTemplateUUID = volHeatEnvTemplateUUID;
361         }
362
363         public String getServiceVersion() {
364                 return serviceVersion;
365         }
366
367         public void setServiceVersion(String serviceVersion) {
368                 this.serviceVersion = serviceVersion;
369         }
370
371         public String getWorkloadPerformance() {
372                 return workloadPerformance;
373         }
374
375         public void setWorkloadPerformance(String workloadPerformance) {
376                 this.workloadPerformance = workloadPerformance;
377         }
378
379         public VfModule getVfModule() {
380                 return vfModule;
381         }
382
383         public void setVfModule(VfModule vfModule) {
384                 this.vfModule = vfModule;
385         }
386
387         public VfModuleCustomization getVfModuleCustomization() {
388                 return vfModuleCustomization;
389         }
390
391         public void setVfModuleCustomization(VfModuleCustomization vfModuleCustomization) {
392                 this.vfModuleCustomization = vfModuleCustomization;
393         }
394
395
396         public VnfResourceCustomization getVnfResourceCustomization() {
397                 return vnfResourceCustomization;
398         }
399
400         public void setVnfResourceCustomization(
401                         VnfResourceCustomization vnfResourceCustomization) {
402                 this.vnfResourceCustomization = vnfResourceCustomization;
403         }
404
405         public AllottedResourceCustomization getAllottedResourceCustomization() {
406                 return allottedResourceCustomization;
407         }
408
409         public void setAllottedResourceCustomization(
410                         AllottedResourceCustomization allottedResourceCustomization) {
411                 this.allottedResourceCustomization = allottedResourceCustomization;
412         }
413
414         public TempNetworkHeatTemplateLookup getTempNetworkHeatTemplateLookup() {
415                 return tempNetworkHeatTemplateLookup;
416         }
417
418         public void setTempNetworkHeatTemplateLookup(
419                         TempNetworkHeatTemplateLookup tempNetworkHeatTemplateLookup) {
420                 this.tempNetworkHeatTemplateLookup = tempNetworkHeatTemplateLookup;
421         }
422
423         public List<NetworkInstanceGroup> getCatalogNetworkInstanceGroup() {
424                 return catalogNetworkInstanceGroup;
425         }
426
427         public void setCatalogNetworkInstanceGroup(List<NetworkInstanceGroup> catalogNetworkInstanceGroup) {
428                 this.catalogNetworkInstanceGroup = catalogNetworkInstanceGroup;
429         }
430
431         public CollectionNetworkResourceCustomization getCatalogCollectionNetworkResourceCustomization() {
432                 return catalogCollectionNetworkResourceCustomization;
433         }
434
435         public void setCatalogCollectionNetworkResourceCustomization(
436                         CollectionNetworkResourceCustomization catalogCollectionNetworkResourceCustomization) {
437                 this.catalogCollectionNetworkResourceCustomization = catalogCollectionNetworkResourceCustomization;
438         }
439
440         public CollectionResource getCatalogCollectionResource() {
441                 return catalogCollectionResource;
442         }
443
444         public void setCatalogCollectionResource(CollectionResource catalogCollectionResource) {
445                 this.catalogCollectionResource = catalogCollectionResource;
446         }
447
448         public CollectionResourceCustomization getCatalogCollectionResourceCustomization() {
449                 return catalogCollectionResourceCustomization;
450         }
451
452         public void setCatalogCollectionResourceCustomization(
453                         CollectionResourceCustomization catalogCollectionResourceCustomization) {
454                 this.catalogCollectionResourceCustomization = catalogCollectionResourceCustomization;
455         }
456
457         public NetworkCollectionResourceCustomization getCatalogNetworkCollectionResourceCustomization() {
458                 return catalogNetworkCollectionResourceCustomization;
459         }
460
461         public void setCatalogNetworkCollectionResourceCustomization(
462                         NetworkCollectionResourceCustomization catalogNetworkCollectionResourceCustomization) {
463                 this.catalogNetworkCollectionResourceCustomization = catalogNetworkCollectionResourceCustomization;
464         }
465
466         public ServiceProxyResourceCustomization getCatalogServiceProxyResourceCustomization() {
467                 return catalogServiceProxyResourceCustomization;
468         }
469
470         public void setCatalogServiceProxyResourceCustomization(
471                         ServiceProxyResourceCustomization catalogServiceProxyResourceCustomization) {
472                 this.catalogServiceProxyResourceCustomization = catalogServiceProxyResourceCustomization;
473         }
474
475         public ConfigurationResource getCatalogConfigurationResource() {
476                 return catalogConfigurationResource;
477         }
478
479         public void setCatalogConfigurationResource(ConfigurationResource catalogConfigurationResource) {
480                 this.catalogConfigurationResource = catalogConfigurationResource;
481         }
482
483         public ConfigurationResourceCustomization getCatalogConfigurationResourceCustomization() {
484                 return catalogConfigurationResourceCustomization;
485         }
486
487         public void setCatalogConfigurationResourceCustomization(
488                         ConfigurationResourceCustomization catalogConfigurationResourceCustomization) {
489                 this.catalogConfigurationResourceCustomization = catalogConfigurationResourceCustomization;
490         }
491
492         public ToscaCsar getToscaCsar() {
493                 return toscaCsar;
494         }
495
496         public void setToscaCsar(ToscaCsar toscaCsar) {
497                 this.toscaCsar = toscaCsar;
498         }
499
500         public boolean isDeployedSuccessfully() {
501                 return isDeployedSuccessfully;
502         }
503
504         public void setSuccessfulDeployment() {
505                 isDeployedSuccessfully = true;
506         }
507
508 }