summaryrefslogtreecommitdiffstats
path: root/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/dmaapbp
diff options
context:
space:
mode:
Diffstat (limited to 'mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/dmaapbp')
-rw-r--r--mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/dmaapbp/DmaapBlueprint.java111
-rw-r--r--mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/dmaapbp/DmaapNode.java153
-rw-r--r--mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/dmaapbp/DmaapStreams.java103
3 files changed, 367 insertions, 0 deletions
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
new file mode 100644
index 0000000..d3cff67
--- /dev/null
+++ b/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/dmaapbp/DmaapBlueprint.java
@@ -0,0 +1,111 @@
+/**============LICENSE_START=======================================================
+ org.onap.dcae
+ ================================================================================
+ Copyright (c) 2019 AT&T Intellectual Property. 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 java.util.ArrayList;
+import java.util.LinkedHashMap;
+import java.util.TreeMap;
+
+import org.onap.blueprintgenerator.models.blueprint.Blueprint;
+import org.onap.blueprintgenerator.models.blueprint.Imports;
+import org.onap.blueprintgenerator.models.blueprint.Interfaces;
+import org.onap.blueprintgenerator.models.blueprint.Node;
+import org.onap.blueprintgenerator.models.blueprint.Properties;
+import org.onap.blueprintgenerator.models.componentspec.ComponentSpec;
+import org.onap.blueprintgenerator.models.componentspec.Publishes;
+import org.onap.blueprintgenerator.models.componentspec.Subscribes;
+
+public class DmaapBlueprint extends Blueprint{
+ public Blueprint createDmaapBlueprint(ComponentSpec cs, String importPath, String override) {
+ Blueprint bp = new Blueprint();
+
+ //set tosca definition
+ bp.setTosca_definitions_version("cloudify_dsl_1_3");
+
+ //set the description
+ bp.setDescription(cs.getSelf().getDescription());
+
+ //create the inpus object that will be added to over the creation of the blueprint
+ TreeMap<String, LinkedHashMap<String, Object>> inps = new TreeMap<String, LinkedHashMap<String, Object>>();
+
+ //set the imports
+ Imports imps = new Imports();
+ if(importPath.equals("")) {
+ bp.setImports(imps.createDmaapImports());
+ }
+ else {
+ bp.setImports(imps.createImportsFromFile(importPath));
+ }
+
+ //bp.setImports(imps.getImports());
+
+ //set and create the node templates
+ TreeMap<String, Node> nodeTemplate = new TreeMap();
+
+ //create and add the main dmaap node
+ DmaapNode dmaap = new DmaapNode();
+ inps = dmaap.createDmaapNode(cs, inps, override);
+ nodeTemplate.put(cs.getSelf().getName(), dmaap);
+
+ //create and add the topic/feed nodes
+
+ //go through the streams publishes
+ int counter = 0;
+ if(cs.getStreams().getPublishes() != null) {
+ for(Publishes p: cs.getStreams().getPublishes()) {
+ if(p.getType().equals("message_router") || p.getType().equals("message router")) {
+ String topic = "topic" + counter;
+ DmaapNode topicNode = new DmaapNode();
+ inps = topicNode.createTopicNode(cs, inps, topic);
+ nodeTemplate.put(topic, topicNode);
+ } else if(p.getType().equals("data_router") || p.getType().equals("data router")) {
+ String feed = "feed" + counter;
+ DmaapNode feedNode = new DmaapNode();
+ inps = feedNode.createFeedNode(cs, inps, feed);
+ nodeTemplate.put(feed, feedNode);
+ }
+ counter++;
+ }
+ }
+ //go through the stream subscribes
+ if(cs.getStreams().getSubscribes() != null) {
+ for(Subscribes s: cs.getStreams().getSubscribes()) {
+ if(s.getType().equals("message_router") || s.getType().equals("message router")) {
+ String topic = "topic" + counter;
+ DmaapNode topicNode = new DmaapNode();
+ inps = topicNode.createTopicNode(cs, inps, topic);
+ nodeTemplate.put(topic, topicNode);
+ } else if(s.getType().equals("data_router") || s.getType().equals("data router")) {
+ String feed = "feed" + counter;
+ DmaapNode feedNode = new DmaapNode();
+ inps = feedNode.createFeedNode(cs, inps, feed);
+ nodeTemplate.put(feed, feedNode);
+ }
+ counter++;
+ }
+ }
+
+ bp.setNode_templates(nodeTemplate);
+
+ bp.setInputs(inps);
+ return bp;
+ }
+} \ No newline at end of file
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
new file mode 100644
index 0000000..bfa7ae9
--- /dev/null
+++ b/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/dmaapbp/DmaapNode.java
@@ -0,0 +1,153 @@
+/**============LICENSE_START=======================================================
+ org.onap.dcae
+ ================================================================================
+ Copyright (c) 2019 AT&T Intellectual Property. 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 java.util.ArrayList;
+import java.util.LinkedHashMap;
+import java.util.TreeMap;
+
+import org.onap.blueprintgenerator.models.blueprint.GetInput;
+import org.onap.blueprintgenerator.models.blueprint.Interfaces;
+import org.onap.blueprintgenerator.models.blueprint.Node;
+import org.onap.blueprintgenerator.models.blueprint.Properties;
+import org.onap.blueprintgenerator.models.componentspec.ComponentSpec;
+import org.onap.blueprintgenerator.models.componentspec.Publishes;
+import org.onap.blueprintgenerator.models.componentspec.Subscribes;
+import org.onap.blueprintgenerator.models.onapbp.OnapNode;
+
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonInclude.Include;
+
+import lombok.EqualsAndHashCode;
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+import lombok.Setter;
+
+@JsonIgnoreProperties(ignoreUnknown = true)
+@Getter @Setter
+@EqualsAndHashCode(callSuper=false)
+@NoArgsConstructor
+@JsonInclude(value=Include.NON_NULL)
+
+public class DmaapNode extends Node{
+
+ private TreeMap<String, Interfaces> interfaces;
+ private Properties properties;
+ private ArrayList<LinkedHashMap<String, String>> relationships;
+
+ 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
+ int counter = 0;
+ 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", "topic" + counter);
+ } else if(p.getType().equals("data_router") || p.getType().equals("data router")) {
+ pubRelations.put("type", "ccsdk.relationships.publish_files");
+ pubRelations.put("target", "feed" + counter);
+ }
+ rets.add(pubRelations);
+ counter++;
+ }
+ }
+ //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", "topic" + counter);
+ } else if(s.getType().equals("data_router") || s.getType().equals("data router")) {
+ subRelations.put("type", "ccsdk.relationships.subscribe_to_files");
+ subRelations.put("target", "feed" + counter);
+ }
+ rets.add(subRelations);
+ counter++;
+ }
+ }
+
+ 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.setGet_input(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.setGet_input(name + "_name");
+ props.setTopic_name(topicInput);
+ //props.setUseExisting(true);
+ retInputs.put(name + "_name", stringType);
+ this.setProperties(props);
+
+ return retInputs;
+ }
+}
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
new file mode 100644
index 0000000..1640a6e
--- /dev/null
+++ b/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/dmaapbp/DmaapStreams.java
@@ -0,0 +1,103 @@
+/**============LICENSE_START=======================================================
+ org.onap.dcae
+ ================================================================================
+ Copyright (c) 2019 AT&T Intellectual Property. 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 java.util.LinkedHashMap;
+import java.util.TreeMap;
+
+import org.onap.blueprintgenerator.models.blueprint.Appconfig;
+import org.onap.blueprintgenerator.models.blueprint.GetInput;
+import org.onap.blueprintgenerator.models.componentspec.ComponentSpec;
+import org.onap.blueprintgenerator.models.componentspec.HealthCheck;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonInclude.Include;
+
+import lombok.Getter;
+import lombok.Setter;
+
+@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 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.setGet_input(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.setGet_input(key + "_" + name + "_username");
+ this.setUsername(username);
+ retInputs.put(key + "_" + name + "_username", stringType);
+
+ //set the password
+ GetInput password = new GetInput();
+ password.setGet_input(key + "_" + name + "_password");
+ this.setPassword(password);
+ retInputs.put(key + "_" + name + "_password", stringType);
+
+ this.setRoute(route);
+ this.setScheme("https");
+ }
+
+// //set the delivery url
+// GetInput delivery = new GetInput();
+// delivery.setGet_input(name + "_delivery_url");
+// this.setDelivery_url(delivery);
+// retInputs.put(name + "delivery_url", stringType);
+
+ } else {
+ //set the client role
+ GetInput client = new GetInput();
+ client.setGet_input(key + "_" + name + "_client_role");
+ this.setClient_role(client);
+ retInputs.put(key + "_" + name + "_client_role", stringType);
+ }
+ return retInputs;
+ }
+} \ No newline at end of file