X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=holmes-actions%2Fsrc%2Fmain%2Fjava%2Forg%2Fopeno%2Fholmes%2Fcommon%2Futils%2FMSBRegisterUtil.java;h=0b3c81e88354a129bbeb12381d8655988f2a10ac;hb=8d0a91b90a280d1b3cf79742c209de76f0e3c72c;hp=826fbd037efce67734098b2078713e7a556264ba;hpb=d5cf1ebde715bd1ee802deded28afecb01c496b3;p=holmes%2Fcommon.git diff --git a/holmes-actions/src/main/java/org/openo/holmes/common/utils/MSBRegisterUtil.java b/holmes-actions/src/main/java/org/openo/holmes/common/utils/MSBRegisterUtil.java index 826fbd0..0b3c81e 100644 --- a/holmes-actions/src/main/java/org/openo/holmes/common/utils/MSBRegisterUtil.java +++ b/holmes-actions/src/main/java/org/openo/holmes/common/utils/MSBRegisterUtil.java @@ -21,11 +21,13 @@ import java.io.IOException; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.apache.http.HttpResponse; +import org.apache.http.client.methods.HttpGet; import org.apache.http.client.methods.HttpPost; import org.apache.http.client.methods.HttpRequestBase; import org.apache.http.entity.ByteArrayEntity; import org.apache.http.impl.client.CloseableHttpClient; import org.apache.http.impl.client.HttpClients; +import org.apache.http.util.EntityUtils; import org.jvnet.hk2.annotations.Service; import org.openo.holmes.common.api.entity.ServiceRegisterEntity; import org.openo.holmes.common.config.MicroServiceConfig; @@ -35,17 +37,45 @@ import org.openo.holmes.common.constant.AlarmConst; @Service public class MSBRegisterUtil { - public boolean register(ServiceRegisterEntity entity) throws IOException { + public void register(ServiceRegisterEntity entity) throws IOException { + log.info("start inventory micro service register"); + boolean flag = false; + int retry = 0; + while (!flag && retry < 20) { + log.info("holmes micro service register.retry:" + retry); + retry++; + flag = inner_register(entity); + if (!flag) { + log.warn("micro service register failed, sleep 30S and try again."); + threadSleep(30000); + } else { + log.info("micro service register success!"); + break; + } + } + log.info("holmes micro service register end."); + } + + private void setHeader(HttpRequestBase httpRequestBase) { + httpRequestBase.setHeader("Content-Type", "text/html;charset=UTF-8"); + httpRequestBase.setHeader("Accept", "application/json"); + httpRequestBase.setHeader("Content-Type", "application/json"); + } + + private boolean inner_register(ServiceRegisterEntity entity) { CloseableHttpClient httpClient = HttpClients.createDefault(); try { ObjectMapper mapper = new ObjectMapper(); String content = mapper.writeValueAsString(entity); - HttpPost httpPost = new HttpPost("http://" + MicroServiceConfig.getMsbServerAddr() - + ":8086/api/microservices/v1/services?createOrUpdate=false"); + HttpPost httpPost = new HttpPost( + MicroServiceConfig.getMsbServerAddr() + "/api/microservices/v1/services?createOrUpdate=true"); + HttpGet httpGet = new HttpGet( + MicroServiceConfig.getMsbServerAddr() + "/api/microservices/v1/services/"); if (StringUtils.isNotEmpty(content)) { httpPost.setEntity(new ByteArrayEntity(content.getBytes())); } this.setHeader(httpPost); + this.setHeader(httpGet); HttpResponse response; try { response = httpClient.execute(httpPost); @@ -53,8 +83,18 @@ public class MSBRegisterUtil { log.warn("Registering the service to the bus failure", e); return false; } + HttpResponse responseGet = null; + try { + responseGet = httpClient.execute(httpPost); + log.info("all service:" + EntityUtils.toString(responseGet.getEntity())); + } catch (Exception e) { + if (responseGet != null) { + log.info(responseGet.getStatusLine().getReasonPhrase()); + } + log.warn("query all service failure", e); + } if (response.getStatusLine().getStatusCode() == AlarmConst.MICRO_SERVICE_STATUS_SUCCESS) { - log.info("Registration successful service to the bus :" + response.getEntity()); + log.info("Registration successful service to the bus :" + EntityUtils.toString(response.getEntity())); return true; } else { log.warn( @@ -62,14 +102,25 @@ public class MSBRegisterUtil { response.getStatusLine().getReasonPhrase()); return false; } + } catch (IOException e) { + log.warn("ServiceRegisterEntity:" + entity + " parse failed", e); } finally { - httpClient.close(); + try { + httpClient.close(); + } catch (IOException e) { + log.warn("At the time of registering service httpclient close failure", e); + } } + return false; } - private void setHeader(HttpRequestBase httpRequestBase) { - httpRequestBase.setHeader("Content-Type", "text/html;charset=UTF-8"); - httpRequestBase.setHeader("Accept", "application/json"); - httpRequestBase.setHeader("Content-Type", "application/json"); + private void threadSleep(int second) { + log.info("start sleep ...."); + try { + Thread.sleep(second); + } catch (InterruptedException error) { + log.error("thread sleep error.errorMsg:" + error.getMessage()); + } + log.info("sleep end ."); } } \ No newline at end of file