@NotEmpty
private String apidescription = "Holmes rule management rest API";
- @NotEmpty
- private String msbServerAddr;
-
@Valid
@NotNull
private DataSourceFactory database = new DataSourceFactory();
this.apidescription = apidescription;
}
- @JsonProperty
- public String getMsbServerAddr() {
- return msbServerAddr;
- }
-
- @JsonProperty
- public void setMsbServerAddr(String msbServerAddr) {
- this.msbServerAddr = msbServerAddr;
- }
}
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
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
@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
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
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
@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
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
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
\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
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
}\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
}\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