1 package org.openecomp.sdc.vendorsoftwareproduct.impl;
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.MdcDataDebugMessage;
10 import org.openecomp.sdc.logging.context.impl.MdcDataErrorMessage;
11 import org.openecomp.sdc.logging.types.LoggerConstants;
12 import org.openecomp.sdc.logging.types.LoggerErrorCode;
13 import org.openecomp.sdc.logging.types.LoggerTragetServiceName;
14 import org.openecomp.sdc.tosca.datatypes.ToscaServiceModel;
15 import org.openecomp.sdc.vendorsoftwareproduct.ManualVspToscaManager;
16 import org.openecomp.sdc.vendorsoftwareproduct.services.ManualVspDataCollectionService;
17 import org.openecomp.sdc.vendorsoftwareproduct.types.composition.Nic;
18 import org.openecomp.sdc.versioning.dao.types.Version;
20 import java.util.List;
22 import java.util.Optional;
24 public class ManualVspToscaManagerImpl implements ManualVspToscaManager {
26 private static MdcDataDebugMessage mdcDataDebugMessage = new MdcDataDebugMessage();
27 private ManualVspDataCollectionService
28 manualVspDataCollectionService = new ManualVspDataCollectionService();
31 public VspModelInfo gatherVspInformation(String vspId, Version version) {
32 mdcDataDebugMessage.debugEntryMessage(null, null);
33 VspModelInfo vspModelInfo = new VspModelInfo();
34 //Get Release Vendor Name
35 Optional<String> releaseVendor;
37 releaseVendor = manualVspDataCollectionService.getReleaseVendor(vspId, version);
38 } catch (Exception ex) {
39 releaseVendor = Optional.empty();
40 MdcDataErrorMessage.createErrorMessageAndUpdateMdc(LoggerConstants.TARGET_ENTITY_API,
41 LoggerTragetServiceName.COLLECT_MANUAL_VSP_TOSCA_DATA, ErrorLevel.INFO.name(),
42 LoggerErrorCode.DATA_ERROR.getErrorCode(), "Release Vendor not found : "
45 releaseVendor.ifPresent(vspModelInfo::setReleaseVendor);
47 //Get Allowed Deployment flavors information
48 Map<String, DeploymentFlavorModel> allowedFlavors;
50 allowedFlavors = manualVspDataCollectionService.getAllowedFlavors(vspId, version);
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 : "
56 allowedFlavors = null;
58 if (MapUtils.isNotEmpty(allowedFlavors)) {
59 vspModelInfo.setAllowedFlavors(allowedFlavors);
62 //Get VFC Image information
63 Map<String, List<MultiFlavorVfcImage>> vspComponentImages;
66 manualVspDataCollectionService.getVspComponentImages(vspId, version);
67 } catch (Exception ex) {
68 MdcDataErrorMessage.createErrorMessageAndUpdateMdc(LoggerConstants.TARGET_ENTITY_API,
69 LoggerTragetServiceName.COLLECT_MANUAL_VSP_TOSCA_DATA, ErrorLevel.INFO.name(),
70 LoggerErrorCode.DATA_ERROR.getErrorCode(), "Unable to collect vsp component images : "
72 vspComponentImages = null;
74 if (MapUtils.isNotEmpty(vspComponentImages)) {
75 vspModelInfo.setMultiFlavorVfcImages(vspComponentImages);
78 //Get VFC component information
79 Map<String, String> vspComponents;
81 vspComponents = manualVspDataCollectionService.getVspComponents(vspId, version);
82 } catch (Exception ex) {
83 MdcDataErrorMessage.createErrorMessageAndUpdateMdc(LoggerConstants.TARGET_ENTITY_API,
84 LoggerTragetServiceName.COLLECT_MANUAL_VSP_TOSCA_DATA, ErrorLevel.INFO.name(),
85 LoggerErrorCode.DATA_ERROR.getErrorCode(), "Unable to collect vsp components : "
89 if (MapUtils.isNotEmpty(vspComponents)) {
90 vspModelInfo.setComponents(vspComponents);
93 //Get VSP component nic information
94 Map<String, List<Nic>> vspComponentNics;
96 vspComponentNics = manualVspDataCollectionService.getVspComponentNics(vspId, version);
97 } catch (Exception ex) {
98 MdcDataErrorMessage.createErrorMessageAndUpdateMdc(LoggerConstants.TARGET_ENTITY_API,
99 LoggerTragetServiceName.COLLECT_MANUAL_VSP_TOSCA_DATA, ErrorLevel.INFO.name(),
100 LoggerErrorCode.DATA_ERROR.getErrorCode(), "Unable to collect vsp component nics : "
102 vspComponentNics = null;
104 if (MapUtils.isNotEmpty(vspComponentNics)) {
105 vspModelInfo.setNics(vspComponentNics);
108 mdcDataDebugMessage.debugExitMessage(null, null);
113 public ToscaServiceModel generateToscaModel(VspModelInfo vspModelInfo) {
114 mdcDataDebugMessage.debugEntryMessage(null, null);
115 ManualVspToscaGenerationService vspToscaGenerator = new ManualVspToscaGenerationService();
116 ToscaServiceModel manualVspToscaServiceModel =
117 vspToscaGenerator.createManualVspToscaServiceModel(vspModelInfo);
118 mdcDataDebugMessage.debugExitMessage(null, null);
119 return manualVspToscaServiceModel;