X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=holmes-actions%2Fsrc%2Fmain%2Fjava%2Forg%2Fonap%2Fholmes%2Fcommon%2Futils%2FMSBRegisterUtil.java;h=8052f783b24797ed1cec7caf14182b910f73d510;hb=892ee11e90a7ad564a8dae5d744287db3bf3ba04;hp=1bb3fe3afed54b2bdaff57e38e412bdbe7f8971f;hpb=23d05bd2fc5e6b97ed54e50a0bafb0e9dc4ab406;p=holmes%2Fcommon.git diff --git a/holmes-actions/src/main/java/org/onap/holmes/common/utils/MSBRegisterUtil.java b/holmes-actions/src/main/java/org/onap/holmes/common/utils/MSBRegisterUtil.java index 1bb3fe3..8052f78 100644 --- a/holmes-actions/src/main/java/org/onap/holmes/common/utils/MSBRegisterUtil.java +++ b/holmes-actions/src/main/java/org/onap/holmes/common/utils/MSBRegisterUtil.java @@ -16,35 +16,42 @@ package org.onap.holmes.common.utils; +import static jdk.nashorn.internal.runtime.regexp.joni.Config.log; + import com.eclipsesource.jaxrs.consumer.ConsumerFactory; import java.io.IOException; import lombok.extern.slf4j.Slf4j; import org.jvnet.hk2.annotations.Service; -import org.onap.holmes.common.msb.MicroserviceBusRest; import org.onap.holmes.common.api.entity.ServiceRegisterEntity; import org.onap.holmes.common.config.MicroServiceConfig; +import org.onap.holmes.common.exception.CorrelationException; +import org.onap.holmes.common.msb.MicroserviceBusRest; +import org.onap.msb.sdk.discovery.common.RouteException; +import org.onap.msb.sdk.discovery.entity.MicroServiceFullInfo; +import org.onap.msb.sdk.discovery.entity.MicroServiceInfo; +import org.onap.msb.sdk.httpclient.msb.MSBServiceClient; @Slf4j @Service public class MSBRegisterUtil { public void register(ServiceRegisterEntity entity) throws IOException { - log.info("start holmes micro service register"); + log.info("Start register Holmes Service to MSB..."); boolean flag = false; int retry = 0; while (!flag && retry < 20) { - log.info("Holmes microservice register. retry:" + retry); + log.info("Holmes Service Registration. Retry: " + retry); retry++; flag = innerRegister(entity); if (!flag) { - log.warn("micro service register failed, sleep 30S and try again."); + log.warn("Failed to register the service to MSB. Sleep 30s and try again."); threadSleep(30000); } else { - log.info("micro service register success!"); + log.info("Registration succeeded!"); break; } } - log.info("holmes micro service register end."); + log.info("Service registration completed."); } private boolean innerRegister(ServiceRegisterEntity entity) { @@ -55,20 +62,52 @@ public class MSBRegisterUtil { MicroServiceConfig.getMsbServerAddr(), MicroserviceBusRest.class); resourceserviceproxy.registerServce("false", entity); } catch (Exception error) { - log.error("microservice register failed!" + error.getMessage(), error); + log.error("Micro-service registration failed!" + error.getMessage(), error); return false; } return true; } + public void register2Msb(MicroServiceInfo msinfo) throws CorrelationException { + MSBServiceClient msbClient = new MSBServiceClient(MicroServiceConfig.getMsbServerIp(), + MicroServiceConfig.getMsbServerPort()); + + log.info("Start register Holmes Service to MSB..."); + MicroServiceFullInfo microServiceFullInfo = null; + int retry = 0; + while (null == microServiceFullInfo && retry < 20) { + log.info("Holmes Service Registration. Retry: " + retry); + retry++; + try { + microServiceFullInfo = msbClient.registerMicroServiceInfo(msinfo, false); + } catch (RouteException e) { + + } + + if (null == microServiceFullInfo) { + log.warn("Failed to register the service to MSB. Sleep 30s and try again."); + threadSleep(30000); + } else { + log.info("Registration succeeded!"); + break; + } + } + + if (null == microServiceFullInfo) { + throw new CorrelationException("Failed to register the service to MSB!"); + } + + log.info("Service registration completed."); + } + private void threadSleep(int second) { - log.info("start sleep ...."); + log.info("Start sleeping..."); try { Thread.sleep(second); } catch (InterruptedException error) { - log.error("thread sleep error.errorMsg:" + error.getMessage(), error); + log.error("thread sleep error message:" + error.getMessage(), error); Thread.currentThread().interrupt(); } - log.info("sleep end ."); + log.info("Wake up."); } } \ No newline at end of file