From fdaae76549bafb2e482c02fb26de719c69431b48 Mon Sep 17 00:00:00 2001 From: Jim Hahn Date: Tue, 13 Aug 2019 15:52:22 -0400 Subject: Modify to work with new drools-pdp Due to sonar fixes, drools-pdp changed in a way that requires changes to drools-applications. In the case of template.demo, lots of test cases had to be modified, so they were refactored to extract common setup and tear down code. Fixed checkstyle issues. Fixed license date. Change-Id: Ie9e0239b95916ae7ef8c1b669987f7bb07d841b9 Issue-ID: POLICY-1968 Signed-off-by: Jim Hahn --- .../eventmanager/ControlLoopEventManager.java | 22 +- .../eventmanager/ControlLoopOperationManager.java | 40 ++-- .../eventmanager/ControlLoopEventManagerTest.java | 14 +- .../ControlLoopOperationManagerTest.java | 32 +-- .../management/ControlLoopManagementFeature.java | 3 +- .../server/restful/RestControlLoopManager.java | 26 ++- .../server/restful/RestControlLoopManagerTest.java | 43 ++-- .../trans/CacheBasedControlLoopMetricsManager.java | 8 +- .../trans/ControlLoopMetricsFeatureTest.java | 14 +- .../feature/utils/ControlLoopUtilsFeatureTest.java | 4 +- .../java/org/onap/policy/guard/CallGuardTask.java | 2 +- .../onap/policy/guard/PolicyGuardXacmlHelper.java | 9 +- .../src/main/java/org/onap/policy/guard/Util.java | 13 +- .../policy/guard/PolicyGuardXacmlHelperTest.java | 28 +-- .../main/resources/__closedLoopControlName__.drl | 66 +++--- .../main/resources/__closedLoopControlName__.drl | 68 +++--- .../template/demo/CcvpnBwControlLoopTest.java | 156 +------------- .../policy/template/demo/CcvpnControlLoopTest.java | 156 +------------- .../onap/policy/template/demo/ControlLoopBase.java | 229 +++++++++++++++++++++ .../template/demo/ControlLoopEventCleanupTest.java | 26 +-- .../template/demo/ControlLoopFailureTest.java | 164 +-------------- .../org/onap/policy/template/demo/SupportUtil.java | 36 ++-- .../policy/template/demo/VcpeControlLoopTest.java | 165 +-------------- .../policy/template/demo/VdnsControlLoopTest.java | 156 +------------- .../policy/template/demo/VfcControlLoopTest.java | 157 +------------- .../policy/template/demo/VfwControlLoopTest.java | 167 +-------------- .../policy/template/demo/VpciControlLoopTest.java | 171 +-------------- .../policy/template/demo/VsonhControlLoopTest.java | 171 +-------------- 28 files changed, 543 insertions(+), 1603 deletions(-) create mode 100644 controlloop/templates/template.demo/src/test/java/org/onap/policy/template/demo/ControlLoopBase.java diff --git a/controlloop/common/eventmanager/src/main/java/org/onap/policy/controlloop/eventmanager/ControlLoopEventManager.java b/controlloop/common/eventmanager/src/main/java/org/onap/policy/controlloop/eventmanager/ControlLoopEventManager.java index 298513619..aaccef60b 100644 --- a/controlloop/common/eventmanager/src/main/java/org/onap/policy/controlloop/eventmanager/ControlLoopEventManager.java +++ b/controlloop/common/eventmanager/src/main/java/org/onap/policy/controlloop/eventmanager/ControlLoopEventManager.java @@ -58,7 +58,7 @@ import org.onap.policy.controlloop.VirtualControlLoopNotification; import org.onap.policy.controlloop.policy.FinalResult; import org.onap.policy.controlloop.policy.Policy; import org.onap.policy.controlloop.processor.ControlLoopProcessor; -import org.onap.policy.drools.system.PolicyEngine; +import org.onap.policy.drools.system.PolicyEngineConstants; import org.onap.policy.guard.GuardResult; import org.onap.policy.guard.LockCallback; import org.onap.policy.guard.PolicyGuard; @@ -888,9 +888,9 @@ public class ControlLoopEventManager implements LockCallback, Serializable { try { if (vserverName != null) { - String aaiHostUrl = PolicyEngine.manager.getEnvironmentProperty(AAI_URL); - String aaiUser = PolicyEngine.manager.getEnvironmentProperty(AAI_USERNAME_PROPERTY); - String aaiPassword = PolicyEngine.manager.getEnvironmentProperty(AAI_PASS_PROPERTY); + String aaiHostUrl = PolicyEngineConstants.getManager().getEnvironmentProperty(AAI_URL); + String aaiUser = PolicyEngineConstants.getManager().getEnvironmentProperty(AAI_USERNAME_PROPERTY); + String aaiPassword = PolicyEngineConstants.getManager().getEnvironmentProperty(AAI_PASS_PROPERTY); String aaiGetQueryByVserver = "/aai/v11/nodes/vservers?vserver-name="; String url = aaiHostUrl + aaiGetQueryByVserver; logger.info("AAI Host URL by VServer: {}", url); @@ -918,9 +918,9 @@ public class ControlLoopEventManager implements LockCallback, Serializable { String vnfName = event.getAai().get(GENERIC_VNF_VNF_NAME); String vnfId = event.getAai().get(GENERIC_VNF_VNF_ID); - String aaiHostUrl = PolicyEngine.manager.getEnvironmentProperty(AAI_URL); - String aaiUser = PolicyEngine.manager.getEnvironmentProperty(AAI_USERNAME_PROPERTY); - String aaiPassword = PolicyEngine.manager.getEnvironmentProperty(AAI_PASS_PROPERTY); + String aaiHostUrl = PolicyEngineConstants.getManager().getEnvironmentProperty(AAI_URL); + String aaiUser = PolicyEngineConstants.getManager().getEnvironmentProperty(AAI_USERNAME_PROPERTY); + String aaiPassword = PolicyEngineConstants.getManager().getEnvironmentProperty(AAI_PASS_PROPERTY); try { if (vnfName != null) { @@ -1024,7 +1024,7 @@ public class ControlLoopEventManager implements LockCallback, Serializable { * @return the property value */ private static String getPeManagerEnvProperty(String enginePropertyName) { - String enginePropertyValue = PolicyEngine.manager.getEnvironmentProperty(enginePropertyName); + String enginePropertyValue = PolicyEngineConstants.getManager().getEnvironmentProperty(enginePropertyName); if (enginePropertyValue == null) { throw new IllegalArgumentException("The value of policy engine manager environment property \"" + enginePropertyName + "\" may not be null"); @@ -1082,9 +1082,9 @@ public class ControlLoopEventManager implements LockCallback, Serializable { AaiCqResponse response = null; String vserverId = event.getAai().get(VSERVER_VSERVER_NAME); - String aaiHostUrl = PolicyEngine.manager.getEnvironmentProperty(AAI_URL); - String aaiUser = PolicyEngine.manager.getEnvironmentProperty(AAI_USERNAME_PROPERTY); - String aaiPassword = PolicyEngine.manager.getEnvironmentProperty(AAI_PASS_PROPERTY); + String aaiHostUrl = PolicyEngineConstants.getManager().getEnvironmentProperty(AAI_URL); + String aaiUser = PolicyEngineConstants.getManager().getEnvironmentProperty(AAI_USERNAME_PROPERTY); + String aaiPassword = PolicyEngineConstants.getManager().getEnvironmentProperty(AAI_PASS_PROPERTY); response = new AaiManager(new RestManager()).getCustomQueryResponse(aaiHostUrl, aaiUser, aaiPassword, reqId, vserverId); diff --git a/controlloop/common/eventmanager/src/main/java/org/onap/policy/controlloop/eventmanager/ControlLoopOperationManager.java b/controlloop/common/eventmanager/src/main/java/org/onap/policy/controlloop/eventmanager/ControlLoopOperationManager.java index cac1b8ee3..293fa43aa 100644 --- a/controlloop/common/eventmanager/src/main/java/org/onap/policy/controlloop/eventmanager/ControlLoopOperationManager.java +++ b/controlloop/common/eventmanager/src/main/java/org/onap/policy/controlloop/eventmanager/ControlLoopOperationManager.java @@ -52,7 +52,7 @@ import org.onap.policy.controlloop.actor.vfc.VfcActorServiceProvider; import org.onap.policy.controlloop.policy.Policy; import org.onap.policy.controlloop.policy.PolicyResult; import org.onap.policy.database.operationshistory.Dbao; -import org.onap.policy.drools.system.PolicyEngine; +import org.onap.policy.drools.system.PolicyEngineConstants; import org.onap.policy.guard.Util; import org.onap.policy.sdnc.SdncResponse; import org.onap.policy.sdnr.PciResponseWrapper; @@ -141,7 +141,7 @@ public class ControlLoopOperationManager implements Serializable { * The target vnf-id may not be the same as the source vnf-id specified in the yaml, the target * vnf-id is retrieved by a named query to A&AI. */ - if (Boolean.valueOf(PolicyEngine.manager.getEnvironmentProperty(AAI_CUSTOM_QUERY))) { + if (Boolean.valueOf(PolicyEngineConstants.getManager().getEnvironmentProperty(AAI_CUSTOM_QUERY))) { GenericVnf genvnf = this.eventManager.getCqResponse((VirtualControlLoopEvent) onset) .getGenericVnfByModelInvariantId(policy.getTarget().getResourceID()); if (genvnf == null) { @@ -153,9 +153,9 @@ public class ControlLoopOperationManager implements Serializable { } else { this.targetEntity = AppcLcmActorServiceProvider.vnfNamedQuery(policy.getTarget().getResourceID(), - this.targetEntity, PolicyEngine.manager.getEnvironmentProperty("aai.url"), - PolicyEngine.manager.getEnvironmentProperty("aai.username"), - PolicyEngine.manager.getEnvironmentProperty("aai.password")); + this.targetEntity, PolicyEngineConstants.getManager().getEnvironmentProperty("aai.url"), + PolicyEngineConstants.getManager().getEnvironmentProperty("aai.username"), + PolicyEngineConstants.getManager().getEnvironmentProperty("aai.password")); } } } @@ -260,7 +260,7 @@ public class ControlLoopOperationManager implements Serializable { */ try { String vnfId; - if (Boolean.valueOf(PolicyEngine.manager.getEnvironmentProperty(AAI_CUSTOM_QUERY))) { + if (Boolean.valueOf(PolicyEngineConstants.getManager().getEnvironmentProperty(AAI_CUSTOM_QUERY))) { vnfId = this.eventManager.getCqResponse((VirtualControlLoopEvent) onset).getDefaultGenericVnf() .getVnfId(); } else { @@ -347,7 +347,7 @@ public class ControlLoopOperationManager implements Serializable { private Object startSoOperation(ControlLoopEvent onset, Operation operation) throws AaiException { SoActorServiceProvider soActorSp = new SoActorServiceProvider(); - if (Boolean.valueOf(PolicyEngine.manager.getEnvironmentProperty(AAI_CUSTOM_QUERY))) { + if (Boolean.valueOf(PolicyEngineConstants.getManager().getEnvironmentProperty(AAI_CUSTOM_QUERY))) { this.operationRequest = soActorSp.constructRequestCq((VirtualControlLoopEvent) onset, operation.clOperation, this.policy, eventManager.getCqResponse((VirtualControlLoopEvent) onset)); @@ -368,16 +368,16 @@ public class ControlLoopOperationManager implements Serializable { private Object startVfcOperation(ControlLoopEvent onset, Operation operation) throws AaiException { - if (Boolean.valueOf(PolicyEngine.manager.getEnvironmentProperty(AAI_CUSTOM_QUERY))) { + if (Boolean.valueOf(PolicyEngineConstants.getManager().getEnvironmentProperty(AAI_CUSTOM_QUERY))) { this.operationRequest = VfcActorServiceProvider.constructRequestCq((VirtualControlLoopEvent) onset, operation.clOperation, this.policy, eventManager.getCqResponse((VirtualControlLoopEvent) onset)); } else { this.operationRequest = VfcActorServiceProvider.constructRequest((VirtualControlLoopEvent) onset, operation.clOperation, this.policy, this.eventManager.getVnfResponse(), - PolicyEngine.manager.getEnvironmentProperty("vfc.url"), - PolicyEngine.manager.getEnvironmentProperty("vfc.username"), - PolicyEngine.manager.getEnvironmentProperty("vfc.password")); + PolicyEngineConstants.getManager().getEnvironmentProperty("vfc.url"), + PolicyEngineConstants.getManager().getEnvironmentProperty("vfc.username"), + PolicyEngineConstants.getManager().getEnvironmentProperty("vfc.password")); } this.currentOperation = operation; if (this.operationRequest == null) { @@ -951,7 +951,8 @@ public class ControlLoopOperationManager implements Serializable { private void storeOperationInDataBase() { // Only store in DB if enabled - boolean guardEnabled = "false".equalsIgnoreCase(PolicyEngine.manager.getEnvironmentProperty("guard.disabled")); + boolean guardEnabled = "false" + .equalsIgnoreCase(PolicyEngineConstants.getManager().getEnvironmentProperty("guard.disabled")); if (!guardEnabled) { return; } @@ -959,12 +960,15 @@ public class ControlLoopOperationManager implements Serializable { // DB Properties Properties props = new Properties(); - if (PolicyEngine.manager.getEnvironmentProperty(Util.ONAP_KEY_URL) != null - && PolicyEngine.manager.getEnvironmentProperty(Util.ONAP_KEY_USER) != null - && PolicyEngine.manager.getEnvironmentProperty(Util.ONAP_KEY_PASS) != null) { - props.put(Util.ECLIPSE_LINK_KEY_URL, PolicyEngine.manager.getEnvironmentProperty(Util.ONAP_KEY_URL)); - props.put(Util.ECLIPSE_LINK_KEY_USER, PolicyEngine.manager.getEnvironmentProperty(Util.ONAP_KEY_USER)); - props.put(Util.ECLIPSE_LINK_KEY_PASS, PolicyEngine.manager.getEnvironmentProperty(Util.ONAP_KEY_PASS)); + if (PolicyEngineConstants.getManager().getEnvironmentProperty(Util.ONAP_KEY_URL) != null + && PolicyEngineConstants.getManager().getEnvironmentProperty(Util.ONAP_KEY_USER) != null + && PolicyEngineConstants.getManager().getEnvironmentProperty(Util.ONAP_KEY_PASS) != null) { + props.put(Util.ECLIPSE_LINK_KEY_URL, + PolicyEngineConstants.getManager().getEnvironmentProperty(Util.ONAP_KEY_URL)); + props.put(Util.ECLIPSE_LINK_KEY_USER, + PolicyEngineConstants.getManager().getEnvironmentProperty(Util.ONAP_KEY_USER)); + props.put(Util.ECLIPSE_LINK_KEY_PASS, + PolicyEngineConstants.getManager().getEnvironmentProperty(Util.ONAP_KEY_PASS)); props.put(PersistenceUnitProperties.CLASSLOADER, ControlLoopOperationManager.class.getClassLoader()); } diff --git a/controlloop/common/eventmanager/src/test/java/org/onap/policy/controlloop/eventmanager/ControlLoopEventManagerTest.java b/controlloop/common/eventmanager/src/test/java/org/onap/policy/controlloop/eventmanager/ControlLoopEventManagerTest.java index b7dc1f0d9..0b27ffa49 100644 --- a/controlloop/common/eventmanager/src/test/java/org/onap/policy/controlloop/eventmanager/ControlLoopEventManagerTest.java +++ b/controlloop/common/eventmanager/src/test/java/org/onap/policy/controlloop/eventmanager/ControlLoopEventManagerTest.java @@ -65,7 +65,7 @@ import org.onap.policy.controlloop.VirtualControlLoopNotification; import org.onap.policy.controlloop.eventmanager.ControlLoopEventManager.NewEventStatus; import org.onap.policy.controlloop.policy.ControlLoopPolicy; import org.onap.policy.controlloop.policy.PolicyResult; -import org.onap.policy.drools.system.PolicyEngine; +import org.onap.policy.drools.system.PolicyEngineConstants; import org.onap.policy.guard.GuardResult; import org.onap.policy.guard.PolicyGuard; import org.onap.policy.guard.PolicyGuard.LockResult; @@ -115,9 +115,9 @@ public class ControlLoopEventManagerTest { public static void setUpSimulator() throws Exception { org.onap.policy.simulators.Util.buildAaiSim(); - PolicyEngine.manager.setEnvironmentProperty(AAI_USERNAME, "AAI"); - PolicyEngine.manager.setEnvironmentProperty(AAI_PASS, "AAI"); - PolicyEngine.manager.setEnvironmentProperty(AAI_URL, "http://localhost:6666"); + PolicyEngineConstants.getManager().setEnvironmentProperty(AAI_USERNAME, "AAI"); + PolicyEngineConstants.getManager().setEnvironmentProperty(AAI_PASS, "AAI"); + PolicyEngineConstants.getManager().setEnvironmentProperty(AAI_URL, "http://localhost:6666"); } @AfterClass @@ -141,7 +141,7 @@ public class ControlLoopEventManagerTest { onset.getAai().put(VNF_ID, VNF_UUID); onset.setClosedLoopEventStatus(ControlLoopEventStatus.ONSET); - PolicyEngine.manager.setEnvironmentProperty(AAI_URL, "http://localhost:6666"); + PolicyEngineConstants.getManager().setEnvironmentProperty(AAI_URL, "http://localhost:6666"); } @Test @@ -1008,7 +1008,7 @@ public class ControlLoopEventManagerTest { @Test(expected = AaiException.class) public void testQueryAai_QueryException() throws AaiException { // Force AAI errors - PolicyEngine.manager.setEnvironmentProperty(AAI_URL, INVALID_URL); + PolicyEngineConstants.getManager().setEnvironmentProperty(AAI_URL, INVALID_URL); makeManager(onset).queryAai(onset); } @@ -1231,7 +1231,7 @@ public class ControlLoopEventManagerTest { // Force AAI error - PolicyEngine.manager.setEnvironmentProperty(AAI_URL, INVALID_URL); + PolicyEngineConstants.getManager().setEnvironmentProperty(AAI_URL, INVALID_URL); // re-create manager manager = makeManager(onset); diff --git a/controlloop/common/eventmanager/src/test/java/org/onap/policy/controlloop/eventmanager/ControlLoopOperationManagerTest.java b/controlloop/common/eventmanager/src/test/java/org/onap/policy/controlloop/eventmanager/ControlLoopOperationManagerTest.java index 13fe72517..9b1633521 100644 --- a/controlloop/common/eventmanager/src/test/java/org/onap/policy/controlloop/eventmanager/ControlLoopOperationManagerTest.java +++ b/controlloop/common/eventmanager/src/test/java/org/onap/policy/controlloop/eventmanager/ControlLoopOperationManagerTest.java @@ -68,7 +68,7 @@ import org.onap.policy.controlloop.policy.PolicyResult; import org.onap.policy.controlloop.policy.Target; import org.onap.policy.controlloop.policy.TargetType; import org.onap.policy.controlloop.processor.ControlLoopProcessor; -import org.onap.policy.drools.system.PolicyEngine; +import org.onap.policy.drools.system.PolicyEngineConstants; import org.onap.policy.so.SoResponse; import org.onap.policy.so.SoResponseWrapper; import org.onap.policy.vfc.VfcResponse; @@ -108,9 +108,9 @@ public class ControlLoopOperationManagerTest { onset.setClosedLoopEventStatus(ControlLoopEventStatus.ONSET); /* Set environment properties */ - PolicyEngine.manager.setEnvironmentProperty("aai.url", "http://localhost:6666"); - PolicyEngine.manager.setEnvironmentProperty("aai.username", "AAI"); - PolicyEngine.manager.setEnvironmentProperty("aai.password", "AAI"); + PolicyEngineConstants.getManager().setEnvironmentProperty("aai.url", "http://localhost:6666"); + PolicyEngineConstants.getManager().setEnvironmentProperty("aai.username", "AAI"); + PolicyEngineConstants.getManager().setEnvironmentProperty("aai.password", "AAI"); } private static EntityManagerFactory emf; @@ -138,9 +138,9 @@ public class ControlLoopOperationManagerTest { System.setProperty(OPERATIONS_HISTORY_PU, OPERATIONS_HISTORY_PU_TEST); // Enter dummy props to avoid nullPointerException - PolicyEngine.manager.setEnvironmentProperty(org.onap.policy.guard.Util.ONAP_KEY_URL, "a"); - PolicyEngine.manager.setEnvironmentProperty(org.onap.policy.guard.Util.ONAP_KEY_USER, "b"); - PolicyEngine.manager.setEnvironmentProperty(org.onap.policy.guard.Util.ONAP_KEY_PASS, "c"); + PolicyEngineConstants.getManager().setEnvironmentProperty(org.onap.policy.guard.Util.ONAP_KEY_URL, "a"); + PolicyEngineConstants.getManager().setEnvironmentProperty(org.onap.policy.guard.Util.ONAP_KEY_USER, "b"); + PolicyEngineConstants.getManager().setEnvironmentProperty(org.onap.policy.guard.Util.ONAP_KEY_PASS, "c"); // Connect to in-mem db emf = Persistence.createEntityManagerFactory(OPERATIONS_HISTORY_PU_TEST); @@ -443,7 +443,7 @@ public class ControlLoopOperationManagerTest { onsetEvent.getAai().remove(VNF_ID); manager.getVnfResponse(); - if (!Boolean.valueOf(PolicyEngine.manager.getEnvironmentProperty("aai.customQuery"))) { + if (!Boolean.valueOf(PolicyEngineConstants.getManager().getEnvironmentProperty("aai.customQuery"))) { clom.getEventManager().getVnfResponse().setVnfId(VNF_ID); assertEquals(VNF_ID, clom.getTarget(policy)); } @@ -733,11 +733,11 @@ public class ControlLoopOperationManagerTest { SoResponse soResponse = new SoResponse(); final SoResponseWrapper soRw = new SoResponseWrapper(soResponse, null); - PolicyEngine.manager.setEnvironmentProperty("guard.disabled", "false"); - PolicyEngine.manager.setEnvironmentProperty(org.onap.policy.guard.Util.ONAP_KEY_URL, + PolicyEngineConstants.getManager().setEnvironmentProperty("guard.disabled", "false"); + PolicyEngineConstants.getManager().setEnvironmentProperty(org.onap.policy.guard.Util.ONAP_KEY_URL, "http://somewhere.over.the.rainbow"); - PolicyEngine.manager.setEnvironmentProperty(org.onap.policy.guard.Util.ONAP_KEY_USER, DOROTHY); - PolicyEngine.manager.setEnvironmentProperty(org.onap.policy.guard.Util.ONAP_KEY_PASS, "Toto"); + PolicyEngineConstants.getManager().setEnvironmentProperty(org.onap.policy.guard.Util.ONAP_KEY_USER, DOROTHY); + PolicyEngineConstants.getManager().setEnvironmentProperty(org.onap.policy.guard.Util.ONAP_KEY_PASS, "Toto"); assertEquals(PolicyResult.FAILURE, clom.onResponse(soRw)); @@ -822,11 +822,11 @@ public class ControlLoopOperationManagerTest { SoResponse soResponse = new SoResponse(); final SoResponseWrapper soRw = new SoResponseWrapper(soResponse, null); - PolicyEngine.manager.setEnvironmentProperty("guard.disabled", "false"); - PolicyEngine.manager.setEnvironmentProperty(org.onap.policy.guard.Util.ONAP_KEY_URL, + PolicyEngineConstants.getManager().setEnvironmentProperty("guard.disabled", "false"); + PolicyEngineConstants.getManager().setEnvironmentProperty(org.onap.policy.guard.Util.ONAP_KEY_URL, "http://somewhere.over.the.rainbow"); - PolicyEngine.manager.setEnvironmentProperty(org.onap.policy.guard.Util.ONAP_KEY_USER, DOROTHY); - PolicyEngine.manager.setEnvironmentProperty(org.onap.policy.guard.Util.ONAP_KEY_PASS, "Toto"); + PolicyEngineConstants.getManager().setEnvironmentProperty(org.onap.policy.guard.Util.ONAP_KEY_USER, DOROTHY); + PolicyEngineConstants.getManager().setEnvironmentProperty(org.onap.policy.guard.Util.ONAP_KEY_PASS, "Toto"); assertEquals(PolicyResult.FAILURE, clom.onResponse(soRw)); assertFalse(clom.isOperationRunning()); diff --git a/controlloop/common/feature-controlloop-management/src/main/java/org/onap/policy/drools/apps/controlloop/feature/management/ControlLoopManagementFeature.java b/controlloop/common/feature-controlloop-management/src/main/java/org/onap/policy/drools/apps/controlloop/feature/management/ControlLoopManagementFeature.java index 3b5792a42..ae19b914e 100644 --- a/controlloop/common/feature-controlloop-management/src/main/java/org/onap/policy/drools/apps/controlloop/feature/management/ControlLoopManagementFeature.java +++ b/controlloop/common/feature-controlloop-management/src/main/java/org/onap/policy/drools/apps/controlloop/feature/management/ControlLoopManagementFeature.java @@ -24,6 +24,7 @@ import java.util.stream.Stream; import org.onap.policy.controlloop.params.ControlLoopParams; import org.onap.policy.drools.features.PolicyEngineFeatureApi; import org.onap.policy.drools.system.PolicyController; +import org.onap.policy.drools.system.PolicyControllerConstants; /** * Control Loop Management Feature. @@ -100,7 +101,7 @@ public class ControlLoopManagementFeature implements PolicyEngineFeatureApi { */ public static class Factory { public PolicyController getController(String controllerName) { - return PolicyController.factory.get(controllerName); + return PolicyControllerConstants.getFactory().get(controllerName); } } } diff --git a/controlloop/common/feature-controlloop-management/src/main/java/org/onap/policy/drools/server/restful/RestControlLoopManager.java b/controlloop/common/feature-controlloop-management/src/main/java/org/onap/policy/drools/server/restful/RestControlLoopManager.java index 4b62e489a..08b218dd6 100644 --- a/controlloop/common/feature-controlloop-management/src/main/java/org/onap/policy/drools/server/restful/RestControlLoopManager.java +++ b/controlloop/common/feature-controlloop-management/src/main/java/org/onap/policy/drools/server/restful/RestControlLoopManager.java @@ -47,8 +47,8 @@ import org.onap.policy.controlloop.params.ControlLoopParams; import org.onap.policy.controlloop.processor.ControlLoopProcessor; import org.onap.policy.drools.apps.controlloop.feature.management.ControlLoopManagementFeature; import org.onap.policy.drools.controller.DroolsController; -import org.onap.policy.drools.system.PolicyController; -import org.onap.policy.drools.system.PolicyEngine; +import org.onap.policy.drools.system.PolicyControllerConstants; +import org.onap.policy.drools.system.PolicyEngineConstants; import org.onap.policy.rest.RestManager; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -206,7 +206,7 @@ public class RestControlLoopManager { .build(); } - DroolsController controller = PolicyController.factory.get(controllerName).getDrools(); + DroolsController controller = PolicyControllerConstants.getFactory().get(controllerName).getDrools(); controlLoop = new ControlLoopParams(); controlLoop.setPolicyScope(controller.getGroupId()); @@ -240,9 +240,13 @@ public class RestControlLoopManager { return Response .status(Status.OK) .entity(new AaiManager(new RestManager()) - .getCustomQueryResponse(PolicyEngine.manager.getEnvironmentProperty(ControlLoopEventManager.AAI_URL), - PolicyEngine.manager.getEnvironmentProperty(ControlLoopEventManager.AAI_USERNAME_PROPERTY), - PolicyEngine.manager.getEnvironmentProperty(ControlLoopEventManager.AAI_PASS_PROPERTY), + .getCustomQueryResponse( + PolicyEngineConstants.getManager() + .getEnvironmentProperty(ControlLoopEventManager.AAI_URL), + PolicyEngineConstants.getManager().getEnvironmentProperty( + ControlLoopEventManager.AAI_USERNAME_PROPERTY), + PolicyEngineConstants.getManager().getEnvironmentProperty( + ControlLoopEventManager.AAI_PASS_PROPERTY), UUID.randomUUID(), vserverId)) .build(); @@ -261,9 +265,13 @@ public class RestControlLoopManager { return Response .status(Status.OK) .entity(new AaiManager(new RestManager()) - .postQuery(PolicyEngine.manager.getEnvironmentProperty(ControlLoopEventManager.AAI_URL), - PolicyEngine.manager.getEnvironmentProperty(ControlLoopEventManager.AAI_USERNAME_PROPERTY), - PolicyEngine.manager.getEnvironmentProperty(ControlLoopEventManager.AAI_PASS_PROPERTY), + .postQuery( + PolicyEngineConstants.getManager() + .getEnvironmentProperty(ControlLoopEventManager.AAI_URL), + PolicyEngineConstants.getManager().getEnvironmentProperty( + ControlLoopEventManager.AAI_USERNAME_PROPERTY), + PolicyEngineConstants.getManager().getEnvironmentProperty( + ControlLoopEventManager.AAI_PASS_PROPERTY), ControlLoopEventManager.getAaiNqRequest(vserverId), UUID.randomUUID())) .build(); diff --git a/controlloop/common/feature-controlloop-management/src/test/java/org/onap/policy/drools/server/restful/RestControlLoopManagerTest.java b/controlloop/common/feature-controlloop-management/src/test/java/org/onap/policy/drools/server/restful/RestControlLoopManagerTest.java index ae14a64b7..833adfb69 100644 --- a/controlloop/common/feature-controlloop-management/src/test/java/org/onap/policy/drools/server/restful/RestControlLoopManagerTest.java +++ b/controlloop/common/feature-controlloop-management/src/test/java/org/onap/policy/drools/server/restful/RestControlLoopManagerTest.java @@ -46,10 +46,10 @@ import org.onap.policy.common.utils.coder.CoderException; import org.onap.policy.common.utils.coder.StandardCoder; import org.onap.policy.common.utils.network.NetworkUtil; import org.onap.policy.controlloop.eventmanager.ControlLoopEventManager; -import org.onap.policy.drools.persistence.SystemPersistence; -import org.onap.policy.drools.properties.DroolsProperties; -import org.onap.policy.drools.system.PolicyController; -import org.onap.policy.drools.system.PolicyEngine; +import org.onap.policy.drools.persistence.SystemPersistenceConstants; +import org.onap.policy.drools.properties.DroolsPropertyConstants; +import org.onap.policy.drools.system.PolicyControllerConstants; +import org.onap.policy.drools.system.PolicyEngineConstants; import org.onap.policy.drools.util.KieUtils; import org.onap.policy.drools.utils.logging.LoggerUtil; import org.onap.policy.simulators.Util; @@ -97,22 +97,23 @@ public class RestControlLoopManagerTest { System.setProperty("kie.maven.settings.custom", "src/test/resources/settings.xml"); LoggerUtil.setLevel(LoggerUtil.ROOT_LOGGER, "WARN"); - SystemPersistence.manager.setConfigurationDir("src/test/resources"); - PolicyEngine.manager.configure(PolicyEngine.manager.defaultTelemetryConfig()); + SystemPersistenceConstants.getManager().setConfigurationDir("src/test/resources"); + PolicyEngineConstants.getManager().configure(PolicyEngineConstants.getManager().defaultTelemetryConfig()); ReleaseId releaseId = KieUtils.installArtifact(Paths.get(KMODULE_PATH).toFile(), Paths.get(KMODULE_POM_PATH).toFile(), KJAR_DRL_PATH, Paths.get(KMODULE_DRL_PATH).toFile()); Properties controllerProperties = new Properties(); - controllerProperties.put(DroolsProperties.RULES_GROUPID, releaseId.getGroupId()); - controllerProperties.put(DroolsProperties.RULES_ARTIFACTID, releaseId.getArtifactId()); - controllerProperties.put(DroolsProperties.RULES_VERSION, releaseId.getVersion()); + controllerProperties.put(DroolsPropertyConstants.RULES_GROUPID, releaseId.getGroupId()); + controllerProperties.put(DroolsPropertyConstants.RULES_ARTIFACTID, releaseId.getArtifactId()); + controllerProperties.put(DroolsPropertyConstants.RULES_VERSION, releaseId.getVersion()); - PolicyEngine.manager.createPolicyController(CONTROLLER, controllerProperties); - PolicyEngine.manager.start(); + PolicyEngineConstants.getManager().createPolicyController(CONTROLLER, controllerProperties); + PolicyEngineConstants.getManager().start(); - HttpClientFactoryInstance.getClientFactory().build(SystemPersistence.manager.getProperties(CLIENT_CONFIG)); + HttpClientFactoryInstance.getClientFactory() + .build(SystemPersistenceConstants.getManager().getProperties(CLIENT_CONFIG)); if (!NetworkUtil.isTcpPortOpen("localhost", 9696, 6, 10000L)) { throw new IllegalStateException("cannot connect to port 9696"); @@ -120,9 +121,9 @@ public class RestControlLoopManagerTest { await().atMost(1, TimeUnit.MINUTES).until(isContainerAlive()); - PolicyEngine.manager.setEnvironmentProperty(ControlLoopEventManager.AAI_URL, "http://localhost:6666"); - PolicyEngine.manager.setEnvironmentProperty(ControlLoopEventManager.AAI_USERNAME_PROPERTY, "AAI"); - PolicyEngine.manager.setEnvironmentProperty(ControlLoopEventManager.AAI_PASS_PROPERTY, "AAI"); + PolicyEngineConstants.getManager().setEnvironmentProperty(ControlLoopEventManager.AAI_URL, "http://localhost:6666"); + PolicyEngineConstants.getManager().setEnvironmentProperty(ControlLoopEventManager.AAI_USERNAME_PROPERTY, "AAI"); + PolicyEngineConstants.getManager().setEnvironmentProperty(ControlLoopEventManager.AAI_PASS_PROPERTY, "AAI"); Util.buildAaiSim(); } @@ -132,14 +133,14 @@ public class RestControlLoopManagerTest { */ @AfterClass public static void tearDown() { - PolicyController.factory.get(CONTROLLER).stop(); + PolicyControllerConstants.getFactory().get(CONTROLLER).stop(); await().atMost(1, TimeUnit.MINUTES).until(isContainerAlive(), equalTo(Boolean.FALSE)); - PolicyEngine.manager.removePolicyController(CONTROLLER); - PolicyEngine.manager.stop(); + PolicyEngineConstants.getManager().removePolicyController(CONTROLLER); + PolicyEngineConstants.getManager().stop(); final Path controllerPath = - Paths.get(SystemPersistence.manager.getConfigurationPath().toString(), CONTROLLER_FILE); + Paths.get(SystemPersistenceConstants.getManager().getConfigurationPath().toString(), CONTROLLER_FILE); try { Files.deleteIfExists(controllerPath); } catch (Exception ignored) { @@ -147,7 +148,7 @@ public class RestControlLoopManagerTest { } Path controllerBakPath = - Paths.get(SystemPersistence.manager.getConfigurationPath().toString(), CONTROLLER_FILE_BAK); + Paths.get(SystemPersistenceConstants.getManager().getConfigurationPath().toString(), CONTROLLER_FILE_BAK); try { Files.deleteIfExists(controllerBakPath); @@ -230,6 +231,6 @@ public class RestControlLoopManagerTest { * @return if the container is alive. */ private static Callable isContainerAlive() { - return () -> PolicyController.factory.get(CONTROLLER).getDrools().getContainer().isAlive(); + return () -> PolicyControllerConstants.getFactory().get(CONTROLLER).getDrools().getContainer().isAlive(); } } diff --git a/controlloop/common/feature-controlloop-trans/src/main/java/org/onap/policy/drools/apps/controlloop/feature/trans/CacheBasedControlLoopMetricsManager.java b/controlloop/common/feature-controlloop-trans/src/main/java/org/onap/policy/drools/apps/controlloop/feature/trans/CacheBasedControlLoopMetricsManager.java index b2a82a29e..9dc4c5ad3 100644 --- a/controlloop/common/feature-controlloop-trans/src/main/java/org/onap/policy/drools/apps/controlloop/feature/trans/CacheBasedControlLoopMetricsManager.java +++ b/controlloop/common/feature-controlloop-trans/src/main/java/org/onap/policy/drools/apps/controlloop/feature/trans/CacheBasedControlLoopMetricsManager.java @@ -24,7 +24,6 @@ import com.google.common.cache.CacheBuilder; import com.google.common.cache.CacheLoader; import com.google.common.cache.LoadingCache; import com.google.common.cache.RemovalListener; - import java.time.Instant; import java.time.ZonedDateTime; import java.util.ArrayList; @@ -32,10 +31,9 @@ import java.util.List; import java.util.Properties; import java.util.UUID; import java.util.concurrent.TimeUnit; - import org.onap.policy.controlloop.ControlLoopOperation; import org.onap.policy.controlloop.VirtualControlLoopNotification; -import org.onap.policy.drools.persistence.SystemPersistence; +import org.onap.policy.drools.persistence.SystemPersistenceConstants; import org.onap.policy.drools.system.PolicyController; import org.onap.policy.drools.utils.logging.MdcTransaction; import org.slf4j.Logger; @@ -57,8 +55,8 @@ class CacheBasedControlLoopMetricsManager implements ControlLoopMetrics { public CacheBasedControlLoopMetricsManager() { - Properties properties = - SystemPersistence.manager.getProperties(ControlLoopMetricsFeature.CONFIGURATION_PROPERTIES_NAME); + Properties properties = SystemPersistenceConstants.getManager() + .getProperties(ControlLoopMetricsFeature.CONFIGURATION_PROPERTIES_NAME); /* cache size */ diff --git a/controlloop/common/feature-controlloop-trans/src/test/java/org/onap/policy/drools/apps/controlloop/feature/trans/ControlLoopMetricsFeatureTest.java b/controlloop/common/feature-controlloop-trans/src/test/java/org/onap/policy/drools/apps/controlloop/feature/trans/ControlLoopMetricsFeatureTest.java index bbbcc132f..b416736ab 100644 --- a/controlloop/common/feature-controlloop-trans/src/test/java/org/onap/policy/drools/apps/controlloop/feature/trans/ControlLoopMetricsFeatureTest.java +++ b/controlloop/common/feature-controlloop-trans/src/test/java/org/onap/policy/drools/apps/controlloop/feature/trans/ControlLoopMetricsFeatureTest.java @@ -36,9 +36,9 @@ import org.junit.Test; import org.onap.policy.common.endpoints.event.comm.Topic.CommInfrastructure; import org.onap.policy.controlloop.ControlLoopNotificationType; import org.onap.policy.controlloop.VirtualControlLoopNotification; -import org.onap.policy.drools.persistence.SystemPersistence; +import org.onap.policy.drools.persistence.SystemPersistenceConstants; import org.onap.policy.drools.system.PolicyController; -import org.onap.policy.drools.system.PolicyEngine; +import org.onap.policy.drools.system.PolicyEngineConstants; /** * ControlLoopMetrics Tests. @@ -46,7 +46,7 @@ import org.onap.policy.drools.system.PolicyEngine; public class ControlLoopMetricsFeatureTest { private static final String POLICY_CL_MGT = "POLICY-CL-MGT"; - private static final Path configPath = SystemPersistence.manager.getConfigurationPath(); + private static final Path configPath = SystemPersistenceConstants.getManager().getConfigurationPath(); private static PolicyController testController; /** @@ -54,14 +54,14 @@ public class ControlLoopMetricsFeatureTest { */ @BeforeClass public static void setUp() { - SystemPersistence.manager.setConfigurationDir("src/test/resources"); - testController = PolicyEngine.manager.createPolicyController("metrics", - SystemPersistence.manager.getControllerProperties("metrics")); + SystemPersistenceConstants.getManager().setConfigurationDir("src/test/resources"); + testController = PolicyEngineConstants.getManager().createPolicyController("metrics", + SystemPersistenceConstants.getManager().getControllerProperties("metrics")); } @AfterClass public static void tearDown() { - SystemPersistence.manager.setConfigurationDir(configPath.toString()); + SystemPersistenceConstants.getManager().setConfigurationDir(configPath.toString()); } @Test diff --git a/controlloop/common/feature-controlloop-utils/src/test/java/org/onap/policy/drools/apps/controlloop/feature/utils/ControlLoopUtilsFeatureTest.java b/controlloop/common/feature-controlloop-utils/src/test/java/org/onap/policy/drools/apps/controlloop/feature/utils/ControlLoopUtilsFeatureTest.java index 899b7ce8e..3999797a9 100644 --- a/controlloop/common/feature-controlloop-utils/src/test/java/org/onap/policy/drools/apps/controlloop/feature/utils/ControlLoopUtilsFeatureTest.java +++ b/controlloop/common/feature-controlloop-utils/src/test/java/org/onap/policy/drools/apps/controlloop/feature/utils/ControlLoopUtilsFeatureTest.java @@ -24,7 +24,7 @@ import static org.junit.Assert.assertNotNull; import org.junit.Test; import org.onap.policy.common.endpoints.http.server.HttpServletServerFactoryInstance; -import org.onap.policy.drools.system.PolicyEngine; +import org.onap.policy.drools.system.PolicyEngineConstants; import org.onap.policy.drools.utils.logging.LoggerUtil; import org.onap.policy.simulators.Util; @@ -38,7 +38,7 @@ public class ControlLoopUtilsFeatureTest { LoggerUtil.setLevel("ROOT", "INFO"); LoggerUtil.setLevel("org.eclipse.jetty", "WARN"); final ControlLoopUtilsFeature feature = new ControlLoopUtilsFeature(); - feature.afterStart(PolicyEngine.manager); + feature.afterStart(PolicyEngineConstants.getManager()); assertNotNull(HttpServletServerFactoryInstance.getServerFactory().get(Util.AAISIM_SERVER_PORT)); assertNotNull(HttpServletServerFactoryInstance.getServerFactory().get(Util.SOSIM_SERVER_PORT)); assertNotNull(HttpServletServerFactoryInstance.getServerFactory().get(Util.SOSIM_SERVER_PORT)); diff --git a/controlloop/common/guard/src/main/java/org/onap/policy/guard/CallGuardTask.java b/controlloop/common/guard/src/main/java/org/onap/policy/guard/CallGuardTask.java index 22fce1999..611dd2d8b 100644 --- a/controlloop/common/guard/src/main/java/org/onap/policy/guard/CallGuardTask.java +++ b/controlloop/common/guard/src/main/java/org/onap/policy/guard/CallGuardTask.java @@ -66,7 +66,7 @@ public class CallGuardTask implements Runnable { private PolicyGuardResponse guardResponse; /** - * Guard url is grabbed from PolicyEngine.manager properties + * Guard url is grabbed from PolicyEngine manager properties. */ public CallGuardTask(WorkingMemory wm, String cl, String act, String rec, String tar, String reqId, Supplier vfcnt) { diff --git a/controlloop/common/guard/src/main/java/org/onap/policy/guard/PolicyGuardXacmlHelper.java b/controlloop/common/guard/src/main/java/org/onap/policy/guard/PolicyGuardXacmlHelper.java index 53f1cea4b..ed6cd6c5f 100644 --- a/controlloop/common/guard/src/main/java/org/onap/policy/guard/PolicyGuardXacmlHelper.java +++ b/controlloop/common/guard/src/main/java/org/onap/policy/guard/PolicyGuardXacmlHelper.java @@ -24,13 +24,12 @@ package org.onap.policy.guard; import java.util.HashMap; import java.util.Map; import java.util.UUID; - import org.onap.policy.common.endpoints.event.comm.Topic.CommInfrastructure; import org.onap.policy.common.endpoints.utils.NetLoggerUtil; import org.onap.policy.common.endpoints.utils.NetLoggerUtil.EventType; import org.onap.policy.common.utils.coder.CoderException; import org.onap.policy.common.utils.coder.StandardCoder; -import org.onap.policy.drools.system.PolicyEngine; +import org.onap.policy.drools.system.PolicyEngineConstants; import org.onap.policy.models.decisions.concepts.DecisionRequest; import org.onap.policy.models.decisions.concepts.DecisionResponse; import org.onap.policy.rest.RestManager; @@ -50,9 +49,9 @@ public class PolicyGuardXacmlHelper { * Constructor. */ public PolicyGuardXacmlHelper() { - this.url = PolicyEngine.manager.getEnvironmentProperty("guard.url"); - this.user = PolicyEngine.manager.getEnvironmentProperty("pdpx.username"); - this.pwd = PolicyEngine.manager.getEnvironmentProperty("pdpx.password"); + this.url = PolicyEngineConstants.getManager().getEnvironmentProperty("guard.url"); + this.user = PolicyEngineConstants.getManager().getEnvironmentProperty("pdpx.username"); + this.pwd = PolicyEngineConstants.getManager().getEnvironmentProperty("pdpx.password"); } /** diff --git a/controlloop/common/guard/src/main/java/org/onap/policy/guard/Util.java b/controlloop/common/guard/src/main/java/org/onap/policy/guard/Util.java index d859fbe09..717ca3f45 100644 --- a/controlloop/common/guard/src/main/java/org/onap/policy/guard/Util.java +++ b/controlloop/common/guard/src/main/java/org/onap/policy/guard/Util.java @@ -25,11 +25,10 @@ import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.nio.charset.StandardCharsets; - import org.apache.commons.io.IOUtils; import org.onap.policy.controlloop.policy.ControlLoopPolicy; import org.onap.policy.controlloop.policy.guard.ControlLoopGuard; -import org.onap.policy.drools.system.PolicyEngine; +import org.onap.policy.drools.system.PolicyEngineConstants; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.yaml.snakeyaml.Yaml; @@ -135,16 +134,16 @@ public final class Util { *

see /guard/src/test/java/org/onap/policy/guard/UtilTest.java for setting test properties */ public static void setGuardEnvProps(String url, String username, String password) { - PolicyEngine.manager.setEnvironmentProperty(org.onap.policy.guard.Util.PROP_GUARD_URL, url); - PolicyEngine.manager.setEnvironmentProperty(org.onap.policy.guard.Util.PROP_GUARD_USER, username); - PolicyEngine.manager.setEnvironmentProperty(org.onap.policy.guard.Util.PROP_GUARD_PASS, password); + PolicyEngineConstants.getManager().setEnvironmentProperty(org.onap.policy.guard.Util.PROP_GUARD_URL, url); + PolicyEngineConstants.getManager().setEnvironmentProperty(org.onap.policy.guard.Util.PROP_GUARD_USER, username); + PolicyEngineConstants.getManager().setEnvironmentProperty(org.onap.policy.guard.Util.PROP_GUARD_PASS, password); } public static void setGuardEnvProp(String key, String value) { - PolicyEngine.manager.setEnvironmentProperty(key, value); + PolicyEngineConstants.getManager().setEnvironmentProperty(key, value); } public static String getGuardProp(String propName) { - return PolicyEngine.manager.getEnvironmentProperty(propName); + return PolicyEngineConstants.getManager().getEnvironmentProperty(propName); } } diff --git a/controlloop/common/guard/src/test/java/org/onap/policy/guard/PolicyGuardXacmlHelperTest.java b/controlloop/common/guard/src/test/java/org/onap/policy/guard/PolicyGuardXacmlHelperTest.java index 9d252b9f1..d0194da38 100644 --- a/controlloop/common/guard/src/test/java/org/onap/policy/guard/PolicyGuardXacmlHelperTest.java +++ b/controlloop/common/guard/src/test/java/org/onap/policy/guard/PolicyGuardXacmlHelperTest.java @@ -28,7 +28,7 @@ import org.junit.AfterClass; import org.junit.BeforeClass; import org.junit.Test; import org.onap.policy.common.endpoints.http.server.HttpServletServerFactoryInstance; -import org.onap.policy.drools.system.PolicyEngine; +import org.onap.policy.drools.system.PolicyEngineConstants; import org.onap.policy.drools.utils.logging.LoggerUtil; public class PolicyGuardXacmlHelperTest { @@ -106,45 +106,45 @@ public class PolicyGuardXacmlHelperTest { @Test public void testInit() { - final Properties savedEnvironment = (Properties) PolicyEngine.manager.getEnvironment().clone(); + final Properties savedEnvironment = (Properties) PolicyEngineConstants.getManager().getEnvironment().clone(); assertNotNull(new PolicyGuardXacmlHelper()); - PolicyEngine.manager.getEnvironment().setProperty(GUARD_URL, + PolicyEngineConstants.getManager().getEnvironment().setProperty(GUARD_URL, "http://localhost:6669/pdp/api/getDecision,Dorothy"); assertNotNull(new PolicyGuardXacmlHelper()); - PolicyEngine.manager.getEnvironment().setProperty(GUARD_URL, + PolicyEngineConstants.getManager().getEnvironment().setProperty(GUARD_URL, "http://localhost:6669/pdp/api/getDecision,Dorothy,Toto"); assertNotNull(new PolicyGuardXacmlHelper()); - PolicyEngine.manager.getEnvironment().setProperty(GUARD_URL, + PolicyEngineConstants.getManager().getEnvironment().setProperty(GUARD_URL, "http://localhost:6969/policy/pdpx/v1/decision"); - PolicyEngine.manager.getEnvironment().setProperty("pdpx.timeout", "thisIsNotANumber"); + PolicyEngineConstants.getManager().getEnvironment().setProperty("pdpx.timeout", "thisIsNotANumber"); assertNotNull(new PolicyGuardXacmlHelper()); - PolicyEngine.manager.getEnvironment().setProperty("pdpx.timeout", "1000"); + PolicyEngineConstants.getManager().getEnvironment().setProperty("pdpx.timeout", "1000"); assertNotNull(new PolicyGuardXacmlHelper()); - PolicyEngine.manager.getEnvironment().remove("pdpx.password"); + PolicyEngineConstants.getManager().getEnvironment().remove("pdpx.password"); assertNotNull(new PolicyGuardXacmlHelper()); - PolicyEngine.manager.getEnvironment().setProperty("pdpx.username", "python"); + PolicyEngineConstants.getManager().getEnvironment().setProperty("pdpx.username", "python"); assertNotNull(new PolicyGuardXacmlHelper()); - PolicyEngine.manager.getEnvironment().setProperty(GUARD_URL, "///"); + PolicyEngineConstants.getManager().getEnvironment().setProperty(GUARD_URL, "///"); assertNotNull(new PolicyGuardXacmlHelper()); - PolicyEngine.manager.getEnvironment().setProperty("guard.disabled", ""); + PolicyEngineConstants.getManager().getEnvironment().setProperty("guard.disabled", ""); assertNotNull(new PolicyGuardXacmlHelper()); - PolicyEngine.manager.getEnvironment().setProperty("guard.disabled", "true"); + PolicyEngineConstants.getManager().getEnvironment().setProperty("guard.disabled", "true"); assertNotNull(new PolicyGuardXacmlHelper()); - PolicyEngine.manager.getEnvironment().clear(); + PolicyEngineConstants.getManager().getEnvironment().clear(); assertNotNull(new PolicyGuardXacmlHelper()); - PolicyEngine.manager.setEnvironment(savedEnvironment); + PolicyEngineConstants.getManager().setEnvironment(savedEnvironment); } } diff --git a/controlloop/templates/archetype-cl-amsterdam/src/main/resources/archetype-resources/src/main/resources/__closedLoopControlName__.drl b/controlloop/templates/archetype-cl-amsterdam/src/main/resources/archetype-resources/src/main/resources/__closedLoopControlName__.drl index f28ee173f..049bd9a23 100644 --- a/controlloop/templates/archetype-cl-amsterdam/src/main/resources/archetype-resources/src/main/resources/__closedLoopControlName__.drl +++ b/controlloop/templates/archetype-cl-amsterdam/src/main/resources/archetype-resources/src/main/resources/__closedLoopControlName__.drl @@ -73,7 +73,7 @@ import java.time.Instant; import java.util.LinkedList; import java.util.Iterator; -import org.onap.policy.drools.system.PolicyEngine; +import org.onap.policy.drools.system.PolicyEngineConstants; /* * This structure mimics the Params structure. @@ -191,7 +191,7 @@ rule "${policyName}.EVENT" // // Let interested parties know // - PolicyEngine.manager.deliver("POLICY-CL-MGT", notification); + PolicyEngineConstants.getManager().deliver("POLICY-CL-MGT", notification); // // Retract it from memory @@ -225,7 +225,7 @@ rule "${policyName}.EVENT" // // Let interested parties know // - PolicyEngine.manager.deliver("POLICY-CL-MGT", notification); + PolicyEngineConstants.getManager().deliver("POLICY-CL-MGT", notification); // // Setup the Overall Control Loop timer // @@ -242,7 +242,7 @@ rule "${policyName}.EVENT" // // Let interested parties know // - PolicyEngine.manager.deliver("POLICY-CL-MGT", notification); + PolicyEngineConstants.getManager().deliver("POLICY-CL-MGT", notification); // // Retract it from memory // @@ -267,7 +267,7 @@ rule "${policyName}.EVENT" // // // - PolicyEngine.manager.deliver("POLICY-CL-MGT", notification); + PolicyEngineConstants.getManager().deliver("POLICY-CL-MGT", notification); // // Retract the event // @@ -364,7 +364,7 @@ rule "${policyName}.EVENT.MANAGER" // // In this case, we are done // - PolicyEngine.manager.deliver("POLICY-CL-MGT", notification); + PolicyEngineConstants.getManager().deliver("POLICY-CL-MGT", notification); // // Unlock the target // @@ -409,7 +409,7 @@ rule "${policyName}.EVENT.MANAGER" // // In this case, we are done // - PolicyEngine.manager.deliver("POLICY-CL-MGT", notification); + PolicyEngineConstants.getManager().deliver("POLICY-CL-MGT", notification); // // Unlock the target // @@ -475,7 +475,7 @@ rule "${policyName}.EVENT.MANAGER" notification.setPolicyScope("${policyScope}"); notification.setPolicyVersion("${policyVersion}"); - PolicyEngine.manager.deliver("POLICY-CL-MGT", notification); + PolicyEngineConstants.getManager().deliver("POLICY-CL-MGT", notification); retract($event); @@ -509,7 +509,7 @@ rule "${policyName}.EVENT.MANAGER" notification.setPolicyScope("${policyScope}"); notification.setPolicyVersion("${policyVersion}"); - PolicyEngine.manager.deliver("POLICY-CL-MGT", notification); + PolicyEngineConstants.getManager().deliver("POLICY-CL-MGT", notification); retract($event); @@ -562,16 +562,16 @@ rule "${policyName}.EVENT.MANAGER.OPERATION.LOCKED.GUARD_PERMITTED" notification.setPolicyScope("${policyScope}"); notification.setPolicyVersion("${policyVersion}"); - PolicyEngine.manager.deliver("POLICY-CL-MGT", notification); + PolicyEngineConstants.getManager().deliver("POLICY-CL-MGT", notification); switch ($operation.policy.getActor()){ case "APPC": if (request instanceof Request) { - PolicyEngine.manager.deliver("APPC-CL", request); + PolicyEngineConstants.getManager().deliver("APPC-CL", request); } else if (request instanceof LcmRequestWrapper) { - PolicyEngine.manager.deliver("APPC-LCM-READ", request); + PolicyEngineConstants.getManager().deliver("APPC-LCM-READ", request); } break; case "SO": @@ -589,9 +589,9 @@ rule "${policyName}.EVENT.MANAGER.OPERATION.LOCKED.GUARD_PERMITTED" SoActorServiceProvider.sendRequest($event.getRequestId().toString(), new mySoCallback(), request, - PolicyEngine.manager.getEnvironmentProperty("so.url"), - PolicyEngine.manager.getEnvironmentProperty("so.username"), - PolicyEngine.manager.getEnvironmentProperty("so.password")); + PolicyEngineConstants.getManager().getEnvironmentProperty("so.url"), + PolicyEngineConstants.getManager().getEnvironmentProperty("so.username"), + PolicyEngineConstants.getManager().getEnvironmentProperty("so.password")); } break; case "VFC": @@ -606,9 +606,9 @@ rule "${policyName}.EVENT.MANAGER.OPERATION.LOCKED.GUARD_PERMITTED" // Start VFC thread Thread t = new Thread(new VfcManager(new myVfcCallback(), (VfcRequest)request, - PolicyEngine.manager.getEnvironmentProperty("vfc.url"), - PolicyEngine.manager.getEnvironmentProperty("vfc.username"), - PolicyEngine.manager.getEnvironmentProperty("vfc.password"))); + PolicyEngineConstants.getManager().getEnvironmentProperty("vfc.url"), + PolicyEngineConstants.getManager().getEnvironmentProperty("vfc.username"), + PolicyEngineConstants.getManager().getEnvironmentProperty("vfc.password"))); t.start(); } break; @@ -624,15 +624,15 @@ rule "${policyName}.EVENT.MANAGER.OPERATION.LOCKED.GUARD_PERMITTED" // Start SDNC thread Thread t = new Thread(new SdncManager(new mySdncCallback(), (SdncRequest)request, - PolicyEngine.manager.getEnvironmentProperty("sdnc.url"), - PolicyEngine.manager.getEnvironmentProperty("sdnc.username"), - PolicyEngine.manager.getEnvironmentProperty("sdnc.password"))); + PolicyEngineConstants.getManager().getEnvironmentProperty("sdnc.url"), + PolicyEngineConstants.getManager().getEnvironmentProperty("sdnc.username"), + PolicyEngineConstants.getManager().getEnvironmentProperty("sdnc.password"))); t.start(); } break; case "SDNR": if (request instanceof PciRequestWrapper) { - PolicyEngine.manager.deliver("SDNR-CL", request); + PolicyEngineConstants.getManager().deliver("SDNR-CL", request); } break; } @@ -680,7 +680,7 @@ rule "${policyName}.EVENT.MANAGER.OPERATION.LOCKED.GUARD_PERMITTED" notification.setMessage($operation.getOperationHistory()); notification.setHistory($operation.getHistory()); - PolicyEngine.manager.deliver("POLICY-CL-MGT", notification); + PolicyEngineConstants.getManager().deliver("POLICY-CL-MGT", notification); } retract($opTimer); @@ -730,7 +730,7 @@ rule "${policyName}.EVENT.MANAGER.OPERATION.LOCKED.GUARD_NOT_YET_QUERIED" notification.setPolicyScope("${policyScope}"); notification.setPolicyVersion("${policyVersion}"); - PolicyEngine.manager.deliver("POLICY-CL-MGT", notification); + PolicyEngineConstants.getManager().deliver("POLICY-CL-MGT", notification); // // Now send Guard Request to XACML Guard. In order to bypass the call to Guard, @@ -742,7 +742,7 @@ rule "${policyName}.EVENT.MANAGER.OPERATION.LOCKED.GUARD_NOT_YET_QUERIED" // // NOTE: The environment properties uses "guard.disabled" but the boolean is guardEnabled - boolean guardEnabled = "false".equalsIgnoreCase(PolicyEngine.manager.getEnvironmentProperty("guard.disabled")); + boolean guardEnabled = "false".equalsIgnoreCase(PolicyEngineConstants.getManager().getEnvironmentProperty("guard.disabled")); if(guardEnabled){ @@ -808,7 +808,7 @@ rule "${policyName}.GUARD.RESPONSE" notification.setPolicyScope("${policyScope}"); notification.setPolicyVersion("${policyVersion}"); - PolicyEngine.manager.deliver("POLICY-CL-MGT", notification); + PolicyEngineConstants.getManager().deliver("POLICY-CL-MGT", notification); if("Permit".equalsIgnoreCase($guardResponse.getResult())){ @@ -881,13 +881,13 @@ rule "${policyName}.APPC.RESPONSE" // // Let interested parties know // - PolicyEngine.manager.deliver("POLICY-CL-MGT", notification); + PolicyEngineConstants.getManager().deliver("POLICY-CL-MGT", notification); } else { notification.setNotification(ControlLoopNotificationType.OPERATION_FAILURE); // // Let interested parties know // - PolicyEngine.manager.deliver("POLICY-CL-MGT", notification); + PolicyEngineConstants.getManager().deliver("POLICY-CL-MGT", notification); } // // Ensure the operation is complete @@ -1001,7 +1001,7 @@ rule "${policyName}.APPC.LCM.RESPONSE" } else { notification.setNotification(ControlLoopNotificationType.OPERATION_FAILURE); } - PolicyEngine.manager.deliver("POLICY-CL-MGT", notification); + PolicyEngineConstants.getManager().deliver("POLICY-CL-MGT", notification); // // Ensure the operation is complete // @@ -1110,7 +1110,7 @@ rule "${policyName}.SDNR.RESPONSE" } else { notification.setNotification(ControlLoopNotificationType.OPERATION_FAILURE); } - PolicyEngine.manager.deliver("POLICY-CL-MGT", notification); + PolicyEngineConstants.getManager().deliver("POLICY-CL-MGT", notification); // // Ensure the operation is complete // @@ -1219,7 +1219,7 @@ rule "${policyName}.SO.RESPONSE" notification.setNotification(ControlLoopNotificationType.OPERATION_FAILURE); } - PolicyEngine.manager.deliver("POLICY-CL-MGT", notification); + PolicyEngineConstants.getManager().deliver("POLICY-CL-MGT", notification); // // Ensure the operation is complete // @@ -1468,7 +1468,7 @@ rule "${policyName}.EVENT.MANAGER.OPERATION.TIMEOUT" // // Let interested parties know // - PolicyEngine.manager.deliver("POLICY-CL-MGT", notification); + PolicyEngineConstants.getManager().deliver("POLICY-CL-MGT", notification); // // Get rid of the timer // @@ -1526,7 +1526,7 @@ rule "${policyName}.EVENT.MANAGER.TIMEOUT" // // Let interested parties know // - PolicyEngine.manager.deliver("POLICY-CL-MGT", notification); + PolicyEngineConstants.getManager().deliver("POLICY-CL-MGT", notification); } // // Retract the event diff --git a/controlloop/templates/archetype-cl-usecases/src/main/resources/archetype-resources/src/main/resources/__closedLoopControlName__.drl b/controlloop/templates/archetype-cl-usecases/src/main/resources/archetype-resources/src/main/resources/__closedLoopControlName__.drl index a9e17c3c4..37d7b6936 100644 --- a/controlloop/templates/archetype-cl-usecases/src/main/resources/archetype-resources/src/main/resources/__closedLoopControlName__.drl +++ b/controlloop/templates/archetype-cl-usecases/src/main/resources/archetype-resources/src/main/resources/__closedLoopControlName__.drl @@ -77,7 +77,7 @@ import java.time.Instant; import java.util.LinkedList; import java.util.Iterator; -import org.onap.policy.drools.system.PolicyEngine; +import org.onap.policy.drools.system.PolicyEngineConstants; /* * This object is to provide support for timeouts @@ -180,7 +180,7 @@ rule "EVENT" // // Let interested parties know // - PolicyEngine.manager.deliver("POLICY-CL-MGT", notification); + PolicyEngineConstants.getManager().deliver("POLICY-CL-MGT", notification); // // Retract it from memory @@ -213,7 +213,7 @@ rule "EVENT" // // Let interested parties know // - PolicyEngine.manager.deliver("POLICY-CL-MGT", notification); + PolicyEngineConstants.getManager().deliver("POLICY-CL-MGT", notification); // // Setup the Overall Control Loop timer // @@ -230,7 +230,7 @@ rule "EVENT" // // Let interested parties know // - PolicyEngine.manager.deliver("POLICY-CL-MGT", notification); + PolicyEngineConstants.getManager().deliver("POLICY-CL-MGT", notification); // // Retract it from memory // @@ -255,7 +255,7 @@ rule "EVENT" // // // - PolicyEngine.manager.deliver("POLICY-CL-MGT", notification); + PolicyEngineConstants.getManager().deliver("POLICY-CL-MGT", notification); // // Retract the event // @@ -348,7 +348,7 @@ rule "EVENT.MANAGER" // // In this case, we are done // - PolicyEngine.manager.deliver("POLICY-CL-MGT", notification); + PolicyEngineConstants.getManager().deliver("POLICY-CL-MGT", notification); // // Unlock the target // @@ -393,7 +393,7 @@ rule "EVENT.MANAGER" // // In this case, we are done // - PolicyEngine.manager.deliver("POLICY-CL-MGT", notification); + PolicyEngineConstants.getManager().deliver("POLICY-CL-MGT", notification); // // Unlock the target // @@ -461,7 +461,7 @@ rule "EVENT.MANAGER" notification.setPolicyScope($params.getPolicyScope()); notification.setPolicyVersion($params.getPolicyVersion()); - PolicyEngine.manager.deliver("POLICY-CL-MGT", notification); + PolicyEngineConstants.getManager().deliver("POLICY-CL-MGT", notification); retract($event); @@ -495,7 +495,7 @@ rule "EVENT.MANAGER" notification.setPolicyScope($params.getPolicyScope()); notification.setPolicyVersion($params.getPolicyVersion()); - PolicyEngine.manager.deliver("POLICY-CL-MGT", notification); + PolicyEngineConstants.getManager().deliver("POLICY-CL-MGT", notification); retract($event); @@ -549,17 +549,17 @@ rule "EVENT.MANAGER.OPERATION.LOCKED.GUARD_PERMITTED" notification.setPolicyScope($params.getPolicyScope()); notification.setPolicyVersion($params.getPolicyVersion()); - PolicyEngine.manager.deliver("POLICY-CL-MGT", notification); + PolicyEngineConstants.getManager().deliver("POLICY-CL-MGT", notification); switch ($operation.policy.getActor()){ case "APPC": if (request instanceof Request) { - PolicyEngine.manager.deliver("APPC-CL", request); + PolicyEngineConstants.getManager().deliver("APPC-CL", request); } else if (request instanceof LcmRequestWrapper) { - PolicyEngine.manager.deliver("APPC-LCM-READ", request); + PolicyEngineConstants.getManager().deliver("APPC-LCM-READ", request); } break; case "SO": @@ -576,9 +576,9 @@ rule "EVENT.MANAGER.OPERATION.LOCKED.GUARD_PERMITTED" SoActorServiceProvider.sendRequest($event.getRequestId().toString(), new mySoCallback(), request, - PolicyEngine.manager.getEnvironmentProperty("so.url"), - PolicyEngine.manager.getEnvironmentProperty("so.username"), - PolicyEngine.manager.getEnvironmentProperty("so.password")); + PolicyEngineConstants.getManager().getEnvironmentProperty("so.url"), + PolicyEngineConstants.getManager().getEnvironmentProperty("so.username"), + PolicyEngineConstants.getManager().getEnvironmentProperty("so.password")); } break; case "VFC": @@ -592,15 +592,15 @@ rule "EVENT.MANAGER.OPERATION.LOCKED.GUARD_PERMITTED" // Start VFC thread Thread t = new Thread(new VfcManager(new myVfcCallback(), (VfcRequest)request, - PolicyEngine.manager.getEnvironmentProperty("vfc.url"), - PolicyEngine.manager.getEnvironmentProperty("vfc.username"), - PolicyEngine.manager.getEnvironmentProperty("vfc.password"))); + PolicyEngineConstants.getManager().getEnvironmentProperty("vfc.url"), + PolicyEngineConstants.getManager().getEnvironmentProperty("vfc.username"), + PolicyEngineConstants.getManager().getEnvironmentProperty("vfc.password"))); t.start(); } break; case "SDNR": if (request instanceof PciRequestWrapper) { - PolicyEngine.manager.deliver("SDNR-CL", request); + PolicyEngineConstants.getManager().deliver("SDNR-CL", request); } break; @@ -614,9 +614,9 @@ rule "EVENT.MANAGER.OPERATION.LOCKED.GUARD_PERMITTED" // Start SDNC thread Thread t = new Thread(new SdncManager(new mySdncCallback(), (SdncRequest)request, - PolicyEngine.manager.getEnvironmentProperty("sdnc.url"), - PolicyEngine.manager.getEnvironmentProperty("sdnc.username"), - PolicyEngine.manager.getEnvironmentProperty("sdnc.password"))); + PolicyEngineConstants.getManager().getEnvironmentProperty("sdnc.url"), + PolicyEngineConstants.getManager().getEnvironmentProperty("sdnc.username"), + PolicyEngineConstants.getManager().getEnvironmentProperty("sdnc.password"))); t.start(); } break; @@ -666,7 +666,7 @@ rule "EVENT.MANAGER.OPERATION.LOCKED.GUARD_PERMITTED" notification.setMessage($operation.getOperationHistory()); notification.setHistory($operation.getHistory()); - PolicyEngine.manager.deliver("POLICY-CL-MGT", notification); + PolicyEngineConstants.getManager().deliver("POLICY-CL-MGT", notification); } retract($opTimer); @@ -716,7 +716,7 @@ rule "EVENT.MANAGER.OPERATION.LOCKED.GUARD_NOT_YET_QUERIED" notification.setPolicyScope($params.getPolicyScope()); notification.setPolicyVersion($params.getPolicyVersion()); - PolicyEngine.manager.deliver("POLICY-CL-MGT", notification); + PolicyEngineConstants.getManager().deliver("POLICY-CL-MGT", notification); // // Now send Guard Request to XACML Guard. In order to bypass the call to Guard, @@ -728,7 +728,7 @@ rule "EVENT.MANAGER.OPERATION.LOCKED.GUARD_NOT_YET_QUERIED" // // NOTE: The environment properties uses "guard.disabled" but the boolean is guardEnabled - boolean guardEnabled = "false".equalsIgnoreCase(PolicyEngine.manager.getEnvironmentProperty("guard.disabled")); + boolean guardEnabled = "false".equalsIgnoreCase(PolicyEngineConstants.getManager().getEnvironmentProperty("guard.disabled")); if(guardEnabled){ @@ -794,7 +794,7 @@ rule "GUARD.RESPONSE" notification.setPolicyScope($params.getPolicyScope()); notification.setPolicyVersion($params.getPolicyVersion()); - PolicyEngine.manager.deliver("POLICY-CL-MGT", notification); + PolicyEngineConstants.getManager().deliver("POLICY-CL-MGT", notification); if("Permit".equalsIgnoreCase($guardResponse.getResult())){ @@ -867,13 +867,13 @@ rule "APPC.RESPONSE" // // Let interested parties know // - PolicyEngine.manager.deliver("POLICY-CL-MGT", notification); + PolicyEngineConstants.getManager().deliver("POLICY-CL-MGT", notification); } else { notification.setNotification(ControlLoopNotificationType.OPERATION_FAILURE); // // Let interested parties know // - PolicyEngine.manager.deliver("POLICY-CL-MGT", notification); + PolicyEngineConstants.getManager().deliver("POLICY-CL-MGT", notification); } // // Ensure the operation is complete @@ -987,7 +987,7 @@ rule "APPC.LCM.RESPONSE" } else { notification.setNotification(ControlLoopNotificationType.OPERATION_FAILURE); } - PolicyEngine.manager.deliver("POLICY-CL-MGT", notification); + PolicyEngineConstants.getManager().deliver("POLICY-CL-MGT", notification); // // Ensure the operation is complete // @@ -1096,7 +1096,7 @@ rule "SO.RESPONSE" notification.setNotification(ControlLoopNotificationType.OPERATION_FAILURE); } - PolicyEngine.manager.deliver("POLICY-CL-MGT", notification); + PolicyEngineConstants.getManager().deliver("POLICY-CL-MGT", notification); // // Ensure the operation is complete // @@ -1341,7 +1341,7 @@ rule "EVENT.MANAGER.OPERATION.TIMEOUT" // // Let interested parties know // - PolicyEngine.manager.deliver("POLICY-CL-MGT", notification); + PolicyEngineConstants.getManager().deliver("POLICY-CL-MGT", notification); // // Get rid of the timer // @@ -1399,7 +1399,7 @@ rule "EVENT.MANAGER.TIMEOUT" // // Let interested parties know // - PolicyEngine.manager.deliver("POLICY-CL-MGT", notification); + PolicyEngineConstants.getManager().deliver("POLICY-CL-MGT", notification); } // // Retract the event @@ -1525,10 +1525,10 @@ rule "SDNR.RESPONSE" } else { notification.setNotification(ControlLoopNotificationType.OPERATION_FAILURE); } - PolicyEngine.manager.deliver("POLICY-CL-MGT", notification); + PolicyEngineConstants.getManager().deliver("POLICY-CL-MGT", notification); ControlLoopResponse clResponse = $operation.getControlLoopResponse($response, $event); - PolicyEngine.manager.deliver("DCAE_CL_RSP", clResponse); + PolicyEngineConstants.getManager().deliver("DCAE_CL_RSP", clResponse); // // Ensure the operation is complete // diff --git a/controlloop/templates/template.demo/src/test/java/org/onap/policy/template/demo/CcvpnBwControlLoopTest.java b/controlloop/templates/template.demo/src/test/java/org/onap/policy/template/demo/CcvpnBwControlLoopTest.java index 42742b261..bf81c2d19 100644 --- a/controlloop/templates/template.demo/src/test/java/org/onap/policy/template/demo/CcvpnBwControlLoopTest.java +++ b/controlloop/templates/template.demo/src/test/java/org/onap/policy/template/demo/CcvpnBwControlLoopTest.java @@ -25,120 +25,35 @@ import static org.junit.Assert.assertTrue; import static org.junit.Assert.fail; import java.io.IOException; -import java.net.URLEncoder; -import java.nio.charset.StandardCharsets; import java.time.Instant; import java.util.HashMap; -import java.util.List; -import java.util.Properties; import java.util.UUID; -import org.junit.AfterClass; import org.junit.BeforeClass; import org.junit.Test; -import org.kie.api.runtime.KieSession; -import org.kie.api.runtime.rule.FactHandle; import org.onap.policy.common.endpoints.event.comm.Topic.CommInfrastructure; -import org.onap.policy.common.endpoints.event.comm.TopicEndpointManager; import org.onap.policy.common.endpoints.event.comm.TopicListener; import org.onap.policy.common.endpoints.event.comm.TopicSink; -import org.onap.policy.common.endpoints.http.server.HttpServletServerFactoryInstance; -import org.onap.policy.common.endpoints.properties.PolicyEndPointProperties; import org.onap.policy.controlloop.ControlLoopEventStatus; import org.onap.policy.controlloop.ControlLoopNotificationType; import org.onap.policy.controlloop.ControlLoopTargetType; import org.onap.policy.controlloop.VirtualControlLoopEvent; import org.onap.policy.controlloop.VirtualControlLoopNotification; import org.onap.policy.controlloop.policy.ControlLoopPolicy; -import org.onap.policy.drools.protocol.coders.EventProtocolCoder; -import org.onap.policy.drools.protocol.coders.EventProtocolParams; -import org.onap.policy.drools.protocol.coders.JsonProtocolFilter; -import org.onap.policy.drools.system.PolicyController; -import org.onap.policy.drools.system.PolicyEngine; -import org.onap.policy.drools.utils.logging.LoggerUtil; import org.onap.policy.sdnc.SdncRequest; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -public class CcvpnBwControlLoopTest implements TopicListener { - - private static final Logger logger = LoggerFactory.getLogger(CcvpnBwControlLoopTest.class); - - private static List noopTopics; - - private static KieSession kieSession; - private static SupportUtil.Pair pair; - - static { - /* Set environment properties */ - SupportUtil.setAaiProps(); - SupportUtil.setSdncProps(); - SupportUtil.setGuardProps(); - LoggerUtil.setLevel(LoggerUtil.ROOT_LOGGER, "INFO"); - } +public class CcvpnBwControlLoopTest extends ControlLoopBase implements TopicListener { /** * Setup the simulator. */ @BeforeClass - public static void setUpSimulator() { - PolicyEngine.manager.configure(new Properties()); - assertTrue(PolicyEngine.manager.start()); - Properties noopSinkProperties = new Properties(); - noopSinkProperties.put(PolicyEndPointProperties.PROPERTY_NOOP_SINK_TOPICS, "POLICY-CL-MGT"); - noopSinkProperties.put("noop.sink.topics.POLICY-CL-MGT.events", - "org.onap.policy.controlloop.VirtualControlLoopNotification"); - noopSinkProperties.put("noop.sink.topics.POLICY-CL-MGT.events.custom.gson", - "org.onap.policy.controlloop.util.Serialization,gsonPretty"); - noopTopics = TopicEndpointManager.getManager().addTopicSinks(noopSinkProperties); - - EventProtocolCoder.manager.addEncoder(EventProtocolParams.builder() - .groupId("junit.groupId") - .artifactId("junit.artifactId") - .topic("POLICY-CL-MGT") - .eventClass("org.onap.policy.controlloop.VirtualControlLoopNotification") - .protocolFilter(new JsonProtocolFilter()) - .modelClassLoaderHash(1111)); - - try { - SupportUtil.buildAaiSim(); - SupportUtil.buildSdncSim(); - SupportUtil.buildGuardSim(); - } catch (Exception e) { - fail(e.getMessage()); - } - - /* - * - * Start the kie session - */ - try { - kieSession = startSession( - "../archetype-cl-amsterdam/src/main/resources/archetype-resources/" - + "src/main/resources/__closedLoopControlName__.drl", - "src/test/resources/yaml/policy_ControlLoop_CCVPN_BW.yaml", "type=operational", - "BandwidthOnDemand", "2.0.0"); - } catch (IOException e) { - e.printStackTrace(); - logger.debug("Could not create kieSession"); - fail("Could not create kieSession"); - } - } - - /** - * Tear down the simulator. - */ - @AfterClass - public static void tearDownSimulator() { - - /* - * Gracefully shut down the kie session - */ - kieSession.dispose(); - - PolicyEngine.manager.stop(); - HttpServletServerFactoryInstance.getServerFactory().destroy(); - PolicyController.factory.shutdown(); - TopicEndpointManager.getManager().shutdown(); + public static void setUpBeforeClass() { + ControlLoopBase.setUpBeforeClass( + "../archetype-cl-amsterdam/src/main/resources/archetype-resources/" + + "src/main/resources/__closedLoopControlName__.drl", + "src/test/resources/yaml/policy_ControlLoop_CCVPN_BW.yaml", + "type=operational", + "BandwidthOnDemand", "2.0.0"); } @Test @@ -221,49 +136,6 @@ public class CcvpnBwControlLoopTest implements TopicListener { dumpFacts(kieSession); } - /** - * This method will start a kie session and instantiate the Policy Engine. - * - * @param droolsTemplate the DRL rules file - * @param yamlFile the yaml file containing the policies - * @param policyScope scope for policy - * @param policyName name of the policy - * @param policyVersion version of the policy - * @return the kieSession to be used to insert facts - * @throws IOException IO Exception - */ - private static KieSession startSession(String droolsTemplate, String yamlFile, String policyScope, - String policyName, String policyVersion) throws IOException { - - /* - * Load policies from yaml - */ - pair = SupportUtil.loadYaml(yamlFile); - assertNotNull(pair); - assertNotNull(pair.first); - assertNotNull(pair.first.getControlLoop()); - assertNotNull(pair.first.getControlLoop().getControlLoopName()); - assertTrue(pair.first.getControlLoop().getControlLoopName().length() > 0); - - /* - * Construct a kie session - */ - final KieSession kieSession = SupportUtil.buildContainer(droolsTemplate, - pair.first.getControlLoop().getControlLoopName(), - policyScope, policyName, policyVersion, URLEncoder.encode(pair.second, - StandardCharsets.UTF_8.name())); - - /* - * Retrieve the Policy Engine - */ - - logger.debug("============"); - logger.debug(URLEncoder.encode(pair.second, StandardCharsets.UTF_8.name())); - logger.debug("============"); - - return kieSession; - } - /* * (non-Javadoc) * @@ -359,16 +231,4 @@ public class CcvpnBwControlLoopTest implements TopicListener { event.setClosedLoopEventStatus(ControlLoopEventStatus.ONSET); kieSession.insert(event); } - - /** - * Dumps the kie session facts. - * - * @param kieSession input session - */ - public static void dumpFacts(KieSession kieSession) { - logger.debug("Fact Count: " + kieSession.getFactCount()); - for (FactHandle handle : kieSession.getFactHandles()) { - logger.debug("FACT: " + handle); - } - } } diff --git a/controlloop/templates/template.demo/src/test/java/org/onap/policy/template/demo/CcvpnControlLoopTest.java b/controlloop/templates/template.demo/src/test/java/org/onap/policy/template/demo/CcvpnControlLoopTest.java index 2c2b5d8fb..8fda5b4df 100644 --- a/controlloop/templates/template.demo/src/test/java/org/onap/policy/template/demo/CcvpnControlLoopTest.java +++ b/controlloop/templates/template.demo/src/test/java/org/onap/policy/template/demo/CcvpnControlLoopTest.java @@ -25,119 +25,36 @@ import static org.junit.Assert.assertTrue; import static org.junit.Assert.fail; import java.io.IOException; -import java.net.URLEncoder; import java.time.Instant; import java.util.HashMap; -import java.util.List; -import java.util.Properties; import java.util.UUID; -import org.junit.AfterClass; import org.junit.BeforeClass; import org.junit.Test; -import org.kie.api.runtime.KieSession; -import org.kie.api.runtime.rule.FactHandle; import org.onap.policy.common.endpoints.event.comm.Topic.CommInfrastructure; -import org.onap.policy.common.endpoints.event.comm.TopicEndpointManager; import org.onap.policy.common.endpoints.event.comm.TopicListener; import org.onap.policy.common.endpoints.event.comm.TopicSink; -import org.onap.policy.common.endpoints.http.server.HttpServletServerFactoryInstance; -import org.onap.policy.common.endpoints.properties.PolicyEndPointProperties; import org.onap.policy.controlloop.ControlLoopEventStatus; import org.onap.policy.controlloop.ControlLoopNotificationType; import org.onap.policy.controlloop.ControlLoopTargetType; import org.onap.policy.controlloop.VirtualControlLoopEvent; import org.onap.policy.controlloop.VirtualControlLoopNotification; import org.onap.policy.controlloop.policy.ControlLoopPolicy; -import org.onap.policy.drools.protocol.coders.EventProtocolCoder; -import org.onap.policy.drools.protocol.coders.EventProtocolParams; -import org.onap.policy.drools.protocol.coders.JsonProtocolFilter; -import org.onap.policy.drools.system.PolicyController; -import org.onap.policy.drools.system.PolicyEngine; -import org.onap.policy.drools.utils.logging.LoggerUtil; import org.onap.policy.sdnc.SdncRequest; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -public class CcvpnControlLoopTest implements TopicListener { - - private static final Logger logger = LoggerFactory.getLogger(CcvpnControlLoopTest.class); - - private static List noopTopics; - - private static KieSession kieSession; - private static SupportUtil.Pair pair; - - static { - /* Set environment properties */ - SupportUtil.setAaiProps(); - SupportUtil.setSdncProps(); - SupportUtil.setGuardProps(); - LoggerUtil.setLevel(LoggerUtil.ROOT_LOGGER, "INFO"); - } +public class CcvpnControlLoopTest extends ControlLoopBase implements TopicListener { /** * Setup the simulator. */ @BeforeClass - public static void setUpSimulator() { - PolicyEngine.manager.configure(new Properties()); - assertTrue(PolicyEngine.manager.start()); - Properties noopSinkProperties = new Properties(); - noopSinkProperties.put(PolicyEndPointProperties.PROPERTY_NOOP_SINK_TOPICS, "POLICY-CL-MGT"); - noopSinkProperties.put("noop.sink.topics.POLICY-CL-MGT.events", - "org.onap.policy.controlloop.VirtualControlLoopNotification"); - noopSinkProperties.put("noop.sink.topics.POLICY-CL-MGT.events.custom.gson", - "org.onap.policy.controlloop.util.Serialization,gsonPretty"); - noopTopics = TopicEndpointManager.getManager().addTopicSinks(noopSinkProperties); - - EventProtocolCoder.manager.addEncoder(EventProtocolParams.builder() - .groupId("junit.groupId") - .artifactId("junit.artifactId") - .topic("POLICY-CL-MGT") - .eventClass("org.onap.policy.controlloop.VirtualControlLoopNotification") - .protocolFilter(new JsonProtocolFilter()) - .modelClassLoaderHash(1111)); - - try { - SupportUtil.buildAaiSim(); - SupportUtil.buildSdncSim(); - SupportUtil.buildGuardSim(); - } catch (Exception e) { - fail(e.getMessage()); - } - - /* - * - * Start the kie session - */ - try { - kieSession = startSession( - "../archetype-cl-amsterdam/src/main/resources/archetype-resources/" - + "src/main/resources/__closedLoopControlName__.drl", - "src/test/resources/yaml/policy_ControlLoop_CCVPN.yaml", "type=operational", "Connectivity Reroute", - "2.0.0"); - } catch (IOException e) { - e.printStackTrace(); - logger.debug("Could not create kieSession"); - fail("Could not create kieSession"); - } - } - - /** - * Tear down the simulator. - */ - @AfterClass - public static void tearDownSimulator() { - - /* - * Gracefully shut down the kie session - */ - kieSession.dispose(); - - PolicyEngine.manager.stop(); - HttpServletServerFactoryInstance.getServerFactory().destroy(); - PolicyController.factory.shutdown(); - TopicEndpointManager.getManager().shutdown(); + public static void setUpBeforeClass() { + ControlLoopBase.setUpBeforeClass( + "../archetype-cl-amsterdam/src/main/resources/archetype-resources/" + + "src/main/resources/__closedLoopControlName__.drl", + "src/test/resources/yaml/policy_ControlLoop_CCVPN.yaml", + "type=operational", + "Connectivity Reroute", + "2.0.0"); } @Test @@ -220,48 +137,6 @@ public class CcvpnControlLoopTest implements TopicListener { dumpFacts(kieSession); } - /** - * This method will start a kie session and instantiate the Policy Engine. - * - * @param droolsTemplate the DRL rules file - * @param yamlFile the yaml file containing the policies - * @param policyScope scope for policy - * @param policyName name of the policy - * @param policyVersion version of the policy - * @return the kieSession to be used to insert facts - * @throws IOException IO Exception - */ - private static KieSession startSession(String droolsTemplate, String yamlFile, String policyScope, - String policyName, String policyVersion) throws IOException { - - /* - * Load policies from yaml - */ - pair = SupportUtil.loadYaml(yamlFile); - assertNotNull(pair); - assertNotNull(pair.first); - assertNotNull(pair.first.getControlLoop()); - assertNotNull(pair.first.getControlLoop().getControlLoopName()); - assertTrue(pair.first.getControlLoop().getControlLoopName().length() > 0); - - /* - * Construct a kie session - */ - final KieSession kieSession = SupportUtil.buildContainer(droolsTemplate, - pair.first.getControlLoop().getControlLoopName(), - policyScope, policyName, policyVersion, URLEncoder.encode(pair.second, "UTF-8")); - - /* - * Retrieve the Policy Engine - */ - - logger.debug("============"); - logger.debug(URLEncoder.encode(pair.second, "UTF-8")); - logger.debug("============"); - - return kieSession; - } - /* * (non-Javadoc) * @@ -353,17 +228,4 @@ public class CcvpnControlLoopTest implements TopicListener { event.setClosedLoopEventStatus(ControlLoopEventStatus.ONSET); kieSession.insert(event); } - - /** - * Dumps the kie session facts. - * - * @param kieSession input session - */ - public static void dumpFacts(KieSession kieSession) { - logger.debug("Fact Count: " + kieSession.getFactCount()); - for (FactHandle handle : kieSession.getFactHandles()) { - logger.debug("FACT: " + handle); - } - } } - diff --git a/controlloop/templates/template.demo/src/test/java/org/onap/policy/template/demo/ControlLoopBase.java b/controlloop/templates/template.demo/src/test/java/org/onap/policy/template/demo/ControlLoopBase.java new file mode 100644 index 000000000..ab6ec5a3a --- /dev/null +++ b/controlloop/templates/template.demo/src/test/java/org/onap/policy/template/demo/ControlLoopBase.java @@ -0,0 +1,229 @@ +/*- + * ============LICENSE_START======================================================= + * demo + * ================================================================================ + * Copyright (C) 2019 AT&T Intellectual Property. All rights reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.policy.template.demo; + +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertTrue; +import static org.junit.Assert.fail; + +import java.io.IOException; +import java.net.URLEncoder; +import java.util.List; +import java.util.Properties; +import java.util.UUID; +import org.junit.AfterClass; +import org.kie.api.runtime.KieSession; +import org.kie.api.runtime.rule.FactHandle; +import org.onap.policy.common.endpoints.event.comm.TopicEndpointManager; +import org.onap.policy.common.endpoints.event.comm.TopicSink; +import org.onap.policy.common.endpoints.http.server.HttpServletServerFactoryInstance; +import org.onap.policy.common.endpoints.properties.PolicyEndPointProperties; +import org.onap.policy.controlloop.policy.ControlLoopPolicy; +import org.onap.policy.drools.protocol.coders.EventProtocolCoderConstants; +import org.onap.policy.drools.protocol.coders.EventProtocolParams; +import org.onap.policy.drools.protocol.coders.JsonProtocolFilter; +import org.onap.policy.drools.system.PolicyControllerConstants; +import org.onap.policy.drools.system.PolicyEngineConstants; +import org.onap.policy.drools.utils.logging.LoggerUtil; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * Common super class used by various Control Loop test classes. It manages the simulators + * and the kie session. + */ +public class ControlLoopBase { + + private static final String JUNIT_ARTIFACT_ID = "junit.artifactId"; + + private static final String JUNIT_GROUP_ID = "junit.groupId"; + + protected static final Logger logger = LoggerFactory.getLogger(ControlLoopBase.class); + + protected static List noopTopics; + + protected static KieSession kieSession; + protected static SupportUtil.Pair pair; + + protected UUID requestId; + + /** + * Starts the simulator and the kie session. + * + * @param droolsTemplate the DRL rules file + * @param yamlFile the yaml file containing the policies + * @param policyScope scope for policy + * @param policyName name of the policy + * @param policyVersion version of the policy + */ + public static void setUpBeforeClass(String droolsTemplate, String yamlFile, String policyScope, + String policyName, String policyVersion) { + + /* Set environment properties */ + SupportUtil.setAaiProps(); + SupportUtil.setGuardProps(); + SupportUtil.setSdncProps(); + SupportUtil.setSoProps(); + SupportUtil.setVfcProps(); + SupportUtil.setPuProp(); + + LoggerUtil.setLevel(LoggerUtil.ROOT_LOGGER, "INFO"); + + PolicyEngineConstants.getManager().configure(new Properties()); + assertTrue(PolicyEngineConstants.getManager().start()); + Properties noopSinkProperties = new Properties(); + noopSinkProperties.put(PolicyEndPointProperties.PROPERTY_NOOP_SINK_TOPICS, + "APPC-LCM-READ,APPC-CL,SDNR-CL,POLICY-CL-MGT"); + noopSinkProperties.put("noop.sink.topics.APPC-LCM-READ.events", "org.onap.policy.appclcm.LcmRequestWrapper"); + noopSinkProperties.put("noop.sink.topics.APPC-LCM-READ.events.custom.gson", + "org.onap.policy.appclcm.util.Serialization,gson"); + noopSinkProperties.put("noop.sink.topics.APPC-CL.events", "org.onap.policy.appc.Response"); + noopSinkProperties.put("noop.sink.topics.APPC-CL.events.custom.gson", + "org.onap.policy.appc.util.Serialization,gsonPretty"); + noopSinkProperties.put("noop.sink.topics.POLICY-CL-MGT.events", + "org.onap.policy.controlloop.VirtualControlLoopNotification"); + noopSinkProperties.put("noop.sink.topics.POLICY-CL-MGT.events.custom.gson", + "org.onap.policy.controlloop.util.Serialization,gsonPretty"); + noopTopics = TopicEndpointManager.getManager().addTopicSinks(noopSinkProperties); + + EventProtocolCoderConstants.getManager().addEncoder(EventProtocolParams.builder() + .groupId(JUNIT_GROUP_ID) + .artifactId(JUNIT_ARTIFACT_ID) + .topic("POLICY-CL-MGT") + .eventClass("org.onap.policy.controlloop.VirtualControlLoopNotification") + .protocolFilter(new JsonProtocolFilter()) + .modelClassLoaderHash(1111)); + EventProtocolCoderConstants.getManager().addEncoder(EventProtocolParams.builder() + .groupId(JUNIT_GROUP_ID) + .artifactId(JUNIT_ARTIFACT_ID) + .topic("APPC-LCM-READ") + .eventClass("org.onap.policy.appclcm.LcmRequestWrapper") + .protocolFilter(new JsonProtocolFilter()) + .modelClassLoaderHash(1111)); + EventProtocolCoderConstants.getManager().addEncoder(EventProtocolParams.builder() + .groupId(JUNIT_GROUP_ID) + .artifactId(JUNIT_ARTIFACT_ID) + .topic("APPC-CL") + .eventClass("org.onap.policy.appc.Request") + .protocolFilter(new JsonProtocolFilter()) + .modelClassLoaderHash(1111)); + EventProtocolCoderConstants.getManager().addEncoder(EventProtocolParams.builder() + .groupId(JUNIT_GROUP_ID) + .artifactId(JUNIT_ARTIFACT_ID) + .topic("SDNR-CL") + .eventClass("org.onap.policy.sdnr.PciRequestWrapper") + .protocolFilter(new JsonProtocolFilter()) + .modelClassLoaderHash(1111)); + try { + SupportUtil.buildAaiSim(); + SupportUtil.buildSdncSim(); + SupportUtil.buildSoSim(); + SupportUtil.buildVfcSim(); + SupportUtil.buildGuardSim(); + } catch (Exception e) { + fail(e.getMessage()); + } + + + /* + * Start the kie session + */ + try { + kieSession = startSession(droolsTemplate, yamlFile, policyScope, + policyName, policyVersion); + } catch (IOException e) { + e.printStackTrace(); + logger.debug("Could not create kieSession"); + fail("Could not create kieSession"); + } + } + + /** + * Stops the simulators and the kie session. + */ + @AfterClass + public static void tearDownAfterClass() { + /* + * Gracefully shut down the kie session + */ + kieSession.dispose(); + + PolicyEngineConstants.getManager().stop(); + HttpServletServerFactoryInstance.getServerFactory().destroy(); + PolicyControllerConstants.getFactory().shutdown(); + TopicEndpointManager.getManager().shutdown(); + } + + /** + * This method will start a kie session and instantiate the Policy Engine. + * + * @param droolsTemplate the DRL rules file + * @param yamlFile the yaml file containing the policies + * @param policyScope scope for policy + * @param policyName name of the policy + * @param policyVersion version of the policy + * @return the kieSession to be used to insert facts + * @throws IOException IO exception + */ + private static KieSession startSession(String droolsTemplate, String yamlFile, String policyScope, + String policyName, String policyVersion) throws IOException { + + /* + * Load policies from yaml + */ + pair = SupportUtil.loadYaml(yamlFile); + assertNotNull(pair); + assertNotNull(pair.first); + assertNotNull(pair.first.getControlLoop()); + assertNotNull(pair.first.getControlLoop().getControlLoopName()); + assertTrue(pair.first.getControlLoop().getControlLoopName().length() > 0); + + /* + * Construct a kie session + */ + final KieSession kieSession = SupportUtil.buildContainer(droolsTemplate, + pair.first.getControlLoop().getControlLoopName(), + policyScope, policyName, policyVersion, URLEncoder.encode(pair.second, "UTF-8")); + + /* + * Retrieve the Policy Engine + */ + + logger.debug("============"); + logger.debug(URLEncoder.encode(pair.second, "UTF-8")); + logger.debug("============"); + + return kieSession; + } + + /** + * This method will dump all the facts in the working memory. + * + * @param kieSession the session containing the facts + */ + public void dumpFacts(KieSession kieSession) { + logger.debug("Fact Count: {}", kieSession.getFactCount()); + for (FactHandle handle : kieSession.getFactHandles()) { + logger.debug("FACT: {}", handle); + } + } + +} diff --git a/controlloop/templates/template.demo/src/test/java/org/onap/policy/template/demo/ControlLoopEventCleanupTest.java b/controlloop/templates/template.demo/src/test/java/org/onap/policy/template/demo/ControlLoopEventCleanupTest.java index 928bcb80c..08215e958 100644 --- a/controlloop/templates/template.demo/src/test/java/org/onap/policy/template/demo/ControlLoopEventCleanupTest.java +++ b/controlloop/templates/template.demo/src/test/java/org/onap/policy/template/demo/ControlLoopEventCleanupTest.java @@ -46,11 +46,11 @@ import org.onap.policy.controlloop.ControlLoopEventStatus; import org.onap.policy.controlloop.VirtualControlLoopEvent; import org.onap.policy.controlloop.eventmanager.ControlLoopEventManager; import org.onap.policy.controlloop.policy.ControlLoopPolicy; -import org.onap.policy.drools.protocol.coders.EventProtocolCoder; +import org.onap.policy.drools.protocol.coders.EventProtocolCoderConstants; import org.onap.policy.drools.protocol.coders.EventProtocolParams; import org.onap.policy.drools.protocol.coders.JsonProtocolFilter; -import org.onap.policy.drools.system.PolicyController; -import org.onap.policy.drools.system.PolicyEngine; +import org.onap.policy.drools.system.PolicyControllerConstants; +import org.onap.policy.drools.system.PolicyEngineConstants; import org.onap.policy.drools.utils.logging.LoggerUtil; import org.onap.policy.template.demo.SupportUtil.Pair; import org.slf4j.Logger; @@ -107,13 +107,13 @@ public class ControlLoopEventCleanupTest { public static void setUpSimulator() { LoggerUtil.setLevel(LoggerUtil.ROOT_LOGGER, "INFO"); - saveGuardFlag = PolicyEngine.manager.getEnvironmentProperty(GUARD_DISABLED); - PolicyEngine.manager.getEnvironment().setProperty(GUARD_DISABLED, "true"); + saveGuardFlag = PolicyEngineConstants.getManager().getEnvironmentProperty(GUARD_DISABLED); + PolicyEngineConstants.getManager().getEnvironment().setProperty(GUARD_DISABLED, "true"); SupportUtil.setAaiProps(); - PolicyEngine.manager.configure(new Properties()); - assertTrue(PolicyEngine.manager.start()); + PolicyEngineConstants.getManager().configure(new Properties()); + assertTrue(PolicyEngineConstants.getManager().start()); Properties noopSinkProperties = new Properties(); noopSinkProperties.put(PolicyEndPointProperties.PROPERTY_NOOP_SINK_TOPICS, "APPC-CL,POLICY-CL-MGT"); noopSinkProperties.put("noop.sink.topics.APPC-CL.events", "org.onap.policy.appc.Response"); @@ -125,14 +125,14 @@ public class ControlLoopEventCleanupTest { "org.onap.policy.controlloop.util.Serialization,gsonPretty"); final List noopTopics = TopicEndpointManager.getManager().addTopicSinks(noopSinkProperties); - EventProtocolCoder.manager.addEncoder(EventProtocolParams.builder() + EventProtocolCoderConstants.getManager().addEncoder(EventProtocolParams.builder() .groupId("junit.groupId") .artifactId("junit.artifactId") .topic("POLICY-CL-MGT") .eventClass("org.onap.policy.controlloop.VirtualControlLoopNotification") .protocolFilter(new JsonProtocolFilter()) .modelClassLoaderHash(1111)); - EventProtocolCoder.manager.addEncoder(EventProtocolParams.builder() + EventProtocolCoderConstants.getManager().addEncoder(EventProtocolParams.builder() .groupId("junit.groupId") .artifactId("junit.artifactId") .topic("APPC-CL") @@ -176,16 +176,16 @@ public class ControlLoopEventCleanupTest { public static void tearDown() { kieSession.dispose(); - PolicyEngine.manager.stop(); + PolicyEngineConstants.getManager().stop(); HttpServletServerFactoryInstance.getServerFactory().destroy(); - PolicyController.factory.shutdown(); + PolicyControllerConstants.getFactory().shutdown(); TopicEndpointManager.getManager().shutdown(); if (saveGuardFlag == null) { - PolicyEngine.manager.getEnvironment().remove(GUARD_DISABLED); + PolicyEngineConstants.getManager().getEnvironment().remove(GUARD_DISABLED); } else { - PolicyEngine.manager.getEnvironment().setProperty(GUARD_DISABLED, saveGuardFlag); + PolicyEngineConstants.getManager().getEnvironment().setProperty(GUARD_DISABLED, saveGuardFlag); } } diff --git a/controlloop/templates/template.demo/src/test/java/org/onap/policy/template/demo/ControlLoopFailureTest.java b/controlloop/templates/template.demo/src/test/java/org/onap/policy/template/demo/ControlLoopFailureTest.java index 6dbe17ee2..bc5a9828b 100644 --- a/controlloop/templates/template.demo/src/test/java/org/onap/policy/template/demo/ControlLoopFailureTest.java +++ b/controlloop/templates/template.demo/src/test/java/org/onap/policy/template/demo/ControlLoopFailureTest.java @@ -25,131 +25,42 @@ import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertTrue; import static org.junit.Assert.fail; -import java.io.IOException; -import java.net.URLEncoder; import java.time.Instant; import java.util.HashMap; -import java.util.List; -import java.util.Properties; import java.util.UUID; -import org.junit.AfterClass; import org.junit.BeforeClass; import org.junit.Test; -import org.kie.api.runtime.KieSession; -import org.kie.api.runtime.rule.FactHandle; import org.onap.policy.appclcm.LcmRequest; import org.onap.policy.appclcm.LcmRequestWrapper; import org.onap.policy.appclcm.LcmResponse; import org.onap.policy.appclcm.LcmResponseWrapper; import org.onap.policy.common.endpoints.event.comm.Topic.CommInfrastructure; -import org.onap.policy.common.endpoints.event.comm.TopicEndpointManager; import org.onap.policy.common.endpoints.event.comm.TopicListener; import org.onap.policy.common.endpoints.event.comm.TopicSink; -import org.onap.policy.common.endpoints.http.server.HttpServletServerFactoryInstance; -import org.onap.policy.common.endpoints.properties.PolicyEndPointProperties; import org.onap.policy.controlloop.ControlLoopEventStatus; import org.onap.policy.controlloop.ControlLoopNotificationType; import org.onap.policy.controlloop.VirtualControlLoopEvent; import org.onap.policy.controlloop.VirtualControlLoopNotification; import org.onap.policy.controlloop.policy.ControlLoopPolicy; -import org.onap.policy.drools.protocol.coders.EventProtocolCoder; -import org.onap.policy.drools.protocol.coders.EventProtocolParams; -import org.onap.policy.drools.protocol.coders.JsonProtocolFilter; -import org.onap.policy.drools.system.PolicyController; -import org.onap.policy.drools.system.PolicyEngine; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -public class ControlLoopFailureTest implements TopicListener { +public class ControlLoopFailureTest extends ControlLoopBase implements TopicListener { - private static final Logger logger = LoggerFactory.getLogger(ControlLoopFailureTest.class); - - private static List noopTopics; - - private static KieSession kieSession; - private static SupportUtil.Pair pair; - private UUID requestId; private UUID requestId2; private UUID requestId3; private int eventCount; - static { - /* Set environment properties */ - SupportUtil.setAaiProps(); - SupportUtil.setGuardProps(); - SupportUtil.setPuProp(); - } - /** * Setup simulator. */ @BeforeClass - public static void setUpSimulator() { - PolicyEngine.manager.configure(new Properties()); - assertTrue(PolicyEngine.manager.start()); - Properties noopSinkProperties = new Properties(); - noopSinkProperties.put(PolicyEndPointProperties.PROPERTY_NOOP_SINK_TOPICS, "APPC-LCM-READ,POLICY-CL-MGT"); - noopSinkProperties.put("noop.sink.topics.APPC-LCM-READ.events", "org.onap.policy.appclcm.LcmRequestWrapper"); - noopSinkProperties.put("noop.sink.topics.APPC-LCM-READ.events.custom.gson", - "org.onap.policy.appclcm.util.Serialization,gson"); - noopSinkProperties.put("noop.sink.topics.POLICY-CL-MGT.events", - "org.onap.policy.controlloop.VirtualControlLoopNotification"); - noopSinkProperties.put("noop.sink.topics.POLICY-CL-MGT.events.custom.gson", - "org.onap.policy.controlloop.util.Serialization,gsonPretty"); - noopTopics = TopicEndpointManager.getManager().addTopicSinks(noopSinkProperties); - - EventProtocolCoder.manager.addEncoder(EventProtocolParams.builder() - .groupId("junit.groupId") - .artifactId("junit.artifactId") - .topic("POLICY-CL-MGT") - .eventClass("org.onap.policy.controlloop.VirtualControlLoopNotification") - .protocolFilter(new JsonProtocolFilter()) - .modelClassLoaderHash(1111)); - EventProtocolCoder.manager.addEncoder(EventProtocolParams.builder() - .groupId("junit.groupId") - .artifactId("junit.artifactId") - .topic("APPC-LCM-READ") - .eventClass("org.onap.policy.appclcm.LcmRequestWrapper") - .protocolFilter(new JsonProtocolFilter()) - .modelClassLoaderHash(1111)); - try { - SupportUtil.buildAaiSim(); - SupportUtil.buildGuardSim(); - } catch (Exception e) { - fail(e.getMessage()); - } - - /* - * Start the kie session - */ - try { - kieSession = startSession( - "../archetype-cl-amsterdam/src/main/resources/archetype-resources" - + "/src/main/resources/__closedLoopControlName__.drl", - "src/test/resources/yaml/policy_ControlLoop_vCPE.yaml", - "service=ServiceDemo;resource=Res1Demo;type=operational", "CL_vCPE", - "org.onap.closed_loop.ServiceDemo:VNFS:1.0.0"); - } catch (IOException e) { - e.printStackTrace(); - logger.debug("Could not create kieSession"); - fail("Could not create kieSession"); - } - } - - /** - * Tear down simulator. - */ - @AfterClass - public static void tearDownSimulator() { - /* - * Gracefully shut down the kie session - */ - kieSession.dispose(); - - PolicyEngine.manager.stop(); - HttpServletServerFactoryInstance.getServerFactory().destroy(); - PolicyController.factory.shutdown(); - TopicEndpointManager.getManager().shutdown(); + public static void setUpBeforeClass() { + ControlLoopBase.setUpBeforeClass( + "../archetype-cl-amsterdam/src/main/resources/archetype-resources" + + "/src/main/resources/__closedLoopControlName__.drl", + "src/test/resources/yaml/policy_ControlLoop_vCPE.yaml", + "service=ServiceDemo;resource=Res1Demo;type=operational", + "CL_vCPE", + "org.onap.closed_loop.ServiceDemo:VNFS:1.0.0"); } /** @@ -217,49 +128,6 @@ public class ControlLoopFailureTest implements TopicListener { * Print what's left in memory */ dumpFacts(kieSession); - - } - - /** - * This method will start a kie session and instantiate the Policy Engine. - * - * @param droolsTemplate the DRL rules file - * @param yamlFile the yaml file containing the policies - * @param policyScope scope for policy - * @param policyName name of the policy - * @param policyVersion version of the policy - * @return the kieSession to be used to insert facts - * @throws IOException throws IO exception - */ - private static KieSession startSession(String droolsTemplate, String yamlFile, String policyScope, - String policyName, String policyVersion) throws IOException { - - /* - * Load policies from yaml - */ - pair = SupportUtil.loadYaml(yamlFile); - assertNotNull(pair); - assertNotNull(pair.first); - assertNotNull(pair.first.getControlLoop()); - assertNotNull(pair.first.getControlLoop().getControlLoopName()); - assertTrue(pair.first.getControlLoop().getControlLoopName().length() > 0); - - /* - * Construct a kie session - */ - final KieSession kieSession = SupportUtil.buildContainer(droolsTemplate, - pair.first.getControlLoop().getControlLoopName(), - policyScope, policyName, policyVersion, URLEncoder.encode(pair.second, "UTF-8")); - - /* - * Retrieve the Policy Engine - */ - - logger.debug("============"); - logger.debug(URLEncoder.encode(pair.second, "UTF-8")); - logger.debug("============"); - - return kieSession; } /* @@ -387,18 +255,4 @@ public class ControlLoopFailureTest implements TopicListener { event.setClosedLoopEventStatus(status); kieSession.insert(event); } - - /** - * This method will dump all the facts in the working memory. - * - * @param kieSession the session containing the facts - */ - public void dumpFacts(KieSession kieSession) { - logger.debug("Fact Count: {}", kieSession.getFactCount()); - for (FactHandle handle : kieSession.getFactHandles()) { - logger.debug("FACT: {}", handle); - } - } - } - diff --git a/controlloop/templates/template.demo/src/test/java/org/onap/policy/template/demo/SupportUtil.java b/controlloop/templates/template.demo/src/test/java/org/onap/policy/template/demo/SupportUtil.java index 493ab9b2c..a4e8bef65 100644 --- a/controlloop/templates/template.demo/src/test/java/org/onap/policy/template/demo/SupportUtil.java +++ b/controlloop/templates/template.demo/src/test/java/org/onap/policy/template/demo/SupportUtil.java @@ -46,7 +46,7 @@ import org.kie.api.runtime.KieSession; import org.onap.policy.common.endpoints.http.server.HttpServletServer; import org.onap.policy.controlloop.policy.ControlLoopPolicy; import org.onap.policy.controlloop.policy.guard.ControlLoopGuard; -import org.onap.policy.drools.system.PolicyEngine; +import org.onap.policy.drools.system.PolicyEngineConstants; import org.onap.policy.guard.PolicyGuardYamlToXacml; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -289,27 +289,27 @@ public final class SupportUtil { * Set the A&AI properties. */ public static void setAaiProps() { - PolicyEngine.manager.setEnvironmentProperty("aai.url", "http://localhost:6666"); - PolicyEngine.manager.setEnvironmentProperty("aai.username", "AAI"); - PolicyEngine.manager.setEnvironmentProperty("aai.password", "AAI"); + PolicyEngineConstants.getManager().setEnvironmentProperty("aai.url", "http://localhost:6666"); + PolicyEngineConstants.getManager().setEnvironmentProperty("aai.username", "AAI"); + PolicyEngineConstants.getManager().setEnvironmentProperty("aai.password", "AAI"); } /** * Set the SO properties. */ public static void setSoProps() { - PolicyEngine.manager.setEnvironmentProperty("so.url", "http://localhost:6667"); - PolicyEngine.manager.setEnvironmentProperty("so.username", "SO"); - PolicyEngine.manager.setEnvironmentProperty("so.password", "SO"); + PolicyEngineConstants.getManager().setEnvironmentProperty("so.url", "http://localhost:6667"); + PolicyEngineConstants.getManager().setEnvironmentProperty("so.username", "SO"); + PolicyEngineConstants.getManager().setEnvironmentProperty("so.password", "SO"); } /** * Set the SDNC properties. */ public static void setSdncProps() { - PolicyEngine.manager.setEnvironmentProperty("sdnc.url", "http://localhost:6670/restconf/operations"); - PolicyEngine.manager.setEnvironmentProperty("sdnc.username", "sdnc"); - PolicyEngine.manager.setEnvironmentProperty("sdnc.password", "sdnc"); + PolicyEngineConstants.getManager().setEnvironmentProperty("sdnc.url", "http://localhost:6670/restconf/operations"); + PolicyEngineConstants.getManager().setEnvironmentProperty("sdnc.username", "sdnc"); + PolicyEngineConstants.getManager().setEnvironmentProperty("sdnc.password", "sdnc"); } /** @@ -319,19 +319,21 @@ public final class SupportUtil { /* * Guard PDP-x connection Properties */ - PolicyEngine.manager.setEnvironmentProperty(org.onap.policy.guard.Util.PROP_GUARD_URL, "http://localhost:6669/policy/pdpx/v1/decision"); - PolicyEngine.manager.setEnvironmentProperty(org.onap.policy.guard.Util.PROP_GUARD_USER, "python"); - PolicyEngine.manager.setEnvironmentProperty(org.onap.policy.guard.Util.PROP_GUARD_PASS, "test"); - PolicyEngine.manager.setEnvironmentProperty(org.onap.policy.guard.Util.PROP_GUARD_DISABLED, "false"); + PolicyEngineConstants.getManager().setEnvironmentProperty(org.onap.policy.guard.Util.PROP_GUARD_URL, + "http://localhost:6669/policy/pdpx/v1/decision"); + PolicyEngineConstants.getManager().setEnvironmentProperty(org.onap.policy.guard.Util.PROP_GUARD_USER, "python"); + PolicyEngineConstants.getManager().setEnvironmentProperty(org.onap.policy.guard.Util.PROP_GUARD_PASS, "test"); + PolicyEngineConstants.getManager().setEnvironmentProperty(org.onap.policy.guard.Util.PROP_GUARD_DISABLED, + "false"); } /** * Set the VFC properties. */ public static void setVfcProps() { - PolicyEngine.manager.setEnvironmentProperty("vfc.url", "http://localhost:6668/api/nslcm/v1"); - PolicyEngine.manager.setEnvironmentProperty("vfc.username", "VFC"); - PolicyEngine.manager.setEnvironmentProperty("vfc.password", "VFC"); + PolicyEngineConstants.getManager().setEnvironmentProperty("vfc.url", "http://localhost:6668/api/nslcm/v1"); + PolicyEngineConstants.getManager().setEnvironmentProperty("vfc.username", "VFC"); + PolicyEngineConstants.getManager().setEnvironmentProperty("vfc.password", "VFC"); } /** diff --git a/controlloop/templates/template.demo/src/test/java/org/onap/policy/template/demo/VcpeControlLoopTest.java b/controlloop/templates/template.demo/src/test/java/org/onap/policy/template/demo/VcpeControlLoopTest.java index 28706fd66..1cd431f50 100644 --- a/controlloop/templates/template.demo/src/test/java/org/onap/policy/template/demo/VcpeControlLoopTest.java +++ b/controlloop/templates/template.demo/src/test/java/org/onap/policy/template/demo/VcpeControlLoopTest.java @@ -25,130 +25,39 @@ import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertTrue; import static org.junit.Assert.fail; -import java.io.IOException; -import java.net.URLEncoder; import java.time.Instant; import java.util.HashMap; -import java.util.List; -import java.util.Properties; import java.util.UUID; -import org.junit.AfterClass; import org.junit.BeforeClass; import org.junit.Test; -import org.kie.api.runtime.KieSession; -import org.kie.api.runtime.rule.FactHandle; import org.onap.policy.appclcm.LcmRequest; import org.onap.policy.appclcm.LcmRequestWrapper; import org.onap.policy.appclcm.LcmResponse; import org.onap.policy.appclcm.LcmResponseWrapper; import org.onap.policy.common.endpoints.event.comm.Topic.CommInfrastructure; -import org.onap.policy.common.endpoints.event.comm.TopicEndpointManager; import org.onap.policy.common.endpoints.event.comm.TopicListener; import org.onap.policy.common.endpoints.event.comm.TopicSink; -import org.onap.policy.common.endpoints.http.server.HttpServletServerFactoryInstance; -import org.onap.policy.common.endpoints.properties.PolicyEndPointProperties; import org.onap.policy.controlloop.ControlLoopEventStatus; import org.onap.policy.controlloop.ControlLoopNotificationType; import org.onap.policy.controlloop.ControlLoopTargetType; import org.onap.policy.controlloop.VirtualControlLoopEvent; import org.onap.policy.controlloop.VirtualControlLoopNotification; import org.onap.policy.controlloop.policy.ControlLoopPolicy; -import org.onap.policy.drools.protocol.coders.EventProtocolCoder; -import org.onap.policy.drools.protocol.coders.EventProtocolParams; -import org.onap.policy.drools.protocol.coders.JsonProtocolFilter; -import org.onap.policy.drools.system.PolicyController; -import org.onap.policy.drools.system.PolicyEngine; -import org.onap.policy.drools.utils.logging.LoggerUtil; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -public class VcpeControlLoopTest implements TopicListener { - - private static final Logger logger = LoggerFactory.getLogger(VcpeControlLoopTest.class); - - private static List noopTopics; - - private static KieSession kieSession; - private static SupportUtil.Pair pair; - private UUID requestId; - - static { - /* Set environment properties */ - SupportUtil.setAaiProps(); - SupportUtil.setGuardProps(); - SupportUtil.setPuProp(); - LoggerUtil.setLevel(LoggerUtil.ROOT_LOGGER, "INFO"); - } +public class VcpeControlLoopTest extends ControlLoopBase implements TopicListener { /** * Setup the simulator. */ @BeforeClass - public static void setUpSimulator() { - PolicyEngine.manager.configure(new Properties()); - assertTrue(PolicyEngine.manager.start()); - Properties noopSinkProperties = new Properties(); - noopSinkProperties.put(PolicyEndPointProperties.PROPERTY_NOOP_SINK_TOPICS, "APPC-LCM-READ,POLICY-CL-MGT"); - noopSinkProperties.put("noop.sink.topics.APPC-LCM-READ.events", "org.onap.policy.appclcm.LcmRequestWrapper"); - noopSinkProperties.put("noop.sink.topics.APPC-LCM-READ.events.custom.gson", - "org.onap.policy.appclcm.util.Serialization,gson"); - noopSinkProperties.put("noop.sink.topics.POLICY-CL-MGT.events", - "org.onap.policy.controlloop.VirtualControlLoopNotification"); - noopSinkProperties.put("noop.sink.topics.POLICY-CL-MGT.events.custom.gson", - "org.onap.policy.controlloop.util.Serialization,gsonPretty"); - noopTopics = TopicEndpointManager.getManager().addTopicSinks(noopSinkProperties); - - EventProtocolCoder.manager.addEncoder(EventProtocolParams.builder() - .groupId("junit.groupId") - .artifactId("junit.artifactId") - .topic("POLICY-CL-MGT") - .eventClass("org.onap.policy.controlloop.VirtualControlLoopNotification") - .protocolFilter(new JsonProtocolFilter()) - .modelClassLoaderHash(1111)); - EventProtocolCoder.manager.addEncoder(EventProtocolParams.builder() - .groupId("junit.groupId") - .artifactId("junit.artifactId") - .topic("APPC-LCM-READ") - .eventClass("org.onap.policy.appclcm.LcmRequestWrapper") - .protocolFilter(new JsonProtocolFilter()) - .modelClassLoaderHash(1111)); - try { - SupportUtil.buildAaiSim(); - SupportUtil.buildGuardSim(); - } catch (Exception e) { - fail(e.getMessage()); - } - /* - * Start the kie session - */ - try { - kieSession = startSession( - "../archetype-cl-amsterdam/src/main/resources/archetype-resources" - + "/src/main/resources/__closedLoopControlName__.drl", - "src/test/resources/yaml/policy_ControlLoop_vCPE.yaml", - "service=ServiceDemo;resource=Res1Demo;type=operational", "CL_vCPE", - "org.onap.closed_loop.ServiceDemo:VNFS:1.0.0"); - } catch (IOException e) { - e.printStackTrace(); - logger.debug("Could not create kieSession"); - fail("Could not create kieSession"); - } - } - - /** - * Tear down the simulator. - */ - @AfterClass - public static void tearDownSimulator() { - /* - * Gracefully shut down the kie session - */ - kieSession.dispose(); - - PolicyEngine.manager.stop(); - HttpServletServerFactoryInstance.getServerFactory().destroy(); - PolicyController.factory.shutdown(); - TopicEndpointManager.getManager().shutdown(); + public static void setUpBeforeClass() { + ControlLoopBase.setUpBeforeClass( + "../archetype-cl-amsterdam/src/main/resources/archetype-resources" + + "/src/main/resources/__closedLoopControlName__.drl", + "src/test/resources/yaml/policy_ControlLoop_vCPE.yaml", + "service=ServiceDemo;resource=Res1Demo;type=operational", + "CL_vCPE", + "org.onap.closed_loop.ServiceDemo:VNFS:1.0.0"); } @Test @@ -228,49 +137,6 @@ public class VcpeControlLoopTest implements TopicListener { * Print what's left in memory */ dumpFacts(kieSession); - - } - - /** - * This method will start a kie session and instantiate the Policy Engine. - * - * @param droolsTemplate the DRL rules file - * @param yamlFile the yaml file containing the policies - * @param policyScope scope for policy - * @param policyName name of the policy - * @param policyVersion version of the policy - * @return the kieSession to be used to insert facts - * @throws IOException IO exception - */ - private static KieSession startSession(String droolsTemplate, String yamlFile, String policyScope, - String policyName, String policyVersion) throws IOException { - - /* - * Load policies from yaml - */ - pair = SupportUtil.loadYaml(yamlFile); - assertNotNull(pair); - assertNotNull(pair.first); - assertNotNull(pair.first.getControlLoop()); - assertNotNull(pair.first.getControlLoop().getControlLoopName()); - assertTrue(pair.first.getControlLoop().getControlLoopName().length() > 0); - - /* - * Construct a kie session - */ - final KieSession kieSession = SupportUtil.buildContainer(droolsTemplate, - pair.first.getControlLoop().getControlLoopName(), - policyScope, policyName, policyVersion, URLEncoder.encode(pair.second, "UTF-8")); - - /* - * Retrieve the Policy Engine - */ - - logger.debug("============"); - logger.debug(URLEncoder.encode(pair.second, "UTF-8")); - logger.debug("============"); - - return kieSession; } /* @@ -406,17 +272,4 @@ public class VcpeControlLoopTest implements TopicListener { event.setClosedLoopEventStatus(status); kieSession.insert(event); } - - /** - * This method will dump all the facts in the working memory. - * - * @param kieSession the session containing the facts - */ - public void dumpFacts(KieSession kieSession) { - logger.debug("Fact Count: {}", kieSession.getFactCount()); - for (FactHandle handle : kieSession.getFactHandles()) { - logger.debug("FACT: {}", handle); - } - } - } diff --git a/controlloop/templates/template.demo/src/test/java/org/onap/policy/template/demo/VdnsControlLoopTest.java b/controlloop/templates/template.demo/src/test/java/org/onap/policy/template/demo/VdnsControlLoopTest.java index 3e5825bc1..d1453f7b1 100644 --- a/controlloop/templates/template.demo/src/test/java/org/onap/policy/template/demo/VdnsControlLoopTest.java +++ b/controlloop/templates/template.demo/src/test/java/org/onap/policy/template/demo/VdnsControlLoopTest.java @@ -25,119 +25,35 @@ import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertTrue; import static org.junit.Assert.fail; -import java.io.IOException; -import java.net.URLEncoder; import java.time.Instant; import java.util.HashMap; -import java.util.List; -import java.util.Properties; import java.util.UUID; -import org.junit.AfterClass; import org.junit.BeforeClass; import org.junit.Test; -import org.kie.api.runtime.KieSession; -import org.kie.api.runtime.rule.FactHandle; import org.onap.policy.common.endpoints.event.comm.Topic.CommInfrastructure; -import org.onap.policy.common.endpoints.event.comm.TopicEndpointManager; import org.onap.policy.common.endpoints.event.comm.TopicListener; import org.onap.policy.common.endpoints.event.comm.TopicSink; -import org.onap.policy.common.endpoints.http.server.HttpServletServerFactoryInstance; -import org.onap.policy.common.endpoints.properties.PolicyEndPointProperties; import org.onap.policy.controlloop.ControlLoopEventStatus; import org.onap.policy.controlloop.ControlLoopNotificationType; import org.onap.policy.controlloop.VirtualControlLoopEvent; import org.onap.policy.controlloop.VirtualControlLoopNotification; import org.onap.policy.controlloop.policy.ControlLoopPolicy; -import org.onap.policy.drools.protocol.coders.EventProtocolCoder; -import org.onap.policy.drools.protocol.coders.EventProtocolParams; -import org.onap.policy.drools.protocol.coders.JsonProtocolFilter; -import org.onap.policy.drools.system.PolicyController; -import org.onap.policy.drools.system.PolicyEngine; -import org.onap.policy.drools.utils.logging.LoggerUtil; import org.onap.policy.so.SoRequest; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -public class VdnsControlLoopTest implements TopicListener { - - private static final Logger logger = LoggerFactory.getLogger(VdnsControlLoopTest.class); - - private static List noopTopics; - - private static KieSession kieSession; - private static SupportUtil.Pair pair; - private UUID requestId; - - static { - /* Set environment properties */ - SupportUtil.setAaiProps(); - SupportUtil.setSoProps(); - SupportUtil.setGuardProps(); - SupportUtil.setPuProp(); - LoggerUtil.setLevel(LoggerUtil.ROOT_LOGGER, "INFO"); - } +public class VdnsControlLoopTest extends ControlLoopBase implements TopicListener { /** * Setup the simulator. */ @BeforeClass - public static void setUpSimulator() { - PolicyEngine.manager.configure(new Properties()); - assertTrue(PolicyEngine.manager.start()); - Properties noopSinkProperties = new Properties(); - noopSinkProperties.put(PolicyEndPointProperties.PROPERTY_NOOP_SINK_TOPICS, "POLICY-CL-MGT"); - noopSinkProperties.put("noop.sink.topics.POLICY-CL-MGT.events", - "org.onap.policy.controlloop.VirtualControlLoopNotification"); - noopSinkProperties.put("noop.sink.topics.POLICY-CL-MGT.events.custom.gson", - "org.onap.policy.controlloop.util.Serialization,gsonPretty"); - noopTopics = TopicEndpointManager.getManager().addTopicSinks(noopSinkProperties); - - EventProtocolCoder.manager.addEncoder(EventProtocolParams.builder() - .groupId("junit.groupId") - .artifactId("junit.artifactId") - .topic("POLICY-CL-MGT") - .eventClass("org.onap.policy.controlloop.VirtualControlLoopNotification") - .protocolFilter(new JsonProtocolFilter()) - .modelClassLoaderHash(1111)); - - try { - SupportUtil.buildAaiSim(); - SupportUtil.buildSoSim(); - SupportUtil.buildGuardSim(); - } catch (Exception e) { - fail(e.getMessage()); - } - - /* - * Start the kie session - */ - try { - kieSession = startSession( - "../archetype-cl-amsterdam/src/main/resources/archetype-resources/" - + "src/main/resources/__closedLoopControlName__.drl", - "src/test/resources/yaml/policy_ControlLoop_SO-test.yaml", "type=operational", "CL_vDNS", "v2.0"); - } catch (IOException e) { - e.printStackTrace(); - logger.debug("Could not create kieSession"); - fail("Could not create kieSession"); - } - } - - /** - * Tear down the simulator. - */ - @AfterClass - public static void tearDownSimulator() { - - /* - * Gracefully shut down the kie session - */ - kieSession.dispose(); - - PolicyEngine.manager.stop(); - HttpServletServerFactoryInstance.getServerFactory().destroy(); - PolicyController.factory.shutdown(); - TopicEndpointManager.getManager().shutdown(); + public static void setUpBeforeClass() { + ControlLoopBase.setUpBeforeClass( + "../archetype-cl-amsterdam/src/main/resources/archetype-resources/" + + "src/main/resources/__closedLoopControlName__.drl", + "src/test/resources/yaml/policy_ControlLoop_SO-test.yaml", + "type=operational", + "CL_vDNS", + "v2.0"); } @Test @@ -265,48 +181,6 @@ public class VdnsControlLoopTest implements TopicListener { dumpFacts(kieSession); } - /** - * This method will start a kie session and instantiate the Policy Engine. - * - * @param droolsTemplate the DRL rules file - * @param yamlFile the yaml file containing the policies - * @param policyScope scope for policy - * @param policyName name of the policy - * @param policyVersion version of the policy - * @return the kieSession to be used to insert facts - * @throws IOException IO Exception - */ - private static KieSession startSession(String droolsTemplate, String yamlFile, String policyScope, - String policyName, String policyVersion) throws IOException { - - /* - * Load policies from yaml - */ - pair = SupportUtil.loadYaml(yamlFile); - assertNotNull(pair); - assertNotNull(pair.first); - assertNotNull(pair.first.getControlLoop()); - assertNotNull(pair.first.getControlLoop().getControlLoopName()); - assertTrue(pair.first.getControlLoop().getControlLoopName().length() > 0); - - /* - * Construct a kie session - */ - final KieSession kieSession = SupportUtil.buildContainer(droolsTemplate, - pair.first.getControlLoop().getControlLoopName(), - policyScope, policyName, policyVersion, URLEncoder.encode(pair.second, "UTF-8")); - - /* - * Retrieve the Policy Engine - */ - - logger.debug("============"); - logger.debug(URLEncoder.encode(pair.second, "UTF-8")); - logger.debug("============"); - - return kieSession; - } - /* * (non-Javadoc) * @@ -410,16 +284,4 @@ public class VdnsControlLoopTest implements TopicListener { event.setClosedLoopEventStatus(status); kieSession.insert(event); } - - /** - * This method will dump all the facts in the working memory. - * - * @param kieSession the session containing the facts - */ - public void dumpFacts(KieSession kieSession) { - logger.debug("Fact Count: {}", kieSession.getFactCount()); - for (FactHandle handle : kieSession.getFactHandles()) { - logger.debug("FACT: {}", handle); - } - } } diff --git a/controlloop/templates/template.demo/src/test/java/org/onap/policy/template/demo/VfcControlLoopTest.java b/controlloop/templates/template.demo/src/test/java/org/onap/policy/template/demo/VfcControlLoopTest.java index fdf27490c..4f47bd0a9 100644 --- a/controlloop/templates/template.demo/src/test/java/org/onap/policy/template/demo/VfcControlLoopTest.java +++ b/controlloop/templates/template.demo/src/test/java/org/onap/policy/template/demo/VfcControlLoopTest.java @@ -27,120 +27,37 @@ import static org.junit.Assert.assertTrue; import static org.junit.Assert.fail; import java.io.IOException; -import java.net.URLEncoder; import java.time.Instant; import java.util.HashMap; -import java.util.List; -import java.util.Properties; import java.util.UUID; -import org.junit.AfterClass; import org.junit.BeforeClass; import org.junit.Test; -import org.kie.api.runtime.KieSession; -import org.kie.api.runtime.rule.FactHandle; import org.onap.policy.common.endpoints.event.comm.Topic.CommInfrastructure; -import org.onap.policy.common.endpoints.event.comm.TopicEndpointManager; import org.onap.policy.common.endpoints.event.comm.TopicListener; import org.onap.policy.common.endpoints.event.comm.TopicSink; -import org.onap.policy.common.endpoints.http.server.HttpServletServerFactoryInstance; -import org.onap.policy.common.endpoints.properties.PolicyEndPointProperties; import org.onap.policy.controlloop.ControlLoopEventStatus; import org.onap.policy.controlloop.ControlLoopNotificationType; import org.onap.policy.controlloop.ControlLoopTargetType; import org.onap.policy.controlloop.VirtualControlLoopEvent; import org.onap.policy.controlloop.VirtualControlLoopNotification; import org.onap.policy.controlloop.policy.ControlLoopPolicy; -import org.onap.policy.drools.protocol.coders.EventProtocolCoder; -import org.onap.policy.drools.protocol.coders.EventProtocolParams; -import org.onap.policy.drools.protocol.coders.JsonProtocolFilter; -import org.onap.policy.drools.system.PolicyController; -import org.onap.policy.drools.system.PolicyEngine; -import org.onap.policy.drools.utils.logging.LoggerUtil; import org.onap.policy.vfc.VfcRequest; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -public class VfcControlLoopTest implements TopicListener { - - private static final Logger logger = LoggerFactory.getLogger(VfcControlLoopTest.class); - - private static List noopTopics; - - private static KieSession kieSession; - private static SupportUtil.Pair pair; - private UUID requestId; - - static { - /* Set environment properties */ - SupportUtil.setAaiProps(); - SupportUtil.setVfcProps(); - SupportUtil.setGuardProps(); - SupportUtil.setPuProp(); - LoggerUtil.setLevel(LoggerUtil.ROOT_LOGGER, "INFO"); - } +public class VfcControlLoopTest extends ControlLoopBase implements TopicListener { /** * Setup the simulator. */ @BeforeClass - public static void setUpSimulator() { - PolicyEngine.manager.configure(new Properties()); - assertTrue(PolicyEngine.manager.start()); - Properties noopSinkProperties = new Properties(); - noopSinkProperties.put(PolicyEndPointProperties.PROPERTY_NOOP_SINK_TOPICS, "POLICY-CL-MGT"); - noopSinkProperties.put("noop.sink.topics.POLICY-CL-MGT.events", - "org.onap.policy.controlloop.VirtualControlLoopNotification"); - noopSinkProperties.put("noop.sink.topics.POLICY-CL-MGT.events.custom.gson", - "org.onap.policy.controlloop.util.Serialization,gsonPretty"); - noopTopics = TopicEndpointManager.getManager().addTopicSinks(noopSinkProperties); - - EventProtocolCoder.manager.addEncoder(EventProtocolParams.builder() - .groupId("junit.groupId") - .artifactId("junit.artifactId") - .topic("POLICY-CL-MGT") - .eventClass("org.onap.policy.controlloop.VirtualControlLoopNotification") - .protocolFilter(new JsonProtocolFilter()) - .modelClassLoaderHash(1111)); - - try { - SupportUtil.buildAaiSim(); - SupportUtil.buildVfcSim(); - SupportUtil.buildGuardSim(); - } catch (Exception e) { - fail(e.getMessage()); - } - /* - * - * Start the kie session - */ - try { - kieSession = startSession( - "../archetype-cl-amsterdam/src/main/resources/archetype-resources/" - + "src/main/resources/__closedLoopControlName__.drl", - "src/test/resources/yaml/policy_ControlLoop_VFC.yaml", "type=operational", "CL_VoLTE", "v2.0"); - } catch (IOException e) { - e.printStackTrace(); - logger.debug("Could not create kieSession"); - fail("Could not create kieSession"); - } - } - - /** - * Tear down the simulator. - */ - @AfterClass - public static void tearDownSimulator() { - - /* - * Gracefully shut down the kie session - */ - kieSession.dispose(); - - PolicyEngine.manager.stop(); - HttpServletServerFactoryInstance.getServerFactory().destroy(); - PolicyController.factory.shutdown(); - TopicEndpointManager.getManager().shutdown(); + public static void setUpBeforeClass() { + ControlLoopBase.setUpBeforeClass( + "../archetype-cl-amsterdam/src/main/resources/archetype-resources/" + + "src/main/resources/__closedLoopControlName__.drl", + "src/test/resources/yaml/policy_ControlLoop_VFC.yaml", + "type=operational", + "CL_VoLTE", + "v2.0"); } @Test @@ -233,48 +150,6 @@ public class VfcControlLoopTest implements TopicListener { dumpFacts(kieSession); } - /** - * This method will start a kie session and instantiate the Policy Engine. - * - * @param droolsTemplate the DRL rules file - * @param yamlFile the yaml file containing the policies - * @param policyScope scope for policy - * @param policyName name of the policy - * @param policyVersion version of the policy - * @return the kieSession to be used to insert facts - * @throws IOException IO Exception - */ - private static KieSession startSession(String droolsTemplate, String yamlFile, String policyScope, - String policyName, String policyVersion) throws IOException { - - /* - * Load policies from yaml - */ - pair = SupportUtil.loadYaml(yamlFile); - assertNotNull(pair); - assertNotNull(pair.first); - assertNotNull(pair.first.getControlLoop()); - assertNotNull(pair.first.getControlLoop().getControlLoopName()); - assertTrue(pair.first.getControlLoop().getControlLoopName().length() > 0); - - /* - * Construct a kie session - */ - final KieSession kieSession = SupportUtil.buildContainer(droolsTemplate, - pair.first.getControlLoop().getControlLoopName(), - policyScope, policyName, policyVersion, URLEncoder.encode(pair.second, "UTF-8")); - - /* - * Retrieve the Policy Engine - */ - - logger.debug("============"); - logger.debug(URLEncoder.encode(pair.second, "UTF-8")); - logger.debug("============"); - - return kieSession; - } - /* * (non-Javadoc) * @@ -369,18 +244,4 @@ public class VfcControlLoopTest implements TopicListener { event.setClosedLoopEventStatus(ControlLoopEventStatus.ONSET); kieSession.insert(event); } - - /** - * Dumps the kie session facts. - * - * @param kieSession input session - */ - public static void dumpFacts(KieSession kieSession) { - logger.debug("Fact Count: " + kieSession.getFactCount()); - for (FactHandle handle : kieSession.getFactHandles()) { - logger.debug("FACT: " + handle); - } - } - } - diff --git a/controlloop/templates/template.demo/src/test/java/org/onap/policy/template/demo/VfwControlLoopTest.java b/controlloop/templates/template.demo/src/test/java/org/onap/policy/template/demo/VfwControlLoopTest.java index 327a1b4dc..221ef5e6b 100644 --- a/controlloop/templates/template.demo/src/test/java/org/onap/policy/template/demo/VfwControlLoopTest.java +++ b/controlloop/templates/template.demo/src/test/java/org/onap/policy/template/demo/VfwControlLoopTest.java @@ -25,130 +25,37 @@ import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertTrue; import static org.junit.Assert.fail; -import java.io.IOException; -import java.net.URLEncoder; import java.time.Instant; import java.util.HashMap; -import java.util.List; -import java.util.Properties; import java.util.UUID; -import org.junit.AfterClass; import org.junit.BeforeClass; import org.junit.Test; -import org.kie.api.runtime.KieSession; -import org.kie.api.runtime.rule.FactHandle; import org.onap.policy.appc.Request; import org.onap.policy.appc.Response; import org.onap.policy.appc.ResponseCode; import org.onap.policy.common.endpoints.event.comm.Topic.CommInfrastructure; -import org.onap.policy.common.endpoints.event.comm.TopicEndpointManager; import org.onap.policy.common.endpoints.event.comm.TopicListener; import org.onap.policy.common.endpoints.event.comm.TopicSink; -import org.onap.policy.common.endpoints.http.server.HttpServletServerFactoryInstance; -import org.onap.policy.common.endpoints.properties.PolicyEndPointProperties; import org.onap.policy.controlloop.ControlLoopEventStatus; import org.onap.policy.controlloop.ControlLoopNotificationType; import org.onap.policy.controlloop.VirtualControlLoopEvent; import org.onap.policy.controlloop.VirtualControlLoopNotification; import org.onap.policy.controlloop.policy.ControlLoopPolicy; -import org.onap.policy.drools.protocol.coders.EventProtocolCoder; -import org.onap.policy.drools.protocol.coders.EventProtocolParams; -import org.onap.policy.drools.protocol.coders.JsonProtocolFilter; -import org.onap.policy.drools.system.PolicyController; -import org.onap.policy.drools.system.PolicyEngine; -import org.onap.policy.drools.utils.logging.LoggerUtil; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -public class VfwControlLoopTest implements TopicListener { - - private static final Logger logger = LoggerFactory.getLogger(VfwControlLoopTest.class); - - private static List noopTopics; - - private static KieSession kieSession; - private static SupportUtil.Pair pair; - private UUID requestId; - - static { - /* Set environment properties */ - SupportUtil.setAaiProps(); - SupportUtil.setGuardProps(); - SupportUtil.setPuProp(); - LoggerUtil.setLevel(LoggerUtil.ROOT_LOGGER, "INFO"); - } + +public class VfwControlLoopTest extends ControlLoopBase implements TopicListener { /** * Setup the simulator. */ @BeforeClass - public static void setUpSimulator() { - PolicyEngine.manager.configure(new Properties()); - assertTrue(PolicyEngine.manager.start()); - Properties noopSinkProperties = new Properties(); - noopSinkProperties.put(PolicyEndPointProperties.PROPERTY_NOOP_SINK_TOPICS, "APPC-CL,POLICY-CL-MGT"); - noopSinkProperties.put("noop.sink.topics.APPC-CL.events", "org.onap.policy.appc.Response"); - noopSinkProperties.put("noop.sink.topics.APPC-CL.events.custom.gson", - "org.onap.policy.appc.util.Serialization,gsonPretty"); - noopSinkProperties.put("noop.sink.topics.POLICY-CL-MGT.events", - "org.onap.policy.controlloop.VirtualControlLoopNotification"); - noopSinkProperties.put("noop.sink.topics.POLICY-CL-MGT.events.custom.gson", - "org.onap.policy.controlloop.util.Serialization,gsonPretty"); - noopTopics = TopicEndpointManager.getManager().addTopicSinks(noopSinkProperties); - - EventProtocolCoder.manager.addEncoder(EventProtocolParams.builder() - .groupId("junit.groupId") - .artifactId("junit.artifactId") - .topic("POLICY-CL-MGT") - .eventClass("org.onap.policy.controlloop.VirtualControlLoopNotification") - .protocolFilter(new JsonProtocolFilter()) - .modelClassLoaderHash(1111)); - EventProtocolCoder.manager.addEncoder(EventProtocolParams.builder() - .groupId("junit.groupId") - .artifactId("junit.artifactId") - .topic("APPC-CL") - .eventClass("org.onap.policy.appc.Request") - .protocolFilter(new JsonProtocolFilter()) - .modelClassLoaderHash(1111)); - - try { - SupportUtil.buildAaiSim(); - SupportUtil.buildGuardSim(); - } catch (Exception e) { - fail(e.getMessage()); - } - - /* - * Start the kie session - */ - try { - kieSession = startSession( - "../archetype-cl-amsterdam/src/main/resources/archetype-resources/src/" - + "main/resources/__closedLoopControlName__.drl", - "src/test/resources/yaml/policy_ControlLoop_vFW.yaml", - "service=ServiceDemo;resource=Res1Demo;type=operational", "CL_vFW", - "org.onap.closed_loop.ServiceDemo:VNFS:1.0.0"); - } catch (IOException e) { - e.printStackTrace(); - logger.debug("Could not create kieSession"); - fail("Could not create kieSession"); - } - } - - /** - * Tear down the simulator. - */ - @AfterClass - public static void tearDownSimulator() { - /* - * Gracefully shut down the kie session - */ - kieSession.dispose(); - - PolicyEngine.manager.stop(); - HttpServletServerFactoryInstance.getServerFactory().destroy(); - PolicyController.factory.shutdown(); - TopicEndpointManager.getManager().shutdown(); + public static void setUpBeforeClass() { + ControlLoopBase.setUpBeforeClass( + "../archetype-cl-amsterdam/src/main/resources/archetype-resources/src/" + + "main/resources/__closedLoopControlName__.drl", + "src/test/resources/yaml/policy_ControlLoop_vFW.yaml", + "service=ServiceDemo;resource=Res1Demo;type=operational", + "CL_vFW", + "org.onap.closed_loop.ServiceDemo:VNFS:1.0.0"); } @Test @@ -277,48 +184,6 @@ public class VfwControlLoopTest implements TopicListener { dumpFacts(kieSession); } - /** - * This method will start a kie session and instantiate the Policy Engine. - * - * @param droolsTemplate the DRL rules file - * @param yamlFile the yaml file containing the policies - * @param policyScope scope for policy - * @param policyName name of the policy - * @param policyVersion version of the policy - * @return the kieSession to be used to insert facts - * @throws IOException IO Exception - */ - private static KieSession startSession(String droolsTemplate, String yamlFile, String policyScope, - String policyName, String policyVersion) throws IOException { - - /* - * Load policies from yaml - */ - pair = SupportUtil.loadYaml(yamlFile); - assertNotNull(pair); - assertNotNull(pair.first); - assertNotNull(pair.first.getControlLoop()); - assertNotNull(pair.first.getControlLoop().getControlLoopName()); - assertTrue(pair.first.getControlLoop().getControlLoopName().length() > 0); - - /* - * Construct a kie session - */ - final KieSession kieSession = SupportUtil.buildContainer(droolsTemplate, - pair.first.getControlLoop().getControlLoopName(), - policyScope, policyName, policyVersion, URLEncoder.encode(pair.second, "UTF-8")); - - /* - * Retrieve the Policy Engine - */ - - logger.debug("============"); - logger.debug(URLEncoder.encode(pair.second, "UTF-8")); - logger.debug("============"); - - return kieSession; - } - /* * @see org.onap.policy.drools.PolicyEngineListener#newEventNotification(java.lang.String) */ @@ -441,16 +306,4 @@ public class VfwControlLoopTest implements TopicListener { event.setClosedLoopEventStatus(status); kieSession.insert(event); } - - /** - * This method will dump all the facts in the working memory. - * - * @param kieSession the session containing the facts - */ - public void dumpFacts(KieSession kieSession) { - logger.debug("Fact Count: {}", kieSession.getFactCount()); - for (FactHandle handle : kieSession.getFactHandles()) { - logger.debug("FACT: {}", handle); - } - } } diff --git a/controlloop/templates/template.demo/src/test/java/org/onap/policy/template/demo/VpciControlLoopTest.java b/controlloop/templates/template.demo/src/test/java/org/onap/policy/template/demo/VpciControlLoopTest.java index 3278d4396..9d3486f5b 100644 --- a/controlloop/templates/template.demo/src/test/java/org/onap/policy/template/demo/VpciControlLoopTest.java +++ b/controlloop/templates/template.demo/src/test/java/org/onap/policy/template/demo/VpciControlLoopTest.java @@ -26,128 +26,39 @@ import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertTrue; import static org.junit.Assert.fail; -import java.io.IOException; -import java.net.URLEncoder; import java.time.Instant; import java.util.HashMap; -import java.util.List; -import java.util.Properties; import java.util.UUID; -import org.junit.AfterClass; import org.junit.BeforeClass; import org.junit.Test; -import org.kie.api.runtime.KieSession; -import org.kie.api.runtime.rule.FactHandle; import org.onap.policy.common.endpoints.event.comm.Topic.CommInfrastructure; -import org.onap.policy.common.endpoints.event.comm.TopicEndpointManager; import org.onap.policy.common.endpoints.event.comm.TopicListener; import org.onap.policy.common.endpoints.event.comm.TopicSink; -import org.onap.policy.common.endpoints.http.server.HttpServletServerFactoryInstance; -import org.onap.policy.common.endpoints.properties.PolicyEndPointProperties; import org.onap.policy.controlloop.ControlLoopEventStatus; import org.onap.policy.controlloop.ControlLoopNotificationType; import org.onap.policy.controlloop.ControlLoopTargetType; import org.onap.policy.controlloop.VirtualControlLoopEvent; import org.onap.policy.controlloop.VirtualControlLoopNotification; import org.onap.policy.controlloop.policy.ControlLoopPolicy; -import org.onap.policy.drools.protocol.coders.EventProtocolCoder; -import org.onap.policy.drools.protocol.coders.EventProtocolParams; -import org.onap.policy.drools.protocol.coders.JsonProtocolFilter; -import org.onap.policy.drools.system.PolicyController; -import org.onap.policy.drools.system.PolicyEngine; -import org.onap.policy.drools.utils.logging.LoggerUtil; import org.onap.policy.sdnr.PciRequest; import org.onap.policy.sdnr.PciRequestWrapper; import org.onap.policy.sdnr.PciResponse; import org.onap.policy.sdnr.PciResponseWrapper; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -public class VpciControlLoopTest implements TopicListener { - - private static final Logger logger = LoggerFactory.getLogger(VpciControlLoopTest.class); - - private static List noopTopics; - - private static KieSession kieSession; - private static SupportUtil.Pair pair; - private UUID requestId; - - static { - /* Set environment properties */ - SupportUtil.setAaiProps(); - SupportUtil.setGuardProps(); - SupportUtil.setPuProp(); - LoggerUtil.setLevel(LoggerUtil.ROOT_LOGGER, "DEBUG"); - } +public class VpciControlLoopTest extends ControlLoopBase implements TopicListener { /** * Setup the simulator. */ @BeforeClass - public static void setUpSimulator() { - PolicyEngine.manager.configure(new Properties()); - assertTrue(PolicyEngine.manager.start()); - Properties noopSinkProperties = new Properties(); - noopSinkProperties.put(PolicyEndPointProperties.PROPERTY_NOOP_SINK_TOPICS, "SDNR-CL,POLICY-CL-MGT"); - noopSinkProperties.put("noop.sink.topics.SDNR-CL.events", "org.onap.policy.sdnr.PciRequestWrapper"); - noopSinkProperties.put("noop.sink.topics.SDNR-CL.events.custom.gson", - "org.onap.policy.sdnr.util.Serialization,gson"); - noopSinkProperties.put("noop.sink.topics.POLICY-CL-MGT.events", - "org.onap.policy.controlloop.VirtualControlLoopNotification"); - noopSinkProperties.put("noop.sink.topics.POLICY-CL-MGT.events.custom.gson", - "org.onap.policy.controlloop.util.Serialization,gsonPretty"); - noopTopics = TopicEndpointManager.getManager().addTopicSinks(noopSinkProperties); - - EventProtocolCoder.manager.addEncoder(EventProtocolParams.builder() - .groupId("junit.groupId") - .artifactId("junit.artifactId") - .topic("POLICY-CL-MGT") - .eventClass("org.onap.policy.controlloop.VirtualControlLoopNotification") - .protocolFilter(new JsonProtocolFilter()) - .modelClassLoaderHash(1111)); - EventProtocolCoder.manager.addEncoder(EventProtocolParams.builder() - .groupId("junit.groupId") - .artifactId("junit.artifactId") - .topic("SDNR-CL") - .eventClass("org.onap.policy.sdnr.PciRequestWrapper") - .protocolFilter(new JsonProtocolFilter()) - .modelClassLoaderHash(1111)); - try { - SupportUtil.buildAaiSim(); - SupportUtil.buildGuardSim(); - } catch (Exception e) { - fail(e.getMessage()); - } - /* - * Start the kie session - */ - try { - kieSession = startSession( - "../archetype-cl-amsterdam/src/main/resources/archetype-resources" - + "/src/main/resources/__closedLoopControlName__.drl", - "src/test/resources/yaml/policy_ControlLoop_vPCI.yaml", "type=operational", "CL_vPCI", "v3.0.0"); - } catch (IOException e) { - e.printStackTrace(); - logger.debug("Could not create kieSession"); - fail("Could not create kieSession"); - } - } - - /** - * Tear down the simulator. - */ - @AfterClass - public static void tearDownSimulator() { - /* - * Gracefully shut down the kie session - */ - kieSession.dispose(); - - PolicyEngine.manager.stop(); - HttpServletServerFactoryInstance.getServerFactory().destroy(); - PolicyController.factory.shutdown(); - TopicEndpointManager.getManager().shutdown(); + public static void setUpBeforeClass() { + ControlLoopBase.setUpBeforeClass( + "../archetype-cl-amsterdam/src/main/resources/archetype-resources" + + "/src/main/resources/__closedLoopControlName__.drl", + "src/test/resources/yaml/policy_ControlLoop_vPCI.yaml", + "type=operational", + "CL_vPCI", + "v3.0.0"); } @Test @@ -230,56 +141,6 @@ public class VpciControlLoopTest implements TopicListener { } - /** - * This method will start a kie session and instantiate the Policy Engine. - * - * @param droolsTemplate - * the DRL rules file - * @param yamlFile - * the yaml file containing the policies - * @param policyScope - * scope for policy - * @param policyName - * name of the policy - * @param policyVersion - * version of the policy - * @return the kieSession to be used to insert facts - * @throws IOException - * IO exception - */ - private static KieSession startSession(String droolsTemplate, String yamlFile, String policyScope, - String policyName, String policyVersion) throws IOException { - - /* - * Load policies from yaml - */ - pair = SupportUtil.loadYaml(yamlFile); - assertNotNull(pair); - assertNotNull(pair.first); - assertNotNull(pair.first.getControlLoop()); - assertNotNull(pair.first.getControlLoop().getControlLoopName()); - assertTrue(pair.first.getControlLoop().getControlLoopName().length() > 0); - - /* - * Construct a kie session - */ - final KieSession kieSession = SupportUtil.buildContainer(droolsTemplate, - pair.first.getControlLoop().getControlLoopName(), policyScope, policyName, policyVersion, - URLEncoder.encode(pair.second, "UTF-8")); - - /* - * Retrieve the Policy Engine - */ - - logger.debug("======controlloop======"); - logger.debug(((ControlLoopPolicy) pair.first).toString()); - logger.debug("======policies======"); - logger.debug(URLEncoder.encode(pair.second, "UTF-8")); - logger.debug("============"); - - return kieSession; - } - /* * (non-Javadoc) * @@ -419,18 +280,4 @@ public class VpciControlLoopTest implements TopicListener { logger.debug("\n============ event ===========\n {}", event); kieSession.insert(event); } - - /** - * This method will dump all the facts in the working memory. - * - * @param kieSession - * the session containing the facts - */ - public void dumpFacts(KieSession kieSession) { - logger.debug("Fact Count: {}", kieSession.getFactCount()); - for (FactHandle handle : kieSession.getFactHandles()) { - logger.debug("FACT: {}", handle); - } - } - } diff --git a/controlloop/templates/template.demo/src/test/java/org/onap/policy/template/demo/VsonhControlLoopTest.java b/controlloop/templates/template.demo/src/test/java/org/onap/policy/template/demo/VsonhControlLoopTest.java index 3859b7405..d0427e47f 100644 --- a/controlloop/templates/template.demo/src/test/java/org/onap/policy/template/demo/VsonhControlLoopTest.java +++ b/controlloop/templates/template.demo/src/test/java/org/onap/policy/template/demo/VsonhControlLoopTest.java @@ -26,128 +26,39 @@ import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertTrue; import static org.junit.Assert.fail; -import java.io.IOException; -import java.net.URLEncoder; import java.time.Instant; import java.util.HashMap; -import java.util.List; -import java.util.Properties; import java.util.UUID; -import org.junit.AfterClass; import org.junit.BeforeClass; import org.junit.Test; -import org.kie.api.runtime.KieSession; -import org.kie.api.runtime.rule.FactHandle; import org.onap.policy.common.endpoints.event.comm.Topic.CommInfrastructure; -import org.onap.policy.common.endpoints.event.comm.TopicEndpointManager; import org.onap.policy.common.endpoints.event.comm.TopicListener; import org.onap.policy.common.endpoints.event.comm.TopicSink; -import org.onap.policy.common.endpoints.http.server.HttpServletServerFactoryInstance; -import org.onap.policy.common.endpoints.properties.PolicyEndPointProperties; import org.onap.policy.controlloop.ControlLoopEventStatus; import org.onap.policy.controlloop.ControlLoopNotificationType; import org.onap.policy.controlloop.ControlLoopTargetType; import org.onap.policy.controlloop.VirtualControlLoopEvent; import org.onap.policy.controlloop.VirtualControlLoopNotification; import org.onap.policy.controlloop.policy.ControlLoopPolicy; -import org.onap.policy.drools.protocol.coders.EventProtocolCoder; -import org.onap.policy.drools.protocol.coders.EventProtocolParams; -import org.onap.policy.drools.protocol.coders.JsonProtocolFilter; -import org.onap.policy.drools.system.PolicyController; -import org.onap.policy.drools.system.PolicyEngine; -import org.onap.policy.drools.utils.logging.LoggerUtil; import org.onap.policy.sdnr.PciRequest; import org.onap.policy.sdnr.PciRequestWrapper; import org.onap.policy.sdnr.PciResponse; import org.onap.policy.sdnr.PciResponseWrapper; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -public class VsonhControlLoopTest implements TopicListener { - - private static final Logger logger = LoggerFactory.getLogger(VsonhControlLoopTest.class); - - private static List noopTopics; - - private static KieSession kieSession; - private static SupportUtil.Pair pair; - private UUID requestId; - - static { - /* Set environment properties */ - SupportUtil.setAaiProps(); - SupportUtil.setGuardProps(); - SupportUtil.setPuProp(); - LoggerUtil.setLevel(LoggerUtil.ROOT_LOGGER, "DEBUG"); - } +public class VsonhControlLoopTest extends ControlLoopBase implements TopicListener { /** * Setup the simulator. */ @BeforeClass - public static void setUpSimulator() { - PolicyEngine.manager.configure(new Properties()); - assertTrue(PolicyEngine.manager.start()); - Properties noopSinkProperties = new Properties(); - noopSinkProperties.put(PolicyEndPointProperties.PROPERTY_NOOP_SINK_TOPICS, "SDNR-CL,POLICY-CL-MGT"); - noopSinkProperties.put("noop.sink.topics.SDNR-CL.events", "org.onap.policy.sdnr.PciRequestWrapper"); - noopSinkProperties.put("noop.sink.topics.SDNR-CL.events.custom.gson", - "org.onap.policy.sdnr.util.Serialization,gson"); - noopSinkProperties.put("noop.sink.topics.POLICY-CL-MGT.events", - "org.onap.policy.controlloop.VirtualControlLoopNotification"); - noopSinkProperties.put("noop.sink.topics.POLICY-CL-MGT.events.custom.gson", - "org.onap.policy.controlloop.util.Serialization,gsonPretty"); - noopTopics = TopicEndpointManager.getManager().addTopicSinks(noopSinkProperties); - - EventProtocolCoder.manager.addEncoder(EventProtocolParams.builder() - .groupId("junit.groupId") - .artifactId("junit.artifactId") - .topic("POLICY-CL-MGT") - .eventClass("org.onap.policy.controlloop.VirtualControlLoopNotification") - .protocolFilter(new JsonProtocolFilter()) - .modelClassLoaderHash(1111)); - EventProtocolCoder.manager.addEncoder(EventProtocolParams.builder() - .groupId("junit.groupId") - .artifactId("junit.artifactId") - .topic("SDNR-CL") - .eventClass("org.onap.policy.sdnr.PciRequestWrapper") - .protocolFilter(new JsonProtocolFilter()) - .modelClassLoaderHash(1111)); - try { - SupportUtil.buildAaiSim(); - SupportUtil.buildGuardSim(); - } catch (Exception e) { - fail(e.getMessage()); - } - /* - * Start the kie session - */ - try { - kieSession = startSession( - "../archetype-cl-amsterdam/src/main/resources/archetype-resources" - + "/src/main/resources/__closedLoopControlName__.drl", - "src/test/resources/yaml/policy_ControlLoop_vSONH.yaml", "type=operational", "CL_vSONH", "v4.0.0"); - } catch (IOException e) { - e.printStackTrace(); - logger.debug("Could not create kieSession"); - fail("Could not create kieSession"); - } - } - - /** - * Tear down the simulator. - */ - @AfterClass - public static void tearDownSimulator() { - /* - * Gracefully shut down the kie session - */ - kieSession.dispose(); - - PolicyEngine.manager.stop(); - HttpServletServerFactoryInstance.getServerFactory().destroy(); - PolicyController.factory.shutdown(); - TopicEndpointManager.getManager().shutdown(); + public static void setUpBeforeClass() { + ControlLoopBase.setUpBeforeClass( + "../archetype-cl-amsterdam/src/main/resources/archetype-resources" + + "/src/main/resources/__closedLoopControlName__.drl", + "src/test/resources/yaml/policy_ControlLoop_vSONH.yaml", + "type=operational", + "CL_vSONH", + "v4.0.0"); } @Test @@ -230,56 +141,6 @@ public class VsonhControlLoopTest implements TopicListener { } - /** - * This method will start a kie session and instantiate the Policy Engine. - * - * @param droolsTemplate - * the DRL rules file - * @param yamlFile - * the yaml file containing the policies - * @param policyScope - * scope for policy - * @param policyName - * name of the policy - * @param policyVersion - * version of the policy - * @return the kieSession to be used to insert facts - * @throws IOException - * IO exception - */ - private static KieSession startSession(String droolsTemplate, String yamlFile, String policyScope, - String policyName, String policyVersion) throws IOException { - - /* - * Load policies from yaml - */ - pair = SupportUtil.loadYaml(yamlFile); - assertNotNull(pair); - assertNotNull(pair.first); - assertNotNull(pair.first.getControlLoop()); - assertNotNull(pair.first.getControlLoop().getControlLoopName()); - assertTrue(pair.first.getControlLoop().getControlLoopName().length() > 0); - - /* - * Construct a kie session - */ - final KieSession kieSession = SupportUtil.buildContainer(droolsTemplate, - pair.first.getControlLoop().getControlLoopName(), policyScope, policyName, policyVersion, - URLEncoder.encode(pair.second, "UTF-8")); - - /* - * Retrieve the Policy Engine - */ - - logger.debug("======controlloop======"); - logger.debug(((ControlLoopPolicy) pair.first).toString()); - logger.debug("======policies======"); - logger.debug(URLEncoder.encode(pair.second, "UTF-8")); - logger.debug("============"); - - return kieSession; - } - /* * (non-Javadoc) * @@ -426,18 +287,4 @@ public class VsonhControlLoopTest implements TopicListener { logger.debug("\n============ event ===========\n {}", event); kieSession.insert(event); } - - /** - * This method will dump all the facts in the working memory. - * - * @param kieSession - * the session containing the facts - */ - public void dumpFacts(KieSession kieSession) { - logger.debug("Fact Count: {}", kieSession.getFactCount()); - for (FactHandle handle : kieSession.getFactHandles()) { - logger.debug("FACT: {}", handle); - } - } - } -- cgit 1.2.3-korg