Use new xacml actor in drools-apps 38/122838/2
authorJim Hahn <jrh3@att.com>
Tue, 20 Jul 2021 21:34:22 +0000 (17:34 -0400)
committerJim Hahn <jrh3@att.com>
Fri, 23 Jul 2021 13:44:59 +0000 (09:44 -0400)
Modified drools-apps to use actor.xacml instead of actor.guard.
This included updating property files.

Issue-ID: POLICY-3503
Change-Id: I25c5586c59a2adaae9f4f0f5ca66e14b12b0c18a
Signed-off-by: Jim Hahn <jrh3@att.com>
18 files changed:
controlloop/common/controller-usecases/pom.xml
controlloop/common/controller-usecases/src/main/java/org/onap/policy/drools/apps/controller/usecases/step/GuardStep2.java
controlloop/common/controller-usecases/src/main/resources/usecases.drl
controlloop/common/controller-usecases/src/test/java/org/onap/policy/controlloop/UsecasesTest.java
controlloop/common/controller-usecases/src/test/java/org/onap/policy/drools/apps/controller/usecases/step/GuardStep2Test.java
controlloop/common/controller-usecases/src/test/resources/config/event-manager.properties
controlloop/common/controller-usecases/src/test/resources/config/usecases-http-client.properties
controlloop/common/eventmanager/pom.xml
controlloop/common/eventmanager/src/main/java/org/onap/policy/controlloop/eventmanager/ControlLoopEventManager.java
controlloop/common/eventmanager/src/main/java/org/onap/policy/controlloop/eventmanager/EventManagerServices.java
controlloop/common/eventmanager/src/test/resources/eventService/event-svc-guard-disabled.properties
controlloop/common/eventmanager/src/test/resources/eventService/event-svc-http-client.properties
controlloop/common/eventmanager/src/test/resources/eventService/event-svc-invalid-db.properties
controlloop/common/eventmanager/src/test/resources/eventService/event-svc-no-guard-actor.properties
controlloop/common/eventmanager/src/test/resources/eventService/event-svc-with-db.properties
controlloop/common/feature-controlloop-management/pom.xml
controlloop/common/feature-controlloop-utils/src/main/java/org/onap/policy/drools/apps/controlloop/feature/utils/ControlLoopUtilsFeature.java
controlloop/common/feature-controlloop-utils/src/test/java/org/onap/policy/drools/apps/controlloop/feature/utils/ControlLoopUtilsFeatureTest.java

index 236a95a..46e2626 100644 (file)
@@ -3,7 +3,7 @@
   ============LICENSE_START=======================================================
   ONAP
   ================================================================================
-  Copyright (C) 2020 AT&T Intellectual Property. All rights reserved.
+  Copyright (C) 2020-2021 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.
         </dependency>
         <dependency>
             <groupId>org.onap.policy.models.policy-models-interactions.model-actors</groupId>
-            <artifactId>actor.guard</artifactId>
+            <artifactId>actor.xacml</artifactId>
             <version>${policy.models.version}</version>
             <scope>provided</scope>
         </dependency>
index abc9ff2..840d141 100644 (file)
@@ -29,9 +29,9 @@ import org.onap.aai.domain.yang.RelatedToProperty;
 import org.onap.aai.domain.yang.Relationship;
 import org.onap.aai.domain.yang.RelationshipData;
 import org.onap.policy.aai.AaiCqResponse;
-import org.onap.policy.controlloop.actor.guard.DecisionOperation;
-import org.onap.policy.controlloop.actor.guard.GuardActor;
 import org.onap.policy.controlloop.actor.so.VfModuleCreate;
+import org.onap.policy.controlloop.actor.xacml.GuardOperation;
+import org.onap.policy.controlloop.actor.xacml.XacmlActor;
 import org.onap.policy.controlloop.actorserviceprovider.Operation;
 import org.onap.policy.controlloop.actorserviceprovider.OperationProperties;
 import org.onap.policy.controlloop.actorserviceprovider.TargetType;
