aboutsummaryrefslogtreecommitdiffstats
path: root/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/main/java/org/openecomp/sdc/enrichment/impl/tosca/ComponentQuestionnaireData.java
diff options
context:
space:
mode:
Diffstat (limited to 'openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/main/java/org/openecomp/sdc/enrichment/impl/tosca/ComponentQuestionnaireData.java')
-rw-r--r--openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/main/java/org/openecomp/sdc/enrichment/impl/tosca/ComponentQuestionnaireData.java123
1 files changed, 123 insertions, 0 deletions
diff --git a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/main/java/org/openecomp/sdc/enrichment/impl/tosca/ComponentQuestionnaireData.java b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/main/java/org/openecomp/sdc/enrichment/impl/tosca/ComponentQuestionnaireData.java
new file mode 100644
index 0000000000..7457c36701
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/main/java/org/openecomp/sdc/enrichment/impl/tosca/ComponentQuestionnaireData.java
@@ -0,0 +1,123 @@
+package org.openecomp.sdc.enrichment.impl.tosca;
+
+import static org.openecomp.sdc.enrichment.impl.util.EnrichmentConstants.HIGH_AVAIL_MODE;
+import static org.openecomp.sdc.enrichment.impl.util.EnrichmentConstants.MANDATORY;
+import static org.openecomp.sdc.enrichment.impl.util.EnrichmentConstants.MAX_INSTANCES;
+import static org.openecomp.sdc.enrichment.impl.util.EnrichmentConstants.MIN_INSTANCES;
+import static org.openecomp.sdc.enrichment.impl.util.EnrichmentConstants.VFC_NAMING_CODE;
+
+import org.openecomp.core.utilities.json.JsonUtil;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.ComponentDao;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.ComponentDaoFactory;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.ComponentDependencyModelDao;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.ComponentDependencyModelDaoFactory;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.type.ComponentDependencyModelEntity;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.type.ComponentEntity;
+import org.openecomp.sdc.vendorsoftwareproduct.types.composition.ComponentData;
+import org.openecomp.sdc.vendorsoftwareproduct.types.questionnaire.component.ComponentQuestionnaire;
+import org.openecomp.sdc.versioning.dao.types.Version;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+public class ComponentQuestionnaireData {
+
+ ComponentDao componentDao = ComponentDaoFactory.getInstance().createInterface();
+ ComponentDependencyModelDao componentDependencyModelDao = ComponentDependencyModelDaoFactory.getInstance()
+ .createInterface();
+
+ private Map<String,String> sourceToTargetComponent;
+
+ public Map<String,String> getSourceToTargetComponent() {
+ return sourceToTargetComponent;
+ }
+
+ public void setSourceToTargetComponent(Map<String,String> sourceToTargetComponent) {
+ this.sourceToTargetComponent = sourceToTargetComponent;
+ }
+
+ public Map<String, Map<String, Object>> getPropertiesfromCompQuestionnaire(String key,
+ Version version) {
+ Map<String, Map<String,Object>> componentProperties =
+ new HashMap<String, Map<String,Object>>();
+
+ ComponentEntity entity = new ComponentEntity(key, version, null);
+ final Collection<ComponentEntity> componentEntities =
+ componentDao.listCompositionAndQuestionnaire(key, version);
+
+ Map<String,String> sourceToTarget = new HashMap<String, String>();
+
+ for (ComponentEntity component : componentEntities) {
+ Map<String, Object> questionnaireParams = new HashMap<String, Object>();
+
+ final ComponentQuestionnaire componentQuestionnaire =
+ JsonUtil.json2Object(component.getQuestionnaireData(), ComponentQuestionnaire.class);
+
+ final ComponentData componentData =
+ JsonUtil.json2Object(component.getCompositionData(), ComponentData.class);
+
+ sourceToTarget.put(component.getId(), componentData.getDisplayName());
+
+ String vfc_code = componentData != null ? componentData.getVfcCode() : null;
+ questionnaireParams.put(VFC_NAMING_CODE, vfc_code);
+
+ if (componentQuestionnaire.getHighAvailabilityAndLoadBalancing() != null ) {
+ String mandatory = componentQuestionnaire.getHighAvailabilityAndLoadBalancing()
+ .getIsComponentMandatory();
+ questionnaireParams.put(MANDATORY, mandatory);
+
+ String mode = componentQuestionnaire.getHighAvailabilityAndLoadBalancing()
+ .getHighAvailabilityMode();
+
+ questionnaireParams.put(HIGH_AVAIL_MODE, mode);
+ }
+
+ final Integer maxVms =
+ componentQuestionnaire.getCompute() != null ? (componentQuestionnaire.getCompute()
+ .getNumOfVMs() != null ? componentQuestionnaire.getCompute().getNumOfVMs()
+ .getMaximum(): null) : null;
+
+ final Integer minVms =
+ componentQuestionnaire.getCompute() != null ? (componentQuestionnaire.getCompute()
+ .getNumOfVMs() != null ? componentQuestionnaire.getCompute().getNumOfVMs()
+ .getMinimum(): null) : null;
+
+ questionnaireParams.put(MIN_INSTANCES,minVms != null && minVms == 0 ? null : minVms);
+ questionnaireParams.put(MAX_INSTANCES,maxVms != null && maxVms == 0 ? null : maxVms);
+
+ if (! questionnaireParams.isEmpty())
+ componentProperties.put(JsonUtil.json2Object(component.getCompositionData(),
+ ComponentData.class).getDisplayName(), questionnaireParams);
+ }
+
+ setSourceToTargetComponent(sourceToTarget);
+
+ return componentProperties;
+ }
+
+ public Map<String,List<String>> populateDependencies(String vspId, Version version, Map<String,
+ String> componentNameData) {
+ Collection<ComponentDependencyModelEntity> componentDependencies =
+ componentDependencyModelDao.list(new ComponentDependencyModelEntity(vspId, version, null));
+
+ Map<String,List<String>> sourceToTargetComponent = new HashMap<String, List<String>>();
+ List<String> targetComponents = null;
+ for (ComponentDependencyModelEntity dependency : componentDependencies) {
+ String sourceComponentName = componentNameData.get(dependency.getSourceComponentId());
+ String targetComponentName = componentNameData.get(dependency.getTargetComponentId());
+ if (!sourceToTargetComponent.containsKey(sourceComponentName)) {
+ targetComponents = new ArrayList<String>();
+ } else {
+ targetComponents = sourceToTargetComponent.get(sourceComponentName);
+ }
+ targetComponents.add(targetComponentName);
+ sourceToTargetComponent.put(sourceComponentName, targetComponents);
+ }
+
+ return sourceToTargetComponent;
+ }
+
+}