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