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