Add msb register code
author6092002067 <wu.youbo@zte.com.cn>
Wed, 8 Mar 2017 09:44:56 +0000 (17:44 +0800)
committer6092002067 <wu.youbo@zte.com.cn>
Thu, 9 Mar 2017 02:40:20 +0000 (10:40 +0800)
Issue-ID:HOLMES-50

Change-Id: I854c07b552dddba14b317b41b16d6e198b23e32d
Signed-off-by: youbowu <wu.youbo@zte.com.cn>
rulemgt/src/main/java/org/openo/holmes/rulemgt/RuleAppConfig.java
rulemgt/src/main/java/org/openo/holmes/rulemgt/bolt/enginebolt/EngineService.java
rulemgt/src/main/java/org/openo/holmes/rulemgt/resources/RuleMgtResources.java
rulemgt/src/test/java/org/openo/holmes/rulemgt/RuleAppConfigTest.java
rulemgt/src/test/java/org/openo/holmes/rulemgt/bolt/enginebolt/EngineServiceTest.java
rulemgt/src/test/java/org/openo/holmes/rulemgt/bolt/enginebolt/EngineWrapperTest.java

index 57ae0c5..4fcb486 100644 (file)
@@ -32,9 +32,6 @@ public class RuleAppConfig extends Configuration {
     @NotEmpty
     private String apidescription = "Holmes rule management rest API";
 
-    @NotEmpty
-    private String msbServerAddr;
-
     @Valid
     @NotNull
     private DataSourceFactory database = new DataSourceFactory();
@@ -58,13 +55,4 @@ public class RuleAppConfig extends Configuration {
         this.apidescription = apidescription;
     }
 
-    @JsonProperty
-    public String getMsbServerAddr() {
-        return msbServerAddr;
-    }
-
-    @JsonProperty
-    public void setMsbServerAddr(String msbServerAddr) {
-        this.msbServerAddr = msbServerAddr;
-    }
 }
index b96303a..1a1aa83 100644 (file)
@@ -19,7 +19,6 @@ import com.fasterxml.jackson.databind.ObjectMapper;
 import java.io.ByteArrayOutputStream;\r
 import java.io.IOException;\r
 import java.io.UnsupportedEncodingException;\r
-import javax.inject.Inject;\r
 import org.apache.commons.lang3.StringUtils;\r
 import org.apache.http.HttpEntity;\r
 import org.apache.http.HttpResponse;\r
@@ -32,9 +31,9 @@ import org.apache.http.entity.ByteArrayEntity;
 import org.apache.http.impl.client.CloseableHttpClient;\r
 import org.apache.http.impl.client.HttpClients;\r
 import org.jvnet.hk2.annotations.Service;\r
+import org.openo.holmes.common.config.MicroServiceConfig;\r
 import org.openo.holmes.common.exception.CorrelationException;\r
 import org.openo.holmes.common.utils.I18nProxy;\r
-import org.openo.holmes.rulemgt.RuleAppConfig;\r
 import org.openo.holmes.rulemgt.bean.request.CorrelationCheckRule4Engine;\r
 import org.openo.holmes.rulemgt.bean.request.CorrelationDeployRule4Engine;\r
 import org.openo.holmes.rulemgt.constant.RuleMgtConstant;\r
