367d2a9c2114084d8de322d28b0d8fa537f5d616
[sdc.git] /
1 package org.openecomp.sdc.vendorsoftwareproduct.impl;
2
3 import org.apache.commons.collections4.MapUtils;
4 import org.openecomp.sdc.datatypes.error.ErrorLevel;
5 import org.openecomp.sdc.generator.core.services.ManualVspToscaGenerationService;
6 import org.openecomp.sdc.generator.datatypes.tosca.DeploymentFlavorModel;
7 import org.openecomp.sdc.generator.datatypes.tosca.MultiFlavorVfcImage;
8 import org.openecomp.sdc.generator.datatypes.tosca.VspModelInfo;
9 import org.openecomp.sdc.logging.context.impl.MdcDataErrorMessage;
10 import org.openecomp.sdc.logging.types.LoggerConstants;
11 import org.openecomp.sdc.logging.types.LoggerErrorCode;
12 import org.openecomp.sdc.logging.types.LoggerTragetServiceName;
13 import org.openecomp.sdc.tosca.datatypes.ToscaServiceModel;
14 import org.openecomp.sdc.vendorsoftwareproduct.ManualVspToscaManager;
15 import org.openecomp.sdc.vendorsoftwareproduct.services.ManualVspDataCollectionService;
16 import org.openecomp.sdc.vendorsoftwareproduct.types.composition.Nic;
17 import org.openecomp.sdc.versioning.dao.types.Version;
18
19 import java.util.List;
20 import java.util.Map;
21 import java.util.Optional;
22
23 public class ManualVspToscaManagerImpl implements ManualVspToscaManager {
24   private ManualVspDataCollectionService
25       manualVspDataCollectionService = new ManualVspDataCollectionService();
26
27   @Override
28   public VspModelInfo gatherVspInformation(String vspId, Version version) {
29     VspModelInfo vspModelInfo = new VspModelInfo();
30     //Get Release Vendor Name
31     Optional<String> releaseVendor;
32     try {
33       releaseVendor = manualVspDataCollectionService.getReleaseVendor(vspId, version);
34     } catch (Exception ex) {
35       releaseVendor = Optional.empty();
36       MdcDataErrorMessage.createErrorMessageAndUpdateMdc(LoggerConstants.TARGET_ENTITY_API,
37           LoggerTragetServiceName.COLLECT_MANUAL_VSP_TOSCA_DATA, ErrorLevel.INFO.name(),
38           LoggerErrorCode.DATA_ERROR.getErrorCode(), "Release Vendor not found : "
39               + ex.getMessage());
40     }
41     releaseVendor.ifPresent(vspModelInfo::setReleaseVendor);
42
43     //Get Allowed Deployment flavors information
44     Map<String, DeploymentFlavorModel> allowedFlavors;
45     try {
46       allowedFlavors = manualVspDataCollectionService.getAllowedFlavors(vspId, version);
47     } catch (Exception ex) {
48       MdcDataErrorMessage.createErrorMessageAndUpdateMdc(LoggerConstants.TARGET_ENTITY_API,
49           LoggerTragetServiceName.COLLECT_MANUAL_VSP_TOSCA_DATA, ErrorLevel.INFO.name(),
50           LoggerErrorCode.DATA_ERROR.getErrorCode(), "Unable to collect allowed flavors : "
51               + ex.getMessage());
52       allowedFlavors = null;
53     }
54     if (MapUtils.isNotEmpty(allowedFlavors)) {
55       vspModelInfo.setAllowedFlavors(allowedFlavors);
56     }
57
58     //Get VFC Image information
59     Map<String, List<MultiFlavorVfcImage>> vspComponentImages;
60     try {
61       vspComponentImages =
62           manualVspDataCollectionService.getVspComponentImages(vspId, version);
63     } catch (Exception ex) {
64       MdcDataErrorMessage.createErrorMessageAndUpdateMdc(LoggerConstants.TARGET_ENTITY_API,
65           LoggerTragetServiceName.COLLECT_MANUAL_VSP_TOSCA_DATA, ErrorLevel.INFO.name(),
66           LoggerErrorCode.DATA_ERROR.getErrorCode(), "Unable to collect vsp component images : "
67               + ex.getMessage());
68       vspComponentImages = null;
69     }
70     if (MapUtils.isNotEmpty(vspComponentImages)) {
71       vspModelInfo.setMultiFlavorVfcImages(vspComponentImages);
72     }
73
74     //Get VFC component information
75     Map<String, String> vspComponents;
76     try {
77       vspComponents = manualVspDataCollectionService.getVspComponents(vspId, version);
78     } catch (Exception ex) {
79       MdcDataErrorMessage.createErrorMessageAndUpdateMdc(LoggerConstants.TARGET_ENTITY_API,
80           LoggerTragetServiceName.COLLECT_MANUAL_VSP_TOSCA_DATA, ErrorLevel.INFO.name(),
81           LoggerErrorCode.DATA_ERROR.getErrorCode(), "Unable to collect vsp components : "
82               + ex.getMessage());
83       vspComponents = null;
84     }
85     if (MapUtils.isNotEmpty(vspComponents)) {
86       vspModelInfo.setComponents(vspComponents);
87     }
88
89     //Get VSP component nic information
90     Map<String, List<Nic>> vspComponentNics;
91     try {
92       vspComponentNics = manualVspDataCollectionService.getVspComponentNics(vspId, version);
93     } catch (Exception ex) {
94       MdcDataErrorMessage.createErrorMessageAndUpdateMdc(LoggerConstants.TARGET_ENTITY_API,
95           LoggerTragetServiceName.COLLECT_MANUAL_VSP_TOSCA_DATA, ErrorLevel.INFO.name(),
96           LoggerErrorCode.DATA_ERROR.getErrorCode(), "Unable to collect vsp component nics : "
97               + ex.getMessage());
98       vspComponentNics = null;
99     }
100     if (MapUtils.isNotEmpty(vspComponentNics)) {
101       vspModelInfo.setNics(vspComponentNics);
102     }
103     return vspModelInfo;
104   }
105
106   @Override
107   public ToscaServiceModel generateToscaModel(VspModelInfo vspModelInfo) {
108     ManualVspToscaGenerationService vspToscaGenerator = new ManualVspToscaGenerationService();
109     ToscaServiceModel manualVspToscaServiceModel =
110         vspToscaGenerator.createManualVspToscaServiceModel(vspModelInfo);
111     return manualVspToscaServiceModel;
112   }
113 }