From e5e0b7b09226751d4986b1080c2bdb76cde5df4d Mon Sep 17 00:00:00 2001 From: Shiwei Tian Date: Mon, 9 Oct 2017 16:28:07 +0800 Subject: [PATCH] modify dace polling and loopControlName Issue-ID: HOLMES-67 Change-Id: If538c63d4ab173bd4ea0aa0bb3af8afcce24a177 Signed-off-by: Shiwei Tian --- .../org/onap/holmes/rulemgt/RuleActiveApp.java | 8 ++---- .../rulemgt/bean/request/RuleCreateRequest.java | 2 ++ ...nPolling.java => DcaeConfigurationPolling.java} | 17 +++++++++--- .../holmes/rulemgt/wrapper/RuleMgtWrapper.java | 5 +++- ...Test.java => DcaeConfigurationPollingTest.java} | 32 ++++++---------------- .../holmes/rulemgt/wrapper/RuleMgtWrapperTest.java | 1 + 6 files changed, 31 insertions(+), 34 deletions(-) rename rulemgt/src/main/java/org/onap/holmes/rulemgt/dcae/{DaceConfigurationPolling.java => DcaeConfigurationPolling.java} (87%) rename rulemgt/src/test/java/org/onap/holmes/rulemgt/dcae/{DaceConfigurationPollingTest.java => DcaeConfigurationPollingTest.java} (80%) diff --git a/rulemgt/src/main/java/org/onap/holmes/rulemgt/RuleActiveApp.java b/rulemgt/src/main/java/org/onap/holmes/rulemgt/RuleActiveApp.java index a37c49c..2b8f986 100644 --- a/rulemgt/src/main/java/org/onap/holmes/rulemgt/RuleActiveApp.java +++ b/rulemgt/src/main/java/org/onap/holmes/rulemgt/RuleActiveApp.java @@ -16,8 +16,6 @@ package org.onap.holmes.rulemgt; -import static jdk.nashorn.internal.runtime.regexp.joni.Config.log; - import io.dropwizard.setup.Environment; import java.util.HashSet; import java.util.Set; @@ -29,7 +27,7 @@ import org.onap.holmes.common.config.MicroServiceConfig; import org.onap.holmes.common.dropwizard.ioc.bundle.IOCApplication; import org.onap.holmes.common.exception.CorrelationException; import org.onap.holmes.common.utils.MSBRegisterUtil; -import org.onap.holmes.rulemgt.dcae.DaceConfigurationPolling; +import org.onap.holmes.rulemgt.dcae.DcaeConfigurationPolling; import org.onap.holmes.rulemgt.resources.RuleMgtResources; import org.onap.msb.sdk.discovery.entity.MicroServiceInfo; import org.onap.msb.sdk.discovery.entity.Node; @@ -51,8 +49,8 @@ public class RuleActiveApp extends IOCApplication { super.run(configuration, environment); ScheduledExecutorService service = Executors.newSingleThreadScheduledExecutor(); - service.scheduleAtFixedRate(new DaceConfigurationPolling("holmes-rule-mgmt"), 0, - DaceConfigurationPolling.POLLING_PERIOD, TimeUnit.MILLISECONDS); + service.scheduleAtFixedRate(new DcaeConfigurationPolling("holmes-rule-mgmt"), 0, + DcaeConfigurationPolling.POLLING_PERIOD, TimeUnit.MILLISECONDS); environment.jersey().register(new RuleMgtResources()); try { diff --git a/rulemgt/src/main/java/org/onap/holmes/rulemgt/bean/request/RuleCreateRequest.java b/rulemgt/src/main/java/org/onap/holmes/rulemgt/bean/request/RuleCreateRequest.java index f090c3b..c7e8a6f 100644 --- a/rulemgt/src/main/java/org/onap/holmes/rulemgt/bean/request/RuleCreateRequest.java +++ b/rulemgt/src/main/java/org/onap/holmes/rulemgt/bean/request/RuleCreateRequest.java @@ -24,6 +24,8 @@ import lombok.Setter; public class RuleCreateRequest { @JsonProperty(value = "rulename") private String ruleName; + @JsonProperty(value = "loopcontrolname") + private String loopControlName; @JsonProperty private String description; @JsonProperty diff --git a/rulemgt/src/main/java/org/onap/holmes/rulemgt/dcae/DaceConfigurationPolling.java b/rulemgt/src/main/java/org/onap/holmes/rulemgt/dcae/DcaeConfigurationPolling.java similarity index 87% rename from rulemgt/src/main/java/org/onap/holmes/rulemgt/dcae/DaceConfigurationPolling.java rename to rulemgt/src/main/java/org/onap/holmes/rulemgt/dcae/DcaeConfigurationPolling.java index 0527881..a69b6a4 100644 --- a/rulemgt/src/main/java/org/onap/holmes/rulemgt/dcae/DaceConfigurationPolling.java +++ b/rulemgt/src/main/java/org/onap/holmes/rulemgt/dcae/DcaeConfigurationPolling.java @@ -33,15 +33,15 @@ import org.onap.holmes.rulemgt.bean.response.RuleQueryListResponse; import org.onap.holmes.rulemgt.bean.response.RuleResult4API; @Slf4j -public class DaceConfigurationPolling implements Runnable { +public class DcaeConfigurationPolling implements Runnable { - public static long POLLING_PERIOD = 10 * 1000; + public static long POLLING_PERIOD = 10 * 1000L; private String hostname; private String url = "http://127.0.0.1/api/holmes-rule-mgmt/v1/rule"; - public DaceConfigurationPolling(String hostname) { + public DcaeConfigurationPolling(String hostname) { this.hostname = hostname; } @@ -67,11 +67,19 @@ public class DaceConfigurationPolling implements Runnable { private DcaeConfigurations getDcaeConfigurations() throws CorrelationException { String serviceAddrInfo = MicroServiceConfig.getServiceAddrInfoFromCBS(hostname); + String response = getDcaeResponse(serviceAddrInfo); DcaeConfigurations dcaeConfigurations = null; - dcaeConfigurations = DcaeConfigurationParser.parse(serviceAddrInfo); + dcaeConfigurations = DcaeConfigurationParser.parse(response); return dcaeConfigurations; } + private String getDcaeResponse(String serviceAddrInfo) { + Client client = ClientBuilder.newClient(new ClientConfig()); + WebTarget webTarget = client.target(serviceAddrInfo); + return webTarget.request("application/json").get() + .readEntity(String.class); + } + private RuleQueryListResponse getAllCorrelationRules() { Client client = ClientBuilder.newClient(new ClientConfig()); WebTarget webTarget = client.target(url); @@ -106,6 +114,7 @@ public class DaceConfigurationPolling implements Runnable { private RuleCreateRequest getRuleCreateRequest(Rule rule) { RuleCreateRequest ruleCreateRequest = new RuleCreateRequest(); + ruleCreateRequest.setLoopControlName(rule.getLoopControlName()); ruleCreateRequest.setRuleName(rule.getName()); ruleCreateRequest.setContent(rule.getContents()); ruleCreateRequest.setDescription(""); diff --git a/rulemgt/src/main/java/org/onap/holmes/rulemgt/wrapper/RuleMgtWrapper.java b/rulemgt/src/main/java/org/onap/holmes/rulemgt/wrapper/RuleMgtWrapper.java index beffa56..856171b 100644 --- a/rulemgt/src/main/java/org/onap/holmes/rulemgt/wrapper/RuleMgtWrapper.java +++ b/rulemgt/src/main/java/org/onap/holmes/rulemgt/wrapper/RuleMgtWrapper.java @@ -23,6 +23,7 @@ import javax.inject.Inject; import javax.inject.Singleton; import lombok.extern.slf4j.Slf4j; import org.jvnet.hk2.annotations.Service; +import org.onap.holmes.common.dmaap.DmaapService; import org.onap.holmes.rulemgt.bean.request.CorrelationCheckRule4Engine; import org.onap.holmes.rulemgt.bean.response.RuleResult4API; import org.onap.holmes.rulemgt.constant.RuleMgtConstant; @@ -72,7 +73,9 @@ public class RuleMgtWrapper { if (ruleTemp != null) { throw new CorrelationException("A rule with the same name already exists."); } - correlationRule.setPackageName(deployRule2Engine(correlationRule)); + String packageName = deployRule2Engine(correlationRule); + DmaapService.loopControlNames.put(packageName, ruleCreateRequest.getLoopControlName()); + correlationRule.setPackageName(packageName); CorrelationRule result = correlationRuleDao.saveRule(correlationRule); RuleAddAndUpdateResponse ruleAddAndUpdateResponse = new RuleAddAndUpdateResponse(); ruleAddAndUpdateResponse.setRuleId(result.getRid()); diff --git a/rulemgt/src/test/java/org/onap/holmes/rulemgt/dcae/DaceConfigurationPollingTest.java b/rulemgt/src/test/java/org/onap/holmes/rulemgt/dcae/DcaeConfigurationPollingTest.java similarity index 80% rename from rulemgt/src/test/java/org/onap/holmes/rulemgt/dcae/DaceConfigurationPollingTest.java rename to rulemgt/src/test/java/org/onap/holmes/rulemgt/dcae/DcaeConfigurationPollingTest.java index b9d9abb..25e211a 100644 --- a/rulemgt/src/test/java/org/onap/holmes/rulemgt/dcae/DaceConfigurationPollingTest.java +++ b/rulemgt/src/test/java/org/onap/holmes/rulemgt/dcae/DcaeConfigurationPollingTest.java @@ -21,10 +21,7 @@ import static org.hamcrest.CoreMatchers.equalTo; import static org.junit.Assert.assertThat; import static org.powermock.api.mockito.PowerMockito.when; -import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; -import java.util.ArrayList; -import java.util.List; import javax.ws.rs.ProcessingException; import org.junit.Before; import org.junit.Test; @@ -36,26 +33,24 @@ import org.onap.holmes.common.dcae.entity.Rule; import org.onap.holmes.common.dcae.utils.DcaeConfigurationParser; import org.onap.holmes.common.exception.CorrelationException; import org.onap.holmes.rulemgt.bean.request.RuleCreateRequest; -import org.onap.holmes.rulemgt.bean.response.RuleQueryListResponse; -import org.onap.holmes.rulemgt.bean.response.RuleResult4API; import org.powermock.api.easymock.PowerMock; import org.powermock.api.mockito.PowerMockito; import org.powermock.core.classloader.annotations.PrepareForTest; import org.powermock.modules.junit4.PowerMockRunner; import org.powermock.reflect.Whitebox; -@PrepareForTest({DaceConfigurationPolling.class, MicroServiceConfig.class, ObjectMapper.class}) +@PrepareForTest({DcaeConfigurationPolling.class, MicroServiceConfig.class, ObjectMapper.class}) @RunWith(PowerMockRunner.class) -public class DaceConfigurationPollingTest { +public class DcaeConfigurationPollingTest { @org.junit.Rule public ExpectedException thrown = ExpectedException.none(); - private DaceConfigurationPolling daceConfigurationPolling; + private DcaeConfigurationPolling daceConfigurationPolling; @Before public void setUp() { - daceConfigurationPolling = new DaceConfigurationPolling("holmes-rule-mgmt"); + daceConfigurationPolling = new DcaeConfigurationPolling("holmes-rule-mgmt"); } @Test @@ -100,7 +95,7 @@ public class DaceConfigurationPollingTest { PowerMock.resetAll(); thrown.expect(ProcessingException.class); DcaeConfigurations dcaeConfigurations = new DcaeConfigurations(); - Rule rule = new Rule("test", "test", 1); + Rule rule = new Rule("test", "test", "tset",1); dcaeConfigurations.getDefaultRules().add(rule); PowerMock.replayAll(); @@ -112,27 +107,16 @@ public class DaceConfigurationPollingTest { @Test public void testDaceConfigurationPolling_getRuleCreateRequest() throws Exception { PowerMock.resetAll(); - Rule rule = new Rule("test", "test1", 1); + Rule rule = new Rule("test", "test1", "stest",1); PowerMock.replayAll(); RuleCreateRequest actual = Whitebox .invokeMethod(daceConfigurationPolling, "getRuleCreateRequest", rule); PowerMock.verifyAll(); assertThat(actual.getRuleName(), equalTo("test")); - assertThat(actual.getContent(), equalTo("test1")); + assertThat(actual.getLoopControlName(), equalTo("test1")); + assertThat(actual.getContent(), equalTo("stest")); assertThat(actual.getDescription(), equalTo("")); assertThat(actual.getEnabled(), equalTo(1)); } - - @Test - public void testDaceConfigurationPolling_run_null_exception() throws Exception { - PowerMock.replayAll(); - PowerMockito.mockStatic(MicroServiceConfig.class); - when(MicroServiceConfig.getServiceAddrInfoFromCBS("holmes-rule-mgmt")) - .thenReturn("host"); - PowerMock.replayAll(); - Whitebox.invokeMethod(daceConfigurationPolling, "run"); - PowerMock.verifyAll(); - } - } \ No newline at end of file diff --git a/rulemgt/src/test/java/org/onap/holmes/rulemgt/wrapper/RuleMgtWrapperTest.java b/rulemgt/src/test/java/org/onap/holmes/rulemgt/wrapper/RuleMgtWrapperTest.java index 1697bf4..9837fc5 100644 --- a/rulemgt/src/test/java/org/onap/holmes/rulemgt/wrapper/RuleMgtWrapperTest.java +++ b/rulemgt/src/test/java/org/onap/holmes/rulemgt/wrapper/RuleMgtWrapperTest.java @@ -159,6 +159,7 @@ public class RuleMgtWrapperTest { RuleCreateRequest ruleCreateRequest = createRuleCreateRequest(ruleName, "This is a rule for testing.", "Mocked contents.", 1); + ruleCreateRequest.setLoopControlName("loopName"); CorrelationRule correlationRuleRet = new CorrelationRule(); correlationRuleRet.setRid("rule_" + System.currentTimeMillis()); -- 2.16.6