aboutsummaryrefslogtreecommitdiffstats
path: root/sdc-tosca/src/main/java/org/onap/sdc/tosca/parser/impl/SdcCsarHelperImpl.java
diff options
context:
space:
mode:
Diffstat (limited to 'sdc-tosca/src/main/java/org/onap/sdc/tosca/parser/impl/SdcCsarHelperImpl.java')
-rw-r--r--sdc-tosca/src/main/java/org/onap/sdc/tosca/parser/impl/SdcCsarHelperImpl.java99
1 files changed, 92 insertions, 7 deletions
diff --git a/sdc-tosca/src/main/java/org/onap/sdc/tosca/parser/impl/SdcCsarHelperImpl.java b/sdc-tosca/src/main/java/org/onap/sdc/tosca/parser/impl/SdcCsarHelperImpl.java
index 95530f0..921a145 100644
--- a/sdc-tosca/src/main/java/org/onap/sdc/tosca/parser/impl/SdcCsarHelperImpl.java
+++ b/sdc-tosca/src/main/java/org/onap/sdc/tosca/parser/impl/SdcCsarHelperImpl.java
@@ -20,19 +20,19 @@
package org.onap.sdc.tosca.parser.impl;
-import static java.util.stream.Collectors.toList;
-
+import java.util.List;
import java.util.ArrayList;
import java.util.Arrays;
-import java.util.Collections;
+import java.util.Map;
+import java.util.Map.Entry;
import java.util.HashMap;
import java.util.HashSet;
import java.util.LinkedHashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Map.Entry;
import java.util.Optional;
+import java.util.Collections;
+import java.util.Objects;
import java.util.stream.Collectors;
+import static java.util.stream.Collectors.toList;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.tuple.ImmutablePair;
@@ -40,6 +40,7 @@ import org.apache.commons.lang3.tuple.Pair;
import org.onap.sdc.tosca.parser.api.IEntityDetails;
import org.onap.sdc.tosca.parser.api.ISdcCsarHelper;
import org.onap.sdc.tosca.parser.config.ConfigurationManager;
+import org.onap.sdc.tosca.parser.elements.GroupEntityDetails;
import org.onap.sdc.tosca.parser.elements.queries.EntityQuery;
import org.onap.sdc.tosca.parser.elements.queries.TopologyTemplateQuery;
import org.onap.sdc.tosca.parser.enums.FilterType;
@@ -72,6 +73,7 @@ public class SdcCsarHelperImpl implements ISdcCsarHelper {
private static final String PATH_DELIMITER = "#";
private static final String CUSTOMIZATION_UUID = "customizationUUID";
+ private static final String GROUPS_VF_MODULE = "org.openecomp.groups.VfModule";
private ToscaTemplate toscaTemplate;
private ConfigurationManager configurationManager;
private static Logger log = LoggerFactory.getLogger(SdcCsarHelperImpl.class.getName());
@@ -418,7 +420,7 @@ public class SdcCsarHelperImpl implements ISdcCsarHelper {
if (serviceLevelGroups != null) {
return serviceLevelGroups
.stream()
- .filter(x -> "org.openecomp.groups.VfModule".equals(x.getTypeDefinition().getType()) && x.getName().startsWith(normaliseComponentInstanceName))
+ .filter(x -> GROUPS_VF_MODULE.equals(x.getTypeDefinition().getType()) && x.getName().startsWith(normaliseComponentInstanceName))
.collect(toList());
}
}
@@ -1227,4 +1229,87 @@ public class SdcCsarHelperImpl implements ISdcCsarHelper {
return toscaTemplate.getDataTypes();
}
+ @Override
+ public List<IEntityDetails> getVFModule(String cuuid){
+ String normalisedComponentInstanceName = SdcToscaUtility.normaliseComponentInstanceName(getVfiNameByCuuid(cuuid));
+ List<IEntityDetails> vfModulesFromVf = getVfModulesFromVf(cuuid);
+ List<IEntityDetails> vfModulesFromService = getVfModulesFromService().stream()
+ .filter(v->v.getName().startsWith(normalisedComponentInstanceName))
+ .collect(toList());
+ addMembersToVfModuleInstances(vfModulesFromVf, vfModulesFromService);
+ return vfModulesFromService;
+ }
+
+ @Override
+ public List<IEntityDetails> getVFModule() {
+ List<IEntityDetails> vfModules = new ArrayList<>();
+ List<IEntityDetails> vfModuleInstances = new ArrayList<>();
+
+ getVfModulesFromVf().forEach(vfmodule -> {
+ if (Objects.isNull(vfmodule.getParent())){
+ vfModuleInstances.add(vfmodule);
+ } else {
+ vfModules.add(vfmodule);
+ }
+ });
+
+ addMembersToVfModuleInstances(vfModules,vfModuleInstances);
+ return vfModuleInstances;
+ }
+
+ private void addMembersToVfModuleInstances(List<IEntityDetails> vfModules, List<IEntityDetails> vfModuleInstances) {
+ for(IEntityDetails vfModuleInstance : vfModuleInstances){
+ String origGroupName = getOriginalGroupName(vfModuleInstance);
+ setVFModuleMembers(vfModules, vfModuleInstance, origGroupName);
+ }
+ }
+
+ private void setVFModuleMembers(List<IEntityDetails> vfModules, IEntityDetails vfModuleInstance, String origGroupName) {
+ for (IEntityDetails vfModule : vfModules){
+ if (vfModuleInstance instanceof GroupEntityDetails && vfModule.getName().equals(origGroupName)){
+ List<IEntityDetails> memberNodes = vfModule.getMemberNodes();
+ ((GroupEntityDetails)vfModuleInstance).setMemberNodes(memberNodes);
+ }
+ }
+ }
+
+ private String getOriginalGroupName(IEntityDetails vfModuleInstance) {
+ String groupName = vfModuleInstance.getName();
+ return groupName.substring(groupName.indexOf('.') + 2);
+ }
+
+ private List<IEntityDetails> getVfModulesFromService() {
+ EntityQuery entityQuery = EntityQuery.newBuilder(GROUPS_VF_MODULE)
+ .build();
+ TopologyTemplateQuery topologyTemplateQuery = TopologyTemplateQuery.newBuilder(SdcTypes.SERVICE)
+ .build();
+ return getEntity(entityQuery, topologyTemplateQuery, false);
+ }
+
+ private List<IEntityDetails> getVfModulesFromVf(String cuuid) {
+ EntityQuery entityQuery = EntityQuery.newBuilder(GROUPS_VF_MODULE)
+ .build();
+ TopologyTemplateQuery topologyTemplateQuery = TopologyTemplateQuery.newBuilder(SdcTypes.VF)
+ .customizationUUID(cuuid)
+ .build();
+ return getEntity(entityQuery, topologyTemplateQuery, false);
+ }
+
+ private List<IEntityDetails> getVfModulesFromVf() {
+ EntityQuery entityQuery = EntityQuery.newBuilder(GROUPS_VF_MODULE)
+ .build();
+ TopologyTemplateQuery topologyTemplateQuery = TopologyTemplateQuery.newBuilder(SdcTypes.SERVICE)
+ .build();
+ return getEntity(entityQuery, topologyTemplateQuery, true);
+ }
+
+ private String getVfiNameByCuuid(String cuuid) {
+ EntityQuery entityQuery = EntityQuery.newBuilder(SdcTypes.VF)
+ .customizationUUID(cuuid)
+ .build();
+ TopologyTemplateQuery topologyTemplateQuery = TopologyTemplateQuery.newBuilder(SdcTypes.SERVICE)
+ .build();
+ return getEntity(entityQuery, topologyTemplateQuery, true).get(0).getName();
+ }
+
}