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=8b3841900f9b107fd510406f18bf7c190751abd3;hb=e881c690d8b10c7940044d10e6cded4e86398beb;hp=ee77be3658a6df9f0303a1156467d76574c8a2f3;hpb=856f8ea7b4ef68bc730218bafb357880df56e0b8;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 ee77be3..8b38419 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 @@ -22,9 +22,11 @@ import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.apache.http.HttpResponse; 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; @@ -34,16 +36,42 @@ 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("inventory 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/openoapi/microservices/v1/services?createOrUpdate=false"); + HttpPost httpPost = new HttpPost( + MicroServiceConfig.getMsbServerAddr() + "/api/microservices/v1/services?createOrUpdate=false"); if (StringUtils.isNotEmpty(content)) { httpPost.setEntity(new ByteArrayEntity(content.getBytes())); } + this.setHeader(httpPost); HttpResponse response; try { response = httpClient.execute(httpPost); @@ -51,16 +79,34 @@ public class MSBRegisterUtil { log.warn("Registering the service to the bus failure", e); return false; } - if (response.getStatusLine().getStatusCode() == AlarmConst.RESPONSE_STATUS_OK) { - log.info("Registration successful service to the bus :" + response.getEntity()); + if (response.getStatusLine().getStatusCode() == AlarmConst.MICRO_SERVICE_STATUS_SUCCESS) { + log.info("Registration successful service to the bus :" + EntityUtils.toString(response.getEntity())); return true; } else { - log.warn("Registering the service to the bus failure:"+response.getStatusLine().getStatusCode()+" "+ - response.getStatusLine().getReasonPhrase()+response.getStatusLine().getProtocolVersion()); + log.warn( + "Registering the service to the bus failure:" + response.getStatusLine().getStatusCode() + " " + + 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 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