@@ -42,24 +41,21 @@ import org.openo.holmes.rulemgt.constant.RuleMgtConstant;
 @Service\r
 public class EngineService {\r
 \r
-    @Inject\r
-    private RuleAppConfig ruleAppConfig;\r
-\r
     protected HttpResponse delete(String packageName) throws IOException {\r
-        return deleteRequest(ruleAppConfig.getMsbServerAddr() + RuleMgtConstant.ENGINE_PATH + "/" + packageName);\r
+        return deleteRequest(MicroServiceConfig.getMsbServerAddr() + RuleMgtConstant.ENGINE_PATH + "/" + packageName);\r
     }\r
 \r
     protected HttpResponse check(CorrelationCheckRule4Engine correlationCheckRule4Engine)\r
             throws IOException {\r
         ObjectMapper mapper = new ObjectMapper();\r
         String content = mapper.writeValueAsString(correlationCheckRule4Engine);\r
-        return postRequest(ruleAppConfig.getMsbServerAddr() + RuleMgtConstant.ENGINE_PATH, content);\r
+        return postRequest(MicroServiceConfig.getMsbServerAddr() + RuleMgtConstant.ENGINE_PATH, content);\r
     }\r
 \r
     protected HttpResponse deploy(CorrelationDeployRule4Engine correlationDeployRule4Engine) throws IOException {\r
         ObjectMapper mapper = new ObjectMapper();\r
         String content = mapper.writeValueAsString(correlationDeployRule4Engine);\r
-        return putRequest(ruleAppConfig.getMsbServerAddr() + RuleMgtConstant.ENGINE_PATH, content);\r
+        return putRequest(MicroServiceConfig.getMsbServerAddr() + RuleMgtConstant.ENGINE_PATH, content);\r
     }\r
 \r
     private HttpResponse postRequest(String url, String content) throws IOException {\r
index 682faf0..08d66f7 100644 (file)
@@ -22,6 +22,7 @@ import io.swagger.annotations.ApiParam;
 import io.swagger.annotations.SwaggerDefinition;\r
 import java.io.IOException;\r
 import java.util.Locale;\r
+import javax.annotation.PostConstruct;\r
 import javax.inject.Inject;\r
 import javax.servlet.http.HttpServletRequest;\r
 import javax.ws.rs.DELETE;\r
@@ -36,11 +37,14 @@ import javax.ws.rs.core.MediaType;
 import lombok.extern.slf4j.Slf4j;\r
 import net.sf.json.JSONObject;\r
 import org.jvnet.hk2.annotations.Service;\r
+import org.openo.holmes.common.api.entity.ServiceRegisterEntity;\r
+import org.openo.holmes.common.config.MicroServiceConfig;\r
 import org.openo.holmes.common.exception.CorrelationException;\r
 import org.openo.holmes.common.utils.ExceptionUtil;\r
 import org.openo.holmes.common.utils.I18nProxy;\r
 import org.openo.holmes.common.utils.JacksonUtil;\r
 import org.openo.holmes.common.utils.LanguageUtil;\r
+import org.openo.holmes.common.utils.MSBRegisterUtil;\r
 import org.openo.holmes.common.utils.UserUtil;\r
 import org.openo.holmes.rulemgt.bean.request.RuleCreateRequest;\r
 import org.openo.holmes.rulemgt.bean.request.RuleDeleteRequest;\r
@@ -59,9 +63,20 @@ import org.openo.holmes.rulemgt.wrapper.RuleMgtWrapper;
 @Slf4j\r
 public class RuleMgtResources {\r
 \r
+    @Inject\r
+    private MSBRegisterUtil msbRegisterUtil;\r
     @Inject\r
     private RuleMgtWrapper ruleMgtWrapper;\r
 \r
+    @PostConstruct\r
+    public void init() {\r
+        try {\r
+            msbRegisterUtil.register(initServiceEntity());\r
+        } catch (IOException e) {\r
+            log.warn("Micro service registry httpclient close failure",e);\r
+        }\r
+    }\r
+\r
     @PUT\r
     @Produces(MediaType.APPLICATION_JSON)\r
     @ApiOperation(value = "Save the alarm+ rule to the database, and deployed to the engine when the enable to open.", response = RuleAddAndUpdateResponse.class)\r
@@ -161,4 +176,15 @@ public class RuleMgtResources {
                     I18nProxy.RULE_MANAGEMENT_DATA_FORMAT_ERROR));\r
         }\r
     }\r
+\r
+    private ServiceRegisterEntity initServiceEntity() {\r
+        ServiceRegisterEntity serviceRegisterEntity = new ServiceRegisterEntity();\r
+        serviceRegisterEntity.setServiceName("holmes");\r
+        serviceRegisterEntity.setProtocol("REST");\r
+        serviceRegisterEntity.setVersion("v1");\r
+        serviceRegisterEntity.setUrl("/api/holmes/v1");\r
+        serviceRegisterEntity.setSingleNode(MicroServiceConfig.getServiceIp(), "9101", 0);\r
+        serviceRegisterEntity.setVisualRange("1");\r
+        return serviceRegisterEntity;\r
+    }\r
 }\r
