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.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;
21 import java.util.List;
23 import java.util.Optional;
25 public class ManualVspToscaManagerImpl implements ManualVspToscaManager {
27 private static MdcDataDebugMessage mdcDataDebugMessage = new MdcDataDebugMessage();
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;
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");
45 releaseVendor.ifPresent(vspModelInfo::setReleaseVendor);
47 //Get Allowed Deployment flavors information
48 Map<String, DeploymentFlavorModel> allowedFlavors;
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;
57 if (MapUtils.isNotEmpty(allowedFlavors)) {
58 vspModelInfo.setAllowedFlavors(allowedFlavors);
61 //Get VFC Image information
62 Map<String, List<MultiFlavorVfcImage>> 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;
72 if (MapUtils.isNotEmpty(vspComponentImages)) {
73 vspModelInfo.setMultiFlavorVfcImages(vspComponentImages);
76 //Get VFC component information
77 Map<String, String> vspComponents;
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");
86 if (MapUtils.isNotEmpty(vspComponents)) {
87 vspModelInfo.setComponents(vspComponents);
90 //Get VSP component nic information
91 Map<String, List<Nic>> vspComponentNics;
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;
100 if (MapUtils.isNotEmpty(vspComponentNics)) {
101 vspModelInfo.setNics(vspComponentNics);
104 mdcDataDebugMessage.debugExitMessage(null, null);
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;