summaryrefslogtreecommitdiffstats
path: root/appc-dg/appc-dg-shared/appc-dg-dependency-model
diff options
context:
space:
mode:
Diffstat (limited to 'appc-dg/appc-dg-shared/appc-dg-dependency-model')
-rw-r--r--appc-dg/appc-dg-shared/appc-dg-dependency-model/src/main/java/org/onap/appc/dg/dependencymanager/DependencyManager.java4
-rw-r--r--appc-dg/appc-dg-shared/appc-dg-dependency-model/src/main/java/org/onap/appc/dg/dependencymanager/DependencyType.java4
-rw-r--r--appc-dg/appc-dg-shared/appc-dg-dependency-model/src/main/java/org/onap/appc/dg/dependencymanager/helper/DependencyModelParser.java43
-rw-r--r--appc-dg/appc-dg-shared/appc-dg-dependency-model/src/main/java/org/onap/appc/dg/dependencymanager/impl/DependencyManagerImpl.java4
-rw-r--r--appc-dg/appc-dg-shared/appc-dg-dependency-model/src/main/java/org/onap/appc/dg/dependencymanager/impl/ResourceDependency.java4
-rw-r--r--appc-dg/appc-dg-shared/appc-dg-dependency-model/src/main/java/org/onap/appc/dg/flowbuilder/FlowBuilder.java3
-rw-r--r--appc-dg/appc-dg-shared/appc-dg-dependency-model/src/main/java/org/onap/appc/dg/flowbuilder/FlowStrategy.java3
-rw-r--r--appc-dg/appc-dg-shared/appc-dg-dependency-model/src/main/java/org/onap/appc/dg/flowbuilder/exception/InvalidDependencyModelException.java (renamed from appc-dg/appc-dg-shared/appc-dg-dependency-model/src/main/java/org/onap/appc/dg/flowbuilder/exception/InvalidDependencyModel.java)4
-rw-r--r--appc-dg/appc-dg-shared/appc-dg-dependency-model/src/main/java/org/onap/appc/dg/flowbuilder/helper/Graph.java2
-rw-r--r--appc-dg/appc-dg-shared/appc-dg-dependency-model/src/main/java/org/onap/appc/dg/flowbuilder/impl/AbstractFlowStrategy.java31
-rw-r--r--appc-dg/appc-dg-shared/appc-dg-dependency-model/src/main/java/org/onap/appc/dg/flowbuilder/impl/FlowBuilderImpl.java3
-rw-r--r--appc-dg/appc-dg-shared/appc-dg-dependency-model/src/main/java/org/onap/appc/dg/flowbuilder/impl/ForwardFlowStrategy.java8
-rw-r--r--appc-dg/appc-dg-shared/appc-dg-dependency-model/src/main/java/org/onap/appc/dg/flowbuilder/impl/ReverseFlowStrategy.java8
-rw-r--r--appc-dg/appc-dg-shared/appc-dg-dependency-model/src/test/java/org/onap/appc/dg/flowbuilder/TestFlowBuilder.java228
14 files changed, 182 insertions, 167 deletions
diff --git a/appc-dg/appc-dg-shared/appc-dg-dependency-model/src/main/java/org/onap/appc/dg/dependencymanager/DependencyManager.java b/appc-dg/appc-dg-shared/appc-dg-dependency-model/src/main/java/org/onap/appc/dg/dependencymanager/DependencyManager.java
index 8d04cea11..481d4dcad 100644
--- a/appc-dg/appc-dg-shared/appc-dg-dependency-model/src/main/java/org/onap/appc/dg/dependencymanager/DependencyManager.java
+++ b/appc-dg/appc-dg-shared/appc-dg-dependency-model/src/main/java/org/onap/appc/dg/dependencymanager/DependencyManager.java
@@ -25,12 +25,12 @@
package org.onap.appc.dg.dependencymanager;
import org.onap.appc.dg.dependencymanager.exception.DependencyModelNotFound;
-import org.onap.appc.dg.flowbuilder.exception.InvalidDependencyModel;
+import org.onap.appc.dg.flowbuilder.exception.InvalidDependencyModelException;
import org.onap.appc.dg.objects.DependencyTypes;
import org.onap.appc.dg.objects.VnfcDependencyModel;
import org.onap.appc.metadata.objects.DependencyModelIdentifier;
public interface DependencyManager {
- VnfcDependencyModel getVnfcDependencyModel(DependencyModelIdentifier modelIdentifier, DependencyTypes dependencyType) throws InvalidDependencyModel, DependencyModelNotFound;
+ VnfcDependencyModel getVnfcDependencyModel(DependencyModelIdentifier modelIdentifier, DependencyTypes dependencyType) throws InvalidDependencyModelException, DependencyModelNotFound;
}
diff --git a/appc-dg/appc-dg-shared/appc-dg-dependency-model/src/main/java/org/onap/appc/dg/dependencymanager/DependencyType.java b/appc-dg/appc-dg-shared/appc-dg-dependency-model/src/main/java/org/onap/appc/dg/dependencymanager/DependencyType.java
index 15717f06b..7d2b0677f 100644
--- a/appc-dg/appc-dg-shared/appc-dg-dependency-model/src/main/java/org/onap/appc/dg/dependencymanager/DependencyType.java
+++ b/appc-dg/appc-dg-shared/appc-dg-dependency-model/src/main/java/org/onap/appc/dg/dependencymanager/DependencyType.java
@@ -25,11 +25,11 @@
package org.onap.appc.dg.dependencymanager;
import org.onap.appc.dg.dependencymanager.exception.DependencyModelNotFound;
-import org.onap.appc.dg.flowbuilder.exception.InvalidDependencyModel;
+import org.onap.appc.dg.flowbuilder.exception.InvalidDependencyModelException;
import org.onap.appc.dg.objects.VnfcDependencyModel;
import org.onap.appc.metadata.objects.DependencyModelIdentifier;
public interface DependencyType {
- VnfcDependencyModel getVnfcDependencyModel(DependencyModelIdentifier modelIdentifier) throws InvalidDependencyModel, DependencyModelNotFound;
+ VnfcDependencyModel getVnfcDependencyModel(DependencyModelIdentifier modelIdentifier) throws InvalidDependencyModelException, DependencyModelNotFound;
}
diff --git a/appc-dg/appc-dg-shared/appc-dg-dependency-model/src/main/java/org/onap/appc/dg/dependencymanager/helper/DependencyModelParser.java b/appc-dg/appc-dg-shared/appc-dg-dependency-model/src/main/java/org/onap/appc/dg/dependencymanager/helper/DependencyModelParser.java
index 187020028..ea00f09ec 100644
--- a/appc-dg/appc-dg-shared/appc-dg-dependency-model/src/main/java/org/onap/appc/dg/dependencymanager/helper/DependencyModelParser.java
+++ b/appc-dg/appc-dg-shared/appc-dg-dependency-model/src/main/java/org/onap/appc/dg/dependencymanager/helper/DependencyModelParser.java
@@ -31,7 +31,7 @@ import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.node.ObjectNode;
import com.fasterxml.jackson.dataformat.yaml.YAMLFactory;
import org.apache.commons.lang3.StringUtils;
-import org.onap.appc.dg.flowbuilder.exception.InvalidDependencyModel;
+import org.onap.appc.dg.flowbuilder.exception.InvalidDependencyModelException;
import org.onap.appc.dg.objects.Node;
import org.onap.appc.dg.objects.VnfcDependencyModel;
import org.onap.appc.domainmodel.Vnfc;
@@ -39,18 +39,19 @@ import org.onap.appc.domainmodel.Vnfc;
import java.io.IOException;
import java.util.*;
-
public class DependencyModelParser {
- private static final EELFLogger logger = EELFManager.getInstance().getLogger(DependencyModelParser.class);
- private static Map<String, String> dependencyMap;
+ private final EELFLogger logger = EELFManager.getInstance().getLogger(DependencyModelParser.class);
+
private static final String PROPERTIES = "properties";
private static final String ACTIVE_ACTIVE = "Active-Active";
private static final String ACTIVE_PASSIVE = "Active-Passive";
private static final String HIGH_AVAILABLITY = "high_availablity";
private static final String MANDATORY = "mandatory";
private static final String TOPOLOGY_TEMPLATE = "topology_template";
+ private static final String RELATIONSHIP="relationship";
+ private static Map<String, String> dependencyMap;
static {
Map<String, String> dependencyTypeMappingMap =new HashMap<>();
dependencyTypeMappingMap.put("geo-activeactive", ACTIVE_ACTIVE);
@@ -60,17 +61,17 @@ public class DependencyModelParser {
dependencyMap = Collections.unmodifiableMap(dependencyTypeMappingMap);
}
- public VnfcDependencyModel generateDependencyModel(String vnfModel,String vnfType) {
+ public VnfcDependencyModel generateDependencyModel(String vnfModel,String vnfType) throws InvalidDependencyModelException {
Set<Node<Vnfc>> dependencies = new HashSet<>();
ObjectMapper mapper = new ObjectMapper(new YAMLFactory());
boolean mandatory;
String resilienceType;
- String prefix = "org.openecomp.resource.vfc."+vnfType+".abstract.nodes.";
+ String prefix = "org.onap.resource.vfc."+vnfType+".abstract.nodes.";
try {
ObjectNode root = (ObjectNode) mapper.readTree(vnfModel);
if(root.get(TOPOLOGY_TEMPLATE) == null || root.get(TOPOLOGY_TEMPLATE).get("node_templates") == null) {
- throw new InvalidDependencyModel("Dependency model is missing 'topology_template' or 'node_templates' elements");
+ throw new InvalidDependencyModelException("Dependency model is missing 'topology_template' or 'node_templates' elements");
}
JsonNode topologyTemplateNode = root.get(TOPOLOGY_TEMPLATE);
@@ -81,7 +82,7 @@ public class DependencyModelParser {
String fullvnfcType = itretor.next().getValue().get("type").textValue();
String vnfcType= getQualifiedVnfcType(fullvnfcType);
String type = yamlNode.get("type").textValue();
- type = type.substring(0,type.lastIndexOf(".")+1);
+ type = type.substring(0,type.lastIndexOf('.')+1);
if(type.concat(vnfcType).toLowerCase().startsWith(prefix.concat(vnfcType).toLowerCase())) {
if(yamlNode.get(PROPERTIES).findValue(HIGH_AVAILABLITY) == null || yamlNode.get(PROPERTIES).findValue(HIGH_AVAILABLITY).asText().isEmpty()) {
@@ -110,7 +111,7 @@ public class DependencyModelParser {
} else {
logger.debug("Creating dependency node for : " + vnfcType);
- vnfcNode = new Node<>(new Vnfc(vnfcType, resilienceType, null, mandatory));
+ vnfcNode = new Node<>(createVnfc(mandatory, resilienceType, vnfcType));
if (parentList != null && parentList.length > 0)
addDependencies(dependencies, vnfcNode, parentList);
logger.debug("Adding VNFC to dependency model : " + vnfcNode);
@@ -121,13 +122,21 @@ public class DependencyModelParser {
} catch (IOException e) {
logger.error("Error parsing dependency model : " + vnfModel);
logger.error("Error message : " + e);
- throw new InvalidDependencyModel("Error parsing dependency model. " + e.getMessage());
+ throw new InvalidDependencyModelException("Error parsing dependency model. " + e.getMessage());
}
return new VnfcDependencyModel(dependencies);
}
+ private Vnfc createVnfc(boolean mandatory, String resilienceType, String vnfcType) {
+ Vnfc vnfc = new Vnfc();
+ vnfc.setMandatory(mandatory);
+ vnfc.setResilienceType(resilienceType);
+ vnfc.setVnfcType(vnfcType);
+ return vnfc;
+ }
+
private String getQualifiedVnfcType(String fullvnfcType) {
- return fullvnfcType.substring(fullvnfcType.lastIndexOf(".")+1,fullvnfcType.length());
+ return fullvnfcType.substring(fullvnfcType.lastIndexOf('.')+1,fullvnfcType.length());
}
private void addDependencies(Set<Node<Vnfc>> nodes, Node node, String[] parentList) {
@@ -139,7 +148,7 @@ public class DependencyModelParser {
node.addParent(parentNode.getChild());
} else {
logger.debug("VNFC does not exist for VNFC type: " + parentType + ". Creating new VNFC ");
- parentNode = new Node<>(new Vnfc(parentType, null));
+ parentNode = new Node<>(createVnfc(false,null,parentType));
node.addParent(parentNode.getChild());
logger.debug("Adding VNFC to dependency model : " + parentNode);
nodes.add(parentNode);
@@ -147,20 +156,20 @@ public class DependencyModelParser {
}
}
- private String[] getDependencyArray(JsonNode node, JsonNode nodeTemplateNode) {
+ private String[] getDependencyArray(JsonNode node, JsonNode nodeTemplateNode) throws InvalidDependencyModelException {
JsonNode requirementsNode = node.get("requirements");
- List<String> dependencyList = new ArrayList();
+ Set<String> dependencyList = new HashSet<>();
if(requirementsNode!=null) {
for (JsonNode internalNode : requirementsNode) {
//TODO : In this release we are supporting both relationship = tosca.capabilities.Node and relationship =tosca.relationships.DependsOn we need to remove one of them in next release post confirming with SDC team
if (nodeNullCheck(internalNode) &&"tosca.capabilities.Node".equalsIgnoreCase(internalNode.findValue("capability").asText())
- && ("tosca.relationships.DependsOn".equalsIgnoreCase(internalNode.findValue("relationship").asText()) || "tosca.capabilities.Node".equalsIgnoreCase(internalNode.findValue("relationship").asText()))) {
+ && ("tosca.relationships.DependsOn".equalsIgnoreCase(internalNode.findValue(RELATIONSHIP).asText()) || "tosca.capabilities.Node".equalsIgnoreCase(internalNode.findValue(RELATIONSHIP).asText()))) {
if(internalNode.findValue("node") != null) {
String nodeName = internalNode.findValue("node").asText();
String fullVnfcName = nodeTemplateNode.get(nodeName).get("type").asText();
dependencyList.add(getQualifiedVnfcType(fullVnfcName));
}else{
- throw new InvalidDependencyModel("Error parsing dependency model. " + "Dependent Node not found for "+ node.get("type"));
+ throw new InvalidDependencyModelException("Error parsing dependency model. " + "Dependent Node not found for "+ node.get("type"));
}
}
}
@@ -171,7 +180,7 @@ public class DependencyModelParser {
}
private boolean nodeNullCheck(JsonNode internalNode) {
- return internalNode.get("dependency") != null && internalNode.findValue("capability") != null && internalNode.findValue("relationship") != null;
+ return internalNode.get("dependency") != null && internalNode.findValue("capability") != null && internalNode.findValue(RELATIONSHIP) != null;
}
private Node<Vnfc> getNode(Set<Node<Vnfc>> nodes, String vnfcType) {
diff --git a/appc-dg/appc-dg-shared/appc-dg-dependency-model/src/main/java/org/onap/appc/dg/dependencymanager/impl/DependencyManagerImpl.java b/appc-dg/appc-dg-shared/appc-dg-dependency-model/src/main/java/org/onap/appc/dg/dependencymanager/impl/DependencyManagerImpl.java
index 31ea46cc6..e4261f8d4 100644
--- a/appc-dg/appc-dg-shared/appc-dg-dependency-model/src/main/java/org/onap/appc/dg/dependencymanager/impl/DependencyManagerImpl.java
+++ b/appc-dg/appc-dg-shared/appc-dg-dependency-model/src/main/java/org/onap/appc/dg/dependencymanager/impl/DependencyManagerImpl.java
@@ -27,7 +27,7 @@ package org.onap.appc.dg.dependencymanager.impl;
import org.onap.appc.dg.dependencymanager.DependencyManager;
import org.onap.appc.dg.dependencymanager.DependencyType;
import org.onap.appc.dg.dependencymanager.exception.DependencyModelNotFound;
-import org.onap.appc.dg.flowbuilder.exception.InvalidDependencyModel;
+import org.onap.appc.dg.flowbuilder.exception.InvalidDependencyModelException;
import org.onap.appc.dg.objects.DependencyTypes;
import org.onap.appc.dg.objects.VnfcDependencyModel;
@@ -47,7 +47,7 @@ public class DependencyManagerImpl implements DependencyManager {
cache = MetadataCacheFactory.getInstance().getMetadataCache();
}
- public VnfcDependencyModel getVnfcDependencyModel(DependencyModelIdentifier modelIdentifier,DependencyTypes dependencyType) throws InvalidDependencyModel, DependencyModelNotFound {
+ public VnfcDependencyModel getVnfcDependencyModel(DependencyModelIdentifier modelIdentifier,DependencyTypes dependencyType) throws InvalidDependencyModelException, DependencyModelNotFound {
if (logger.isTraceEnabled()) {
logger.trace("Entering to getVnfcDependencyModel with DependencyModelIdentifier = "+ modelIdentifier
+ " , DependencyTypes = " + dependencyType);
diff --git a/appc-dg/appc-dg-shared/appc-dg-dependency-model/src/main/java/org/onap/appc/dg/dependencymanager/impl/ResourceDependency.java b/appc-dg/appc-dg-shared/appc-dg-dependency-model/src/main/java/org/onap/appc/dg/dependencymanager/impl/ResourceDependency.java
index 73792d3ad..484241639 100644
--- a/appc-dg/appc-dg-shared/appc-dg-dependency-model/src/main/java/org/onap/appc/dg/dependencymanager/impl/ResourceDependency.java
+++ b/appc-dg/appc-dg-shared/appc-dg-dependency-model/src/main/java/org/onap/appc/dg/dependencymanager/impl/ResourceDependency.java
@@ -32,7 +32,7 @@ import com.att.eelf.configuration.EELFManager;
import org.onap.appc.dg.dependencymanager.DependencyType;
import org.onap.appc.dg.dependencymanager.exception.DependencyModelNotFound;
import org.onap.appc.dg.dependencymanager.helper.DependencyModelParser;
-import org.onap.appc.dg.flowbuilder.exception.InvalidDependencyModel;
+import org.onap.appc.dg.flowbuilder.exception.InvalidDependencyModelException;
import org.onap.appc.dg.objects.VnfcDependencyModel;
import org.osgi.framework.BundleContext;
import org.osgi.framework.FrameworkUtil;
@@ -68,7 +68,7 @@ public class ResourceDependency implements DependencyType{
this.metadataService = metadataService;
}
- public VnfcDependencyModel getVnfcDependencyModel(DependencyModelIdentifier modelIdentifier) throws InvalidDependencyModel, DependencyModelNotFound {
+ public VnfcDependencyModel getVnfcDependencyModel(DependencyModelIdentifier modelIdentifier) throws InvalidDependencyModelException, DependencyModelNotFound {
if (logger.isTraceEnabled()) {
logger.trace("Entering to getVnfcDependencyModel with DependencyModelIdentifier = "+ modelIdentifier);
}
diff --git a/appc-dg/appc-dg-shared/appc-dg-dependency-model/src/main/java/org/onap/appc/dg/flowbuilder/FlowBuilder.java b/appc-dg/appc-dg-shared/appc-dg-dependency-model/src/main/java/org/onap/appc/dg/flowbuilder/FlowBuilder.java
index 78dacd105..2c572516a 100644
--- a/appc-dg/appc-dg-shared/appc-dg-dependency-model/src/main/java/org/onap/appc/dg/flowbuilder/FlowBuilder.java
+++ b/appc-dg/appc-dg-shared/appc-dg-dependency-model/src/main/java/org/onap/appc/dg/flowbuilder/FlowBuilder.java
@@ -24,11 +24,12 @@
package org.onap.appc.dg.flowbuilder;
+import org.onap.appc.dg.flowbuilder.exception.InvalidDependencyModelException;
import org.onap.appc.dg.objects.InventoryModel;
import org.onap.appc.dg.objects.VnfcDependencyModel;
import org.onap.appc.dg.objects.VnfcFlowModel;
public interface FlowBuilder {
- VnfcFlowModel buildFlowModel(VnfcDependencyModel dependencyModel,InventoryModel inventoryModel);
+ VnfcFlowModel buildFlowModel(VnfcDependencyModel dependencyModel,InventoryModel inventoryModel) throws InvalidDependencyModelException;
}
diff --git a/appc-dg/appc-dg-shared/appc-dg-dependency-model/src/main/java/org/onap/appc/dg/flowbuilder/FlowStrategy.java b/appc-dg/appc-dg-shared/appc-dg-dependency-model/src/main/java/org/onap/appc/dg/flowbuilder/FlowStrategy.java
index e2c292776..dcea86197 100644
--- a/appc-dg/appc-dg-shared/appc-dg-dependency-model/src/main/java/org/onap/appc/dg/flowbuilder/FlowStrategy.java
+++ b/appc-dg/appc-dg-shared/appc-dg-dependency-model/src/main/java/org/onap/appc/dg/flowbuilder/FlowStrategy.java
@@ -24,6 +24,7 @@
package org.onap.appc.dg.flowbuilder;
+import org.onap.appc.dg.flowbuilder.exception.InvalidDependencyModelException;
import org.onap.appc.dg.objects.InventoryModel;
import org.onap.appc.dg.objects.VnfcDependencyModel;
import org.onap.appc.dg.objects.VnfcFlowModel;
@@ -31,5 +32,5 @@ import org.onap.appc.dg.objects.VnfcFlowModel;
public interface FlowStrategy {
- VnfcFlowModel buildFlowModel(VnfcDependencyModel dependencyModel, InventoryModel inventoryModel);
+ VnfcFlowModel buildFlowModel(VnfcDependencyModel dependencyModel, InventoryModel inventoryModel) throws InvalidDependencyModelException;
}
diff --git a/appc-dg/appc-dg-shared/appc-dg-dependency-model/src/main/java/org/onap/appc/dg/flowbuilder/exception/InvalidDependencyModel.java b/appc-dg/appc-dg-shared/appc-dg-dependency-model/src/main/java/org/onap/appc/dg/flowbuilder/exception/InvalidDependencyModelException.java
index 9f4cfed93..a4a674b8a 100644
--- a/appc-dg/appc-dg-shared/appc-dg-dependency-model/src/main/java/org/onap/appc/dg/flowbuilder/exception/InvalidDependencyModel.java
+++ b/appc-dg/appc-dg-shared/appc-dg-dependency-model/src/main/java/org/onap/appc/dg/flowbuilder/exception/InvalidDependencyModelException.java
@@ -25,8 +25,8 @@
package org.onap.appc.dg.flowbuilder.exception;
-public class InvalidDependencyModel extends RuntimeException {
- public InvalidDependencyModel(String message){
+public class InvalidDependencyModelException extends Exception {
+ public InvalidDependencyModelException(String message){
super(message);
}
}
diff --git a/appc-dg/appc-dg-shared/appc-dg-dependency-model/src/main/java/org/onap/appc/dg/flowbuilder/helper/Graph.java b/appc-dg/appc-dg-shared/appc-dg-dependency-model/src/main/java/org/onap/appc/dg/flowbuilder/helper/Graph.java
index 95e0b6675..3b409a70e 100644
--- a/appc-dg/appc-dg-shared/appc-dg-dependency-model/src/main/java/org/onap/appc/dg/flowbuilder/helper/Graph.java
+++ b/appc-dg/appc-dg-shared/appc-dg-dependency-model/src/main/java/org/onap/appc/dg/flowbuilder/helper/Graph.java
@@ -26,8 +26,6 @@ package org.onap.appc.dg.flowbuilder.helper;
import java.util.*;
-import org.onap.appc.dg.flowbuilder.exception.InvalidDependencyModel;
-
public class Graph<T> {
private int size;
diff --git a/appc-dg/appc-dg-shared/appc-dg-dependency-model/src/main/java/org/onap/appc/dg/flowbuilder/impl/AbstractFlowStrategy.java b/appc-dg/appc-dg-shared/appc-dg-dependency-model/src/main/java/org/onap/appc/dg/flowbuilder/impl/AbstractFlowStrategy.java
index fbb2d5d67..8d3eab3e9 100644
--- a/appc-dg/appc-dg-shared/appc-dg-dependency-model/src/main/java/org/onap/appc/dg/flowbuilder/impl/AbstractFlowStrategy.java
+++ b/appc-dg/appc-dg-shared/appc-dg-dependency-model/src/main/java/org/onap/appc/dg/flowbuilder/impl/AbstractFlowStrategy.java
@@ -32,7 +32,7 @@ import java.util.List;
import java.util.Set;
import org.onap.appc.dg.flowbuilder.FlowStrategy;
-import org.onap.appc.dg.flowbuilder.exception.InvalidDependencyModel;
+import org.onap.appc.dg.flowbuilder.exception.InvalidDependencyModelException;
import org.onap.appc.dg.flowbuilder.helper.Graph;
import org.onap.appc.dg.objects.*;
import org.onap.appc.domainmodel.Vnfc;
@@ -40,11 +40,11 @@ import org.onap.appc.domainmodel.Vnfc;
public abstract class AbstractFlowStrategy implements FlowStrategy {
- protected Graph<Vnfc> graph;
+ private final EELFLogger logger = EELFManager.getInstance().getLogger(AbstractFlowStrategy.class);
- private static final EELFLogger logger = EELFManager.getInstance().getLogger(AbstractFlowStrategy.class);
+ Graph<Vnfc> graph;
- public VnfcFlowModel buildFlowModel(VnfcDependencyModel dependencyModel, InventoryModel inventoryModel) {
+ public VnfcFlowModel buildFlowModel(VnfcDependencyModel dependencyModel, InventoryModel inventoryModel) throws InvalidDependencyModelException {
if(logger.isTraceEnabled()){
logger.trace("Entering into buildFlowModel with dependency model = " + dependencyModel
+ "inventory model = " +inventoryModel);
@@ -54,7 +54,7 @@ public abstract class AbstractFlowStrategy implements FlowStrategy {
|| dependencyModel.getDependencies() ==null
|| dependencyModel.getDependencies().size() ==0){
logger.debug("Dependency model not available, building flow model with sequence");
- throw new InvalidDependencyModel("Dependency model either null or does not contain any dependency");
+ throw new InvalidDependencyModelException("Dependency model either null or does not contain any dependency");
}
VnfcFlowModel flowModel = buildFlowModel(dependencyModel);
@@ -72,7 +72,7 @@ public abstract class AbstractFlowStrategy implements FlowStrategy {
}
private void populateFlowModel(VnfcFlowModel flowModel, InventoryModel inventoryModel) {
- Iterator<List<Vnfc>> flowIterator = null;
+ Iterator<List<Vnfc>> flowIterator;
for(Vnfc vnfcFromInventory:inventoryModel.getVnf().getVnfcs()){
flowIterator = flowModel.getModelIterator();
@@ -81,7 +81,7 @@ public abstract class AbstractFlowStrategy implements FlowStrategy {
for(Vnfc vnfcFromFlowModel:flowIterator.next() ){
if(vnfcType.equalsIgnoreCase(vnfcFromFlowModel.getVnfcType())){
vnfcFromFlowModel.setVnfcName(vnfcFromInventory.getVnfcName());
- vnfcFromFlowModel.addVms(vnfcFromInventory.getVserverList());
+ vnfcFromFlowModel.setVserverList(vnfcFromInventory.getVserverList());
}
}
}
@@ -90,7 +90,8 @@ public abstract class AbstractFlowStrategy implements FlowStrategy {
}
- private VnfcFlowModel buildFlowModel(VnfcDependencyModel dependencyModel) throws InvalidDependencyModel {
+ @SuppressWarnings("unchecked")
+ private VnfcFlowModel buildFlowModel(VnfcDependencyModel dependencyModel) throws InvalidDependencyModelException {
Set<Node<Vnfc>> dependencies = dependencyModel.getDependencies();
graph = new Graph(dependencies.size());
@@ -116,21 +117,11 @@ public abstract class AbstractFlowStrategy implements FlowStrategy {
count++;
}
if(flowModelSize != dependencies.size()){
- throw new InvalidDependencyModel("Cycle detected in the VNFC dependencies");
+ throw new InvalidDependencyModelException("Cyclic dependency detected between the VNFC's");
}
return builder.build();
}
- protected abstract List<List<Vnfc>> orderDependencies();
-
- /*private VnfcFlowModel buildFlowModelWithoutSequence(InventoryModel inventoryModel) {
- VnfcFlowModel.VnfcFlowModelBuilder builder = new VnfcFlowModel.VnfcFlowModelBuilder();
-
- for(Vnfc vnfc:inventoryModel.getVnf().getVnfcs()){
- builder = builder.addMetadata(0,vnfc);
- }
-
- return builder.build();
- }*/
+ protected abstract List<List<Vnfc>> orderDependencies() throws InvalidDependencyModelException;
}
diff --git a/appc-dg/appc-dg-shared/appc-dg-dependency-model/src/main/java/org/onap/appc/dg/flowbuilder/impl/FlowBuilderImpl.java b/appc-dg/appc-dg-shared/appc-dg-dependency-model/src/main/java/org/onap/appc/dg/flowbuilder/impl/FlowBuilderImpl.java
index 59d1e4bf9..e57e2d38a 100644
--- a/appc-dg/appc-dg-shared/appc-dg-dependency-model/src/main/java/org/onap/appc/dg/flowbuilder/impl/FlowBuilderImpl.java
+++ b/appc-dg/appc-dg-shared/appc-dg-dependency-model/src/main/java/org/onap/appc/dg/flowbuilder/impl/FlowBuilderImpl.java
@@ -24,6 +24,7 @@
package org.onap.appc.dg.flowbuilder.impl;
+import org.onap.appc.dg.flowbuilder.exception.InvalidDependencyModelException;
import org.onap.appc.dg.flowbuilder.FlowBuilder;
import org.onap.appc.dg.flowbuilder.FlowStrategy;
import org.onap.appc.dg.objects.InventoryModel;
@@ -44,7 +45,7 @@ public class FlowBuilderImpl implements FlowBuilder {
this.strategy = strategy;
}
- public VnfcFlowModel buildFlowModel(VnfcDependencyModel dependencyModel, InventoryModel inventoryModel) {
+ public VnfcFlowModel buildFlowModel(VnfcDependencyModel dependencyModel, InventoryModel inventoryModel) throws InvalidDependencyModelException{
return strategy.buildFlowModel(dependencyModel, inventoryModel);
}
diff --git a/appc-dg/appc-dg-shared/appc-dg-dependency-model/src/main/java/org/onap/appc/dg/flowbuilder/impl/ForwardFlowStrategy.java b/appc-dg/appc-dg-shared/appc-dg-dependency-model/src/main/java/org/onap/appc/dg/flowbuilder/impl/ForwardFlowStrategy.java
index 9c5aae64f..053981989 100644
--- a/appc-dg/appc-dg-shared/appc-dg-dependency-model/src/main/java/org/onap/appc/dg/flowbuilder/impl/ForwardFlowStrategy.java
+++ b/appc-dg/appc-dg-shared/appc-dg-dependency-model/src/main/java/org/onap/appc/dg/flowbuilder/impl/ForwardFlowStrategy.java
@@ -26,13 +26,13 @@ package org.onap.appc.dg.flowbuilder.impl;
import java.util.*;
-import org.onap.appc.dg.flowbuilder.exception.InvalidDependencyModel;
+import org.onap.appc.dg.flowbuilder.exception.InvalidDependencyModelException;
import org.onap.appc.domainmodel.Vnfc;
public class ForwardFlowStrategy extends AbstractFlowStrategy {
@Override
- protected List<List<Vnfc>> orderDependencies() {
+ protected List<List<Vnfc>> orderDependencies() throws InvalidDependencyModelException{
ArrayList<List<Vnfc>> arrayList = new ArrayList<>();
Queue<Vnfc> queue1 = new LinkedList();
@@ -53,7 +53,7 @@ public class ForwardFlowStrategy extends AbstractFlowStrategy {
}
}
if(queue1.isEmpty()){
- throw new InvalidDependencyModel("There seems to be no Root/Independent node for Vnfc dependencies");
+ throw new InvalidDependencyModelException("There seems to be no Root/Independent node for Vnfc dependencies");
}
arrayList.add((List<Vnfc>)queue1);
queue1 = new LinkedList<>(queue1);
@@ -86,7 +86,7 @@ public class ForwardFlowStrategy extends AbstractFlowStrategy {
if(arrayList.size()>graph.getSize()){
// dependency list cannot be larger than total number of nodes
// if it happens indicates cycle in the dependency
- throw new InvalidDependencyModel("Cycle detected in the VNFC dependencies");
+ throw new InvalidDependencyModelException("Cycle detected in the VNFC dependencies");
}
queue1.addAll(queue2);
queue2 = new LinkedHashSet<>();
diff --git a/appc-dg/appc-dg-shared/appc-dg-dependency-model/src/main/java/org/onap/appc/dg/flowbuilder/impl/ReverseFlowStrategy.java b/appc-dg/appc-dg-shared/appc-dg-dependency-model/src/main/java/org/onap/appc/dg/flowbuilder/impl/ReverseFlowStrategy.java
index 79cd4420c..72b88f6e5 100644
--- a/appc-dg/appc-dg-shared/appc-dg-dependency-model/src/main/java/org/onap/appc/dg/flowbuilder/impl/ReverseFlowStrategy.java
+++ b/appc-dg/appc-dg-shared/appc-dg-dependency-model/src/main/java/org/onap/appc/dg/flowbuilder/impl/ReverseFlowStrategy.java
@@ -26,14 +26,14 @@ package org.onap.appc.dg.flowbuilder.impl;
import java.util.*;
-import org.onap.appc.dg.flowbuilder.exception.InvalidDependencyModel;
+import org.onap.appc.dg.flowbuilder.exception.InvalidDependencyModelException;
import org.onap.appc.domainmodel.Vnfc;
public class ReverseFlowStrategy extends AbstractFlowStrategy {
@Override
- protected List<List<Vnfc>> orderDependencies() {
+ protected List<List<Vnfc>> orderDependencies() throws InvalidDependencyModelException{
ArrayList<List<Vnfc>> arrayList = new ArrayList<>();
Queue<Vnfc> queue1 = new LinkedList();
@@ -54,7 +54,7 @@ public class ReverseFlowStrategy extends AbstractFlowStrategy {
}
}
if(queue1.isEmpty()){
- throw new InvalidDependencyModel("There seems to be no leaf node for Vnfc dependencies");
+ throw new InvalidDependencyModelException("There seems to be no leaf node for Vnfc dependencies");
}
arrayList.add((List<Vnfc>)queue1);
queue1 = new LinkedList<>(queue1);
@@ -87,7 +87,7 @@ public class ReverseFlowStrategy extends AbstractFlowStrategy {
if(arrayList.size()>graph.getSize()){
// dependency list cannot be larger than total number of nodes
// if it happens indicates cycle in the dependency
- throw new InvalidDependencyModel("Cycle detected in the VNFC dependencies");
+ throw new InvalidDependencyModelException("Cyclic dependency detected between the VNFCs");
}
queue1.addAll(queue2);
queue2 = new LinkedHashSet<>();
diff --git a/appc-dg/appc-dg-shared/appc-dg-dependency-model/src/test/java/org/onap/appc/dg/flowbuilder/TestFlowBuilder.java b/appc-dg/appc-dg-shared/appc-dg-dependency-model/src/test/java/org/onap/appc/dg/flowbuilder/TestFlowBuilder.java
index 009515378..03037afeb 100644
--- a/appc-dg/appc-dg-shared/appc-dg-dependency-model/src/test/java/org/onap/appc/dg/flowbuilder/TestFlowBuilder.java
+++ b/appc-dg/appc-dg-shared/appc-dg-dependency-model/src/test/java/org/onap/appc/dg/flowbuilder/TestFlowBuilder.java
@@ -27,7 +27,7 @@ package org.onap.appc.dg.flowbuilder;
import org.junit.Assert;
import org.junit.Test;
import org.onap.appc.dg.flowbuilder.FlowBuilder;
-import org.onap.appc.dg.flowbuilder.exception.InvalidDependencyModel;
+import org.onap.appc.dg.flowbuilder.exception.InvalidDependencyModelException;
import org.onap.appc.dg.flowbuilder.impl.FlowBuilderFactory;
import org.onap.appc.dg.objects.*;
import org.onap.appc.domainmodel.Vnf;
@@ -41,9 +41,8 @@ import java.util.Set;
public class TestFlowBuilder {
-
@Test
- public void testForwardFlowBuilder(){
+ public void testForwardFlowBuilder() throws InvalidDependencyModelException {
FlowBuilder builder = FlowBuilderFactory.getInstance().getFlowBuilder(FlowStrategies.FORWARD);
VnfcDependencyModel dependencyModel = readDependencyModel();
InventoryModel inventoryModel = readInventoryModel();
@@ -51,17 +50,25 @@ public class TestFlowBuilder {
Iterator<List<Vnfc>> itr = flowModel.getModelIterator();
List<Vnfc> list = itr.next();
- Assert.assertTrue(list.contains(new Vnfc("SMP","Active-Passive","SMP_Name")));
+ Assert.assertTrue(list.contains(createVnfc("SMP","Active-Passive","SMP_Name")));
list = itr.next();
- Assert.assertTrue(list.contains(new Vnfc("BE","Active-Active","BE_Name")));
+ Assert.assertTrue(list.contains(createVnfc("BE","Active-Active","BE_Name")));
list = itr.next();
- Assert.assertTrue(list.contains(new Vnfc("FE","Active-Active","FE_Name")));
+ Assert.assertTrue(list.contains(createVnfc("FE","Active-Active","FE_Name")));
+ }
+
+ private Vnfc createVnfc(String vnfcType,String resilienceType,String vnfcName) {
+ Vnfc vnfc = new Vnfc();
+ vnfc.setVnfcType(vnfcType);
+ vnfc.setVnfcName(vnfcName);
+ vnfc.setResilienceType(resilienceType);
+ return vnfc;
}
@Test
- public void testReverseFlowBuilder(){
+ public void testReverseFlowBuilder() throws InvalidDependencyModelException {
FlowBuilder builder = FlowBuilderFactory.getInstance().getFlowBuilder(FlowStrategies.REVERSE);
VnfcDependencyModel dependencyModel = readDependencyModel();
InventoryModel inventoryModel = readInventoryModel();
@@ -69,42 +76,45 @@ public class TestFlowBuilder {
Iterator<List<Vnfc>> itr = flowModel.getModelIterator();
List<Vnfc> list = itr.next();
- Assert.assertTrue(list.contains(new Vnfc("FE","Active-Active","FE_Name")));
+ Assert.assertTrue(list.contains(createVnfc("FE","Active-Active","FE_Name")));
list = itr.next();
- Assert.assertTrue(list.contains(new Vnfc("BE","Active-Active","BE_Name")));
+ Assert.assertTrue(list.contains(createVnfc("BE","Active-Active","BE_Name")));
list = itr.next();
- Assert.assertTrue(list.contains(new Vnfc("SMP","Active-Passive","SMP_Name")));
+ Assert.assertTrue(list.contains(createVnfc("SMP","Active-Passive","SMP_Name")));
}
@Test
- public void testComplexFlowBuilderForward(){
+ public void testComplexFlowBuilderForward() throws InvalidDependencyModelException {
FlowBuilder builder = FlowBuilderFactory.getInstance().getFlowBuilder(FlowStrategies.FORWARD);
VnfcDependencyModel dependencyModel = readComplexDependencyModel();
InventoryModel inventoryModel = readComplexInventoryModel();
VnfcFlowModel flowModel = builder.buildFlowModel(dependencyModel,inventoryModel);
Iterator<List<Vnfc>> itr = flowModel.getModelIterator();
-
- List<Vnfc> list = itr.next();
- Assert.assertTrue(list.contains(new Vnfc("A","Active-Active","A_Name")));
- Assert.assertTrue(list.contains(new Vnfc("E","Active-Active","E_Name")));
-
- list = itr.next();
- Assert.assertTrue(list.contains(new Vnfc("B","Active-Active","B_Name")));
- Assert.assertTrue(list.contains(new Vnfc("C","Active-Active","C_Name")));
-
- list = itr.next();
- Assert.assertTrue(list.contains(new Vnfc("D","Active-Active","D_Name")));
- Assert.assertTrue(list.contains(new Vnfc("F","Active-Active","F_Name")));
-
- list = itr.next();
- Assert.assertTrue(list.contains(new Vnfc("G","Active-Active","G_Name")));
-
+ try{
+ List<Vnfc> list = itr.next();
+ Assert.assertTrue(list.contains(createVnfc("A","Active-Active","A_Name")));
+ Assert.assertTrue(list.contains(createVnfc("E","Active-Active","E_Name")));
+
+ list = itr.next();
+ Assert.assertTrue(list.contains(createVnfc("B","Active-Active","B_Name")));
+ Assert.assertTrue(list.contains(createVnfc("C","Active-Active","C_Name")));
+
+ list = itr.next();
+ Assert.assertTrue(list.contains(createVnfc("D","Active-Active","D_Name")));
+ Assert.assertTrue(list.contains(createVnfc("F","Active-Active","F_Name")));
+
+ list = itr.next();
+ Assert.assertTrue(list.contains(createVnfc("G","Active-Active","G_Name")));
+ }
+ catch (Exception e){
+ e.printStackTrace();
+ }
}
@Test
- public void testComplexFlowBuilderReverse(){
+ public void testComplexFlowBuilderReverse() throws InvalidDependencyModelException {
FlowBuilder builder = FlowBuilderFactory.getInstance().getFlowBuilder(FlowStrategies.REVERSE);
VnfcDependencyModel dependencyModel = readComplexDependencyModel();
InventoryModel inventoryModel = readComplexInventoryModel();
@@ -112,33 +122,33 @@ public class TestFlowBuilder {
Iterator<List<Vnfc>> itr = flowModel.getModelIterator();
List<Vnfc> list = itr.next();
- Assert.assertTrue(list.contains(new Vnfc("D","Active-Active","D_Name")));
+ Assert.assertTrue(list.contains(createVnfc("D","Active-Active","D_Name")));
- Assert.assertTrue(list.contains(new Vnfc("G","Active-Active","G_Name")));
+ Assert.assertTrue(list.contains(createVnfc("G","Active-Active","G_Name")));
list = itr.next();
- Assert.assertTrue(list.contains(new Vnfc("B","Active-Active","B_Name")));
- Assert.assertTrue(list.contains(new Vnfc("F","Active-Active","F_Name")));
+ Assert.assertTrue(list.contains(createVnfc("B","Active-Active","B_Name")));
+ Assert.assertTrue(list.contains(createVnfc("F","Active-Active","F_Name")));
list = itr.next();
- Assert.assertTrue(list.contains(new Vnfc("C","Active-Active","C_Name")));
+ Assert.assertTrue(list.contains(createVnfc("C","Active-Active","C_Name")));
list = itr.next();
- Assert.assertTrue(list.contains(new Vnfc("E","Active-Active","E_Name")));
- Assert.assertTrue(list.contains(new Vnfc("A","Active-Active","A_Name")));
+ Assert.assertTrue(list.contains(createVnfc("E","Active-Active","E_Name")));
+ Assert.assertTrue(list.contains(createVnfc("A","Active-Active","A_Name")));
}
- @Test(expected = InvalidDependencyModel.class)
- public void testCyclicBuilder(){
+ @Test(expected = InvalidDependencyModelException.class)
+ public void testCyclicBuilder() throws InvalidDependencyModelException {
FlowBuilder builder = FlowBuilderFactory.getInstance().getFlowBuilder(FlowStrategies.FORWARD);
VnfcDependencyModel dependencyModel = readCyclicDependencyModel();
InventoryModel inventoryModel = readInventoryModel();
builder.buildFlowModel(dependencyModel,inventoryModel);
}
- @Test(expected = InvalidDependencyModel.class)
- public void testCyclicBuilderWithRootNode(){
+ @Test(expected = InvalidDependencyModelException.class)
+ public void testCyclicBuilderWithRootNode() throws InvalidDependencyModelException {
FlowBuilder builder = FlowBuilderFactory.getInstance().getFlowBuilder(FlowStrategies.FORWARD);
VnfcDependencyModel dependencyModel = readCyclicDependencyModelWithRootNode();
InventoryModel inventoryModel = readInventoryModel();
@@ -146,9 +156,9 @@ public class TestFlowBuilder {
}
private VnfcDependencyModel readCyclicDependencyModelWithRootNode() {
- Vnfc a = new Vnfc("A","Active-Passive",null);
- Vnfc b = new Vnfc("B","Active-Active",null);
- Vnfc c = new Vnfc("C","Active-Active",null);
+ Vnfc a = createVnfc("A","Active-Passive",null);
+ Vnfc b = createVnfc("B","Active-Active",null);
+ Vnfc c = createVnfc("C","Active-Active",null);
Node aNode = new Node(a);
@@ -168,43 +178,43 @@ public class TestFlowBuilder {
}
private InventoryModel readComplexInventoryModel() {
- Vnf vnf = new Vnf("vnf_1","vABCD","1");
-
- Vnfc vnfcA = new Vnfc("A","Active-Active","A_Name");
- Vnfc vnfcB = new Vnfc("B","Active-Active","B_Name");
- Vnfc vnfcC = new Vnfc("C","Active-Active","C_Name");
- Vnfc vnfcD = new Vnfc("D","Active-Active","D_Name");
- Vnfc vnfcE = new Vnfc("E","Active-Active","E_Name");
- Vnfc vnfcF = new Vnfc("F","Active-Active","F_Name");
- Vnfc vnfcG = new Vnfc("G","Active-Active","G_Name");
-
- vnfcA.addVm(new Vserver("VM_URL_A1"));
- vnfcB.addVm(new Vserver("VM_URL_B1"));
- vnfcC.addVm(new Vserver("VM_URL_C1"));
- vnfcD.addVm(new Vserver("VM_URL_D1"));
- vnfcE.addVm(new Vserver("VM_URL_E1"));
- vnfcF.addVm(new Vserver("VM_URL_F1"));
- vnfcG.addVm(new Vserver("VM_URL_G1"));
-
- vnf.addVnfc(vnfcA);
- vnf.addVnfc(vnfcB);
- vnf.addVnfc(vnfcC);
- vnf.addVnfc(vnfcD);
- vnf.addVnfc(vnfcE);
- vnf.addVnfc(vnfcF);
- vnf.addVnfc(vnfcG);
+ Vnf vnf = createVnf("vnf_1","vABCD","1");
+
+ Vnfc vnfcA = createVnfc("A","Active-Active","A_Name");
+ Vnfc vnfcB = createVnfc("B","Active-Active","B_Name");
+ Vnfc vnfcC = createVnfc("C","Active-Active","C_Name");
+ Vnfc vnfcD = createVnfc("D","Active-Active","D_Name");
+ Vnfc vnfcE = createVnfc("E","Active-Active","E_Name");
+ Vnfc vnfcF = createVnfc("F","Active-Active","F_Name");
+ Vnfc vnfcG = createVnfc("G","Active-Active","G_Name");
+
+ vnf.addVserver(createVserver("VM_URL_A1",vnfcA));
+ vnf.addVserver(createVserver("VM_URL_B1",vnfcB));
+ vnf.addVserver(createVserver("VM_URL_C1",vnfcC));
+ vnf.addVserver(createVserver("VM_URL_D1",vnfcD));
+ vnf.addVserver(createVserver("VM_URL_E1",vnfcE));
+ vnf.addVserver(createVserver("VM_URL_F1",vnfcF));
+ vnf.addVserver(createVserver("VM_URL_G1",vnfcG));
return new InventoryModel(vnf);
}
+ private Vnf createVnf(String vnfId,String vnfType,String vnfVersion) {
+ Vnf vnf = new Vnf();
+ vnf.setVnfId(vnfId);
+ vnf.setVnfType(vnfType);
+ vnf.setVnfVersion(vnfVersion);
+ return vnf;
+ }
+
private VnfcDependencyModel readComplexDependencyModel() {
- Vnfc a = new Vnfc("A","Active-Active",null);
- Vnfc b = new Vnfc("B","Active-Active",null);
- Vnfc c = new Vnfc("C","Active-Active",null);
- Vnfc d = new Vnfc("D","Active-Active",null);
- Vnfc e = new Vnfc("E","Active-Active",null);
- Vnfc f = new Vnfc("F","Active-Active",null);
- Vnfc g = new Vnfc("G","Active-Active",null);
+ Vnfc a = createVnfc("A","Active-Active",null);
+ Vnfc b = createVnfc("B","Active-Active",null);
+ Vnfc c = createVnfc("C","Active-Active",null);
+ Vnfc d = createVnfc("D","Active-Active",null);
+ Vnfc e = createVnfc("E","Active-Active",null);
+ Vnfc f = createVnfc("F","Active-Active",null);
+ Vnfc g = createVnfc("G","Active-Active",null);
Node aNode = new Node(a);
@@ -242,10 +252,10 @@ public class TestFlowBuilder {
private VnfcDependencyModel readCyclicDependencyModel() {
- Vnfc a = new Vnfc("A","Active-Passive",null);
- Vnfc b = new Vnfc("B","Active-Active",null);
- Vnfc c = new Vnfc("C","Active-Active",null);
- Vnfc d = new Vnfc("D","Active-Active",null);
+ Vnfc a = createVnfc("A","Active-Passive",null);
+ Vnfc b = createVnfc("B","Active-Active",null);
+ Vnfc c = createVnfc("C","Active-Active",null);
+ Vnfc d = createVnfc("D","Active-Active",null);
Node aNode = new Node(a);
@@ -271,48 +281,52 @@ public class TestFlowBuilder {
}
private InventoryModel readInventoryModel() {
- Vnf vnf = new Vnf("vnf_1","vSCP","1");
-
- Vnfc smp = new Vnfc("SMP",null,"SMP_Name");
- Vserver smpVm1 = new Vserver("SMP_URL1");
- Vserver smpVm2 = new Vserver("SMP_URL2");
+ Vnf vnf = createVnf("vnf_1","vSCP","1");
- smp.addVm(smpVm1);
- smp.addVm(smpVm2);
+ Vnfc smp = createVnfc("SMP",null,"SMP_Name");
+ Vserver smpVm1 = createVserver("SMP_URL1",smp);
+ Vserver smpVm2 = createVserver("SMP_URL2",smp);
- Vnfc be = new Vnfc("BE",null,"BE_Name");
+ vnf.addVserver(smpVm1);
+ vnf.addVserver(smpVm2);
- Vserver beVm1 = new Vserver("BE_URL1");
- Vserver beVm2 = new Vserver("BE_URL2");
- Vserver beVm3 = new Vserver("BE_URL3");
- Vserver beVm4 = new Vserver("BE_URL4");
- Vserver beVm5 = new Vserver("BE_URL5");
+ Vnfc be = createVnfc("BE",null,"BE_Name");
- be.addVm(beVm1);
- be.addVm(beVm2);
- be.addVm(beVm3);
- be.addVm(beVm4);
- be.addVm(beVm5);
+ Vserver beVm1 = createVserver("BE_URL1",be);
+ Vserver beVm2 = createVserver("BE_URL2",be);
+ Vserver beVm3 = createVserver("BE_URL3",be);
+ Vserver beVm4 = createVserver("BE_URL4",be);
+ Vserver beVm5 = createVserver("BE_URL5",be);
- Vnfc fe = new Vnfc("FE",null,"FE_Name");
+ vnf.addVserver(beVm1);
+ vnf.addVserver(beVm2);
+ vnf.addVserver(beVm3);
+ vnf.addVserver(beVm4);
+ vnf.addVserver(beVm5);
- Vserver feVm1 = new Vserver("FE_URL1");
- Vserver feVm2 = new Vserver("FE_URL2");
+ Vnfc fe = createVnfc("FE",null,"FE_Name");
- fe.addVm(feVm1);
- fe.addVm(feVm2);
+ Vserver feVm1 = createVserver("FE_URL1",fe);
+ Vserver feVm2 = createVserver("FE_URL2",fe);
- vnf.addVnfc(smp);
- vnf.addVnfc(be);
- vnf.addVnfc(fe);
+ vnf.addVserver(feVm1);
+ vnf.addVserver(feVm2);
return new InventoryModel(vnf);
}
+ private Vserver createVserver(String url,Vnfc vnfc) {
+ Vserver vserver = new Vserver();
+ vserver.setUrl(url);
+ vserver.setVnfc(vnfc);
+ vnfc.addVserver(vserver);
+ return vserver;
+ }
+
private VnfcDependencyModel readDependencyModel() {
- Vnfc smp = new Vnfc("SMP","Active-Passive",null);
- Vnfc be = new Vnfc("BE","Active-Active",null);
- Vnfc fe = new Vnfc("FE","Active-Active",null);
+ Vnfc smp = createVnfc("SMP","Active-Passive",null);
+ Vnfc be = createVnfc("BE","Active-Active",null);
+ Vnfc fe = createVnfc("FE","Active-Active",null);
Node smpNode = new Node(smp);