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.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;
22 import java.util.List;
24 import java.util.Optional;
26 public class ManualVspToscaManagerImpl implements ManualVspToscaManager {
28 private static MdcDataDebugMessage mdcDataDebugMessage = new MdcDataDebugMessage();
29 private ManualVspDataCollectionService
30 manualVspDataCollectionService = new ManualVspDataCollectionService();
32 private final Logger log = (Logger) LoggerFactory.getLogger(this.getClass().getName());
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;
41 releaseVendor = manualVspDataCollectionService.getReleaseVendor(vspId, version, user);
42 } catch (Exception 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 : "
50 releaseVendor.ifPresent(vspModelInfo::setReleaseVendor);
52 //Get Allowed Deployment flavors information
53 Map<String, DeploymentFlavorModel> allowedFlavors;
55 allowedFlavors = manualVspDataCollectionService.getAllowedFlavors(vspId, version, user);
56 } catch (Exception 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 : "
62 allowedFlavors = null;
64 if (MapUtils.isNotEmpty(allowedFlavors)) {
65 vspModelInfo.setAllowedFlavors(allowedFlavors);
68 //Get VFC Image information
69 Map<String, List<MultiFlavorVfcImage>> vspComponentImages;
72 manualVspDataCollectionService.getVspComponentImages(vspId, version, user);
73 } catch (Exception 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 : "
79 vspComponentImages = null;
81 if (MapUtils.isNotEmpty(vspComponentImages)) {
82 vspModelInfo.setMultiFlavorVfcImages(vspComponentImages);
85 //Get VFC component information
86 Map<String, String> vspComponents;
88 vspComponents = manualVspDataCollectionService.getVspComponents(vspId, version, user);
89 } catch (Exception 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 : "
97 if (MapUtils.isNotEmpty(vspComponents)) {
98 vspModelInfo.setComponents(vspComponents);
101 //Get VSP component nic information
102 Map<String, List<Nic>> vspComponentNics;
104 vspComponentNics = manualVspDataCollectionService.getVspComponentNics(vspId, version, user);
105 } catch (Exception 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 : "
111 vspComponentNics = null;
113 if (MapUtils.isNotEmpty(vspComponentNics)) {
114 vspModelInfo.setNics(vspComponentNics);
117 mdcDataDebugMessage.debugExitMessage(null, null);
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;