diff options
author | Quoc Nghia Nguyen <quocnghia.nguyen@orange.com> | 2018-05-16 17:19:55 +0200 |
---|---|---|
committer | Quoc-Nghia Nguyen <quocnghia.nguyen@orange.com> | 2018-07-11 17:00:52 +0200 |
commit | d44d6c6ea00241f586ee7fb3b173821d98decbab (patch) | |
tree | 813bffa66526f6ee67bba506bcf6f035b7d45127 /src/main/java/org/onap | |
parent | eab71985d99a7eaf2003ac97245fef2c9bc1ad87 (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/onap')
-rw-r--r-- | src/main/java/org/onap/nbi/ServiceRegisterRunner.java | 114 |
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()); + } +} |