summaryrefslogtreecommitdiffstats
path: root/src/main/java/org
diff options
context:
space:
mode:
authorQuoc Nghia Nguyen <quocnghia.nguyen@orange.com>2018-05-16 17:19:55 +0200
committerQuoc-Nghia Nguyen <quocnghia.nguyen@orange.com>2018-07-11 17:00:52 +0200
commitd44d6c6ea00241f586ee7fb3b173821d98decbab (patch)
tree813bffa66526f6ee67bba506bcf6f035b7d45127 /src/main/java/org
parenteab71985d99a7eaf2003ac97245fef2c9bc1ad87 (diff)
Register with MSB after being launched
Change-Id: I96c84f8b8e0757d68461a0e631d6ed432f64ecad Issue-ID: EXTAPI-90 Signed-off-by: Quoc-Nghia Nguyen <quocnghia.nguyen@orange.com>
Diffstat (limited to 'src/main/java/org')
-rw-r--r--src/main/java/org/onap/nbi/ServiceRegisterRunner.java114
1 files changed, 114 insertions, 0 deletions
diff --git a/src/main/java/org/onap/nbi/ServiceRegisterRunner.java b/src/main/java/org/onap/nbi/ServiceRegisterRunner.java
new file mode 100644
index 0000000..e8cca00
--- /dev/null
+++ b/src/main/java/org/onap/nbi/ServiceRegisterRunner.java
@@ -0,0 +1,114 @@
+/**
+ * Copyright (c) 2018 Orange
+ * <p>
+ * 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
+ * <p>
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * <p>
+ * 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.
+ */
+package org.onap.nbi;
+
+import com.google.common.base.Strings;
+import org.onap.msb.sdk.discovery.entity.MicroServiceFullInfo;
+import org.onap.msb.sdk.discovery.entity.MicroServiceInfo;
+import org.onap.msb.sdk.discovery.entity.Node;
+import org.onap.msb.sdk.httpclient.msb.MSBServiceClient;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.boot.CommandLineRunner;
+import org.springframework.stereotype.Component;
+
+import java.net.InetAddress;
+import java.util.HashSet;
+import java.util.Set;
+
+/**
+ * Register this NBI instance with MSB discovery when the app is fully started
+ */
+@Component
+public class ServiceRegisterRunner implements CommandLineRunner {
+ private static final Logger logger = LoggerFactory.getLogger(ServiceRegisterRunner.class);
+
+ @Value("${msb.discovery.host}")
+ private String DISCOVERY_HOST;
+
+ @Value("${msb.discovery.port}")
+ private int DISCOVERY_PORT;
+
+ @Value("${msb.service.host}")
+ private String SERVICE_HOST;
+
+ @Value("${msb.service.port}")
+ private String SERVICE_PORT;
+
+ @Value("${msb.service.name}")
+ private String SERVICE_NAME;
+
+ @Value("${msb.service.version}")
+ private String SERVICE_VERSION;
+
+ @Value("${msb.service.url}")
+ private String SERVICE_URL;
+
+ @Value("${msb.service.custom_path}")
+ private String SERVICE_CUSTOM_PATH;
+
+ @Value("${msb.service.protocol}")
+ private String SERVICE_PROTOCOL;
+
+ @Value("${msb.service.visual_range}")
+ private String SERVICE_VISUAL_RANGE;
+
+ @Value("${msb.service.enable_ssl}")
+ private boolean SERVICE_ENABLE_SSL;
+
+ @Override
+ public void run(String... strings) throws Exception {
+ MicroServiceInfo msinfo = new MicroServiceInfo();
+ msinfo.setServiceName(SERVICE_NAME);
+ msinfo.setVersion(SERVICE_VERSION);
+ msinfo.setUrl(SERVICE_URL);
+ msinfo.setProtocol(SERVICE_PROTOCOL);
+ msinfo.setVisualRange(SERVICE_VISUAL_RANGE);
+ msinfo.setEnable_ssl(SERVICE_ENABLE_SSL);
+
+ if (!Strings.isNullOrEmpty(SERVICE_CUSTOM_PATH)) {
+ msinfo.setPath(SERVICE_CUSTOM_PATH);
+ }
+
+ Set<Node> nodes = new HashSet<>();
+ Node thisNode = new Node();
+ thisNode.setIp(Strings.isNullOrEmpty(SERVICE_HOST) ? InetAddress.getLocalHost().getHostAddress() : SERVICE_HOST);
+ thisNode.setPort(SERVICE_PORT);
+ thisNode.setCheckType("HTTP");
+ thisNode.setCheckUrl(SERVICE_URL + "/status");
+ nodes.add(thisNode);
+ msinfo.setNodes(nodes);
+
+ logger.info(
+ "Register this service with msb discovery (" + DISCOVERY_HOST + ":" + DISCOVERY_PORT + "):\n"
+ + " - host: [" + thisNode.getIp() + "]\n"
+ + " - port: [" + thisNode.getPort() + "]\n"
+ + " - name: [" + msinfo.getServiceName() + "]\n"
+ + " - version: [" + msinfo.getVersion() + "]\n"
+ + " - url: [" + msinfo.getUrl() + "]\n"
+ + " - path: [" + msinfo.getPath() + "]\n"
+ + " - protocol: [" + msinfo.getProtocol() + "]\n"
+ + " - visualRange: [" + msinfo.getVisualRange() + "]\n"
+ + " - enableSSL: [" + SERVICE_ENABLE_SSL + "]\n"
+ );
+
+ MSBServiceClient msbClient = new MSBServiceClient(DISCOVERY_HOST, DISCOVERY_PORT);
+ MicroServiceFullInfo microServiceFullInfo = msbClient.registerMicroServiceInfo(msinfo);
+
+ logger.debug("microServiceFullInfo = {}", microServiceFullInfo.toString());
+ }
+}