From d44d6c6ea00241f586ee7fb3b173821d98decbab Mon Sep 17 00:00:00 2001 From: Quoc Nghia Nguyen Date: Wed, 16 May 2018 17:19:55 +0200 Subject: Register with MSB after being launched Change-Id: I96c84f8b8e0757d68461a0e631d6ed432f64ecad Issue-ID: EXTAPI-90 Signed-off-by: Quoc-Nghia Nguyen --- .../java/org/onap/nbi/ServiceRegisterRunner.java | 114 +++++++++++++++++++++ 1 file changed, 114 insertions(+) create mode 100644 src/main/java/org/onap/nbi/ServiceRegisterRunner.java (limited to 'src/main/java') 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 + *

+ * 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. + */ +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 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()); + } +} -- cgit 1.2.3-korg