@@ -64,7 +64,7 @@ public class GuardStep2 extends Step2 {
      * @param otherStep step whose information should be used
      */
     public GuardStep2(Step2 otherStep, String closedLoopControlName) {
-        super(otherStep, GuardActor.NAME, DecisionOperation.NAME);
+        super(otherStep, XacmlActor.NAME, GuardOperation.NAME);
 
         if (!otherStep.isInitialized()) {
             throw new IllegalStateException("policy operation must be initialized before the guard operation");
index 5074215..932b08c 100644 (file)
@@ -27,11 +27,7 @@ import org.onap.policy.controlloop.CanonicalOnset;
 import org.onap.policy.controlloop.VirtualControlLoopEvent;
 import org.onap.policy.controlloop.VirtualControlLoopNotification;
 import org.onap.policy.controlloop.ControlLoopNotificationType;
-import org.onap.policy.controlloop.actor.aai.AaiActor;
-import org.onap.policy.controlloop.actor.aai.AaiGetPnfOperation;
-import org.onap.policy.controlloop.actor.aai.AaiGetTenantOperation;
-import org.onap.policy.controlloop.actor.guard.GuardActor;
-import org.onap.policy.controlloop.actor.guard.DecisionOperation;
+import org.onap.policy.controlloop.actor.xacml.XacmlActor;
 import org.onap.policy.controlloop.actorserviceprovider.Operation;
 import org.onap.policy.controlloop.actorserviceprovider.OperationOutcome;
 import org.onap.policy.controlloop.actorserviceprovider.OperationFinalResult;
@@ -45,6 +41,7 @@ import org.onap.policy.drools.apps.controller.usecases.UsecasesEventManager;
 import org.onap.policy.controlloop.eventmanager.ClEventManagerWithSteps.State;
 import org.onap.policy.controlloop.eventmanager.ClEventManagerWithOutcome.OperationOutcome2;
 import org.onap.policy.controlloop.eventmanager.ClEventManagerWithEvent.NewEventStatus;
+import org.onap.policy.controlloop.eventmanager.ControlLoopEventManager;
 import org.onap.policy.controlloop.eventmanager.EventManagerServices;
 import org.onap.policy.models.tosca.authorative.concepts.ToscaPolicy;
 
@@ -415,9 +412,10 @@ rule "EVENT.MANAGER.EXECUTE.STEP"
         $step.setProperties();
 
         boolean guardDisabled = "true".equalsIgnoreCase(
-                    PolicyEngineConstants.getManager().getEnvironmentProperty("guard.disabled"));
+                    PolicyEngineConstants.getManager().getEnvironmentProperty(
+                        ControlLoopEventManager.GUARD_DISABLED_PROPERTY));
 
-        if (guardDisabled && "GUARD".equals($step.getActorName())) {
+        if (guardDisabled && XacmlActor.NAME.equals($step.getActorName())) {
             // guard is disabled - just enqueue a "SUCCESS" (i.e., "Permit")
             OperationOutcome outcome = $step.getParams().makeOutcome();
             outcome.setStart(Instant.now());
@@ -498,8 +496,8 @@ rule "EVENT.MANAGER.PROCESS.GUARD.OUTCOME"
                         $outcome != null,
                         !isAbort($outcome),
                         $step : getSteps().peek(),
-                        "GUARD".equals($step.getActorName()),
-                        $outcome.isFor("GUARD", $step.getOperationName()) )
+                        XacmlActor.NAME.equals($step.getActorName()),
+                        $outcome.isFor($step.getActorName(), $step.getOperationName()) )
     then
 
     Logger logger = LoggerFactory.getLogger(drools.getRule().getPackage());
index 8b0403d..ef40d30 100644 (file)
@@ -2,7 +2,7 @@
  * ============LICENSE_START=======================================================
  * ONAP
  * ================================================================================
- * Copyright (C) 2020 AT&T Intellectual Property. All rights reserved.
+ * Copyright (C) 2020-2021 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.
@@ -55,7 +55,7 @@ public class UsecasesTest extends DroolsRuleTest {
 
         rules.configure("src/main/resources");
         httpClients.addClients("usecases");
-        simulators.start(Util::buildAaiSim, Util::buildSoSim, Util::buildVfcSim, Util::buildGuardSim,
+        simulators.start(Util::buildAaiSim, Util::buildSoSim, Util::buildVfcSim, Util::buildXacmlSim,
                         Util::buildSdncSim);
 
         rules.start();
index d5945a3..ffd88d5 100644 (file)
@@ -45,9 +45,9 @@ import org.onap.aai.domain.yang.RelationshipList;
 import org.onap.aai.domain.yang.Vserver;
 import org.onap.policy.aai.AaiCqResponse;
 import org.onap.policy.controlloop.VirtualControlLoopEvent;
-import org.onap.policy.controlloop.actor.guard.DecisionOperation;
-import org.onap.policy.controlloop.actor.guard.GuardActor;
 import org.onap.policy.controlloop.actor.so.VfModuleCreate;
+import org.onap.policy.controlloop.actor.xacml.GuardOperation;
+import org.onap.policy.controlloop.actor.xacml.XacmlActor;
 import org.onap.policy.controlloop.actorserviceprovider.Operation;
 import org.onap.policy.controlloop.actorserviceprovider.OperationProperties;
 import org.onap.policy.controlloop.actorserviceprovider.TargetType;
@@ -182,8 +182,8 @@ public class GuardStep2Test {
 
     @Test
     public void testConstructor() {
-        assertEquals(GuardActor.NAME, step.getActorName());
-        assertEquals(DecisionOperation.NAME, step.getOperationName());
+        assertEquals(XacmlActor.NAME, step.getActorName());
+        assertEquals(GuardOperation.NAME, step.getOperationName());
         assertSame(stepContext, step.stepContext);
         assertSame(event, step.event);
 
index 23e3106..10917f4 100644 (file)
@@ -29,12 +29,12 @@ operation.history.password=
 # configured and started.  Thus some of them have a "placeholder" property.
 #
 
-#actor.service.GUARD.disabled=true
-actor.service.GUARD.clientName=GUARD
-actor.service.GUARD.onapName=my-onap-name
-actor.service.GUARD.onapComponent=my-onap-component
-actor.service.GUARD.onapInstance=my-onap-instance
-actor.service.GUARD.operations.Decision.path=decision
+#actor.service.XACML.disabled=true
+actor.service.XACML.clientName=XACML
+actor.service.XACML.onapName=my-onap-name
+actor.service.XACML.onapComponent=my-onap-component
+actor.service.XACML.onapInstance=my-onap-instance
+actor.service.XACML.operations.Guard.path=decision
 
 actor.service.AAI.clientName=AAI
 actor.service.AAI.operations.CustomQuery.path=aai/v21/query
index 1e3e88c..72764bc 100644 (file)
@@ -2,7 +2,7 @@
 # ============LICENSE_START=======================================================
 # ONAP
 # ================================================================================
-# Copyright (C) 2020 AT&T Intellectual Property. All rights reserved.
+# Copyright (C) 2020-2021 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.
 # ============LICENSE_END=========================================================
 #
 
-http.client.services=GUARD,AAI,SDNC,SO,VFC
+http.client.services=XACML,AAI,SDNC,SO,VFC
 
-http.client.services.GUARD.managed=true
-http.client.services.GUARD.host=localhost
-http.client.services.GUARD.port=6669
-http.client.services.GUARD.userName=pdpx
-http.client.services.GUARD.password=pdpx
-http.client.services.GUARD.contextUriPath=policy/pdpx/v1/
+http.client.services.XACML.managed=true
+http.client.services.XACML.host=localhost
+http.client.services.XACML.port=6669
+http.client.services.XACML.userName=pdpx
+http.client.services.XACML.password=pdpx
+http.client.services.XACML.contextUriPath=policy/pdpx/v1/
 
 http.client.services.AAI.managed=true
 http.client.services.AAI.host=localhost
index c762f67..4bb8274 100644 (file)
@@ -68,7 +68,7 @@
         </dependency>
         <dependency>
             <groupId>org.onap.policy.models.policy-models-interactions.model-actors</groupId>
-            <artifactId>actor.guard</artifactId>
+            <artifactId>actor.xacml</artifactId>
             <version>${policy.models.version}</version>
             <scope>provided</scope>
         </dependency>
index 3a7531c..354567c 100644 (file)
@@ -68,7 +68,7 @@ public class ControlLoopEventManager implements StepContext, Serializable {
      */
     private static final OperationHistoryDataManager STUB_DATA_MANAGER = new OperationHistoryDataManagerStub();
 
-    private static final String GUARD_DISABLED_PROPERTY = "guard.disabled";
+    public static final String GUARD_DISABLED_PROPERTY = "guard.disabled";
 
     /**
      * Counts the number of these objects that have been created. This is used by junit
index 4fef9f9..3271267 100644 (file)
@@ -25,10 +25,10 @@ import java.util.Properties;
 import lombok.Getter;
 import org.onap.policy.common.parameters.ValidationResult;
 import org.onap.policy.common.utils.properties.PropertyObjectUtils;
-import org.onap.policy.controlloop.actor.guard.DecisionOperation;
-import org.onap.policy.controlloop.actor.guard.DecisionOperator;
-import org.onap.policy.controlloop.actor.guard.GuardActor;
-import org.onap.policy.controlloop.actor.guard.GuardConfig;
+import org.onap.policy.controlloop.actor.xacml.DecisionConfig;
+import org.onap.policy.controlloop.actor.xacml.DecisionOperator;
+import org.onap.policy.controlloop.actor.xacml.GuardOperation;
+import org.onap.policy.controlloop.actor.xacml.XacmlActor;
 import org.onap.policy.controlloop.actorserviceprovider.ActorService;
 import org.onap.policy.controlloop.actorserviceprovider.Util;
 import org.onap.policy.controlloop.ophistory.OperationHistoryDataManager;
@@ -103,14 +103,14 @@ public class EventManagerServices {
      */
     public boolean isGuardEnabled() {
         try {
-            DecisionOperator guard = (DecisionOperator) getActorService().getActor(GuardActor.NAME)
-                            .getOperator(DecisionOperation.NAME);
+            DecisionOperator guard = (DecisionOperator) getActorService().getActor(XacmlActor.NAME)
+                            .getOperator(GuardOperation.NAME);
             if (!guard.isConfigured()) {
                 logger.warn("cannot check 'disabled' property in GUARD actor - assuming disabled");
                 return false;
             }
 
-            GuardConfig config = (GuardConfig) guard.getCurrentConfig();
+            DecisionConfig config = (DecisionConfig) guard.getCurrentConfig();
             if (config.isDisabled()) {
                 logger.warn("guard disabled");
                 return false;
index 289de44..8f8c71f 100644 (file)
@@ -2,7 +2,7 @@
 # ============LICENSE_START======================================================
 # ONAP
 # ===============================================================================
-# Copyright (C) 2020 AT&T Intellectual Property. All rights reserved.
+# Copyright (C) 2020-2021 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.
@@ -18,9 +18,9 @@
 # ============LICENSE_END========================================================
 #
 
-actor.service.GUARD.disabled=true
-actor.service.GUARD.clientName=guard-client
-actor.service.GUARD.onapName=my-onap-name
-actor.service.GUARD.onapComponent=my-onap-component
-actor.service.GUARD.onapInstance=my-onap-instance
-actor.service.GUARD.operations.Decision.path=decide
+actor.service.XACML.disabled=true
+actor.service.XACML.clientName=xacml-client
+actor.service.XACML.onapName=my-onap-name
+actor.service.XACML.onapComponent=my-onap-component
+actor.service.XACML.onapInstance=my-onap-instance
+actor.service.XACML.operations.Guard.path=decide
index a563afd..8a1819b 100644 (file)
@@ -2,7 +2,7 @@
 # ============LICENSE_START======================================================
 # ONAP
 # ===============================================================================
-# Copyright (C) 2020 AT&T Intellectual Property. All rights reserved.
+# Copyright (C) 2020-2021 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.
@@ -18,7 +18,7 @@
 # ============LICENSE_END========================================================
 #
 
-http.client.services=guard-client
-http.client.services.guard-client.host=localhost
-http.client.services.guard-client.port=80
-http.client.services.guard-client.managed=true
+http.client.services=xacml-client
+http.client.services.xacml-client.host=localhost
+http.client.services.xacml-client.port=80
+http.client.services.xacml-client.managed=true
index 09a6fbb..3648567 100644 (file)
@@ -2,7 +2,7 @@
 # ============LICENSE_START======================================================
 # ONAP
 # ===============================================================================
-# Copyright (C) 2020 AT&T Intellectual Property. All rights reserved.
+# Copyright (C) 2020-2021 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.
 # ============LICENSE_END========================================================
 #
 
-#actor.service.GUARD.disabled=true
-actor.service.GUARD.clientName=guard-client
-actor.service.GUARD.onapName=my-onap-name
-actor.service.GUARD.onapComponent=my-onap-component
-actor.service.GUARD.onapInstance=my-onap-instance
-actor.service.GUARD.operations.Decision.path=decide
+#actor.service.XACML.disabled=true
+actor.service.XACML.clientName=xacml-client
+actor.service.XACML.onapName=my-onap-name
+actor.service.XACML.onapComponent=my-onap-component
+actor.service.XACML.onapInstance=my-onap-instance
+actor.service.XACML.operations.Guard.path=decide
 
 # purposely missing the URL
 #operation.history.url=jdbc:h2:mem:EventManagerServicesTest
index 027f824..f723788 100644 (file)
@@ -2,7 +2,7 @@
 # ============LICENSE_START======================================================
 # ONAP
 # ===============================================================================
-# Copyright (C) 2020 AT&T Intellectual Property. All rights reserved.
+# Copyright (C) 2020-2021 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.
@@ -18,8 +18,8 @@
 # ============LICENSE_END========================================================
 #
 
-# all GUARD properties are commented out on purpose
+# all XACML properties are commented out on purpose
 
-#actor.service.GUARD.disabled=true
-#actor.service.GUARD.clientName=guard-client
-#actor.service.GUARD.operations.Decision.path=decide
+#actor.service.XACML.disabled=true
+#actor.service.XACML.clientName=xacml-client
+#actor.service.XACML.operations.Guard.path=decide
index 0fd886b..c20f82b 100644 (file)
@@ -2,7 +2,7 @@
 # ============LICENSE_START======================================================
 # ONAP
 # ===============================================================================
-# Copyright (C) 2020 AT&T Intellectual Property. All rights reserved.
+# Copyright (C) 2020-2021 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.
 # ============LICENSE_END========================================================
 #
 
-#actor.service.GUARD.disabled=true
-actor.service.GUARD.clientName=guard-client
-actor.service.GUARD.onapName=my-onap-name
-actor.service.GUARD.onapComponent=my-onap-component
-actor.service.GUARD.onapInstance=my-onap-instance
-actor.service.GUARD.operations.Decision.path=decide
+#actor.service.XACML.disabled=true
+actor.service.XACML.clientName=xacml-client
+actor.service.XACML.onapName=my-onap-name
+actor.service.XACML.onapComponent=my-onap-component
+actor.service.XACML.onapInstance=my-onap-instance
+actor.service.XACML.operations.Guard.path=decide
 
 operation.history.url=jdbc:h2:mem:EventManagerServicesTest
 operation.history.userName=sa
index 3a8b80e..20855b0 100644 (file)
@@ -2,7 +2,7 @@
   ============LICENSE_START=======================================================
   ONAP
   ================================================================================
-  Copyright (C) 2018-2020 AT&T Intellectual Property. All rights reserved.
+  Copyright (C) 2018-2021 AT&T Intellectual Property. All rights reserved.
   Modifications Copyright (C) 2019 Nordix Foundation.
   Modifications Copyright (C) 2020 Bell Canada.
   ================================================================================
         </dependency>
         <dependency>
             <groupId>org.onap.policy.models.policy-models-interactions.model-actors</groupId>
-            <artifactId>actor.guard</artifactId>
+            <artifactId>actor.xacml</artifactId>
             <version>${policy.models.version}</version>
         </dependency>
         <dependency>
index 0123cef..98a3b2d 100644 (file)
@@ -2,7 +2,7 @@
  * ============LICENSE_START=======================================================
  * ONAP
  * ================================================================================
- * Copyright (C) 2017-2019 AT&T Intellectual Property. All rights reserved.
+ * Copyright (C) 2017-2019, 2021 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.
@@ -41,7 +41,7 @@ public class ControlLoopUtilsFeature implements PolicyEngineFeatureApi {
             Util.buildAaiSim();
             Util.buildSoSim();
             Util.buildVfcSim();
-            Util.buildGuardSim();
+            Util.buildXacmlSim();
             Util.buildSdncSim();
         } catch (final InterruptedException e) {
             logger.error("{}: initialization aborted", ControlLoopUtilsFeature.class.getName(), e);
index e2bdf1b..db0c7a4 100644 (file)
@@ -2,7 +2,7 @@
  * ============LICENSE_START=======================================================
  * ONAP
  * ================================================================================
- * Copyright (C) 2017-2020 AT&T Intellectual Property. All rights reserved.
+ * Copyright (C) 2017-2021 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.
@@ -42,7 +42,7 @@ public class ControlLoopUtilsFeatureTest {
         assertNotNull(HttpServletServerFactoryInstance.getServerFactory().get(Util.AAISIM_SERVER_PORT));
         assertNotNull(HttpServletServerFactoryInstance.getServerFactory().get(Util.SOSIM_SERVER_PORT));
         assertNotNull(HttpServletServerFactoryInstance.getServerFactory().get(Util.SOSIM_SERVER_PORT));
-        assertNotNull(HttpServletServerFactoryInstance.getServerFactory().get(Util.GUARDSIM_SERVER_PORT));
+        assertNotNull(HttpServletServerFactoryInstance.getServerFactory().get(Util.XACMLSIM_SERVER_PORT));
         assertNotNull(HttpServletServerFactoryInstance.getServerFactory().get(Util.SDNCSIM_SERVER_PORT));
     }