index e451410..d14e55e 100644 (file)
@@ -56,11 +56,4 @@ public class RuleAppConfigTest {
         ruleAppConfig.setApidescription(value);\r
         assertThat(ruleAppConfig.getApidescription(), equalTo(value));\r
     }\r
-\r
-    @Test\r
-    public void getterAndSetter4MsbServerAddr() throws Exception {\r
-        final String value = "msbServerAddr";\r
-        ruleAppConfig.setMsbServerAddr(value);\r
-        assertThat(ruleAppConfig.getMsbServerAddr(), equalTo(value));\r
-    }\r
 }
\ No newline at end of file
index 596a408..3b1c9bd 100644 (file)
@@ -19,18 +19,22 @@ package org.openo.holmes.rulemgt.bolt.enginebolt;
 \r
 \r
 import org.apache.http.HttpResponse;\r
+import org.apache.http.client.methods.CloseableHttpResponse;\r
+import org.apache.http.client.methods.HttpPut;\r
+import org.apache.http.impl.client.CloseableHttpClient;\r
+import org.apache.http.impl.client.HttpClients;\r
 import org.easymock.EasyMock;\r
 import org.junit.Before;\r
 import org.junit.Rule;\r
 import org.junit.Test;\r
 import org.junit.rules.ExpectedException;\r
-import org.openo.holmes.rulemgt.RuleAppConfig;\r
 import org.openo.holmes.rulemgt.bean.request.CorrelationCheckRule4Engine;\r
 import org.openo.holmes.rulemgt.bean.request.CorrelationDeployRule4Engine;\r
 import org.powermock.api.easymock.PowerMock;\r
+import org.powermock.core.classloader.annotations.PrepareForTest;\r
 import org.powermock.modules.junit4.rule.PowerMockRule;\r
-import org.powermock.reflect.Whitebox;\r
 \r
+@PrepareForTest({HttpClients.class, CloseableHttpClient.class})\r
 public class EngineServiceTest {\r
 \r
     @Rule\r
@@ -39,14 +43,16 @@ public class EngineServiceTest {
     public PowerMockRule powerMockRule = new PowerMockRule();\r
     private EngineService engineService;\r
     private HttpResponse httpResponseMock;\r
-    private RuleAppConfig ruleAppConfig = new RuleAppConfig();\r
+    private CloseableHttpClient closeableHttpClient;\r
     private CorrelationDeployRule4Engine correlationDeployRule4Engine;\r
+    private CloseableHttpResponse closeableHttpResponseMock;\r
 \r
     @Before\r
     public void setUp() {\r
         engineService = new EngineService();\r
+        closeableHttpClient = PowerMock.createMock(CloseableHttpClient.class);\r
         httpResponseMock = PowerMock.createMock(HttpResponse.class);\r
-        Whitebox.setInternalState(engineService, "ruleAppConfig", ruleAppConfig);\r
+        closeableHttpResponseMock = PowerMock.createMock(CloseableHttpResponse.class);\r
         correlationDeployRule4Engine = new CorrelationDeployRule4Engine();\r
         correlationDeployRule4Engine.setContent("{\"package\":\"test\"}");\r
         correlationDeployRule4Engine.setEngineId("engine_id");\r
index f672415..8d25d6a 100644 (file)
@@ -165,7 +165,7 @@ public class EngineWrapperTest {
     }\r
 \r
     @Test\r
-    public void checkRuleFromEngine_invoke_rule_delete_exception() throws Exception {\r
+    public void checkRuleFromEngine_rule_delete_exception() throws Exception {\r
         thrown.expect(CorrelationException.class);\r
         thrown.expectMessage(I18nProxy.RULE_MANAGEMENT_CALL_CHECK_RULE_REST_FAILED);\r
 \r
@@ -179,7 +179,7 @@ public class EngineWrapperTest {
     }\r
 \r
     @Test\r
-    public void checkRuleFromEngine_http_status_not_ok() throws Exception {\r
+    public void checkRuleFromEngine_http_status_not_200() throws Exception {\r
         thrown.expect(CorrelationException.class);\r
         thrown.expectMessage(I18nProxy.RULE_MANAGEMENT_CHECK_NO_PASS);\r
 \r