Fix xacml decision policy-type 53/90853/3
authorPamela Dragosh <pdragosh@research.att.com>
Wed, 3 Jul 2019 18:29:37 +0000 (14:29 -0400)
committerPamela Dragosh <pdragosh@research.att.com>
Wed, 3 Jul 2019 18:38:18 +0000 (14:38 -0400)
Wrong attribute id was being used. Added info logging statement
to assist in debugging. Added JUnit to support this.

Issue-ID: POLICY-1843
Change-Id: I11d83574f91751804a45281d2e0c9cd3150e30eb
Signed-off-by: Pamela Dragosh <pdragosh@research.att.com>
applications/common/src/main/java/org/onap/policy/pdp/xacml/application/common/std/StdCombinedPolicyRequest.java
applications/common/src/main/java/org/onap/policy/pdp/xacml/application/common/std/StdCombinedPolicyResultsTranslator.java
applications/monitoring/src/test/java/org/onap/policy/xacml/pdp/application/monitoring/MonitoringPdpApplicationTest.java

index 3038b65..1acf741 100644 (file)
@@ -26,7 +26,6 @@ import com.att.research.xacml.std.annotations.XACMLAction;
 import com.att.research.xacml.std.annotations.XACMLRequest;
 import com.att.research.xacml.std.annotations.XACMLResource;
 import com.att.research.xacml.std.annotations.XACMLSubject;
-
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Map;
@@ -59,6 +58,9 @@ public class StdCombinedPolicyRequest {
     @XACMLResource(includeInResults = true)
     private Collection<String> resource = new ArrayList<>();
 
+    @XACMLResource(attributeId = "urn:org:onap:policy-type", includeInResults = true)
+    private Collection<String> resourcePolicyType = new ArrayList<>();
+
     public StdCombinedPolicyRequest() {
         super();
     }
@@ -102,7 +104,7 @@ public class StdCombinedPolicyRequest {
                 if (entrySet.getValue() instanceof Collection) {
                     addPolicyTypes(request, (Collection) entrySet.getValue());
                 } else if (entrySet.getValue() instanceof String) {
-                    request.resource.add(entrySet.getValue().toString());
+                    request.resourcePolicyType.add(entrySet.getValue().toString());
                 }
             }
         }
@@ -118,7 +120,7 @@ public class StdCombinedPolicyRequest {
 
     private static StdCombinedPolicyRequest addPolicyTypes(StdCombinedPolicyRequest request, Collection<Object> types) {
         for (Object type : types) {
-            request.resource.add(type.toString());
+            request.resourcePolicyType.add(type.toString());
         }
         return request;
     }
index 2d7386d..bd10fb2 100644 (file)
@@ -32,7 +32,6 @@ import com.att.research.xacml.api.Result;
 import com.att.research.xacml.api.XACML3;
 import com.att.research.xacml.std.annotations.RequestParser;
 import com.google.gson.Gson;
-
 import java.util.Collection;
 import java.util.HashMap;
 import java.util.Map;
@@ -143,7 +142,7 @@ public class StdCombinedPolicyResultsTranslator implements ToscaPolicyTranslator
 
     @Override
     public DecisionResponse convertResponse(Response xacmlResponse) {
-        LOGGER.debug("Converting Response {}", xacmlResponse);
+        LOGGER.info("Converting Response {}", xacmlResponse);
         DecisionResponse decisionResponse = new DecisionResponse();
         //
         // Setup policies
index 04c9d20..2ad8303 100644 (file)
@@ -25,14 +25,12 @@ package org.onap.policy.xacml.pdp.application.monitoring;
 import static org.assertj.core.api.Assertions.assertThat;
 
 import com.att.research.xacml.api.Response;
-
 import java.io.File;
 import java.io.IOException;
 import java.util.Iterator;
 import java.util.List;
 import java.util.Properties;
 import java.util.ServiceLoader;
-
 import org.apache.commons.lang3.tuple.Pair;
 import org.junit.BeforeClass;
 import org.junit.ClassRule;
@@ -62,6 +60,7 @@ public class MonitoringPdpApplicationTest {
     private static File propertiesFile;
     private static XacmlApplicationServiceProvider service;
     private static DecisionRequest requestSinglePolicy;
+    private static DecisionRequest requestPolicyType;
 
     private static StandardCoder gson = new StandardCoder();
 
@@ -82,6 +81,12 @@ public class MonitoringPdpApplicationTest {
                 TextFileUtils
                     .getTextFileAsString("../../main/src/test/resources/decisions/decision.single.input.json"),
                     DecisionRequest.class);
+        // Load Single Decision Request
+        //
+        requestPolicyType = gson.decode(
+                TextFileUtils
+                .getTextFileAsString("../../main/src/test/resources/decisions/decision.policytype.input.json"),
+                DecisionRequest.class);
         //
         // Setup our temporary folder
         //
@@ -164,7 +169,7 @@ public class MonitoringPdpApplicationTest {
         // into the PDP.
         //
         //
-        // Now load the optimization policies
+        // Now load the monitoring policies
         //
         final List<ToscaPolicy> loadedPolicies = TestUtils.loadPolicies("src/test/resources/vDNS.policy.input.yaml",
                 service);
@@ -180,10 +185,22 @@ public class MonitoringPdpApplicationTest {
         // Dump it out as Json
         //
         LOGGER.info(gson.encode(decision.getKey()));
-        LOGGER.info("Now testing unloading of policy");
+        //
+        // Ask for a decision based on policy-type
+        //
+        decision = service.makeDecision(requestPolicyType);
+        LOGGER.info("Decision {}", decision);
+
+        assertThat(decision.getKey()).isNotNull();
+        assertThat(decision.getKey().getPolicies().size()).isEqualTo(1);
+        //
+        // Dump it out as Json
+        //
+        LOGGER.info(gson.encode(decision.getKey()));
         //
         // Now unload it
         //
+        LOGGER.info("Now testing unloading of policy");
         for (ToscaPolicy policy : loadedPolicies) {
             assertThat(service.unloadPolicy(policy)).isTrue();
         }