summaryrefslogtreecommitdiffstats
path: root/mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/service
diff options
context:
space:
mode:
Diffstat (limited to 'mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/service')
-rw-r--r--mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/service/common/AppConfigService.java8
-rw-r--r--mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/service/common/StreamService.java42
-rw-r--r--mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/service/common/kafka/AafCredential.java52
-rw-r--r--mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/service/common/kafka/KafkaCommonConstants.java39
-rw-r--r--mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/service/common/kafka/KafkaInfo.java56
-rw-r--r--mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/service/common/kafka/KafkaStream.java61
-rw-r--r--mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/service/common/kafka/KafkaStreamService.java137
7 files changed, 378 insertions, 17 deletions
diff --git a/mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/service/common/AppConfigService.java b/mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/service/common/AppConfigService.java
index 494620c..da70511 100644
--- a/mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/service/common/AppConfigService.java
+++ b/mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/service/common/AppConfigService.java
@@ -27,7 +27,7 @@
package org.onap.blueprintgenerator.service.common;
import org.onap.blueprintgenerator.model.common.Appconfig;
-import org.onap.blueprintgenerator.model.common.Dmaap;
+import org.onap.blueprintgenerator.model.common.BaseStream;
import org.onap.blueprintgenerator.model.common.GetInput;
import org.onap.blueprintgenerator.model.componentspec.OnapComponentSpec;
import org.onap.blueprintgenerator.model.componentspec.common.Calls;
@@ -58,6 +58,7 @@ public class AppConfigService {
@Autowired
private StreamService streamService;
+
/**
* Creates Inputs section under App Config with Publishes, Subscribes, Parameters sections by
* checking Datarouter/MessageRouter/override/Dmaap values
@@ -78,9 +79,9 @@ public class AppConfigService {
Calls[] call = new Calls[0];
appconfig.setService_calls(call);
- Map<String, Dmaap> streamPublishes = streamService.createStreamPublishes(
+ Map<String, BaseStream> streamPublishes = streamService.createStreamPublishes(
onapComponentSpec, blueprintHelperService, dmaapService, inputs, isDmaap);
- Map<String, Dmaap> streamSubscribes = streamService.createStreamSubscribes(
+ Map<String, BaseStream> streamSubscribes = streamService.createStreamSubscribes(
onapComponentSpec, blueprintHelperService, dmaapService, inputs, isDmaap);
appconfig.setStreams_publishes(streamPublishes);
@@ -122,4 +123,5 @@ public class AppConfigService {
response.put("inputs", inputs);
return response;
}
+
}
diff --git a/mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/service/common/StreamService.java b/mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/service/common/StreamService.java
index bd4cf87..f27ea48 100644
--- a/mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/service/common/StreamService.java
+++ b/mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/service/common/StreamService.java
@@ -29,39 +29,45 @@ import java.util.LinkedHashMap;
import java.util.Map;
import java.util.TreeMap;
import org.onap.blueprintgenerator.constants.Constants;
+import org.onap.blueprintgenerator.model.common.BaseStream;
import org.onap.blueprintgenerator.model.common.Dmaap;
import org.onap.blueprintgenerator.model.componentspec.OnapComponentSpec;
import org.onap.blueprintgenerator.model.componentspec.common.Publishes;
import org.onap.blueprintgenerator.model.componentspec.common.Subscribes;
import org.onap.blueprintgenerator.service.base.BlueprintHelperService;
+import org.onap.blueprintgenerator.service.common.kafka.KafkaStreamService;
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
/**
* @author : Joanna Jeremicz
- * @date 01/15/2021 Application: ONAP - Blueprint Generator Common ONAP Service
- * to create publishes and subscribes streams
+ * @date 01/15/2021 Application: ONAP - Blueprint Generator Common ONAP Service to create publishes and subscribes
+ * streams
*/
@Service("streamService")
public class StreamService {
+ @Autowired
+ private KafkaStreamService kafkaStreamsService;
+
/**
* Creates publishes stream for given Inputs and ComponentSpec
*
- * @param onapComponentSpec Onap Component Specification
+ * @param onapComponentSpec Onap Component Specification
* @param blueprintHelperService Blueprint Helper Service
- * @param dmaapService Dmaap Service
- * @param inputs Inputs
- * @param isDmaap Dmaap Argument
+ * @param dmaapService Dmaap Service
+ * @param inputs Inputs
+ * @param isDmaap Dmaap Argument
* @return
*/
- public Map<String, Dmaap> createStreamPublishes(
+ public Map<String, BaseStream> createStreamPublishes(
OnapComponentSpec onapComponentSpec,
BlueprintHelperService blueprintHelperService,
DmaapService dmaapService,
Map<String, LinkedHashMap<String, Object>> inputs,
boolean isDmaap) {
- Map<String, Dmaap> streamPublishes = new TreeMap<>();
+ Map<String, BaseStream> streamPublishes = new TreeMap<>();
if (onapComponentSpec.getStreams() == null || onapComponentSpec.getStreams().getPublishes() == null) {
return streamPublishes;
}
@@ -90,6 +96,9 @@ public class StreamService {
Dmaap dmaap = (Dmaap) dmaapDataRouterResponse.get("dmaap");
dmaap.setType(publishes.getType());
streamPublishes.put(config, dmaap);
+ } else if (blueprintHelperService.isKafkaStreamType(publishes.getType())) {
+ inputs.putAll(kafkaStreamsService.createStreamPublishInputs(publishes.getConfig_key()));
+ streamPublishes.putAll(kafkaStreamsService.createAppPropertiesPublish(publishes.getConfig_key()));
}
}
return streamPublishes;
@@ -98,21 +107,21 @@ public class StreamService {
/**
* Creates subscribes stream for given Inputs and ComponentSpec
*
- * @param onapComponentSpec Onap Component Specification
+ * @param onapComponentSpec Onap Component Specification
* @param blueprintHelperService Blueprint Helper Service
- * @param dmaapService Dmaap Service
- * @param inputs Inputs
- * @param isDmaap Dmaap Argument
+ * @param dmaapService Dmaap Service
+ * @param inputs Inputs
+ * @param isDmaap Dmaap Argument
* @return
*/
- public Map<String, Dmaap> createStreamSubscribes(
+ public Map<String, BaseStream> createStreamSubscribes(
OnapComponentSpec onapComponentSpec,
BlueprintHelperService blueprintHelperService,
DmaapService dmaapService,
Map<String, LinkedHashMap<String, Object>> inputs,
boolean isDmaap) {
- Map<String, Dmaap> streamSubscribes = new TreeMap<>();
+ Map<String, BaseStream> streamSubscribes = new TreeMap<>();
if (onapComponentSpec.getStreams() == null || onapComponentSpec.getStreams().getSubscribes() == null) {
return streamSubscribes;
}
@@ -141,7 +150,12 @@ public class StreamService {
Dmaap dmaap = (Dmaap) dmaapDataRouterResponse.get("dmaap");
dmaap.setType(subscribes.getType());
streamSubscribes.put(config, dmaap);
+ } else if (blueprintHelperService.isKafkaStreamType(subscribes.getType())) {
+ inputs.putAll(kafkaStreamsService.createStreamSubscribeInputs(subscribes.getConfig_key()));
+ streamSubscribes.putAll(kafkaStreamsService.createAppPropertiesSubscribe(subscribes.getConfig_key()));
}
+
+
}
return streamSubscribes;
}
diff --git a/mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/service/common/kafka/AafCredential.java b/mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/service/common/kafka/AafCredential.java
new file mode 100644
index 0000000..072a54c
--- /dev/null
+++ b/mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/service/common/kafka/AafCredential.java
@@ -0,0 +1,52 @@
+/*
+ *
+ * * ============LICENSE_START=======================================================
+ * * org.onap.dcae
+ * * ================================================================================
+ * * Copyright (c) 2021 Nokia 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.service.common.kafka;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonInclude.Include;
+import lombok.Data;
+import org.onap.blueprintgenerator.model.common.GetInput;
+
+/**
+ * @author : Tomasz Wrobel
+ * @date 01/18/2021 Application: DCAE/ONAP - Blueprint Generator
+ * Applications Common Model: A model class which represents AafCredential
+ */
+
+@Data
+@JsonInclude(value = Include.NON_NULL)
+public class AafCredential {
+
+ private GetInput username;
+
+ private GetInput password;
+
+ public AafCredential(String usernameInput, String passwordInput) {
+
+ this.username = new GetInput(usernameInput);
+
+ this.password = new GetInput(passwordInput);
+
+ }
+}
diff --git a/mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/service/common/kafka/KafkaCommonConstants.java b/mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/service/common/kafka/KafkaCommonConstants.java
new file mode 100644
index 0000000..0a040be
--- /dev/null
+++ b/mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/service/common/kafka/KafkaCommonConstants.java
@@ -0,0 +1,39 @@
+/*
+ *
+ * * ============LICENSE_START=======================================================
+ * * org.onap.dcae
+ * * ================================================================================
+ * * Copyright (c) 2021 Nokia 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.service.common.kafka;
+
+/**
+ * @author : Tomasz Wrobel
+ * @date 01/18/2021 Application: DCAE/ONAP - Blueprint Generator
+ * Class which contains Kafka Constants
+ */
+
+public class KafkaCommonConstants {
+
+ public static final String KAFKA_INFO_BOOTSTRAP_SERVERS_INPUT_NAME = "kafka_bootstrap_servers";
+
+ public static final String AFF_KAFKA_USER_INPUT_NAME = "kafka_username";
+ public static final String AAF_KAFKA_PASSWORD_INPUT_NAME = "kafka_password";
+
+}
diff --git a/mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/service/common/kafka/KafkaInfo.java b/mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/service/common/kafka/KafkaInfo.java
new file mode 100644
index 0000000..c03eaf0
--- /dev/null
+++ b/mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/service/common/kafka/KafkaInfo.java
@@ -0,0 +1,56 @@
+/*
+ *
+ * * ============LICENSE_START=======================================================
+ * * org.onap.dcae
+ * * ================================================================================
+ * * Copyright (c) 2021 Nokia 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.service.common.kafka;
+
+import static org.onap.blueprintgenerator.service.common.kafka.KafkaCommonConstants.KAFKA_INFO_BOOTSTRAP_SERVERS_INPUT_NAME;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonInclude.Include;
+import lombok.Data;
+import org.onap.blueprintgenerator.model.common.GetInput;
+
+
+/**
+ * @author : Tomasz Wrobel
+ * @date 01/18/2021 Application: DCAE/ONAP - Blueprint Generator
+ * Applications Common Model: A model class which represents Kafka Info
+ */
+
+@Data
+@JsonInclude(value = Include.NON_NULL)
+public class KafkaInfo {
+
+ private GetInput bootstrap_servers;
+
+ private GetInput topic_name;
+
+ public KafkaInfo(String topicName) {
+
+ this.bootstrap_servers = new GetInput(KAFKA_INFO_BOOTSTRAP_SERVERS_INPUT_NAME);
+
+ this.topic_name = new GetInput(topicName);
+
+ }
+
+}
diff --git a/mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/service/common/kafka/KafkaStream.java b/mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/service/common/kafka/KafkaStream.java
new file mode 100644
index 0000000..ca92f69
--- /dev/null
+++ b/mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/service/common/kafka/KafkaStream.java
@@ -0,0 +1,61 @@
+/*
+ *
+ * * ============LICENSE_START=======================================================
+ * * org.onap.dcae
+ * * ================================================================================
+ * * Copyright (c) 2021 Nokia 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.service.common.kafka;
+
+import static org.onap.blueprintgenerator.service.common.kafka.KafkaCommonConstants.AAF_KAFKA_PASSWORD_INPUT_NAME;
+import static org.onap.blueprintgenerator.service.common.kafka.KafkaCommonConstants.AFF_KAFKA_USER_INPUT_NAME;
+
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+import lombok.Data;
+import org.onap.blueprintgenerator.model.common.BaseStream;
+
+
+/**
+ * @author : Tomasz Wrobel
+ * @date 01/18/2021 Application: DCAE/ONAP - Blueprint Generator
+ * Applications Common Model: A model class which represents Kafka Stream
+ */
+
+@Data
+@JsonInclude(value = JsonInclude.Include.NON_NULL)
+@JsonIgnoreProperties(ignoreUnknown = true)
+public class KafkaStream implements BaseStream {
+
+ private final String type = "kafka";
+
+ @JsonProperty("aaf_credentials")
+ private AafCredential aafCredential;
+
+ @JsonProperty("kafka_info")
+ private KafkaInfo kafkaInfo;
+
+ public KafkaStream(String topicName) {
+ this.aafCredential = new AafCredential(AFF_KAFKA_USER_INPUT_NAME, AAF_KAFKA_PASSWORD_INPUT_NAME);
+ this.kafkaInfo = new KafkaInfo(topicName);
+ }
+}
diff --git a/mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/service/common/kafka/KafkaStreamService.java b/mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/service/common/kafka/KafkaStreamService.java
new file mode 100644
index 0000000..2090ef0
--- /dev/null
+++ b/mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/service/common/kafka/KafkaStreamService.java
@@ -0,0 +1,137 @@
+/*
+ *
+ * * ============LICENSE_START=======================================================
+ * * org.onap.dcae
+ * * ================================================================================
+ * * Copyright (c) 2021 Nokia 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.service.common.kafka;
+
+
+import static org.onap.blueprintgenerator.service.common.kafka.KafkaCommonConstants.AAF_KAFKA_PASSWORD_INPUT_NAME;
+import static org.onap.blueprintgenerator.service.common.kafka.KafkaCommonConstants.AFF_KAFKA_USER_INPUT_NAME;
+import static org.onap.blueprintgenerator.service.common.kafka.KafkaCommonConstants.KAFKA_INFO_BOOTSTRAP_SERVERS_INPUT_NAME;
+
+import java.util.LinkedHashMap;
+import java.util.Map;
+import org.onap.blueprintgenerator.service.base.BlueprintHelperService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+/**
+ * @author : Tomasz Wrobel
+ * @date 18/01/2021 Application: ONAP - Blueprint Generator Common ONAP Service used to create Kafka Stream application
+ * config object and Kafka Stream inputs
+ */
+@Service
+public class KafkaStreamService {
+
+ private static final String PUBLISH_URL_SUFFIX = "_publish_url";
+ private static final String SUBSCRIBE_URL_SUFFIX = "_subscribe_url";
+ private static final String DEFAULT_STREAM_URL = "sample_stream_url";
+ private static final String DEFAULT_BOOTSTRAP_SERVER = "message-router-kafka:9092";
+ private static final String DEFAULT_AAF_USER = "admin";
+ private static final String DEFAULT_AAF_PASSWORD = "admin_secret";
+
+ @Autowired
+ private BlueprintHelperService blueprintHelperService;
+
+
+ /**
+ * Creates publish stream inputs for given streamName
+ *
+ * @param streamName Stream name
+ * @return
+ */
+ public Map<String, LinkedHashMap<String, Object>> createStreamPublishInputs(String streamName) {
+ return createStreamInputs(streamName + PUBLISH_URL_SUFFIX);
+ }
+
+ /**
+ * Creates subscribe stream inputs for given streamName
+ *
+ * @param streamName Stream name
+ * @return
+ */
+ public Map<String, LinkedHashMap<String, Object>> createStreamSubscribeInputs(String streamName) {
+ return createStreamInputs(streamName + SUBSCRIBE_URL_SUFFIX);
+ }
+
+ /**
+ * Creates Application properties publish stream object for given streamName
+ *
+ * @param streamName Stream name
+ * @return
+ */
+ public Map<String, KafkaStream> createAppPropertiesPublish(String streamName) {
+
+ LinkedHashMap<String, KafkaStream> kafkaStreamMap = new LinkedHashMap<>();
+ KafkaStream kafkaStream = createAppProperties(streamName, PUBLISH_URL_SUFFIX);
+
+ kafkaStreamMap.put(streamName, kafkaStream);
+
+ return kafkaStreamMap;
+ }
+
+ /**
+ * Creates Application properties subscribe stream object for given streamName
+ *
+ * @param streamName Stream name
+ * @return
+ */
+ public Map<String, KafkaStream> createAppPropertiesSubscribe(String streamName) {
+
+ LinkedHashMap<String, KafkaStream> kafkaStreamMap = new LinkedHashMap<>();
+ KafkaStream kafkaStream = createAppProperties(streamName, SUBSCRIBE_URL_SUFFIX);
+
+ kafkaStreamMap.put(streamName, kafkaStream);
+
+ return kafkaStreamMap;
+ }
+
+ private KafkaStream createAppProperties(String streamName, String urlSuffix) {
+ String topicName = streamName + urlSuffix;
+
+ return new KafkaStream(topicName);
+ }
+
+ private Map<String, LinkedHashMap<String, Object>> createStreamInputs(String streamName) {
+ LinkedHashMap<String, LinkedHashMap<String, Object>> streamInputs = createBaseInputs();
+ LinkedHashMap<String, Object> stream =
+ blueprintHelperService.createStringInput(DEFAULT_STREAM_URL);
+ streamInputs.put(streamName, stream);
+ return streamInputs;
+ }
+
+ private LinkedHashMap<String, LinkedHashMap<String, Object>> createBaseInputs() {
+ LinkedHashMap<String, LinkedHashMap<String, Object>> baseInputs = new LinkedHashMap<>();
+
+ LinkedHashMap<String, Object> kafka_message_router = blueprintHelperService
+ .createStringInput(DEFAULT_BOOTSTRAP_SERVER);
+ baseInputs.put(KAFKA_INFO_BOOTSTRAP_SERVERS_INPUT_NAME, kafka_message_router);
+
+ LinkedHashMap<String, Object> kafka_username = blueprintHelperService.createStringInput(DEFAULT_AAF_USER);
+ baseInputs.put(AFF_KAFKA_USER_INPUT_NAME, kafka_username);
+
+ LinkedHashMap<String, Object> kafka_password = blueprintHelperService.createStringInput(DEFAULT_AAF_PASSWORD);
+ baseInputs.put(AAF_KAFKA_PASSWORD_INPUT_NAME, kafka_password);
+
+ return baseInputs;
+ }
+}