summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRemigiusz Janeczek <remigiusz.janeczek@nokia.com>2020-09-25 08:34:53 +0000
committerGerrit Code Review <gerrit@onap.org>2020-09-25 08:34:53 +0000
commitb50120936c0c848ef5c3ff1e46438f592aa83747 (patch)
tree087f4a89c2af94ffae0496e9777b3e10b51b9383
parent35e1b8356e120ef8283081fefe8c99173aad4a18 (diff)
parentb9cb00657207bb020c1802485c930b46621d4813 (diff)
Merge "Refactor, fix code formatting and add unittests"
-rw-r--r--mod/bpgenerator/pom.xml2
-rw-r--r--mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/common/blueprint/BlueprintHelper.java19
-rw-r--r--mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/blueprint/Properties.java46
-rw-r--r--mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/dmaapbp/DmaapBlueprint.java17
-rw-r--r--mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/dmaapbp/DmaapNode.java240
-rw-r--r--mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/dmaapbp/DmaapStreams.java151
-rw-r--r--mod/bpgenerator/src/test/java/org/onap/blueprintgenerator/models/dmaapbp/DmaapNodeTest.java201
-rw-r--r--mod/bpgenerator/version.properties2
8 files changed, 462 insertions, 216 deletions
diff --git a/mod/bpgenerator/pom.xml b/mod/bpgenerator/pom.xml
index aaf9713..86009f3 100644
--- a/mod/bpgenerator/pom.xml
+++ b/mod/bpgenerator/pom.xml
@@ -29,7 +29,7 @@
</parent>
<groupId>org.onap.dcaegen2.platform.mod</groupId>
<artifactId>blueprint-generator</artifactId>
- <version>1.5.1-SNAPSHOT</version>
+ <version>1.5.2-SNAPSHOT</version>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<sonar.junit.reportsPath>${project.basedir}/target/surefire-reports</sonar.junit.reportsPath>
diff --git a/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/common/blueprint/BlueprintHelper.java b/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/common/blueprint/BlueprintHelper.java
index 451988f..ef335a8 100644
--- a/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/common/blueprint/BlueprintHelper.java
+++ b/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/common/blueprint/BlueprintHelper.java
@@ -27,6 +27,9 @@ import java.util.LinkedHashMap;
@UtilityClass
public class BlueprintHelper {
+ public static final String INTEGER_TYPE = "integer";
+ public static final String BOOLEAN_TYPE = "boolean";
+
public static LinkedHashMap<String, Object> createInputValue(String type, String description, Object defaultValue) {
LinkedHashMap<String, Object> inputMap = new LinkedHashMap<>();
inputMap.put("type", type);
@@ -35,7 +38,23 @@ public class BlueprintHelper {
return inputMap;
}
+ public static LinkedHashMap<String, Object> createIntegerInput(String description, Object defaultValue){
+ return createInputValue(INTEGER_TYPE, description, defaultValue);
+ }
+
+ public static LinkedHashMap<String, Object> createBooleanInput(String description, Object defaultValue){
+ return createInputValue(BOOLEAN_TYPE, description, defaultValue);
+ }
+
public static String joinUnderscore(String firstValue, String secondValue){
return firstValue + "_" + secondValue;
}
+
+ public static boolean isDataRouterType(String type) {
+ return type.equals("data_router") || type.equals("data router");
+ }
+
+ public static boolean isMessageRouterType(String type) {
+ return type.equals("message_router") || type.equals("message router");
+ }
}
diff --git a/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/blueprint/Properties.java b/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/blueprint/Properties.java
index 6edbe5c..4140ea3 100644
--- a/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/blueprint/Properties.java
+++ b/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/blueprint/Properties.java
@@ -20,6 +20,10 @@
package org.onap.blueprintgenerator.models.blueprint;
+import static org.onap.blueprintgenerator.common.blueprint.BlueprintHelper.createBooleanInput;
+import static org.onap.blueprintgenerator.common.blueprint.BlueprintHelper.createIntegerInput;
+import static org.onap.blueprintgenerator.common.blueprint.BlueprintHelper.isMessageRouterType;
+import static org.onap.blueprintgenerator.common.blueprint.BlueprintHelper.isDataRouterType;
import static org.onap.blueprintgenerator.models.blueprint.tls.TlsConstants.USE_EXTERNAL_TLS_FIELD;
import com.fasterxml.jackson.annotation.JsonIgnore;
@@ -31,7 +35,6 @@ import java.util.Map;
import java.util.TreeMap;
import lombok.Getter;
import lombok.Setter;
-import org.onap.blueprintgenerator.common.blueprint.BlueprintHelper;
import org.onap.blueprintgenerator.models.blueprint.tls.ExternalCertificateParametersFactory;
import org.onap.blueprintgenerator.models.blueprint.tls.ExternalTlsInfoFactory;
import org.onap.blueprintgenerator.models.blueprint.tls.TlsInfo;
@@ -42,6 +45,7 @@ import org.onap.blueprintgenerator.models.componentspec.Publishes;
import org.onap.blueprintgenerator.models.componentspec.Subscribes;
import org.onap.blueprintgenerator.models.dmaapbp.DmaapStreams;
+
@Getter
@Setter
@JsonInclude(value = Include.NON_NULL)
@@ -102,7 +106,7 @@ public class Properties {
GetInput replica = new GetInput();
replica.setBpInputName("replicas");
this.setReplicas(replica);
- LinkedHashMap<String, Object> rep = BlueprintHelper.createInputValue("integer", "number of instances", 1);
+ LinkedHashMap<String, Object> rep = createIntegerInput("number of instances", 1);
retInputs.put("replicas", rep);
//set the dns name
@@ -126,7 +130,7 @@ public class Properties {
// set always_pull_image
this.always_pull_image = new GetInput();
this.always_pull_image.setBpInputName("always_pull_image");
- LinkedHashMap<String, Object> inputAlwaysPullImage = BlueprintHelper.createInputValue("boolean",
+ LinkedHashMap<String, Object> inputAlwaysPullImage = createBooleanInput(
"Set to true if the image should always be pulled",
true);
retInputs.put("always_pull_image", inputAlwaysPullImage);
@@ -196,7 +200,7 @@ public class Properties {
GetInput replica = new GetInput();
replica.setBpInputName("replicas");
this.setReplicas(replica);
- LinkedHashMap<String, Object> rep = BlueprintHelper.createInputValue("integer", "number of instances", 1);
+ LinkedHashMap<String, Object> rep = createIntegerInput( "number of instances", 1);
retInputs.put("replicas", rep);
// //set the dns name
@@ -220,18 +224,20 @@ public class Properties {
//set the stream publishes
ArrayList<DmaapStreams> pubStreams = new ArrayList<>();
if (cs.getStreams().getPublishes() != null) {
- for (Publishes p : cs.getStreams().getPublishes()) {
- if (p.getType().equals("message_router") || p.getType().equals("message router")) {
- String topic = p.getConfig_key() + "_topic";
+ for (Publishes publishes : cs.getStreams().getPublishes()) {
+ if (isMessageRouterType(publishes.getType())) {
+ String topic = publishes.getConfig_key() + "_topic";
DmaapStreams mrStreams = new DmaapStreams();
retInputs = mrStreams
- .createStreams(inps, cs, topic, p.getType(), p.getConfig_key(), p.getRoute(), 'p');
+ .createStreams(inps, cs, topic, publishes.getType(), publishes.getConfig_key(),
+ publishes.getRoute(), 'p');
pubStreams.add(mrStreams);
- } else if (p.getType().equals("data_router") || p.getType().equals("data router")) {
- String feed = p.getConfig_key() + "_feed";
+ } else if (isDataRouterType(publishes.getType())) {
+ String feed = publishes.getConfig_key() + "_feed";
DmaapStreams drStreams = new DmaapStreams();
retInputs = drStreams
- .createStreams(inps, cs, feed, p.getType(), p.getConfig_key(), p.getRoute(), 'p');
+ .createStreams(inps, cs, feed, publishes.getType(), publishes.getConfig_key(),
+ publishes.getRoute(), 'p');
pubStreams.add(drStreams);
}
}
@@ -240,18 +246,20 @@ public class Properties {
//set the stream subscribes
ArrayList<DmaapStreams> subStreams = new ArrayList<>();
if (cs.getStreams().getSubscribes() != null) {
- for (Subscribes s : cs.getStreams().getSubscribes()) {
- if (s.getType().equals("message_router") || s.getType().equals("message router")) {
- String topic = s.getConfig_key() + "_topic";
+ for (Subscribes subscribes : cs.getStreams().getSubscribes()) {
+ if (isMessageRouterType(subscribes.getType())) {
+ String topic = subscribes.getConfig_key() + "_topic";
DmaapStreams mrStreams = new DmaapStreams();
retInputs = mrStreams
- .createStreams(inps, cs, topic, s.getType(), s.getConfig_key(), s.getRoute(), 's');
+ .createStreams(inps, cs, topic, subscribes.getType(), subscribes.getConfig_key(),
+ subscribes.getRoute(), 's');
subStreams.add(mrStreams);
- } else if (s.getType().equals("data_router") || s.getType().equals("data router")) {
- String feed = s.getConfig_key() + "_feed";
+ } else if (isDataRouterType(subscribes.getType())) {
+ String feed = subscribes.getConfig_key() + "_feed";
DmaapStreams drStreams = new DmaapStreams();
retInputs = drStreams
- .createStreams(inps, cs, feed, s.getType(), s.getConfig_key(), s.getRoute(), 's');
+ .createStreams(inps, cs, feed, subscribes.getType(), subscribes.getConfig_key(),
+ subscribes.getRoute(), 's');
subStreams.add(drStreams);
}
}
@@ -279,7 +287,7 @@ public class Properties {
useTLSFlag.setBpInputName("use_tls");
tlsInfo.setUseTls(useTLSFlag);
this.setTls_info(tlsInfo);
- LinkedHashMap<String, Object> useTlsFlagInput = BlueprintHelper.createInputValue("boolean",
+ LinkedHashMap<String, Object> useTlsFlagInput = createBooleanInput(
"flag to indicate tls enable/disable",
cs.getAuxilary().getTls_info().get("use_tls"));
retInputs.put("use_tls", useTlsFlagInput);
diff --git a/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/dmaapbp/DmaapBlueprint.java b/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/dmaapbp/DmaapBlueprint.java
index 2774abb..84c5fc5 100644
--- a/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/dmaapbp/DmaapBlueprint.java
+++ b/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/dmaapbp/DmaapBlueprint.java
@@ -33,6 +33,8 @@ import org.onap.blueprintgenerator.models.componentspec.ComponentSpec;
import org.onap.blueprintgenerator.models.componentspec.Publishes;
import org.onap.blueprintgenerator.models.componentspec.Subscribes;
+import static org.onap.blueprintgenerator.common.blueprint.BlueprintHelper.isDataRouterType;
+import static org.onap.blueprintgenerator.common.blueprint.BlueprintHelper.isMessageRouterType;
import static org.onap.blueprintgenerator.common.blueprint.BlueprintHelper.joinUnderscore;
import static org.onap.blueprintgenerator.models.blueprint.Imports.createDmaapImports;
import static org.onap.blueprintgenerator.models.blueprint.Imports.createImportsFromFile;
@@ -74,12 +76,12 @@ public class DmaapBlueprint extends Blueprint {
//go through the streams publishes
if (componentSpec.getStreams().getPublishes() != null) {
for (Publishes publisher : componentSpec.getStreams().getPublishes()) {
- if (isMessageRouter(publisher.getType())) {
+ if (isMessageRouterType(publisher.getType())) {
String topic = joinUnderscore(publisher.getConfig_key(), TOPIC);
DmaapNode topicNode = new DmaapNode();
inps = topicNode.createTopicNode(componentSpec, inps, topic);
nodeTemplate.put(topic, topicNode);
- } else if (isDataRouter(publisher.getType())) {
+ } else if (isDataRouterType(publisher.getType())) {
String feed = joinUnderscore(publisher.getConfig_key(), FEED);
DmaapNode feedNode = new DmaapNode();
inps = feedNode.createFeedNode(componentSpec, inps, feed);
@@ -90,12 +92,12 @@ public class DmaapBlueprint extends Blueprint {
//go through the stream subscribes
if (componentSpec.getStreams().getSubscribes() != null) {
for (Subscribes subscriber : componentSpec.getStreams().getSubscribes()) {
- if (isMessageRouter(subscriber.getType())) {
+ if (isMessageRouterType(subscriber.getType())) {
String topic = joinUnderscore(subscriber.getConfig_key(), TOPIC);
DmaapNode topicNode = new DmaapNode();
inps = topicNode.createTopicNode(componentSpec, inps, topic);
nodeTemplate.put(topic, topicNode);
- } else if (isDataRouter(subscriber.getType())) {
+ } else if (isDataRouterType(subscriber.getType())) {
String feed = joinUnderscore(subscriber.getConfig_key(), FEED);
DmaapNode feedNode = new DmaapNode();
inps = feedNode.createFeedNode(componentSpec, inps, feed);
@@ -120,11 +122,4 @@ public class DmaapBlueprint extends Blueprint {
return blueprint;
}
- private boolean isDataRouter(String type) {
- return type.equals("data_router") || type.equals("data router");
- }
-
- private boolean isMessageRouter(String type) {
- return type.equals("message_router") || type.equals("message router");
- }
}
diff --git a/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/dmaapbp/DmaapNode.java b/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/dmaapbp/DmaapNode.java
index 37d7d2d..e28e49a 100644
--- a/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/dmaapbp/DmaapNode.java
+++ b/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/dmaapbp/DmaapNode.java
@@ -43,117 +43,135 @@ import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
+import static org.onap.blueprintgenerator.common.blueprint.BlueprintHelper.isDataRouterType;
+import static org.onap.blueprintgenerator.common.blueprint.BlueprintHelper.isMessageRouterType;
+
@JsonIgnoreProperties(ignoreUnknown = true)
-@Getter @Setter
-@EqualsAndHashCode(callSuper=false)
+@Getter
+@Setter
+@EqualsAndHashCode(callSuper = false)
@NoArgsConstructor
-@JsonInclude(value=Include.NON_NULL)
-
-public class DmaapNode extends Node{
-
- public TreeMap<String, LinkedHashMap<String, Object>> createDmaapNode(ComponentSpec cs, TreeMap<String, LinkedHashMap<String, Object>> inps, String override) {
- TreeMap<String, LinkedHashMap<String, Object>> retInputs = inps;
-
- //set the type
- this.setType("dcae.nodes.ContainerizedServiceComponentUsingDmaap");
-
- //create the interface
- Interfaces inter = new Interfaces();
- retInputs = inter.createInterface(retInputs, cs);
- TreeMap<String, Interfaces> interfaces = new TreeMap<String, Interfaces>();
- interfaces.put("cloudify.interfaces.lifecycle", inter);
- this.setInterfaces(interfaces);
-
- //create and set the relationships
- ArrayList<LinkedHashMap<String, String>> rets = new ArrayList();
-
- //go through the streams publishes
- if(cs.getStreams().getPublishes() != null) {
- for(Publishes p: cs.getStreams().getPublishes()) {
- LinkedHashMap<String, String> pubRelations = new LinkedHashMap();
- if(p.getType().equals("message_router") || p.getType().equals("message router")) {
- pubRelations.put("type", "ccsdk.relationships.publish_events");
- pubRelations.put("target", p.getConfig_key() + "_topic");
- } else if(p.getType().equals("data_router") || p.getType().equals("data router")) {
- pubRelations.put("type", "ccsdk.relationships.publish_files");
- pubRelations.put("target", p.getConfig_key() + "_feed");
- }
- rets.add(pubRelations);
- }
- }
- //go through the stream subscribes
- if(cs.getStreams().getSubscribes() != null) {
- for(Subscribes s: cs.getStreams().getSubscribes()) {
- LinkedHashMap<String, String> subRelations = new LinkedHashMap();
- if(s.getType().equals("message_router") || s.getType().equals("message router")) {
- subRelations.put("type", "ccsdk.relationships.subscribe_to_events");
- subRelations.put("target", s.getConfig_key() + "_topic");
- } else if(s.getType().equals("data_router") || s.getType().equals("data router")) {
- subRelations.put("type", "ccsdk.relationships.subscribe_to_files");
- subRelations.put("target", s.getConfig_key() + "_feed");
- }
- rets.add(subRelations);
- }
- }
-
- //add relationship for policy if exist
- if(cs.getPolicyInfo() != null){
- ArrayList<LinkedHashMap<String, String>> policyRelationshipsList = PolicyNodeBuilder.getPolicyRelationships(cs);
- rets.addAll(policyRelationshipsList);
- }
-
- //add relationships and env_variables for pgaas dbs if exist
- if(cs.getAuxilary().getDatabases() != null){
- ArrayList<LinkedHashMap<String, String>> pgaasRelationshipsList = PgaasNodeBuilder.getPgaasNodeRelationships(cs);
- rets.addAll(pgaasRelationshipsList);
- }
-
- this.setRelationships(rets);
-
- //create and set the properties
- Properties props = new Properties();
- retInputs = props.createDmaapProperties(retInputs, cs, override);
- this.setProperties(props);
-
- return retInputs;
- }
- public TreeMap<String, LinkedHashMap<String, Object>> createFeedNode(ComponentSpec cs, TreeMap<String, LinkedHashMap<String, Object>> inps, String name){
- TreeMap<String, LinkedHashMap<String, Object>> retInputs = inps;
- LinkedHashMap<String, Object> stringType = new LinkedHashMap();
- stringType.put("type", "string");
-
- //set the type
- this.setType("ccsdk.nodes.Feed");
-
- //create and set the properties
- Properties props = new Properties();
- GetInput topicInput = new GetInput();
- topicInput.setBpInputName(name + "_name");
- props.setFeed_name(topicInput);
- //props.setUseExisting(true);
- retInputs.put(name + "_name", stringType);
- this.setProperties(props);
-
- return retInputs;
- }
-
- public TreeMap<String, LinkedHashMap<String, Object>> createTopicNode(ComponentSpec cs, TreeMap<String, LinkedHashMap<String, Object>> inps, String name){
- TreeMap<String, LinkedHashMap<String, Object>> retInputs = inps;
- LinkedHashMap<String, Object> stringType = new LinkedHashMap();
- stringType.put("type", "string");
-
- //set the type
- this.setType("ccsdk.nodes.Topic");
-
- //create and set the properties
- Properties props = new Properties();
- GetInput topicInput = new GetInput();
- topicInput.setBpInputName(name + "_name");
- props.setTopic_name(topicInput);
- //props.setUseExisting(true);
- retInputs.put(name + "_name", stringType);
- this.setProperties(props);
-
- return retInputs;
- }
+@JsonInclude(value = Include.NON_NULL)
+
+public class DmaapNode extends Node {
+
+ public TreeMap<String, LinkedHashMap<String, Object>> createDmaapNode(ComponentSpec componentSpec,
+ TreeMap<String, LinkedHashMap<String, Object>> inps, String override) {
+ TreeMap<String, LinkedHashMap<String, Object>> retInputs = inps;
+
+ //set the type
+ this.setType("dcae.nodes.ContainerizedServiceComponentUsingDmaap");
+
+ //create the interface
+ Interfaces inter = new Interfaces();
+ retInputs = inter.createInterface(retInputs, componentSpec);
+ TreeMap<String, Interfaces> interfaces = new TreeMap<>();
+ interfaces.put("cloudify.interfaces.lifecycle", inter);
+ this.setInterfaces(interfaces);
+
+ //create and set the relationships
+ ArrayList<LinkedHashMap<String, String>> relationships = new ArrayList<>();
+
+ //go through the streams publishes
+ if (componentSpec.getStreams().getPublishes() != null) {
+ for (Publishes publishes : componentSpec.getStreams().getPublishes()) {
+ relationships.add(createTypeAndTargetPubRelations(publishes));
+ }
+ }
+ //go through the stream subscribes
+ if (componentSpec.getStreams().getSubscribes() != null) {
+ for (Subscribes subscribes : componentSpec.getStreams().getSubscribes()) {
+ relationships.add(createTypeAndTargetSubRelations(subscribes));
+ }
+ }
+
+ //add relationship for policy if exist
+ if (componentSpec.getPolicyInfo() != null) {
+ ArrayList<LinkedHashMap<String, String>> policyRelationshipsList = PolicyNodeBuilder
+ .getPolicyRelationships(componentSpec);
+ relationships.addAll(policyRelationshipsList);
+ }
+
+ //add relationships and env_variables for pgaas dbs if exist
+ if (componentSpec.getAuxilary().getDatabases() != null) {
+ ArrayList<LinkedHashMap<String, String>> pgaasRelationshipsList = PgaasNodeBuilder
+ .getPgaasNodeRelationships(componentSpec);
+ relationships.addAll(pgaasRelationshipsList);
+ }
+
+ this.setRelationships(relationships);
+
+ //create and set the properties
+ Properties props = new Properties();
+ retInputs = props.createDmaapProperties(retInputs, componentSpec, override);
+ this.setProperties(props);
+
+ return retInputs;
+ }
+
+ public TreeMap<String, LinkedHashMap<String, Object>> createFeedNode(ComponentSpec cs,
+ TreeMap<String, LinkedHashMap<String, Object>> inps, String name) {
+ TreeMap<String, LinkedHashMap<String, Object>> retInputs = inps;
+ LinkedHashMap<String, Object> stringType = new LinkedHashMap<>();
+ stringType.put("type", "string");
+
+ //set the type
+ this.setType("ccsdk.nodes.Feed");
+
+ //create and set the properties
+ Properties props = new Properties();
+ GetInput topicInput = new GetInput();
+ topicInput.setBpInputName(name + "_name");
+ props.setFeed_name(topicInput);
+ //props.setUseExisting(true);
+ retInputs.put(name + "_name", stringType);
+ this.setProperties(props);
+
+ return retInputs;
+ }
+
+ public TreeMap<String, LinkedHashMap<String, Object>> createTopicNode(ComponentSpec cs,
+ TreeMap<String, LinkedHashMap<String, Object>> inps, String name) {
+ TreeMap<String, LinkedHashMap<String, Object>> retInputs = inps;
+ LinkedHashMap<String, Object> stringType = new LinkedHashMap<>();
+ stringType.put("type", "string");
+
+ //set the type
+ this.setType("ccsdk.nodes.Topic");
+
+ //create and set the properties
+ Properties props = new Properties();
+ GetInput topicInput = new GetInput();
+ topicInput.setBpInputName(name + "_name");
+ props.setTopic_name(topicInput);
+ //props.setUseExisting(true);
+ retInputs.put(name + "_name", stringType);
+ this.setProperties(props);
+
+ return retInputs;
+ }
+
+ private LinkedHashMap<String, String> createTypeAndTargetPubRelations(Publishes publishes) {
+ LinkedHashMap<String, String> pubRelations = new LinkedHashMap<>();
+ if (isMessageRouterType(publishes.getType())) {
+ pubRelations.put("type", "ccsdk.relationships.publish_events");
+ pubRelations.put("target", publishes.getConfig_key() + "_topic");
+ } else if (isDataRouterType(publishes.getType())) {
+ pubRelations.put("type", "ccsdk.relationships.publish_files");
+ pubRelations.put("target", publishes.getConfig_key() + "_feed");
+ }
+ return pubRelations;
+ }
+
+ private LinkedHashMap<String, String> createTypeAndTargetSubRelations(Subscribes subscribes) {
+ LinkedHashMap<String, String> subRelations = new LinkedHashMap<>();
+ if (isMessageRouterType(subscribes.getType())) {
+ subRelations.put("type", "ccsdk.relationships.subscribe_to_events");
+ subRelations.put("target", subscribes.getConfig_key() + "_topic");
+ } else if (isDataRouterType(subscribes.getType())) {
+ subRelations.put("type", "ccsdk.relationships.subscribe_to_files");
+ subRelations.put("target", subscribes.getConfig_key() + "_feed");
+ }
+ return subRelations;
+ }
}
diff --git a/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/dmaapbp/DmaapStreams.java b/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/dmaapbp/DmaapStreams.java
index e2847d7..162337e 100644
--- a/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/dmaapbp/DmaapStreams.java
+++ b/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/dmaapbp/DmaapStreams.java
@@ -33,72 +33,77 @@ import com.fasterxml.jackson.annotation.JsonInclude.Include;
import lombok.Getter;
import lombok.Setter;
-@Getter @Setter
-@JsonInclude(value=Include.NON_NULL)
+import static org.onap.blueprintgenerator.common.blueprint.BlueprintHelper.isDataRouterType;
+
+@Getter
+@Setter
+@JsonInclude(value = Include.NON_NULL)
public class DmaapStreams {
- private String name;
- private GetInput location;
- private GetInput client_role;
- private String type;
-
- private GetInput username;
- private GetInput password;
- //private GetInput delivery_url;
-
- private GetInput privileged;
- private GetInput decompress;
-
- private String route;
- private String scheme;
-
- public TreeMap<String, LinkedHashMap<String, Object>> createStreams(TreeMap<String, LinkedHashMap<String, Object>> inps, ComponentSpec cs, String name, String type, String key, String route, char o){
- TreeMap<String, LinkedHashMap<String, Object>> retInputs = inps;
- LinkedHashMap<String, Object> stringType = new LinkedHashMap();
- stringType.put("type", "string");
-
- //set the name
- this.setName(name);
-
- //set the type
- this.setType(type);
-
- //set the location
- GetInput location = new GetInput();
- location.setBpInputName(key + "_" + name + "_location");
- retInputs.put(key + "_" + name + "_location", stringType);
- this.setLocation(location);
-
- //if its data router we need to add some more
- if(type.equals("data_router") || type.equals("data router")) {
- if(o == 's') {
- //set the username
- GetInput username = new GetInput();
- username.setBpInputName(key + "_" + name + "_username");
- this.setUsername(username);
- retInputs.put(key + "_" + name + "_username", stringType);
-
- //set the password
- GetInput password = new GetInput();
- password.setBpInputName(key + "_" + name + "_password");
- this.setPassword(password);
- retInputs.put(key + "_" + name + "_password", stringType);
-
- //set privileged
- GetInput priviliged = new GetInput();
- priviliged.setBpInputName(key + "_" + name + "_priviliged");
- this.setPrivileged(priviliged);
- retInputs.put(key + "_" + name + "_priviliged", stringType);
-
- //set decompress
- GetInput decompress = new GetInput();
- decompress.setBpInputName(key + "_" + name + "_decompress");
- this.setDecompress(decompress);
- retInputs.put(key + "_" + name + "_decompress", stringType);
-
- this.setRoute(route);
- this.setScheme("https");
- }
+ private String name;
+ private GetInput location;
+ private GetInput client_role;
+ private String type;
+
+ private GetInput username;
+ private GetInput password;
+ //private GetInput delivery_url;
+
+ private GetInput privileged;
+ private GetInput decompress;
+
+ private String route;
+ private String scheme;
+
+ public TreeMap<String, LinkedHashMap<String, Object>> createStreams(
+ TreeMap<String, LinkedHashMap<String, Object>> inps, ComponentSpec cs, String name, String type, String key,
+ String route, char o) {
+ TreeMap<String, LinkedHashMap<String, Object>> retInputs = inps;
+ LinkedHashMap<String, Object> stringType = new LinkedHashMap();
+ stringType.put("type", "string");
+
+ //set the name
+ this.setName(name);
+
+ //set the type
+ this.setType(type);
+
+ //set the location
+ GetInput location = new GetInput();
+ location.setBpInputName(key + "_" + name + "_location");
+ retInputs.put(key + "_" + name + "_location", stringType);
+ this.setLocation(location);
+
+ //if its data router we need to add some more
+ if (isDataRouterType(type)) {
+ if ('s' == o) {
+ //set the username
+ GetInput username = new GetInput();
+ username.setBpInputName(key + "_" + name + "_username");
+ this.setUsername(username);
+ retInputs.put(key + "_" + name + "_username", stringType);
+
+ //set the password
+ GetInput password = new GetInput();
+ password.setBpInputName(key + "_" + name + "_password");
+ this.setPassword(password);
+ retInputs.put(key + "_" + name + "_password", stringType);
+
+ //set privileged
+ GetInput priviliged = new GetInput();
+ priviliged.setBpInputName(key + "_" + name + "_priviliged");
+ this.setPrivileged(priviliged);
+ retInputs.put(key + "_" + name + "_priviliged", stringType);
+
+ //set decompress
+ GetInput decompress = new GetInput();
+ decompress.setBpInputName(key + "_" + name + "_decompress");
+ this.setDecompress(decompress);
+ retInputs.put(key + "_" + name + "_decompress", stringType);
+
+ this.setRoute(route);
+ this.setScheme("https");
+ }
// //set the delivery url
// GetInput delivery = new GetInput();
@@ -106,13 +111,13 @@ public class DmaapStreams {
// this.setDelivery_url(delivery);
// retInputs.put(name + "delivery_url", stringType);
- } else {
- //set the client role
- GetInput client = new GetInput();
- client.setBpInputName(key + "_" + name + "_client_role");
- this.setClient_role(client);
- retInputs.put(key + "_" + name + "_client_role", stringType);
- }
- return retInputs;
- }
+ } else {
+ //set the client role
+ GetInput client = new GetInput();
+ client.setBpInputName(key + "_" + name + "_client_role");
+ this.setClient_role(client);
+ retInputs.put(key + "_" + name + "_client_role", stringType);
+ }
+ return retInputs;
+ }
}
diff --git a/mod/bpgenerator/src/test/java/org/onap/blueprintgenerator/models/dmaapbp/DmaapNodeTest.java b/mod/bpgenerator/src/test/java/org/onap/blueprintgenerator/models/dmaapbp/DmaapNodeTest.java
new file mode 100644
index 0000000..684657c
--- /dev/null
+++ b/mod/bpgenerator/src/test/java/org/onap/blueprintgenerator/models/dmaapbp/DmaapNodeTest.java
@@ -0,0 +1,201 @@
+/*============LICENSE_START=======================================================
+ org.onap.dcae
+ ================================================================================
+ Copyright (c) 2020 Nokia. All rights reserved.
+ ================================================================================
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ ============LICENSE_END=========================================================
+ */
+
+package org.onap.blueprintgenerator.models.dmaapbp;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.when;
+
+import java.util.Map;
+import java.util.TreeMap;
+import org.junit.Test;
+import org.onap.blueprintgenerator.core.TestComponentSpec;
+import org.onap.blueprintgenerator.models.componentspec.Auxilary;
+import org.onap.blueprintgenerator.models.componentspec.ComponentSpec;
+import org.onap.blueprintgenerator.models.componentspec.Publishes;
+import org.onap.blueprintgenerator.models.componentspec.Streams;
+import org.onap.blueprintgenerator.models.componentspec.Subscribes;
+
+public class DmaapNodeTest {
+
+ private static final String EXPECTED_DMAAP_NODE_TYPE = "dcae.nodes.ContainerizedServiceComponentUsingDmaap";
+
+ private static final String DATA_ROUTER_TYPE = "data_router";
+ private static final String MESSAGE_ROUTER_TYPE = "message_router";
+
+ private static final String CONFIG_KEY = "Configkey";
+
+ private static final String SAMPLE_FORMAT = "Format";
+ private static final String SAMPLE_VERSION = "1.0.0";
+ private static final String SAMPLE_ROUTE = "SampleRoute";
+ private static final String TYPE = "type";
+ private static final String TARGET = "target";
+
+
+ @Test
+ public void dmaapNodeShouldHaveExpectedNodeType() {
+
+ ComponentSpec mockedComponentSpec = getSpiedComponentSpecWithoutRelationships();
+
+ DmaapNode dmaapNode = new DmaapNode();
+ dmaapNode.createDmaapNode(mockedComponentSpec, new TreeMap<>(), "");
+
+ assertEquals(EXPECTED_DMAAP_NODE_TYPE, dmaapNode.getType());
+ }
+
+ @Test
+ public void createdDmaapNodeShouldHaveRelationshipWithTypeAndTargetForMessageRouterPublishes() {
+ ComponentSpec componentSpec = getSpiedComponentSpecWithoutRelationships();
+
+ Streams streams = new Streams();
+ streams.setSubscribes(new Subscribes[0]);
+ streams.setPublishes(createSamplePublishes(MESSAGE_ROUTER_TYPE));
+
+ when(componentSpec.getStreams()).thenReturn(streams);
+ DmaapNode dmaapNode = new DmaapNode();
+ dmaapNode.createDmaapNode(componentSpec, new TreeMap<>(), "");
+
+ Map<String, String> relationship = dmaapNode.getRelationships().get(0);
+
+ assertNotNull(relationship.get(TYPE));
+ assertNotNull(relationship.get(TARGET));
+ }
+
+ @Test
+ public void createdDmaapNodeShouldHaveRelationshipWithTypeAndTargetForDataRouterPublishes() {
+ ComponentSpec componentSpec = getSpiedComponentSpecWithoutRelationships();
+
+ Streams streams = new Streams();
+ streams.setSubscribes(new Subscribes[0]);
+ streams.setPublishes(createSamplePublishes(DATA_ROUTER_TYPE));
+
+ when(componentSpec.getStreams()).thenReturn(streams);
+ DmaapNode dmaapNode = new DmaapNode();
+ dmaapNode.createDmaapNode(componentSpec, new TreeMap<>(), "");
+
+ Map<String, String> relationship = dmaapNode.getRelationships().get(0);
+
+ assertNotNull(relationship.get(TYPE));
+ assertNotNull(relationship.get(TARGET));
+ }
+
+ @Test
+ public void createdDmaapNodeShouldHaveRelationshipWithTypeAndTargetForMessageRouterSubscribes() {
+ ComponentSpec componentSpec = getSpiedComponentSpecWithoutRelationships();
+
+ Streams streams = new Streams();
+ streams.setSubscribes(createSampleSubscribes(MESSAGE_ROUTER_TYPE));
+ streams.setPublishes(new Publishes[0]);
+
+ when(componentSpec.getStreams()).thenReturn(streams);
+ DmaapNode dmaapNode = new DmaapNode();
+ dmaapNode.createDmaapNode(componentSpec, new TreeMap<>(), "");
+
+ Map<String, String> relationship = dmaapNode.getRelationships().get(0);
+
+ assertNotNull(relationship.get(TYPE));
+ assertNotNull(relationship.get(TARGET));
+ }
+
+ @Test
+ public void createdDmaapNodeShouldHaveRelationshipWithTypeAndTargetForDataRouterSubscribes() {
+ ComponentSpec componentSpec = getSpiedComponentSpecWithoutRelationships();
+
+ Streams streams = new Streams();
+ streams.setSubscribes(createSampleSubscribes(DATA_ROUTER_TYPE));
+ streams.setPublishes(new Publishes[0]);
+
+ when(componentSpec.getStreams()).thenReturn(streams);
+ DmaapNode dmaapNode = new DmaapNode();
+ dmaapNode.createDmaapNode(componentSpec, new TreeMap<>(), "");
+
+ Map<String, String> relationship = dmaapNode.getRelationships().get(0);
+
+ assertNotNull(relationship.get(TYPE));
+ assertNotNull(relationship.get(TARGET));
+ }
+
+ @Test
+ public void createFeedNodeShouldSetFeedNodeType() {
+ ComponentSpec componentSpec = getSpiedComponentSpecWithoutRelationships();
+
+ DmaapNode dmaapNode = new DmaapNode();
+ dmaapNode.createFeedNode(componentSpec, new TreeMap<>() ,"");
+
+ assertTrue(dmaapNode.getType().endsWith("Feed"));
+ }
+
+ @Test
+ public void createTopicNodeShouldSetTopicNodeType() {
+
+ ComponentSpec componentSpec = getSpiedComponentSpecWithoutRelationships();
+
+ DmaapNode dmaapNode = new DmaapNode();
+ dmaapNode.createTopicNode(componentSpec, new TreeMap<>() ,"");
+
+ assertTrue(dmaapNode.getType().endsWith("Topic"));
+ }
+
+ private Publishes[] createSamplePublishes(String type) {
+ Publishes publishes = new Publishes();
+
+ publishes.setType(type);
+ publishes.setConfig_key(CONFIG_KEY);
+ publishes.setFormat(SAMPLE_FORMAT);
+ publishes.setVersion(SAMPLE_VERSION);
+ publishes.setRoute(SAMPLE_ROUTE);
+
+ return new Publishes[]{publishes};
+ }
+
+ private Subscribes[] createSampleSubscribes(String type) {
+ Subscribes subscribes = new Subscribes();
+
+ subscribes.setType(type);
+ subscribes.setConfig_key(CONFIG_KEY);
+ subscribes.setFormat(SAMPLE_FORMAT);
+ subscribes.setVersion(SAMPLE_VERSION);
+ subscribes.setRoute(SAMPLE_ROUTE);
+
+ return new Subscribes[]{subscribes};
+ }
+
+ private ComponentSpec getSpiedComponentSpecWithoutRelationships() {
+ ComponentSpec baseComponentSpec = new ComponentSpec();
+ baseComponentSpec.createComponentSpecFromString(new TestComponentSpec().getCs());
+ ComponentSpec componentSpec = spy(baseComponentSpec);
+
+ Streams streams = new Streams();
+ streams.setSubscribes(new Subscribes[0]);
+ streams.setPublishes(new Publishes[0]);
+ when(componentSpec.getStreams()).thenReturn(streams);
+
+ Auxilary auxilary = spy(baseComponentSpec.getAuxilary());
+ when(auxilary.getDatabases()).thenReturn(null);
+
+ when(componentSpec.getAuxilary()).thenReturn(auxilary);
+ when(componentSpec.getPolicyInfo()).thenReturn(null);
+
+ return componentSpec;
+
+ }
+}
diff --git a/mod/bpgenerator/version.properties b/mod/bpgenerator/version.properties
index 303a703..3f9d877 100644
--- a/mod/bpgenerator/version.properties
+++ b/mod/bpgenerator/version.properties
@@ -1,6 +1,6 @@
major=1
minor=5
-patch=1
+patch=2
base_version=${major}.${minor}.${patch}
release_version=${base_version}
snapshot_version=${base_version}-SNAPSHOT