summaryrefslogtreecommitdiffstats
path: root/dcae-analytics/dcae-analytics-model
diff options
context:
space:
mode:
authorlukai <lukai@chinamobile.com>2019-12-27 10:02:14 +0800
committerLUKAI <lukai@chinamobile.com>2020-01-08 02:50:27 +0000
commit22400a9e86aba3aece2ad21dc6f74fa1a14aab42 (patch)
tree1e0c333b382a0badc4dd098c5cae2a81cc784423 /dcae-analytics/dcae-analytics-model
parenteac44564ef6a4ca8e7fb9ad05eb76e49f6cf7a7a (diff)
add periodic fetch configuration
Issue-ID: DCAEGEN2-2007 Signed-off-by: Kai Lu <lukai@chinamobile.com> Change-Id: Iab1c329534e37323eb7d0f1227b2d5c16e1cb50c
Diffstat (limited to 'dcae-analytics/dcae-analytics-model')
-rw-r--r--dcae-analytics/dcae-analytics-model/pom.xml52
-rw-r--r--dcae-analytics/dcae-analytics-model/src/main/java/org/onap/dcae/analytics/model/configbindingservice/ConfigBindingServiceConstants.java4
-rw-r--r--dcae-analytics/dcae-analytics-model/src/main/java/org/onap/dcae/analytics/model/util/supplier/ConfigBindingServiceJsonSupplier.java128
3 files changed, 51 insertions, 133 deletions
diff --git a/dcae-analytics/dcae-analytics-model/pom.xml b/dcae-analytics/dcae-analytics-model/pom.xml
index b16958a..337dcb4 100644
--- a/dcae-analytics/dcae-analytics-model/pom.xml
+++ b/dcae-analytics/dcae-analytics-model/pom.xml
@@ -38,9 +38,11 @@
<name>DCAE Analytics Model</name>
<description>Contains models (e.g. Common Event Format) which are common to DCAE Analytics</description>
- <properties>
- <main.basedir>${project.parent.basedir}</main.basedir>
- </properties>
+ <properties>
+ <main.basedir>${project.parent.basedir}</main.basedir>
+ <sdk.version>1.1.6</sdk.version>
+ <immutable.version>2.7.1</immutable.version>
+ </properties>
<dependencies>
@@ -75,6 +77,48 @@
<artifactId>dcae-analytics-test</artifactId>
</dependency>
- </dependencies>
+ <dependency>
+ <groupId>org.onap.dcaegen2.services.sdk.rest.services</groupId>
+ <artifactId>cbs-client</artifactId>
+ <version>${sdk.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.onap.dcaegen2.services.sdk.rest.services</groupId>
+ <artifactId>dmaap-client</artifactId>
+ <version>${sdk.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.onap.dcaegen2.services.sdk.rest.services</groupId>
+ <artifactId>common-dependency</artifactId>
+ <version>${sdk.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.springframework</groupId>
+ <artifactId>spring-beans</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.springframework</groupId>
+ <artifactId>spring-context</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.springframework</groupId>
+ <artifactId>spring-webflux</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.springframework.boot</groupId>
+ <artifactId>spring-boot-autoconfigure</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>javax.validation</groupId>
+ <artifactId>validation-api</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.immutables</groupId>
+ <artifactId>value</artifactId>
+ <version>${immutable.version}</version>
+ <scope>provided</scope>
+ </dependency>
+
+ </dependencies>
</project>
diff --git a/dcae-analytics/dcae-analytics-model/src/main/java/org/onap/dcae/analytics/model/configbindingservice/ConfigBindingServiceConstants.java b/dcae-analytics/dcae-analytics-model/src/main/java/org/onap/dcae/analytics/model/configbindingservice/ConfigBindingServiceConstants.java
index 786765f..9776d70 100644
--- a/dcae-analytics/dcae-analytics-model/src/main/java/org/onap/dcae/analytics/model/configbindingservice/ConfigBindingServiceConstants.java
+++ b/dcae-analytics/dcae-analytics-model/src/main/java/org/onap/dcae/analytics/model/configbindingservice/ConfigBindingServiceConstants.java
@@ -34,6 +34,7 @@ public abstract class ConfigBindingServiceConstants {
// ================== CONFIG SERVICE CONSTANTS ============================== //
public static final String CONSUL_HOST_ENV_VARIABLE_KEY = "CONSUL_HOST";
+ public static final Integer DEFAULT_CONSUL_PORT_ENV_VARIABLE_VALUE = 8500;
public static final String CONSUL_HOST_ENV_VARIABLE_VALUE = System.getenv(CONSUL_HOST_ENV_VARIABLE_KEY);
public static final String CONFIG_BINDING_SERVICE_ENV_VARIABLE_KEY = "CONFIG_BINDING_SERVICE";
public static final String CONFIG_BINDING_SERVICE_ENV_VARIABLE_VALUE =
@@ -47,12 +48,13 @@ public abstract class ConfigBindingServiceConstants {
public static final String CONFIG_BINDING_SERVICE_PROPERTIES_KEY = "config-binding-service";
-
public static final Set<String> SPRING_RESERVED_PROPERTIES_KEY_PREFIXES =
Stream.of("spring", "endpoints", "server", "logging", "management").collect(Collectors.toSet());
public static final String CONFIG_SERVICE_MESSAGE_ROUTER_VALUE = "message_router";
// CONVERT JSON TO MAP
public static final String KEY_SEPARATOR = ".";
+ public static final String CONFIG = "config";
+ public static final int CONFIG_SERVICE_REFRESHPERIOD = 1;
// ============== CONFIG BINDING SERVICE UTILS ========================= //
/**
diff --git a/dcae-analytics/dcae-analytics-model/src/main/java/org/onap/dcae/analytics/model/util/supplier/ConfigBindingServiceJsonSupplier.java b/dcae-analytics/dcae-analytics-model/src/main/java/org/onap/dcae/analytics/model/util/supplier/ConfigBindingServiceJsonSupplier.java
deleted file mode 100644
index b882bb0..0000000
--- a/dcae-analytics/dcae-analytics-model/src/main/java/org/onap/dcae/analytics/model/util/supplier/ConfigBindingServiceJsonSupplier.java
+++ /dev/null
@@ -1,128 +0,0 @@
-/*
- * ================================================================================
- * Copyright (c) 2018 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.dcae.analytics.model.util.supplier;
-
-
-import java.util.List;
-import java.util.Optional;
-import java.util.function.Function;
-import java.util.function.Supplier;
-
-import org.onap.dcae.analytics.model.configbindingservice.ConfigBindingServiceConstants;
-import org.onap.dcae.analytics.model.configbindingservice.ConsulConfigBindingServiceQueryResponse;
-import org.onap.dcae.analytics.model.util.function.StringToURLFunction;
-import org.onap.dcae.analytics.model.util.function.URLToHttpGetFunction;
-import org.onap.dcae.analytics.model.util.json.AnalyticsModelJsonConversion;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * A Function which fetches ApplicationProperties configuration from
- * Config Binding Service when deployed via docker, typically during application startup time.
- *
- * @author Rajiv Singla
- */
-public class ConfigBindingServiceJsonSupplier implements Supplier<Optional<String>> {
-
- private static final Logger logger = LoggerFactory.getLogger(ConfigBindingServiceJsonSupplier.class);
-
- private final Function<String, Optional<String>> fetchUrlContentFunction;
-
- public ConfigBindingServiceJsonSupplier(final Function<String, Optional<String>> fetchUrlContentFunction) {
- this.fetchUrlContentFunction = fetchUrlContentFunction;
- }
-
- public ConfigBindingServiceJsonSupplier() {
- fetchUrlContentFunction = (String s) -> new StringToURLFunction().apply(s).flatMap(new URLToHttpGetFunction());
- }
-
- @Override
- public Optional<String> get() {
-
- logger.info("Consul Host Environment Variable: {}",
- ConfigBindingServiceConstants.CONSUL_HOST_ENV_VARIABLE_VALUE);
- logger.info("Config Binding Service Environment Variable: {}",
- ConfigBindingServiceConstants.CONFIG_BINDING_SERVICE_ENV_VARIABLE_VALUE);
- logger.info("Service Name Environment Variable: {}",
- ConfigBindingServiceConstants.SERVICE_NAME_ENV_VARIABLE_VALUE);
-
- if (ConfigBindingServiceConstants.CONSUL_HOST_ENV_VARIABLE_VALUE == null ||
- ConfigBindingServiceConstants.CONFIG_BINDING_SERVICE_ENV_VARIABLE_VALUE == null ||
- ConfigBindingServiceConstants.SERVICE_NAME_ENV_VARIABLE_VALUE == null) {
- logger.error("Environment variables required to query Config Binding Service are not present");
- return Optional.empty();
- }
-
- return Optional.of(ConfigBindingServiceConstants.CONSUL_QUERY_URL_STRING)
- // Step 1: Query CONSUL to get the IP/PORT of CONFIG BINDING SERVICE
- .flatMap(fetchUrlContentFunction)
- // Step 2: Fetch the generated configurations from CONFIG BINDING SERVICE
- .flatMap(ConfigBindingServiceJsonSupplier::parseConsulConfigBindingServiceQueryResponseJson)
- // Step 3: create url from service address and service port
- .flatMap(ConfigBindingServiceJsonSupplier::createConfigServiceURL)
- // Step 4: Fetch final config binding service generated application configuration json string
- .flatMap(fetchUrlContentFunction);
- }
-
- /**
- * Creates URL using config binding service ip address and port
- *
- * @param consulConfigBindingServiceQueryResponse consul config binding service query response containing config
- * binding service address and service port
- *
- * @return config service url to fetch service configuration
- */
- private static Optional<String> createConfigServiceURL(final ConsulConfigBindingServiceQueryResponse
- consulConfigBindingServiceQueryResponse) {
- final String configBindingServiceAddress = consulConfigBindingServiceQueryResponse.getServiceAddress();
- final Integer configServicePort = consulConfigBindingServiceQueryResponse.getServicePort();
-
- if (configBindingServiceAddress == null && configServicePort == null) {
- logger.error("Config Binding Service Address & Port are not present.");
- return Optional.empty();
- }
-
- return Optional.of(String.format(ConfigBindingServiceConstants.CONFIG_SERVICE_QUERY_URL_STRING,
- configBindingServiceAddress, configServicePort,
- ConfigBindingServiceConstants.SERVICE_NAME_ENV_VARIABLE_VALUE));
-
- }
-
- private static Optional<ConsulConfigBindingServiceQueryResponse>
- parseConsulConfigBindingServiceQueryResponseJson(final String configBindingServiceQueryResponseJson) {
- // parse json
- final Optional<List<ConsulConfigBindingServiceQueryResponse>> configBindingServiceQueryResponseOptional =
- AnalyticsModelJsonConversion.CONFIG_BINDING_SERVICE_LIST_JSON_FUNCTION
- .apply(configBindingServiceQueryResponseJson);
-
- // check parsing is successful and at least 1 config binding query response is present
- if (!configBindingServiceQueryResponseOptional.isPresent() ||
- configBindingServiceQueryResponseOptional.get().isEmpty()) {
- logger.error("No Consul config binding service information found in JSON: {} ",
- configBindingServiceQueryResponseJson);
- return Optional.empty();
- }
-
- // return first consul query response
- return Optional.of(configBindingServiceQueryResponseOptional.get().get(0));
- }
-
-
-}