aboutsummaryrefslogtreecommitdiffstats
path: root/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/ManualVspToscaManagerImpl.java
blob: 06e54528b727098e80a35ab89f86ee91fe6607d8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
package org.openecomp.sdc.vendorsoftwareproduct.impl;

import org.apache.commons.collections4.MapUtils;
import org.openecomp.sdc.datatypes.error.ErrorLevel;
import org.openecomp.sdc.generator.core.services.ManualVspToscaGenerationService;
import org.openecomp.sdc.generator.datatypes.tosca.DeploymentFlavorModel;
import org.openecomp.sdc.generator.datatypes.tosca.MultiFlavorVfcImage;
import org.openecomp.sdc.generator.datatypes.tosca.VspModelInfo;
import org.openecomp.sdc.logging.context.impl.MdcDataDebugMessage;
import org.openecomp.sdc.logging.context.impl.MdcDataErrorMessage;
import org.openecomp.sdc.logging.types.LoggerConstants;
import org.openecomp.sdc.logging.types.LoggerErrorCode;
import org.openecomp.sdc.logging.types.LoggerTragetServiceName;
import org.openecomp.sdc.tosca.datatypes.ToscaServiceModel;
import org.openecomp.sdc.vendorsoftwareproduct.ManualVspToscaManager;
import org.openecomp.sdc.vendorsoftwareproduct.services.ManualVspDataCollectionService;
import org.openecomp.sdc.vendorsoftwareproduct.types.composition.Nic;
import org.openecomp.sdc.versioning.dao.types.Version;

import java.util.List;
import java.util.Map;
import java.util.Optional;

public class ManualVspToscaManagerImpl implements ManualVspToscaManager {

  private static MdcDataDebugMessage mdcDataDebugMessage = new MdcDataDebugMessage();
  private ManualVspDataCollectionService
      manualVspDataCollectionService = new ManualVspDataCollectionService();

  @Override
  public VspModelInfo gatherVspInformation(String vspId, Version version, String user) {
    mdcDataDebugMessage.debugEntryMessage(null, null);
    VspModelInfo vspModelInfo = new VspModelInfo();
    //Get Release Vendor Name
    Optional<String> releaseVendor;
    try {
      releaseVendor = manualVspDataCollectionService.getReleaseVendor(vspId, version, user);
    } catch (Exception ex) {
      releaseVendor = Optional.empty();
      MdcDataErrorMessage.createErrorMessageAndUpdateMdc(LoggerConstants.TARGET_ENTITY_API,
          LoggerTragetServiceName.COLLECT_MANUAL_VSP_TOSCA_DATA, ErrorLevel.INFO.name(),
          LoggerErrorCode.DATA_ERROR.getErrorCode(), "Release Vendor not found : "
              + ex.getMessage());
    }
    releaseVendor.ifPresent(vspModelInfo::setReleaseVendor);

    //Get Allowed Deployment flavors information
    Map<String, DeploymentFlavorModel> allowedFlavors;
    try {
      allowedFlavors = manualVspDataCollectionService.getAllowedFlavors(vspId, version, user);
    } catch (Exception ex) {
      MdcDataErrorMessage.createErrorMessageAndUpdateMdc(LoggerConstants.TARGET_ENTITY_API,
          LoggerTragetServiceName.COLLECT_MANUAL_VSP_TOSCA_DATA, ErrorLevel.INFO.name(),
          LoggerErrorCode.DATA_ERROR.getErrorCode(), "Unable to collect allowed flavors : "
              + ex.getMessage());
      allowedFlavors = null;
    }
    if (MapUtils.isNotEmpty(allowedFlavors)) {
      vspModelInfo.setAllowedFlavors(allowedFlavors);
    }

    //Get VFC Image information
    Map<String, List<MultiFlavorVfcImage>> vspComponentImages;
    try {
      vspComponentImages =
          manualVspDataCollectionService.getVspComponentImages(vspId, version, user);
    } catch (Exception ex) {
      MdcDataErrorMessage.createErrorMessageAndUpdateMdc(LoggerConstants.TARGET_ENTITY_API,
          LoggerTragetServiceName.COLLECT_MANUAL_VSP_TOSCA_DATA, ErrorLevel.INFO.name(),
          LoggerErrorCode.DATA_ERROR.getErrorCode(), "Unable to collect vsp component images : "
              + ex.getMessage());
      vspComponentImages = null;
    }
    if (MapUtils.isNotEmpty(vspComponentImages)) {
      vspModelInfo.setMultiFlavorVfcImages(vspComponentImages);
    }

    //Get VFC component information
    Map<String, String> vspComponents;
    try {
      vspComponents = manualVspDataCollectionService.getVspComponents(vspId, version, user);
    } catch (Exception ex) {
      MdcDataErrorMessage.createErrorMessageAndUpdateMdc(LoggerConstants.TARGET_ENTITY_API,
          LoggerTragetServiceName.COLLECT_MANUAL_VSP_TOSCA_DATA, ErrorLevel.INFO.name(),
          LoggerErrorCode.DATA_ERROR.getErrorCode(), "Unable to collect vsp components : "
              + ex.getMessage());
      vspComponents = null;
    }
    if (MapUtils.isNotEmpty(vspComponents)) {
      vspModelInfo.setComponents(vspComponents);
    }

    //Get VSP component nic information
    Map<String, List<Nic>> vspComponentNics;
    try {
      vspComponentNics = manualVspDataCollectionService.getVspComponentNics(vspId, version, user);
    } catch (Exception ex) {
      MdcDataErrorMessage.createErrorMessageAndUpdateMdc(LoggerConstants.TARGET_ENTITY_API,
          LoggerTragetServiceName.COLLECT_MANUAL_VSP_TOSCA_DATA, ErrorLevel.INFO.name(),
          LoggerErrorCode.DATA_ERROR.getErrorCode(), "Unable to collect vsp component nics : "
              + ex.getMessage());
      vspComponentNics = null;
    }
    if (MapUtils.isNotEmpty(vspComponentNics)) {
      vspModelInfo.setNics(vspComponentNics);
    }

    mdcDataDebugMessage.debugExitMessage(null, null);
    return vspModelInfo;
  }

  @Override
  public ToscaServiceModel generateToscaModel(VspModelInfo vspModelInfo) {
    mdcDataDebugMessage.debugEntryMessage(null, null);
    ManualVspToscaGenerationService vspToscaGenerator = new ManualVspToscaGenerationService();
    ToscaServiceModel manualVspToscaServiceModel =
        vspToscaGenerator.createManualVspToscaServiceModel(vspModelInfo);
    mdcDataDebugMessage.debugExitMessage(null, null);
    return manualVspToscaServiceModel;
  }
}