Merge "Remove commons-io dependency from models"
authorJim Hahn <jrh3@att.com>
Fri, 28 Aug 2020 12:29:16 +0000 (12:29 +0000)
committerGerrit Code Review <gerrit@onap.org>
Fri, 28 Aug 2020 12:29:16 +0000 (12:29 +0000)
49 files changed:
models-interactions/model-actors/actor.aai/src/main/java/org/onap/policy/controlloop/actor/aai/AaiCustomQueryOperation.java
models-interactions/model-actors/actor.aai/src/test/java/org/onap/policy/controlloop/actor/aai/AaiCustomQueryOperationTest.java
models-interactions/model-actors/actor.aai/src/test/java/org/onap/policy/controlloop/actor/aai/AaiGetPnfOperationTest.java
models-interactions/model-actors/actor.aai/src/test/java/org/onap/policy/controlloop/actor/aai/AaiGetTenantOperationTest.java
models-interactions/model-actors/actor.appc/src/main/java/org/onap/policy/controlloop/actor/appc/AppcOperation.java
models-interactions/model-actors/actor.appc/src/main/java/org/onap/policy/controlloop/actor/appc/ModifyConfigOperation.java
models-interactions/model-actors/actor.appc/src/test/java/org/onap/policy/controlloop/actor/appc/AppcOperationTest.java
models-interactions/model-actors/actor.appc/src/test/java/org/onap/policy/controlloop/actor/appc/BasicAppcOperation.java
models-interactions/model-actors/actor.appc/src/test/java/org/onap/policy/controlloop/actor/appc/ModifyConfigOperationTest.java
models-interactions/model-actors/actor.appclcm/src/main/java/org/onap/policy/controlloop/actor/appclcm/AppcLcmOperation.java
models-interactions/model-actors/actor.appclcm/src/test/java/org/onap/policy/controlloop/actor/appclcm/AppcLcmOperationTest.java
models-interactions/model-actors/actor.cds/src/main/java/org/onap/policy/controlloop/actor/cds/CdsActorServiceManager.java
models-interactions/model-actors/actor.cds/src/main/java/org/onap/policy/controlloop/actor/cds/GrpcOperation.java
models-interactions/model-actors/actor.cds/src/test/java/org/onap/policy/controlloop/actor/cds/GrpcActorServiceManagerTest.java
models-interactions/model-actors/actor.cds/src/test/java/org/onap/policy/controlloop/actor/cds/GrpcOperationTest.java
models-interactions/model-actors/actor.cds/src/test/java/org/onap/policy/controlloop/actor/cds/GrpcOperatorTest.java
models-interactions/model-actors/actor.guard/src/main/java/org/onap/policy/controlloop/actor/guard/DecisionOperation.java
models-interactions/model-actors/actor.guard/src/test/java/org/onap/policy/controlloop/actor/guard/DecisionOperationTest.java
models-interactions/model-actors/actor.sdnc/src/test/java/org/onap/policy/controlloop/actor/sdnc/BandwidthOnDemandOperationTest.java
models-interactions/model-actors/actor.sdnc/src/test/java/org/onap/policy/controlloop/actor/sdnc/BasicSdncOperation.java
models-interactions/model-actors/actor.sdnc/src/test/java/org/onap/policy/controlloop/actor/sdnc/RerouteOperationTest.java
models-interactions/model-actors/actor.sdnr/src/main/java/org/onap/policy/controlloop/actor/sdnr/SdnrOperation.java
models-interactions/model-actors/actor.sdnr/src/test/java/org/onap/policy/controlloop/actor/sdnr/BasicSdnrOperation.java
models-interactions/model-actors/actor.sdnr/src/test/java/org/onap/policy/controlloop/actor/sdnr/SdnrOperationTest.java
models-interactions/model-actors/actor.so/src/main/java/org/onap/policy/controlloop/actor/so/SoOperation.java
models-interactions/model-actors/actor.so/src/test/java/org/onap/policy/controlloop/actor/so/BasicSoOperation.java
models-interactions/model-actors/actor.so/src/test/java/org/onap/policy/controlloop/actor/so/SoOperationTest.java
models-interactions/model-actors/actor.so/src/test/java/org/onap/policy/controlloop/actor/so/VfModuleCreateTest.java
models-interactions/model-actors/actor.so/src/test/java/org/onap/policy/controlloop/actor/so/VfModuleDeleteTest.java
models-interactions/model-actors/actor.test/src/main/java/org/onap/policy/controlloop/actor/test/BasicOperation.java
models-interactions/model-actors/actor.test/src/test/java/org/onap/policy/controlloop/actor/test/BasicOperationTest.java
models-interactions/model-actors/actor.vfc/src/main/java/org/onap/policy/controlloop/actor/vfc/VfcOperation.java
models-interactions/model-actors/actor.vfc/src/test/java/org/onap/policy/controlloop/actor/vfc/RestartTest.java
models-interactions/model-actors/actorServiceProvider/src/main/java/org/onap/policy/controlloop/actorserviceprovider/OperationFinalResult.java [new file with mode: 0644]
models-interactions/model-actors/actorServiceProvider/src/main/java/org/onap/policy/controlloop/actorserviceprovider/OperationOutcome.java
models-interactions/model-actors/actorServiceProvider/src/main/java/org/onap/policy/controlloop/actorserviceprovider/OperationResult.java [new file with mode: 0644]
models-interactions/model-actors/actorServiceProvider/src/main/java/org/onap/policy/controlloop/actorserviceprovider/TargetType.java [new file with mode: 0644]
models-interactions/model-actors/actorServiceProvider/src/main/java/org/onap/policy/controlloop/actorserviceprovider/impl/BidirectionalTopicOperation.java
models-interactions/model-actors/actorServiceProvider/src/main/java/org/onap/policy/controlloop/actorserviceprovider/impl/HttpOperation.java
models-interactions/model-actors/actorServiceProvider/src/main/java/org/onap/policy/controlloop/actorserviceprovider/impl/OperationPartial.java
models-interactions/model-actors/actorServiceProvider/src/main/java/org/onap/policy/controlloop/actorserviceprovider/parameters/ControlLoopOperationParams.java
models-interactions/model-actors/actorServiceProvider/src/test/java/org/onap/policy/controlloop/actorserviceprovider/OperationOutcomeTest.java
models-interactions/model-actors/actorServiceProvider/src/test/java/org/onap/policy/controlloop/actorserviceprovider/impl/BidirectionalTopicOperationTest.java
models-interactions/model-actors/actorServiceProvider/src/test/java/org/onap/policy/controlloop/actorserviceprovider/impl/HttpOperationTest.java
models-interactions/model-actors/actorServiceProvider/src/test/java/org/onap/policy/controlloop/actorserviceprovider/impl/HttpPollingOperationTest.java
models-interactions/model-actors/actorServiceProvider/src/test/java/org/onap/policy/controlloop/actorserviceprovider/impl/OperationPartialTest.java
models-interactions/model-actors/actorServiceProvider/src/test/java/org/onap/policy/controlloop/actorserviceprovider/parameters/ControlLoopOperationParamsTest.java
models-interactions/model-actors/pom.xml
models-sim/models-sim-dmaap/src/test/java/org/onap/policy/sim/dmaap/e2e/EndToEndTest.java

index 5480135..612fba9 100644 (file)
@@ -37,10 +37,10 @@ import org.onap.policy.common.endpoints.utils.NetLoggerUtil.EventType;
 import org.onap.policy.common.utils.coder.StandardCoderObject;
 import org.onap.policy.controlloop.actorserviceprovider.OperationOutcome;
 import org.onap.policy.controlloop.actorserviceprovider.OperationProperties;
+import org.onap.policy.controlloop.actorserviceprovider.OperationResult;
 import org.onap.policy.controlloop.actorserviceprovider.impl.HttpOperation;
 import org.onap.policy.controlloop.actorserviceprovider.parameters.ControlLoopOperationParams;
 import org.onap.policy.controlloop.actorserviceprovider.parameters.HttpConfig;
-import org.onap.policy.controlloop.policy.PolicyResult;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -188,7 +188,7 @@ public class AaiCustomQueryOperation extends HttpOperation<String> {
     }
 
     @Override
-    public OperationOutcome setOutcome(OperationOutcome outcome, PolicyResult result, Response rawResponse,
+    public OperationOutcome setOutcome(OperationOutcome outcome, OperationResult result, Response rawResponse,
                     String response) {
 
         super.setOutcome(outcome, result, rawResponse, response);
index 8e8b8f1..5a5e170 100644 (file)
@@ -53,6 +53,7 @@ import org.onap.policy.common.utils.coder.StandardCoder;
 import org.onap.policy.common.utils.coder.StandardCoderObject;
 import org.onap.policy.controlloop.actorserviceprovider.OperationOutcome;
 import org.onap.policy.controlloop.actorserviceprovider.OperationProperties;
+import org.onap.policy.controlloop.actorserviceprovider.OperationResult;
 import org.onap.policy.controlloop.actorserviceprovider.Util;
 import org.onap.policy.controlloop.actorserviceprovider.impl.HttpOperation;
 import org.onap.policy.controlloop.actorserviceprovider.impl.HttpOperator;
@@ -60,7 +61,6 @@ import org.onap.policy.controlloop.actorserviceprovider.parameters.ControlLoopOp
 import org.onap.policy.controlloop.actorserviceprovider.parameters.HttpConfig;
 import org.onap.policy.controlloop.actorserviceprovider.parameters.HttpParams;
 import org.onap.policy.controlloop.actorserviceprovider.spi.Actor;
-import org.onap.policy.controlloop.policy.PolicyResult;
 
 public class AaiCustomQueryOperationTest extends BasicAaiOperation {
     private static final StandardCoder coder = new StandardCoder();
@@ -120,7 +120,7 @@ public class AaiCustomQueryOperationTest extends BasicAaiOperation {
         oper.setProperty(OperationProperties.AAI_VSERVER_LINK, MY_LINK);
 
         outcome = oper.start().get();
-        assertEquals(PolicyResult.SUCCESS, outcome.getResult());
+        assertEquals(OperationResult.SUCCESS, outcome.getResult());
 
         assertNotNull(outcome.getResponse());
     }
@@ -171,7 +171,7 @@ public class AaiCustomQueryOperationTest extends BasicAaiOperation {
 
         CompletableFuture<OperationOutcome> future2 = oper.start();
 
-        assertEquals(PolicyResult.SUCCESS, getResult(future2));
+        assertEquals(OperationResult.SUCCESS, getResult(future2));
 
         // tenant response should have been cached within the context
         assertNotNull(context.getProperty(AaiGetTenantOperation.getKey(MY_VSERVER)));
@@ -198,7 +198,7 @@ public class AaiCustomQueryOperationTest extends BasicAaiOperation {
 
         CompletableFuture<OperationOutcome> future2 = oper.start();
 
-        assertEquals(PolicyResult.SUCCESS, getResult(future2));
+        assertEquals(OperationResult.SUCCESS, getResult(future2));
 
         // should not have replaced tenant response
         assertSame(data, context.getProperty(AaiGetTenantOperation.getKey(MY_VSERVER)));
@@ -259,10 +259,10 @@ public class AaiCustomQueryOperationTest extends BasicAaiOperation {
 
     @Test
     public void testSetOutcome() {
-        outcome = oper.setOutcome(params.makeOutcome(null), PolicyResult.SUCCESS, null, null);
+        outcome = oper.setOutcome(params.makeOutcome(null), OperationResult.SUCCESS, null, null);
         assertNull(outcome.getResponse());
 
-        outcome = oper.setOutcome(params.makeOutcome(null), PolicyResult.SUCCESS, null, "{}");
+        outcome = oper.setOutcome(params.makeOutcome(null), OperationResult.SUCCESS, null, "{}");
         assertTrue(outcome.getResponse() instanceof AaiCqResponse);
     }
 
@@ -289,7 +289,7 @@ public class AaiCustomQueryOperationTest extends BasicAaiOperation {
         context.setProperty(AaiGetTenantOperation.getKey(SIM_VSERVER), data);
     }
 
-    private PolicyResult getResult(CompletableFuture<OperationOutcome> future2)
+    private OperationResult getResult(CompletableFuture<OperationOutcome> future2)
                     throws InterruptedException, ExecutionException, TimeoutException {
 
         executor.runAll(100);
index 13b5b59..84f2821 100644 (file)
@@ -43,9 +43,9 @@ import org.onap.policy.common.utils.coder.StandardCoder;
 import org.onap.policy.common.utils.coder.StandardCoderObject;
 import org.onap.policy.controlloop.actorserviceprovider.OperationOutcome;
 import org.onap.policy.controlloop.actorserviceprovider.OperationProperties;
+import org.onap.policy.controlloop.actorserviceprovider.OperationResult;
 import org.onap.policy.controlloop.actorserviceprovider.parameters.HttpConfig;
 import org.onap.policy.controlloop.actorserviceprovider.parameters.HttpParams;
-import org.onap.policy.controlloop.policy.PolicyResult;
 
 public class AaiGetPnfOperationTest extends BasicAaiOperation {
     private static final String INPUT_FIELD = "input";
@@ -100,7 +100,7 @@ public class AaiGetPnfOperationTest extends BasicAaiOperation {
         oper.setProperty(OperationProperties.AAI_TARGET_ENTITY, "OzVServer");
 
         outcome = oper.start().get();
-        assertEquals(PolicyResult.SUCCESS, outcome.getResult());
+        assertEquals(OperationResult.SUCCESS, outcome.getResult());
         assertTrue(outcome.getResponse() instanceof StandardCoderObject);
     }
 
@@ -117,7 +117,7 @@ public class AaiGetPnfOperationTest extends BasicAaiOperation {
         oper.setProperty(OperationProperties.AAI_TARGET_ENTITY, "getFail");
 
         outcome = oper.start().get();
-        assertEquals(PolicyResult.FAILURE, outcome.getResult());
+        assertEquals(OperationResult.FAILURE, outcome.getResult());
     }
 
     @Test
@@ -139,7 +139,7 @@ public class AaiGetPnfOperationTest extends BasicAaiOperation {
         executor.runAll(100);
         assertTrue(future2.isDone());
 
-        assertEquals(PolicyResult.SUCCESS, future2.get().getResult());
+        assertEquals(OperationResult.SUCCESS, future2.get().getResult());
 
         // data should have been cached within the context
         StandardCoderObject data = context.getProperty(AaiGetPnfOperation.getKey(TARGET_ENTITY));
@@ -167,7 +167,7 @@ public class AaiGetPnfOperationTest extends BasicAaiOperation {
         executor.runAll(100);
         assertTrue(future2.isDone());
 
-        assertEquals(PolicyResult.FAILURE, future2.get().getResult());
+        assertEquals(OperationResult.FAILURE, future2.get().getResult());
 
         // data should NOT have been cached within the context
         assertNull(context.getProperty(AaiGetPnfOperation.getKey(TARGET_ENTITY)));
index 11604cd..cf9a7a6 100644 (file)
@@ -43,9 +43,9 @@ import org.onap.policy.common.utils.coder.StandardCoder;
 import org.onap.policy.common.utils.coder.StandardCoderObject;
 import org.onap.policy.controlloop.actorserviceprovider.OperationOutcome;
 import org.onap.policy.controlloop.actorserviceprovider.OperationProperties;
+import org.onap.policy.controlloop.actorserviceprovider.OperationResult;
 import org.onap.policy.controlloop.actorserviceprovider.parameters.HttpConfig;
 import org.onap.policy.controlloop.actorserviceprovider.parameters.HttpParams;
-import org.onap.policy.controlloop.policy.PolicyResult;
 
 public class AaiGetTenantOperationTest extends BasicAaiOperation {
     private static final String INPUT_FIELD = "input";
@@ -100,7 +100,7 @@ public class AaiGetTenantOperationTest extends BasicAaiOperation {
         oper.setProperty(OperationProperties.AAI_TARGET_ENTITY, "OzVServer");
 
         outcome = oper.start().get();
-        assertEquals(PolicyResult.SUCCESS, outcome.getResult());
+        assertEquals(OperationResult.SUCCESS, outcome.getResult());
         assertTrue(outcome.getResponse() instanceof StandardCoderObject);
     }
 
@@ -117,7 +117,7 @@ public class AaiGetTenantOperationTest extends BasicAaiOperation {
         oper.setProperty(OperationProperties.AAI_TARGET_ENTITY, "failedVserver");
 
         outcome = oper.start().get();
-        assertEquals(PolicyResult.FAILURE, outcome.getResult());
+        assertEquals(OperationResult.FAILURE, outcome.getResult());
     }
 
     @Test
@@ -139,7 +139,7 @@ public class AaiGetTenantOperationTest extends BasicAaiOperation {
         executor.runAll(100);
         assertTrue(future2.isDone());
 
-        assertEquals(PolicyResult.SUCCESS, future2.get().getResult());
+        assertEquals(OperationResult.SUCCESS, future2.get().getResult());
 
         // data should have been cached within the context
         StandardCoderObject data = context.getProperty(AaiGetTenantOperation.getKey(TARGET_ENTITY));
@@ -167,7 +167,7 @@ public class AaiGetTenantOperationTest extends BasicAaiOperation {
         executor.runAll(100);
         assertTrue(future2.isDone());
 
-        assertEquals(PolicyResult.FAILURE, future2.get().getResult());
+        assertEquals(OperationResult.FAILURE, future2.get().getResult());
 
         // data should NOT have been cached within the context
         assertNull(context.getProperty(AaiGetTenantOperation.getKey(TARGET_ENTITY)));
index e07093a..70c7082 100644 (file)
@@ -33,11 +33,11 @@ import org.onap.policy.common.utils.coder.CoderException;
 import org.onap.policy.common.utils.coder.StandardCoder;
 import org.onap.policy.common.utils.coder.StandardCoderInstantAsMillis;
 import org.onap.policy.controlloop.actorserviceprovider.OperationOutcome;
+import org.onap.policy.controlloop.actorserviceprovider.OperationResult;
 import org.onap.policy.controlloop.actorserviceprovider.impl.BidirectionalTopicOperation;
 import org.onap.policy.controlloop.actorserviceprovider.parameters.BidirectionalTopicConfig;
 import org.onap.policy.controlloop.actorserviceprovider.parameters.ControlLoopOperationParams;
 import org.onap.policy.controlloop.actorserviceprovider.topic.SelectorKey;
-import org.onap.policy.controlloop.policy.PolicyResult;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -172,7 +172,7 @@ public abstract class AppcOperation extends BidirectionalTopicOperation<Request,
      * Sets the message to the status description, if available.
      */
     @Override
-    public OperationOutcome setOutcome(OperationOutcome outcome, PolicyResult result, Response response) {
+    public OperationOutcome setOutcome(OperationOutcome outcome, OperationResult result, Response response) {
         outcome.setResponse(response);
 
         if (response.getStatus() == null || response.getStatus().getDescription() == null) {
index 13ddaf4..1f5b9fd 100644 (file)
@@ -83,7 +83,8 @@ public class ModifyConfigOperation extends AppcOperation {
             throw new IllegalStateException("target vnf-id could not be determined");
         }
 
-        GenericVnf genvnf = cq.getGenericVnfByModelInvariantId(params.getTarget().getResourceID());
+        GenericVnf genvnf = cq.getGenericVnfByModelInvariantId(params.getTargetEntityIds()
+                .get(ControlLoopOperationParams.PARAMS_ENTITY_RESOURCEID));
         if (genvnf == null) {
             logger.info("{}: target entity could not be found for {}", getFullName(), params.getRequestId());
             throw new IllegalArgumentException("target vnf-id could not be found");
index 4bbb057..db104b6 100644 (file)
@@ -39,10 +39,10 @@ import org.onap.policy.appc.CommonHeader;
 import org.onap.policy.appc.Request;
 import org.onap.policy.appc.ResponseCode;
 import org.onap.policy.appc.ResponseStatus;
+import org.onap.policy.controlloop.actorserviceprovider.OperationResult;
 import org.onap.policy.controlloop.actorserviceprovider.impl.BidirectionalTopicOperation.Status;
 import org.onap.policy.controlloop.actorserviceprovider.parameters.BidirectionalTopicConfig;
 import org.onap.policy.controlloop.actorserviceprovider.parameters.ControlLoopOperationParams;
-import org.onap.policy.controlloop.policy.PolicyResult;
 
 public class AppcOperationTest extends BasicAppcOperation {
     private AppcOperation oper;
@@ -220,21 +220,21 @@ public class AppcOperationTest extends BasicAppcOperation {
 
         // null status
         response.setStatus(null);
-        assertSame(outcome, oper.setOutcome(outcome, PolicyResult.SUCCESS, response));
-        assertEquals(PolicyResult.SUCCESS, outcome.getResult());
+        assertSame(outcome, oper.setOutcome(outcome, OperationResult.SUCCESS, response));
+        assertEquals(OperationResult.SUCCESS, outcome.getResult());
         assertNotNull(outcome.getMessage());
         assertSame(response, outcome.getResponse());
         response.setStatus(status);
 
         // null description
         status.setDescription(null);
-        assertSame(outcome, oper.setOutcome(outcome, PolicyResult.FAILURE, response));
-        assertEquals(PolicyResult.FAILURE, outcome.getResult());
+        assertSame(outcome, oper.setOutcome(outcome, OperationResult.FAILURE, response));
+        assertEquals(OperationResult.FAILURE, outcome.getResult());
         assertNotNull(outcome.getMessage());
         assertSame(response, outcome.getResponse());
         status.setDescription(MY_DESCRIPTION);
 
-        for (PolicyResult result : PolicyResult.values()) {
+        for (OperationResult result : OperationResult.values()) {
             assertSame(outcome, oper.setOutcome(outcome, result, response));
             assertEquals(result, outcome.getResult());
             assertEquals(MY_DESCRIPTION, outcome.getMessage());
index 1a8c603..9d434ce 100644 (file)
@@ -42,11 +42,11 @@ import org.onap.policy.common.utils.coder.StandardCoderInstantAsMillis;
 import org.onap.policy.common.utils.coder.StandardCoderObject;
 import org.onap.policy.controlloop.actor.test.BasicBidirectionalTopicOperation;
 import org.onap.policy.controlloop.actorserviceprovider.OperationOutcome;
+import org.onap.policy.controlloop.actorserviceprovider.OperationResult;
 import org.onap.policy.controlloop.actorserviceprovider.Util;
 import org.onap.policy.controlloop.actorserviceprovider.impl.OperationMaker;
 import org.onap.policy.controlloop.actorserviceprovider.parameters.BidirectionalTopicConfig;
-import org.onap.policy.controlloop.policy.PolicyResult;
-import org.onap.policy.controlloop.policy.Target;
+import org.onap.policy.controlloop.actorserviceprovider.parameters.ControlLoopOperationParams;
 import org.onap.policy.simulators.AppcLegacyTopicServer;
 import org.onap.policy.simulators.TopicServer;
 import org.powermock.reflect.Whitebox;
@@ -103,6 +103,7 @@ public abstract class BasicAppcOperation extends BasicBidirectionalTopicOperatio
         super.tearDownBasic();
     }
 
+    @Override
     protected TopicServer<Request> makeServer(TopicSink sink, TopicSource source) {
         return new AppcLegacyTopicServer(sink, source);
     }
@@ -126,7 +127,7 @@ public abstract class BasicAppcOperation extends BasicBidirectionalTopicOperatio
         assertTrue(future2.isDone());
 
         outcome = future2.get();
-        assertEquals(PolicyResult.SUCCESS, outcome.getResult());
+        assertEquals(OperationResult.SUCCESS, outcome.getResult());
         assertEquals(MY_DESCRIPTION, outcome.getMessage());
     }
 
@@ -153,10 +154,9 @@ public abstract class BasicAppcOperation extends BasicBidirectionalTopicOperatio
     protected void makeContext() {
         super.makeContext();
 
-        Target target = new Target();
-        target.setResourceID(RESOURCE_ID);
+        Map<String, String> entities = Map.of(ControlLoopOperationParams.PARAMS_ENTITY_RESOURCEID, RESOURCE_ID);
 
-        params = params.toBuilder().target(target).build();
+        params = params.toBuilder().targetEntityIds(entities).build();
     }
 
     /**
index 2177dfa..749b6c8 100644 (file)
@@ -51,10 +51,10 @@ import org.onap.policy.appc.Response;
 import org.onap.policy.common.utils.coder.CoderException;
 import org.onap.policy.controlloop.actorserviceprovider.OperationOutcome;
 import org.onap.policy.controlloop.actorserviceprovider.OperationProperties;
+import org.onap.policy.controlloop.actorserviceprovider.OperationResult;
 import org.onap.policy.controlloop.actorserviceprovider.controlloop.ControlLoopEventContext;
 import org.onap.policy.controlloop.actorserviceprovider.parameters.BidirectionalTopicConfig;
 import org.onap.policy.controlloop.actorserviceprovider.parameters.BidirectionalTopicParams;
-import org.onap.policy.controlloop.policy.PolicyResult;
 
 public class ModifyConfigOperationTest extends BasicAppcOperation {
 
@@ -120,7 +120,7 @@ public class ModifyConfigOperationTest extends BasicAppcOperation {
         oper.setProperty(OperationProperties.AAI_RESOURCE_VNF, genvnf);
 
         outcome = oper.start().get();
-        assertEquals(PolicyResult.SUCCESS, outcome.getResult());
+        assertEquals(OperationResult.SUCCESS, outcome.getResult());
         assertTrue(outcome.getResponse() instanceof Response);
     }
 
@@ -162,7 +162,7 @@ public class ModifyConfigOperationTest extends BasicAppcOperation {
         future2.complete(params.makeOutcome(null));
         assertTrue(executor.runAll(100));
         assertTrue(future3.isDone());
-        assertEquals(PolicyResult.SUCCESS, future3.get().getResult());
+        assertEquals(OperationResult.SUCCESS, future3.get().getResult());
     }
 
     /**
index dc74825..1d687cd 100644 (file)
@@ -33,11 +33,11 @@ import org.onap.policy.appclcm.AppcLcmResponseStatus;
 import org.onap.policy.common.utils.coder.CoderException;
 import org.onap.policy.controlloop.actorserviceprovider.OperationOutcome;
 import org.onap.policy.controlloop.actorserviceprovider.OperationProperties;
+import org.onap.policy.controlloop.actorserviceprovider.OperationResult;
 import org.onap.policy.controlloop.actorserviceprovider.impl.BidirectionalTopicOperation;
 import org.onap.policy.controlloop.actorserviceprovider.parameters.BidirectionalTopicConfig;
 import org.onap.policy.controlloop.actorserviceprovider.parameters.ControlLoopOperationParams;
 import org.onap.policy.controlloop.actorserviceprovider.topic.SelectorKey;
-import org.onap.policy.controlloop.policy.PolicyResult;
 
 public class AppcLcmOperation extends BidirectionalTopicOperation<AppcLcmDmaapWrapper, AppcLcmDmaapWrapper> {
 
@@ -177,7 +177,7 @@ public class AppcLcmOperation extends BidirectionalTopicOperation<AppcLcmDmaapWr
      * Sets the message to the status description, if available.
      */
     @Override
-    public OperationOutcome setOutcome(OperationOutcome outcome, PolicyResult result, AppcLcmDmaapWrapper response) {
+    public OperationOutcome setOutcome(OperationOutcome outcome, OperationResult result, AppcLcmDmaapWrapper response) {
         outcome.setResponse(response);
 
         AppcLcmResponseStatus status = getStatus(response);
index f3b3cc2..e707ea9 100644 (file)
@@ -32,6 +32,7 @@ import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
 
 import java.util.Arrays;
+import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
@@ -57,12 +58,12 @@ import org.onap.policy.controlloop.ControlLoopOperation;
 import org.onap.policy.controlloop.actor.test.BasicBidirectionalTopicOperation;
 import org.onap.policy.controlloop.actorserviceprovider.OperationOutcome;
 import org.onap.policy.controlloop.actorserviceprovider.OperationProperties;
+import org.onap.policy.controlloop.actorserviceprovider.OperationResult;
 import org.onap.policy.controlloop.actorserviceprovider.controlloop.ControlLoopEventContext;
 import org.onap.policy.controlloop.actorserviceprovider.impl.BidirectionalTopicOperation.Status;
 import org.onap.policy.controlloop.actorserviceprovider.parameters.BidirectionalTopicConfig;
 import org.onap.policy.controlloop.actorserviceprovider.parameters.BidirectionalTopicParams;
-import org.onap.policy.controlloop.policy.PolicyResult;
-import org.onap.policy.controlloop.policy.Target;
+import org.onap.policy.controlloop.actorserviceprovider.parameters.ControlLoopOperationParams;
 import org.onap.policy.simulators.AppcLcmTopicServer;
 import org.onap.policy.simulators.TopicServer;
 
@@ -106,6 +107,7 @@ public class AppcLcmOperationTest extends BasicBidirectionalTopicOperation<AppcL
         super.tearDownBasic();
     }
 
+    @Override
     protected TopicServer<AppcLcmDmaapWrapper> makeServer(TopicSink sink, TopicSource source) {
         return new AppcLcmTopicServer(sink, source);
     }
@@ -129,7 +131,7 @@ public class AppcLcmOperationTest extends BasicBidirectionalTopicOperation<AppcL
         };
 
         outcome = oper.start().get();
-        assertEquals(PolicyResult.SUCCESS, outcome.getResult());
+        assertEquals(OperationResult.SUCCESS, outcome.getResult());
         assertTrue(outcome.getResponse() instanceof AppcLcmDmaapWrapper);
     }
 
@@ -168,7 +170,7 @@ public class AppcLcmOperationTest extends BasicBidirectionalTopicOperation<AppcL
         assertTrue(executor.runAll(100));
         assertTrue(future2.isDone());
         outcome = future2.get();
-        assertEquals(PolicyResult.SUCCESS, outcome.getResult());
+        assertEquals(OperationResult.SUCCESS, outcome.getResult());
     }
 
     @Test
@@ -260,26 +262,26 @@ public class AppcLcmOperationTest extends BasicBidirectionalTopicOperation<AppcL
 
     @Test
     public void testSetOutcome() {
-        oper.setOutcome(outcome, PolicyResult.SUCCESS, response);
-        assertEquals(PolicyResult.SUCCESS, outcome.getResult());
+        oper.setOutcome(outcome, OperationResult.SUCCESS, response);
+        assertEquals(OperationResult.SUCCESS, outcome.getResult());
         assertEquals(MY_MESSAGE, outcome.getMessage());
         assertSame(response, outcome.getResponse());
 
         // failure
-        oper.setOutcome(outcome, PolicyResult.FAILURE, response);
-        assertEquals(PolicyResult.FAILURE, outcome.getResult());
+        oper.setOutcome(outcome, OperationResult.FAILURE, response);
+        assertEquals(OperationResult.FAILURE, outcome.getResult());
         assertEquals(MY_MESSAGE, outcome.getMessage());
         assertSame(response, outcome.getResponse());
 
         // null message
         response.getBody().getOutput().getStatus().setMessage(null);
-        oper.setOutcome(outcome, PolicyResult.SUCCESS, response);
+        oper.setOutcome(outcome, OperationResult.SUCCESS, response);
         assertEquals(ControlLoopOperation.SUCCESS_MSG, outcome.getMessage());
         assertSame(response, outcome.getResponse());
 
         // null status
         response.getBody().getOutput().setStatus(null);
-        oper.setOutcome(outcome, PolicyResult.SUCCESS, response);
+        oper.setOutcome(outcome, OperationResult.SUCCESS, response);
         assertEquals(ControlLoopOperation.SUCCESS_MSG, outcome.getMessage());
         assertSame(response, outcome.getResponse());
     }
@@ -348,10 +350,10 @@ public class AppcLcmOperationTest extends BasicBidirectionalTopicOperation<AppcL
     protected void makeContext() {
         super.makeContext();
 
-        Target target = new Target();
-        target.setResourceID(RESOURCE_ID);
+        Map<String, String> targetEntities = new HashMap<>();
+        targetEntities.put(ControlLoopOperationParams.PARAMS_ENTITY_RESOURCEID, RESOURCE_ID);
 
-        params = params.toBuilder().target(target).build();
+        params = params.toBuilder().targetEntityIds(targetEntities).build();
     }
 
     @Override
index d0f5bd2..4da23f1 100644 (file)
@@ -23,7 +23,7 @@ import org.onap.ccsdk.cds.controllerblueprints.common.api.EventType;
 import org.onap.ccsdk.cds.controllerblueprints.processing.api.ExecutionServiceOutput;
 import org.onap.policy.cds.api.CdsProcessorListener;
 import org.onap.policy.controlloop.actorserviceprovider.OperationOutcome;
-import org.onap.policy.controlloop.policy.PolicyResult;
+import org.onap.policy.controlloop.actorserviceprovider.OperationResult;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -61,12 +61,12 @@ public class CdsActorServiceManager implements CdsProcessorListener {
                 LOGGER.info("CDS is processing the message: {}", message);
                 break;
             case EVENT_COMPONENT_EXECUTED:
-                outcome.setResult(PolicyResult.SUCCESS);
+                outcome.setResult(OperationResult.SUCCESS);
                 outcome.setResponse(message);
                 future.complete(outcome);
                 break;
             default:
-                outcome.setResult(PolicyResult.FAILURE);
+                outcome.setResult(OperationResult.FAILURE);
                 outcome.setResponse(message);
                 future.complete(outcome);
                 break;
index d384244..c04453b 100644 (file)
@@ -50,11 +50,11 @@ import org.onap.policy.controlloop.actor.cds.constants.CdsActorConstants;
 import org.onap.policy.controlloop.actor.cds.request.CdsActionRequest;
 import org.onap.policy.controlloop.actorserviceprovider.OperationOutcome;
 import org.onap.policy.controlloop.actorserviceprovider.OperationProperties;
+import org.onap.policy.controlloop.actorserviceprovider.TargetType;
 import org.onap.policy.controlloop.actorserviceprovider.Util;
 import org.onap.policy.controlloop.actorserviceprovider.impl.OperationPartial;
 import org.onap.policy.controlloop.actorserviceprovider.parameters.ControlLoopOperationParams;
 import org.onap.policy.controlloop.actorserviceprovider.pipeline.PipelineControllerFuture;
-import org.onap.policy.controlloop.policy.TargetType;
 
 /**
  * Operation that uses gRPC to send request to CDS.
@@ -111,7 +111,7 @@ public class GrpcOperation extends OperationPartial {
         super(params, config, Collections.emptyList());
         this.config = config;
 
-        if (TargetType.PNF.equals(params.getTarget().getType())) {
+        if (TargetType.PNF.equals(params.getTargetType())) {
             aaiRequestor = this::getPnf;
             aaiConverter = this::convertPnfToAaiProperties;
         } else {
@@ -122,7 +122,7 @@ public class GrpcOperation extends OperationPartial {
 
     @Override
     public List<String> getPropertyNames() {
-        return (TargetType.PNF.equals(params.getTarget().getType()) ? PNF_PROPERTY_NAMES : VNF_PROPERTY_NAMES);
+        return (TargetType.PNF.equals(params.getTargetType()) ? PNF_PROPERTY_NAMES : VNF_PROPERTY_NAMES);
     }
 
     /**
@@ -259,7 +259,8 @@ public class GrpcOperation extends OperationPartial {
 
         AaiCqResponse aaicq = params.getContext().getProperty(AaiCqResponse.CONTEXT_KEY);
 
-        genericVnf = aaicq.getGenericVnfByModelInvariantId(params.getTarget().getResourceID());
+        genericVnf = aaicq.getGenericVnfByModelInvariantId(params.getTargetEntityIds()
+                .get(ControlLoopOperationParams.PARAMS_ENTITY_RESOURCEID));
         if (genericVnf == null) {
             throw new IllegalArgumentException("Target generic vnf could not be found");
         }
index 908b05c..07a05e6 100644 (file)
@@ -36,7 +36,7 @@ import org.onap.ccsdk.cds.controllerblueprints.common.api.EventType;
 import org.onap.ccsdk.cds.controllerblueprints.common.api.Status;
 import org.onap.ccsdk.cds.controllerblueprints.processing.api.ExecutionServiceOutput;
 import org.onap.policy.controlloop.actorserviceprovider.OperationOutcome;
-import org.onap.policy.controlloop.policy.PolicyResult;
+import org.onap.policy.controlloop.actorserviceprovider.OperationResult;
 
 public class GrpcActorServiceManagerTest {
 
@@ -61,7 +61,7 @@ public class GrpcActorServiceManagerTest {
         output = ExecutionServiceOutput.newBuilder().setStatus(status).build();
         manager.onMessage(output);
         OperationOutcome outcome = future.get(2, TimeUnit.SECONDS);
-        assertEquals(PolicyResult.SUCCESS, outcome.getResult());
+        assertEquals(OperationResult.SUCCESS, outcome.getResult());
         assertSame(output, outcome.getResponse());
     }
 
@@ -82,7 +82,7 @@ public class GrpcActorServiceManagerTest {
         output = ExecutionServiceOutput.newBuilder().setStatus(status).build();
         manager.onMessage(output);
         OperationOutcome outcome = future.get(2, TimeUnit.SECONDS);
-        assertEquals(PolicyResult.FAILURE, outcome.getResult());
+        assertEquals(OperationResult.FAILURE, outcome.getResult());
         assertSame(output, outcome.getResponse());
     }
 
index 5123495..709e179 100644 (file)
@@ -69,11 +69,10 @@ import org.onap.policy.controlloop.actor.cds.constants.CdsActorConstants;
 import org.onap.policy.controlloop.actorserviceprovider.ActorService;
 import org.onap.policy.controlloop.actorserviceprovider.OperationOutcome;
 import org.onap.policy.controlloop.actorserviceprovider.OperationProperties;
+import org.onap.policy.controlloop.actorserviceprovider.OperationResult;
+import org.onap.policy.controlloop.actorserviceprovider.TargetType;
 import org.onap.policy.controlloop.actorserviceprovider.controlloop.ControlLoopEventContext;
 import org.onap.policy.controlloop.actorserviceprovider.parameters.ControlLoopOperationParams;
-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.simulators.CdsSimulator;
 import org.onap.policy.simulators.Util;
 
@@ -102,7 +101,8 @@ public class GrpcOperationTest {
     private CdsServerProperties cdsProps;
     private VirtualControlLoopEvent onset;
     private PseudoExecutor executor;
-    private Target target;
+    private TargetType targetType;
+    private Map<String, String> targetEntityIds;
     private ControlLoopOperationParams params;
     private GrpcConfig config;
     private CompletableFuture<OperationOutcome> cqFuture;
@@ -143,17 +143,18 @@ public class GrpcOperationTest {
         // Setup executor
         executor = new PseudoExecutor();
 
-        target = new Target();
-        target.setType(TargetType.VM);
-        target.setResourceID(RESOURCE_ID);
+        targetType = TargetType.VM;
+        targetEntityIds = new HashMap<>();
+        targetEntityIds.put(ControlLoopOperationParams.PARAMS_ENTITY_RESOURCEID, RESOURCE_ID);
 
         cqFuture = new CompletableFuture<>();
         when(context.obtain(eq(AaiCqResponse.CONTEXT_KEY), any())).thenReturn(cqFuture);
         when(context.getEvent()).thenReturn(onset);
 
-        params = ControlLoopOperationParams.builder().actor(CdsActorConstants.CDS_ACTOR).operation(GrpcOperation.NAME)
-                        .context(context).actorService(new ActorService()).targetEntity(TARGET_ENTITY).target(target)
-                        .build();
+        params = ControlLoopOperationParams.builder().actor(CdsActorConstants.CDS_ACTOR)
+                .operation(GrpcOperation.NAME).context(context).actorService(new ActorService())
+                .targetEntity(TARGET_ENTITY).targetType(targetType).targetEntityIds(targetEntityIds)
+                .build();
     }
 
     /**
@@ -167,7 +168,8 @@ public class GrpcOperationTest {
         Map<String, Object> payload = Map.of("artifact_name", "my_artifact", "artifact_version", "1.0");
 
         params = ControlLoopOperationParams.builder().actor(CdsActorConstants.CDS_ACTOR).operation("subscribe")
-                        .context(context).actorService(new ActorService()).targetEntity(TARGET_ENTITY).target(target)
+                        .context(context).actorService(new ActorService()).targetEntity(TARGET_ENTITY)
+                        .targetType(targetType).targetEntityIds(targetEntityIds)
                         .retry(0).timeoutSec(5).executor(blockingExecutor).payload(payload).build();
 
         cdsProps.setHost("localhost");
@@ -185,7 +187,7 @@ public class GrpcOperationTest {
         };
 
         OperationOutcome outcome = operation.start().get();
-        assertEquals(PolicyResult.SUCCESS, outcome.getResult());
+        assertEquals(OperationResult.SUCCESS, outcome.getResult());
         assertTrue(outcome.getResponse() instanceof ExecutionServiceOutput);
     }
 
@@ -200,7 +202,8 @@ public class GrpcOperationTest {
         Map<String, Object> payload = Map.of("artifact_name", "my_artifact", "artifact_version", "1.0");
 
         params = ControlLoopOperationParams.builder().actor(CdsActorConstants.CDS_ACTOR).operation("subscribe")
-                        .context(context).actorService(new ActorService()).targetEntity(TARGET_ENTITY).target(target)
+                        .context(context).actorService(new ActorService()).targetEntity(TARGET_ENTITY)
+                        .targetType(targetType).targetEntityIds(targetEntityIds)
                         .retry(0).timeoutSec(5).executor(blockingExecutor).payload(payload).preprocessed(true).build();
 
         cdsProps.setHost("localhost");
@@ -215,7 +218,7 @@ public class GrpcOperationTest {
         operation.setProperty(OperationProperties.OPT_CDS_GRPC_AAI_PROPERTIES, Collections.emptyMap());
 
         OperationOutcome outcome = operation.start().get();
-        assertEquals(PolicyResult.SUCCESS, outcome.getResult());
+        assertEquals(OperationResult.SUCCESS, outcome.getResult());
         assertTrue(outcome.getResponse() instanceof ExecutionServiceOutput);
     }
 
@@ -239,7 +242,7 @@ public class GrpcOperationTest {
         /*
          * check PNF case
          */
-        target.setType(TargetType.PNF);
+        params = params.toBuilder().targetType(TargetType.PNF).build();
         operation = new GrpcOperation(params, config);
 
         // @formatter:off
@@ -334,7 +337,7 @@ public class GrpcOperationTest {
 
         cqFuture.complete(params.makeOutcome(null));
         assertTrue(executor.runAll(100));
-        assertEquals(PolicyResult.SUCCESS, future3.get(2, TimeUnit.SECONDS).getResult());
+        assertEquals(OperationResult.SUCCESS, future3.get(2, TimeUnit.SECONDS).getResult());
         assertTrue(future3.isDone());
     }
 
@@ -345,7 +348,7 @@ public class GrpcOperationTest {
     public void testStartPreprocessorAsyncPnf() throws InterruptedException, ExecutionException, TimeoutException {
         AtomicBoolean guardStarted = new AtomicBoolean();
 
-        target.setType(TargetType.PNF);
+        params = params.toBuilder().targetType(TargetType.PNF).build();
 
         operation = new GrpcOperation(params, config) {
             @Override
@@ -362,7 +365,7 @@ public class GrpcOperationTest {
 
         cqFuture.complete(params.makeOutcome(null));
         assertTrue(executor.runAll(100));
-        assertEquals(PolicyResult.SUCCESS, future3.get(2, TimeUnit.SECONDS).getResult());
+        assertEquals(OperationResult.SUCCESS, future3.get(2, TimeUnit.SECONDS).getResult());
         assertTrue(future3.isDone());
     }
 
@@ -390,7 +393,7 @@ public class GrpcOperationTest {
     @Test
     public void testStartOperationAsyncPnf() throws Exception {
 
-        target.setType(TargetType.PNF);
+        targetType = TargetType.PNF;
 
         ControlLoopEventContext context = new ControlLoopEventContext(onset);
         loadPnfData(context);
@@ -447,7 +450,8 @@ public class GrpcOperationTest {
 
         ControlLoopOperationParams params = ControlLoopOperationParams.builder().actor(CdsActorConstants.CDS_ACTOR)
                         .operation(GrpcOperation.NAME).context(context).actorService(new ActorService())
-                        .targetEntity(TARGET_ENTITY).target(target).payload(payloadMap).build();
+                        .targetEntity(TARGET_ENTITY).targetType(targetType).targetEntityIds(targetEntityIds)
+                        .payload(payloadMap).build();
 
         GrpcConfig config = new GrpcConfig(executor, cdsProps);
         operation = new GrpcOperation(params, config);
index cfb20ab..11121c0 100644 (file)
@@ -32,12 +32,11 @@ import org.onap.policy.cds.properties.CdsServerProperties;
 import org.onap.policy.controlloop.VirtualControlLoopEvent;
 import org.onap.policy.controlloop.actor.cds.constants.CdsActorConstants;
 import org.onap.policy.controlloop.actorserviceprovider.Operation;
+import org.onap.policy.controlloop.actorserviceprovider.TargetType;
 import org.onap.policy.controlloop.actorserviceprovider.Util;
 import org.onap.policy.controlloop.actorserviceprovider.controlloop.ControlLoopEventContext;
 import org.onap.policy.controlloop.actorserviceprovider.parameters.ControlLoopOperationParams;
 import org.onap.policy.controlloop.actorserviceprovider.parameters.ParameterValidationRuntimeException;
-import org.onap.policy.controlloop.policy.Target;
-import org.onap.policy.controlloop.policy.TargetType;
 
 public class GrpcOperatorTest {
 
@@ -88,10 +87,8 @@ public class GrpcOperatorTest {
     public void testBuildOperation() {
         VirtualControlLoopEvent event = new VirtualControlLoopEvent();
         ControlLoopEventContext context = new ControlLoopEventContext(event);
-        Target target = new Target();
-        target.setType(TargetType.VM);
         ControlLoopOperationParams params = ControlLoopOperationParams.builder().actor(CdsActorConstants.CDS_ACTOR)
-                        .operation(GrpcOperation.NAME).context(context).target(target).build();
+                        .operation(GrpcOperation.NAME).context(context).targetType(TargetType.VM).build();
 
         // not configured yet
         assertThatIllegalStateException().isThrownBy(() -> operation.buildOperation(params));
index 032a0c1..d9ec3ab 100644 (file)
@@ -31,11 +31,11 @@ import org.onap.policy.common.endpoints.event.comm.Topic.CommInfrastructure;
 import org.onap.policy.common.endpoints.utils.NetLoggerUtil.EventType;
 import org.onap.policy.controlloop.actorserviceprovider.CallbackManager;
 import org.onap.policy.controlloop.actorserviceprovider.OperationOutcome;
+import org.onap.policy.controlloop.actorserviceprovider.OperationResult;
 import org.onap.policy.controlloop.actorserviceprovider.impl.HttpOperation;
 import org.onap.policy.controlloop.actorserviceprovider.impl.OperationPartial;
 import org.onap.policy.controlloop.actorserviceprovider.parameters.ControlLoopOperationParams;
 import org.onap.policy.controlloop.actorserviceprovider.parameters.HttpConfig;
-import org.onap.policy.controlloop.policy.PolicyResult;
 import org.onap.policy.models.decisions.concepts.DecisionRequest;
 import org.onap.policy.models.decisions.concepts.DecisionResponse;
 import org.slf4j.Logger;
@@ -150,15 +150,15 @@ public class DecisionOperation extends HttpOperation<DecisionResponse> {
         // determine the result
         String status = response.getStatus();
         if (status == null) {
-            outcome.setResult(PolicyResult.FAILURE);
+            outcome.setResult(OperationResult.FAILURE);
             outcome.setMessage("response contains no status");
             return CompletableFuture.completedFuture(outcome);
         }
 
         if (PERMIT.equalsIgnoreCase(status) || INDETERMINATE.equalsIgnoreCase(status)) {
-            outcome.setResult(PolicyResult.SUCCESS);
+            outcome.setResult(OperationResult.SUCCESS);
         } else {
-            outcome.setResult(PolicyResult.FAILURE);
+            outcome.setResult(OperationResult.FAILURE);
         }
 
         // set the message
index ac6d6c8..5502ec6 100644 (file)
@@ -49,8 +49,8 @@ import org.onap.policy.common.endpoints.http.server.HttpServletServerFactoryInst
 import org.onap.policy.common.utils.coder.CoderException;
 import org.onap.policy.controlloop.actor.test.BasicHttpOperation;
 import org.onap.policy.controlloop.actorserviceprovider.OperationOutcome;
+import org.onap.policy.controlloop.actorserviceprovider.OperationResult;
 import org.onap.policy.controlloop.actorserviceprovider.Util;
-import org.onap.policy.controlloop.policy.PolicyResult;
 import org.onap.policy.models.decisions.concepts.DecisionRequest;
 import org.onap.policy.models.decisions.concepts.DecisionResponse;
 import org.onap.policy.simulators.GuardSimulatorJaxRs;
@@ -121,7 +121,7 @@ public class DecisionOperationTest extends BasicHttpOperation {
         oper = new DecisionOperation(params, config);
 
         outcome = oper.start().get();
-        assertEquals(PolicyResult.SUCCESS, outcome.getResult());
+        assertEquals(OperationResult.SUCCESS, outcome.getResult());
         assertTrue(outcome.getResponse() instanceof DecisionResponse);
     }
 
@@ -138,7 +138,7 @@ public class DecisionOperationTest extends BasicHttpOperation {
         oper = new DecisionOperation(params, config);
 
         outcome = oper.start().get();
-        assertEquals(PolicyResult.FAILURE, outcome.getResult());
+        assertEquals(OperationResult.FAILURE, outcome.getResult());
         assertTrue(outcome.getResponse() instanceof DecisionResponse);
     }
 
@@ -170,7 +170,7 @@ public class DecisionOperationTest extends BasicHttpOperation {
         assertTrue(future2.isDone());
 
         outcome = future2.get();
-        assertEquals(PolicyResult.SUCCESS, outcome.getResult());
+        assertEquals(OperationResult.SUCCESS, outcome.getResult());
         assertEquals(resp, outcome.getResponse());
 
         assertNotNull(oper.getSubRequestId());
@@ -194,7 +194,7 @@ public class DecisionOperationTest extends BasicHttpOperation {
         assertTrue(future2.isDone());
 
         outcome = future2.get();
-        assertEquals(PolicyResult.SUCCESS, outcome.getResult());
+        assertEquals(OperationResult.SUCCESS, outcome.getResult());
         assertNull(outcome.getResponse());
 
         // ensure callbacks were invoked
@@ -237,26 +237,26 @@ public class DecisionOperationTest extends BasicHttpOperation {
 
         // null status
         response.setStatus(null);
-        verifyOutcome(response, PolicyResult.FAILURE, "response contains no status");
+        verifyOutcome(response, OperationResult.FAILURE, "response contains no status");
 
         // permit, mixed case
         response.setStatus("peRmit");
-        verifyOutcome(response, PolicyResult.SUCCESS, "peRmit");
+        verifyOutcome(response, OperationResult.SUCCESS, "peRmit");
 
         // indeterminate, mixed case
         response.setStatus("inDETerminate");
-        verifyOutcome(response, PolicyResult.SUCCESS, "inDETerminate");
+        verifyOutcome(response, OperationResult.SUCCESS, "inDETerminate");
 
         // deny, mixed case
         response.setStatus("deNY");
-        verifyOutcome(response, PolicyResult.FAILURE, "deNY");
+        verifyOutcome(response, OperationResult.FAILURE, "deNY");
 
         // unknown status
         response.setStatus("unknown");
-        verifyOutcome(response, PolicyResult.FAILURE, "unknown");
+        verifyOutcome(response, OperationResult.FAILURE, "unknown");
     }
 
-    private void verifyOutcome(DecisionResponse response, PolicyResult expectedResult, String expectedMessage) {
+    private void verifyOutcome(DecisionResponse response, OperationResult expectedResult, String expectedMessage) {
         oper.postProcessResponse(outcome, BASE_URI, rawResponse, response);
         assertEquals(expectedResult, outcome.getResult());
         assertEquals(expectedMessage, outcome.getMessage());
index f80299f..5e71a6c 100644 (file)
@@ -32,10 +32,10 @@ import org.junit.BeforeClass;
 import org.junit.Test;
 import org.onap.policy.common.endpoints.http.client.HttpClientFactoryInstance;
 import org.onap.policy.controlloop.actorserviceprovider.OperationProperties;
+import org.onap.policy.controlloop.actorserviceprovider.OperationResult;
 import org.onap.policy.controlloop.actorserviceprovider.controlloop.ControlLoopEventContext;
 import org.onap.policy.controlloop.actorserviceprovider.parameters.HttpConfig;
 import org.onap.policy.controlloop.actorserviceprovider.parameters.HttpParams;
-import org.onap.policy.controlloop.policy.PolicyResult;
 import org.onap.policy.sdnc.SdncRequest;
 import org.onap.policy.sdnc.SdncResponse;
 
@@ -64,6 +64,7 @@ public class BandwidthOnDemandOperationTest extends BasicSdncOperation {
     /**
      * Set up.
      */
+    @Override
     @Before
     public void setUp() throws Exception {
         super.setUp();
@@ -107,7 +108,7 @@ public class BandwidthOnDemandOperationTest extends BasicSdncOperation {
         oper.setProperty(OperationProperties.ENRICHMENT_VNF_ID, MY_VNF);
 
         outcome = oper.start().get();
-        assertEquals(PolicyResult.SUCCESS, outcome.getResult());
+        assertEquals(OperationResult.SUCCESS, outcome.getResult());
         assertTrue(outcome.getResponse() instanceof SdncResponse);
     }
 
index 8c45bc3..a118ab1 100644 (file)
@@ -40,9 +40,9 @@ import org.onap.policy.common.utils.coder.CoderException;
 import org.onap.policy.common.utils.coder.StandardCoder;
 import org.onap.policy.controlloop.actor.test.BasicHttpOperation;
 import org.onap.policy.controlloop.actorserviceprovider.OperationOutcome;
+import org.onap.policy.controlloop.actorserviceprovider.OperationResult;
 import org.onap.policy.controlloop.actorserviceprovider.impl.OperationMaker;
 import org.onap.policy.controlloop.actorserviceprovider.parameters.HttpConfig;
-import org.onap.policy.controlloop.policy.PolicyResult;
 import org.onap.policy.sdnc.SdncRequest;
 import org.onap.policy.sdnc.SdncResponse;
 import org.onap.policy.sdnc.SdncResponseOutput;
@@ -128,7 +128,7 @@ public abstract class BasicSdncOperation extends BasicHttpOperation {
         assertTrue(future2.isDone());
 
         outcome = future2.get();
-        assertEquals(PolicyResult.SUCCESS, outcome.getResult());
+        assertEquals(OperationResult.SUCCESS, outcome.getResult());
         assertTrue(outcome.getResponse() instanceof SdncResponse);
 
         assertNotNull(outcome.getSubRequestId());
@@ -157,5 +157,6 @@ public abstract class BasicSdncOperation extends BasicHttpOperation {
                         .withMessageContaining("missing").withMessageContaining(expectedText);
     }
 
+    @Override
     protected abstract Map<String, String> makeEnrichment();
 }
index b71e567..e41ef3f 100644 (file)
@@ -32,10 +32,10 @@ import org.junit.BeforeClass;
 import org.junit.Test;
 import org.onap.policy.common.endpoints.http.client.HttpClientFactoryInstance;
 import org.onap.policy.controlloop.actorserviceprovider.OperationProperties;
+import org.onap.policy.controlloop.actorserviceprovider.OperationResult;
 import org.onap.policy.controlloop.actorserviceprovider.controlloop.ControlLoopEventContext;
 import org.onap.policy.controlloop.actorserviceprovider.parameters.HttpConfig;
 import org.onap.policy.controlloop.actorserviceprovider.parameters.HttpParams;
-import org.onap.policy.controlloop.policy.PolicyResult;
 import org.onap.policy.sdnc.SdncRequest;
 import org.onap.policy.sdnc.SdncResponse;
 
@@ -62,6 +62,7 @@ public class RerouteOperationTest extends BasicSdncOperation {
     /**
      * Set up.
      */
+    @Override
     @Before
     public void setUp() throws Exception {
         super.setUp();
@@ -84,7 +85,7 @@ public class RerouteOperationTest extends BasicSdncOperation {
         oper.setProperty(OperationProperties.ENRICHMENT_NETWORK_ID, MY_NETWORK);
 
         outcome = oper.start().get();
-        assertEquals(PolicyResult.SUCCESS, outcome.getResult());
+        assertEquals(OperationResult.SUCCESS, outcome.getResult());
         assertTrue(outcome.getResponse() instanceof SdncResponse);
     }
 
index 4511cc3..308ddd9 100644 (file)
@@ -24,11 +24,11 @@ import java.util.List;
 import java.util.concurrent.CompletableFuture;
 import org.onap.policy.controlloop.actorserviceprovider.OperationOutcome;
 import org.onap.policy.controlloop.actorserviceprovider.OperationProperties;
+import org.onap.policy.controlloop.actorserviceprovider.OperationResult;
 import org.onap.policy.controlloop.actorserviceprovider.impl.BidirectionalTopicOperation;
 import org.onap.policy.controlloop.actorserviceprovider.parameters.BidirectionalTopicConfig;
 import org.onap.policy.controlloop.actorserviceprovider.parameters.ControlLoopOperationParams;
 import org.onap.policy.controlloop.actorserviceprovider.topic.SelectorKey;
-import org.onap.policy.controlloop.policy.PolicyResult;
 import org.onap.policy.sdnr.PciBody;
 import org.onap.policy.sdnr.PciCommonHeader;
 import org.onap.policy.sdnr.PciMessage;
@@ -118,7 +118,7 @@ public class SdnrOperation extends BidirectionalTopicOperation<PciMessage, PciMe
      * Sets the message to the status description, if available.
      */
     @Override
-    public OperationOutcome setOutcome(OperationOutcome outcome, PolicyResult result, PciMessage responseWrapper) {
+    public OperationOutcome setOutcome(OperationOutcome outcome, OperationResult result, PciMessage responseWrapper) {
         outcome.setResponse(responseWrapper);
 
         if (responseWrapper.getBody() == null || responseWrapper.getBody().getOutput() == null) {
index 385052f..912d273 100644 (file)
@@ -36,10 +36,10 @@ import org.onap.policy.common.endpoints.event.comm.TopicSource;
 import org.onap.policy.common.utils.coder.StandardCoderObject;
 import org.onap.policy.controlloop.actor.test.BasicBidirectionalTopicOperation;
 import org.onap.policy.controlloop.actorserviceprovider.OperationOutcome;
+import org.onap.policy.controlloop.actorserviceprovider.OperationResult;
 import org.onap.policy.controlloop.actorserviceprovider.Util;
 import org.onap.policy.controlloop.actorserviceprovider.impl.OperationMaker;
 import org.onap.policy.controlloop.actorserviceprovider.parameters.BidirectionalTopicConfig;
-import org.onap.policy.controlloop.policy.PolicyResult;
 import org.onap.policy.sdnr.PciBody;
 import org.onap.policy.sdnr.PciMessage;
 import org.onap.policy.sdnr.PciResponse;
@@ -94,6 +94,7 @@ public abstract class BasicSdnrOperation extends BasicBidirectionalTopicOperatio
         super.tearDownBasic();
     }
 
+    @Override
     protected TopicServer<PciMessage> makeServer(TopicSink sink, TopicSource source) {
         return new SdnrTopicServer(sink, source);
     }
@@ -117,7 +118,7 @@ public abstract class BasicSdnrOperation extends BasicBidirectionalTopicOperatio
         assertTrue(future2.isDone());
 
         outcome = future2.get();
-        assertEquals(PolicyResult.SUCCESS, outcome.getResult());
+        assertEquals(OperationResult.SUCCESS, outcome.getResult());
     }
 
     /**
index 7537fa2..90452a9 100644 (file)
@@ -42,11 +42,11 @@ import org.junit.Test;
 import org.onap.policy.controlloop.actor.test.BasicBidirectionalTopicOperation;
 import org.onap.policy.controlloop.actorserviceprovider.OperationOutcome;
 import org.onap.policy.controlloop.actorserviceprovider.OperationProperties;
+import org.onap.policy.controlloop.actorserviceprovider.OperationResult;
 import org.onap.policy.controlloop.actorserviceprovider.controlloop.ControlLoopEventContext;
 import org.onap.policy.controlloop.actorserviceprovider.impl.BidirectionalTopicOperation.Status;
 import org.onap.policy.controlloop.actorserviceprovider.parameters.BidirectionalTopicConfig;
 import org.onap.policy.controlloop.actorserviceprovider.parameters.BidirectionalTopicParams;
-import org.onap.policy.controlloop.policy.PolicyResult;
 import org.onap.policy.sdnr.PciCommonHeader;
 import org.onap.policy.sdnr.PciMessage;
 import org.onap.policy.sdnr.PciRequest;
@@ -142,7 +142,7 @@ public class SdnrOperationTest extends BasicSdnrOperation {
         };
 
         outcome = operation.start().get();
-        assertEquals(PolicyResult.SUCCESS, outcome.getResult());
+        assertEquals(OperationResult.SUCCESS, outcome.getResult());
         assertTrue(outcome.getResponse() instanceof PciMessage);
     }
 
@@ -171,7 +171,7 @@ public class SdnrOperationTest extends BasicSdnrOperation {
         future2.complete(params.makeOutcome(null));
         assertTrue(executor.runAll(100));
         assertTrue(future3.isDone());
-        assertEquals(PolicyResult.SUCCESS, future3.get().getResult());
+        assertEquals(OperationResult.SUCCESS, future3.get().getResult());
     }
 
     @Test
@@ -255,8 +255,8 @@ public class SdnrOperationTest extends BasicSdnrOperation {
     }
 
     protected void checkOutcome() {
-        assertSame(outcome, operation.setOutcome(outcome, PolicyResult.SUCCESS, response));
-        assertEquals(PolicyResult.SUCCESS, outcome.getResult());
+        assertSame(outcome, operation.setOutcome(outcome, OperationResult.SUCCESS, response));
+        assertEquals(OperationResult.SUCCESS, outcome.getResult());
         assertNotNull(outcome.getMessage());
         assertSame(response, outcome.getResponse());
     }
index 8f0dda3..8a0cb70 100644 (file)
@@ -46,11 +46,10 @@ import org.onap.policy.common.utils.coder.StandardCoder;
 import org.onap.policy.common.utils.coder.StandardCoderObject;
 import org.onap.policy.controlloop.actorserviceprovider.OperationOutcome;
 import org.onap.policy.controlloop.actorserviceprovider.OperationProperties;
+import org.onap.policy.controlloop.actorserviceprovider.OperationResult;
 import org.onap.policy.controlloop.actorserviceprovider.impl.HttpOperation;
 import org.onap.policy.controlloop.actorserviceprovider.parameters.ControlLoopOperationParams;
 import org.onap.policy.controlloop.actorserviceprovider.parameters.HttpPollingConfig;
-import org.onap.policy.controlloop.policy.PolicyResult;
-import org.onap.policy.controlloop.policy.Target;
 import org.onap.policy.so.SoCloudConfiguration;
 import org.onap.policy.so.SoModelInfo;
 import org.onap.policy.so.SoRequest;
@@ -80,6 +79,8 @@ public abstract class SoOperation extends HttpOperation<SoResponse> {
     private final String modelCustomizationId;
     private final String modelInvariantId;
     private final String modelVersionId;
+    private final String modelName;
+    private final String modelVersion;
 
     private final String vfCountKey;
 
@@ -96,11 +97,20 @@ public abstract class SoOperation extends HttpOperation<SoResponse> {
 
         setUsePolling();
 
-        verifyNotNull("Target information", params.getTarget());
+        verifyNotNull("Target information", params.getTargetType());
 
-        this.modelCustomizationId = params.getTarget().getModelCustomizationId();
-        this.modelInvariantId = params.getTarget().getModelInvariantId();
-        this.modelVersionId = params.getTarget().getModelVersionId();
+        verifyNotNull("Target entity Ids information", params.getTargetEntityIds());
+
+        this.modelCustomizationId = params.getTargetEntityIds()
+                .get(ControlLoopOperationParams.PARAMS_ENTITY_MODEL_CUSTOMIZATION_ID);
+        this.modelInvariantId = params.getTargetEntityIds()
+                .get(ControlLoopOperationParams.PARAMS_ENTITY_MODEL_INVARIANT_ID);
+        this.modelVersionId = params.getTargetEntityIds()
+                .get(ControlLoopOperationParams.PARAMS_ENTITY_MODEL_VERSION_ID);
+        this.modelVersion = params.getTargetEntityIds()
+                .get(ControlLoopOperationParams.PARAMS_ENTITY_MODEL_VERSION);
+        this.modelName = params.getTargetEntityIds()
+                .get(ControlLoopOperationParams.PARAMS_ENTITY_MODEL_NAME);
 
         vfCountKey = SoConstants.VF_COUNT_PREFIX + "[" + modelCustomizationId + "][" + modelInvariantId + "]["
                         + modelVersionId + "]";
@@ -117,9 +127,9 @@ public abstract class SoOperation extends HttpOperation<SoResponse> {
      * the VF count from the custom query.
      */
     protected void validateTarget() {
-        verifyNotNull("modelCustomizationId", modelCustomizationId);
-        verifyNotNull("modelInvariantId", modelInvariantId);
-        verifyNotNull("modelVersionId", modelVersionId);
+        verifyNotNull(ControlLoopOperationParams.PARAMS_ENTITY_MODEL_CUSTOMIZATION_ID, modelCustomizationId);
+        verifyNotNull(ControlLoopOperationParams.PARAMS_ENTITY_MODEL_INVARIANT_ID, modelInvariantId);
+        verifyNotNull(ControlLoopOperationParams.PARAMS_ENTITY_MODEL_VERSION_ID, modelVersionId);
     }
 
     private void verifyNotNull(String type, Object value) {
@@ -267,13 +277,13 @@ public abstract class SoOperation extends HttpOperation<SoResponse> {
      * Prepends the message with the http status code.
      */
     @Override
-    public OperationOutcome setOutcome(OperationOutcome outcome, PolicyResult result, Response rawResponse,
+    public OperationOutcome setOutcome(OperationOutcome outcome, OperationResult result, Response rawResponse,
                     SoResponse response) {
 
         // set default result and message
         setOutcome(outcome, result);
 
-        int code = (result == PolicyResult.FAILURE_TIMEOUT ? SO_RESPONSE_CODE : rawResponse.getStatus());
+        int code = (result == OperationResult.FAILURE_TIMEOUT ? SO_RESPONSE_CODE : rawResponse.getStatus());
 
         outcome.setResponse(response);
         outcome.setMessage(code + " " + outcome.getMessage());
@@ -281,23 +291,12 @@ public abstract class SoOperation extends HttpOperation<SoResponse> {
     }
 
     protected SoModelInfo prepareSoModelInfo() {
-        Target target = params.getTarget();
-        if (target == null) {
-            throw new IllegalArgumentException("missing Target");
-        }
-
-        if (target.getModelCustomizationId() == null || target.getModelInvariantId() == null
-                        || target.getModelName() == null || target.getModelVersion() == null
-                        || target.getModelVersionId() == null) {
-            throw new IllegalArgumentException("missing VF Module model");
-        }
-
         SoModelInfo soModelInfo = new SoModelInfo();
-        soModelInfo.setModelCustomizationId(target.getModelCustomizationId());
-        soModelInfo.setModelInvariantId(target.getModelInvariantId());
-        soModelInfo.setModelName(target.getModelName());
-        soModelInfo.setModelVersion(target.getModelVersion());
-        soModelInfo.setModelVersionId(target.getModelVersionId());
+        soModelInfo.setModelCustomizationId(modelCustomizationId);
+        soModelInfo.setModelInvariantId(modelInvariantId);
+        soModelInfo.setModelName(modelName);
+        soModelInfo.setModelVersion(modelVersion);
+        soModelInfo.setModelVersionId(modelVersionId);
         soModelInfo.setModelType("vfModule");
         return soModelInfo;
     }
index 3541333..d2e2872 100644 (file)
@@ -34,9 +34,10 @@ import org.onap.policy.common.endpoints.event.comm.bus.internal.BusTopicParams;
 import org.onap.policy.common.endpoints.http.client.HttpClientFactoryInstance;
 import org.onap.policy.common.endpoints.http.server.HttpServletServerFactoryInstance;
 import org.onap.policy.controlloop.actor.test.BasicHttpOperation;
+import org.onap.policy.controlloop.actorserviceprovider.TargetType;
 import org.onap.policy.controlloop.actorserviceprovider.Util;
+import org.onap.policy.controlloop.actorserviceprovider.parameters.ControlLoopOperationParams;
 import org.onap.policy.controlloop.actorserviceprovider.parameters.HttpPollingConfig;
-import org.onap.policy.controlloop.policy.Target;
 import org.onap.policy.simulators.SoSimulatorJaxRs;
 import org.onap.policy.so.SoRequest;
 import org.onap.policy.so.SoRequestParameters;
@@ -65,7 +66,8 @@ public abstract class BasicSoOperation extends BasicHttpOperation {
     @Mock
     protected HttpPollingConfig config;
 
-    protected Target target;
+    protected TargetType targetType;
+    protected Map<String, String> targetEntities = new HashMap<>();
     protected SoResponse response;
 
     /**
@@ -144,14 +146,16 @@ public abstract class BasicSoOperation extends BasicHttpOperation {
     protected void makeContext() {
         super.makeContext();
 
-        target = new Target();
-        target.setModelCustomizationId(MODEL_CUSTOM_ID);
-        target.setModelInvariantId(MODEL_INVAR_ID);
-        target.setModelName(MODEL_NAME);
-        target.setModelVersion(MODEL_VERSION);
-        target.setModelVersionId(MODEL_VERS_ID);
+        targetType = TargetType.VNF;
 
-        params = params.toBuilder().target(target).build();
+        targetEntities = new HashMap<>();
+        targetEntities.put(ControlLoopOperationParams.PARAMS_ENTITY_MODEL_CUSTOMIZATION_ID, MODEL_CUSTOM_ID);
+        targetEntities.put(ControlLoopOperationParams.PARAMS_ENTITY_MODEL_INVARIANT_ID, MODEL_INVAR_ID);
+        targetEntities.put(ControlLoopOperationParams.PARAMS_ENTITY_MODEL_NAME, MODEL_NAME);
+        targetEntities.put(ControlLoopOperationParams.PARAMS_ENTITY_MODEL_VERSION, MODEL_VERSION);
+        targetEntities.put(ControlLoopOperationParams.PARAMS_ENTITY_MODEL_VERSION_ID, MODEL_VERS_ID);
+
+        params = params.toBuilder().targetType(targetType).targetEntityIds(targetEntities).build();
     }
 
     @Override
index e364246..464e5d1 100644 (file)
@@ -35,9 +35,9 @@ import java.time.LocalDateTime;
 import java.time.Month;
 import java.util.Collections;
 import java.util.List;
+import java.util.Map;
 import java.util.concurrent.CompletableFuture;
 import java.util.function.BiConsumer;
-import java.util.function.Consumer;
 import java.util.function.Supplier;
 import org.junit.Before;
 import org.junit.Test;
@@ -52,7 +52,8 @@ import org.onap.policy.common.utils.coder.CoderException;
 import org.onap.policy.controlloop.ControlLoopOperation;
 import org.onap.policy.controlloop.actorserviceprovider.OperationOutcome;
 import org.onap.policy.controlloop.actorserviceprovider.OperationProperties;
-import org.onap.policy.controlloop.policy.PolicyResult;
+import org.onap.policy.controlloop.actorserviceprovider.OperationResult;
+import org.onap.policy.controlloop.actorserviceprovider.parameters.ControlLoopOperationParams;
 import org.onap.policy.so.SoModelInfo;
 import org.onap.policy.so.SoRequest;
 import org.onap.policy.so.SoRequestInfo;
@@ -73,6 +74,7 @@ public class SoOperationTest extends BasicSoOperation {
     /**
      * Sets up.
      */
+    @Override
     @Before
     public void setUp() throws Exception {
         super.setUp();
@@ -90,7 +92,7 @@ public class SoOperationTest extends BasicSoOperation {
         assertTrue(oper.isUsePolling());
 
         // check when Target is null
-        params = params.toBuilder().target(null).build();
+        params = params.toBuilder().targetType(null).build();
         assertThatIllegalArgumentException().isThrownBy(() -> new SoOperation(params, config, PROP_NAMES) {})
                         .withMessageContaining("Target information");
     }
@@ -98,23 +100,23 @@ public class SoOperationTest extends BasicSoOperation {
     @Test
     public void testValidateTarget() {
         // check when various fields are null
-        verifyNotNull("modelCustomizationId", target::getModelCustomizationId, target::setModelCustomizationId);
-        verifyNotNull("modelInvariantId", target::getModelInvariantId, target::setModelInvariantId);
-        verifyNotNull("modelVersionId", target::getModelVersionId, target::setModelVersionId);
+        verifyNotNull(ControlLoopOperationParams.PARAMS_ENTITY_MODEL_CUSTOMIZATION_ID, targetEntities);
+        verifyNotNull(ControlLoopOperationParams.PARAMS_ENTITY_MODEL_INVARIANT_ID, targetEntities);
+        verifyNotNull(ControlLoopOperationParams.PARAMS_ENTITY_MODEL_VERSION_ID, targetEntities);
 
         // verify it's still valid
         assertThatCode(() -> new VfModuleCreate(params, config)).doesNotThrowAnyException();
     }
 
-    private void verifyNotNull(String expectedText, Supplier<String> getter, Consumer<String> setter) {
-        String originalValue = getter.get();
+    private void verifyNotNull(String expectedText, Map<String, String> targetEntities) {
+        String originalValue = targetEntities.get(expectedText);
 
         // try with null
-        setter.accept(null);
+        targetEntities.put(expectedText, null);
         assertThatIllegalArgumentException().isThrownBy(() -> new VfModuleCreate(params, config))
                         .withMessageContaining(expectedText);
 
-        setter.accept(originalValue);
+        targetEntities.put(expectedText, originalValue);
     }
 
     @Test
@@ -178,7 +180,7 @@ public class SoOperationTest extends BasicSoOperation {
 
         assertTrue(executor.runAll(100));
         assertTrue(future2.isDone());
-        assertEquals(PolicyResult.SUCCESS, future2.get().getResult());
+        assertEquals(OperationResult.SUCCESS, future2.get().getResult());
 
         // verify that the count was stored
         Integer vfcount = context.getProperty(VF_COUNT_KEY);
@@ -219,49 +221,33 @@ public class SoOperationTest extends BasicSoOperation {
     public void testSetOutcome() {
         // success case
         when(rawResponse.getStatus()).thenReturn(200);
-        assertSame(outcome, oper.setOutcome(outcome, PolicyResult.SUCCESS, rawResponse, response));
+        assertSame(outcome, oper.setOutcome(outcome, OperationResult.SUCCESS, rawResponse, response));
 
-        assertEquals(PolicyResult.SUCCESS, outcome.getResult());
+        assertEquals(OperationResult.SUCCESS, outcome.getResult());
         assertEquals("200 " + ControlLoopOperation.SUCCESS_MSG, outcome.getMessage());
         assertSame(response, outcome.getResponse());
 
         // failure case
         when(rawResponse.getStatus()).thenReturn(500);
-        assertSame(outcome, oper.setOutcome(outcome, PolicyResult.FAILURE, rawResponse, response));
+        assertSame(outcome, oper.setOutcome(outcome, OperationResult.FAILURE, rawResponse, response));
 
-        assertEquals(PolicyResult.FAILURE, outcome.getResult());
+        assertEquals(OperationResult.FAILURE, outcome.getResult());
         assertEquals("500 " + ControlLoopOperation.FAILED_MSG, outcome.getMessage());
         assertSame(response, outcome.getResponse());
     }
 
     @Test
     public void testPrepareSoModelInfo() throws CoderException {
-        verifyMissingModelInfo(target::getModelCustomizationId, target::setModelCustomizationId);
-        verifyMissingModelInfo(target::getModelInvariantId, target::setModelInvariantId);
-        verifyMissingModelInfo(target::getModelName, target::setModelName);
-        verifyMissingModelInfo(target::getModelVersion, target::setModelVersion);
-        verifyMissingModelInfo(target::getModelVersionId, target::setModelVersionId);
-
         // valid data
         SoModelInfo info = oper.prepareSoModelInfo();
         verifyRequest("model.json", info);
 
         // try with null target
-        params = params.toBuilder().target(null).build();
+        params = params.toBuilder().targetType(null).build();
         assertThatIllegalArgumentException().isThrownBy(() -> new SoOperation(params, config, PROP_NAMES) {})
                         .withMessageContaining("missing Target");
     }
 
-    private void verifyMissingModelInfo(Supplier<String> getter, Consumer<String> setter) {
-        String original = getter.get();
-
-        setter.accept(null);
-        assertThatIllegalArgumentException().isThrownBy(() -> oper.prepareSoModelInfo())
-                        .withMessage("missing VF Module model");
-
-        setter.accept(original);
-    }
-
     @Test
     public void testConstructRequestInfo() throws CoderException {
         SoRequestInfo info = oper.constructRequestInfo();
index 9d80343..f1741d6 100644 (file)
@@ -54,10 +54,10 @@ import org.onap.policy.common.endpoints.http.client.HttpClientFactoryInstance;
 import org.onap.policy.common.utils.coder.CoderException;
 import org.onap.policy.controlloop.actorserviceprovider.OperationOutcome;
 import org.onap.policy.controlloop.actorserviceprovider.OperationProperties;
+import org.onap.policy.controlloop.actorserviceprovider.OperationResult;
 import org.onap.policy.controlloop.actorserviceprovider.parameters.ControlLoopOperationParams;
 import org.onap.policy.controlloop.actorserviceprovider.parameters.HttpPollingConfig;
 import org.onap.policy.controlloop.actorserviceprovider.parameters.HttpPollingParams;
-import org.onap.policy.controlloop.policy.PolicyResult;
 import org.onap.policy.so.SoRequest;
 import org.onap.policy.so.SoResponse;
 
@@ -83,6 +83,7 @@ public class VfModuleCreateTest extends BasicSoOperation {
         destroyAfterClass();
     }
 
+    @Override
     @Before
     public void setUp() throws Exception {
         super.setUp();
@@ -104,7 +105,7 @@ public class VfModuleCreateTest extends BasicSoOperation {
         oper = new VfModuleCreate(params, config);
 
         outcome = oper.start().get();
-        assertEquals(PolicyResult.SUCCESS, outcome.getResult());
+        assertEquals(OperationResult.SUCCESS, outcome.getResult());
         assertTrue(outcome.getResponse() instanceof SoResponse);
     }
 
@@ -146,7 +147,7 @@ public class VfModuleCreateTest extends BasicSoOperation {
 
         // run the operation
         outcome = oper.start().get();
-        assertEquals(PolicyResult.SUCCESS, outcome.getResult());
+        assertEquals(OperationResult.SUCCESS, outcome.getResult());
         assertTrue(outcome.getResponse() instanceof SoResponse);
 
         int count = oper.getProperty(OperationProperties.DATA_VF_COUNT);
@@ -159,7 +160,7 @@ public class VfModuleCreateTest extends BasicSoOperation {
         assertEquals(VfModuleCreate.NAME, oper.getName());
 
         // verify that target validation is done
-        params = params.toBuilder().target(null).build();
+        params = params.toBuilder().targetType(null).build();
         assertThatIllegalArgumentException().isThrownBy(() -> new VfModuleCreate(params, config))
                         .withMessageContaining("Target information");
     }
@@ -220,7 +221,7 @@ public class VfModuleCreateTest extends BasicSoOperation {
         provideCqResponse(makeCqResponse());
         assertTrue(executor.runAll(100));
         assertTrue(future2.isDone());
-        assertEquals(PolicyResult.SUCCESS, future2.get().getResult());
+        assertEquals(OperationResult.SUCCESS, future2.get().getResult());
     }
 
     @Test
@@ -264,7 +265,7 @@ public class VfModuleCreateTest extends BasicSoOperation {
         CompletableFuture<OperationOutcome> future2 = oper.start();
 
         outcome = future2.get(5, TimeUnit.SECONDS);
-        assertEquals(PolicyResult.SUCCESS, outcome.getResult());
+        assertEquals(OperationResult.SUCCESS, outcome.getResult());
 
         SoResponse resp = outcome.getResponse();
         assertNotNull(resp);
@@ -296,7 +297,7 @@ public class VfModuleCreateTest extends BasicSoOperation {
         CompletableFuture<OperationOutcome> future2 = oper.start();
 
         outcome = future2.get(5, TimeUnit.SECONDS);
-        assertEquals(PolicyResult.SUCCESS, outcome.getResult());
+        assertEquals(OperationResult.SUCCESS, outcome.getResult());
     }
 
     @Test
index 9335f01..2ab1dbe 100644 (file)
@@ -67,10 +67,10 @@ import org.onap.policy.common.endpoints.http.client.HttpClientFactoryInstance;
 import org.onap.policy.common.utils.coder.CoderException;
 import org.onap.policy.controlloop.actorserviceprovider.OperationOutcome;
 import org.onap.policy.controlloop.actorserviceprovider.OperationProperties;
+import org.onap.policy.controlloop.actorserviceprovider.OperationResult;
 import org.onap.policy.controlloop.actorserviceprovider.parameters.ControlLoopOperationParams;
 import org.onap.policy.controlloop.actorserviceprovider.parameters.HttpPollingConfig;
 import org.onap.policy.controlloop.actorserviceprovider.parameters.HttpPollingParams;
-import org.onap.policy.controlloop.policy.PolicyResult;
 import org.onap.policy.so.SoRequest;
 import org.onap.policy.so.SoResponse;
 
@@ -108,6 +108,7 @@ public class VfModuleDeleteTest extends BasicSoOperation {
     /**
      * Sets up.
      */
+    @Override
     @Before
     public void setUp() throws Exception {
         super.setUp();
@@ -133,7 +134,7 @@ public class VfModuleDeleteTest extends BasicSoOperation {
         oper = new VfModuleDelete(params, config);
 
         outcome = oper.start().get();
-        assertEquals(PolicyResult.SUCCESS, outcome.getResult());
+        assertEquals(OperationResult.SUCCESS, outcome.getResult());
         assertTrue(outcome.getResponse() instanceof SoResponse);
     }
 
@@ -167,7 +168,7 @@ public class VfModuleDeleteTest extends BasicSoOperation {
 
         // run the operation
         outcome = oper.start().get();
-        assertEquals(PolicyResult.SUCCESS, outcome.getResult());
+        assertEquals(OperationResult.SUCCESS, outcome.getResult());
         assertTrue(outcome.getResponse() instanceof SoResponse);
 
         int count = oper.getProperty(OperationProperties.DATA_VF_COUNT);
@@ -180,7 +181,7 @@ public class VfModuleDeleteTest extends BasicSoOperation {
         assertEquals(VfModuleDelete.NAME, oper.getName());
 
         // verify that target validation is done
-        params = params.toBuilder().target(null).build();
+        params = params.toBuilder().targetType(null).build();
         assertThatIllegalArgumentException().isThrownBy(() -> new MyOperation(params, config))
                         .withMessageContaining("Target information");
     }
@@ -239,7 +240,7 @@ public class VfModuleDeleteTest extends BasicSoOperation {
         provideCqResponse(makeCqResponse());
         assertTrue(executor.runAll(100));
         assertTrue(future2.isDone());
-        assertEquals(PolicyResult.SUCCESS, future2.get().getResult());
+        assertEquals(OperationResult.SUCCESS, future2.get().getResult());
     }
 
     @Test
@@ -281,7 +282,7 @@ public class VfModuleDeleteTest extends BasicSoOperation {
         CompletableFuture<OperationOutcome> future2 = oper.start();
 
         outcome = future2.get(5, TimeUnit.SECONDS);
-        assertEquals(PolicyResult.SUCCESS, outcome.getResult());
+        assertEquals(OperationResult.SUCCESS, outcome.getResult());
 
         SoResponse resp = outcome.getResponse();
         assertNotNull(resp);
@@ -315,7 +316,7 @@ public class VfModuleDeleteTest extends BasicSoOperation {
         CompletableFuture<OperationOutcome> future2 = oper.start();
 
         outcome = future2.get(5, TimeUnit.SECONDS);
-        assertEquals(PolicyResult.SUCCESS, outcome.getResult());
+        assertEquals(OperationResult.SUCCESS, outcome.getResult());
     }
 
     @Test
index a0bb58e..cdedbf4 100644 (file)
@@ -43,12 +43,12 @@ import org.onap.policy.controlloop.VirtualControlLoopEvent;
 import org.onap.policy.controlloop.actorserviceprovider.ActorService;
 import org.onap.policy.controlloop.actorserviceprovider.Operation;
 import org.onap.policy.controlloop.actorserviceprovider.OperationOutcome;
+import org.onap.policy.controlloop.actorserviceprovider.OperationResult;
 import org.onap.policy.controlloop.actorserviceprovider.Operator;
 import org.onap.policy.controlloop.actorserviceprovider.controlloop.ControlLoopEventContext;
 import org.onap.policy.controlloop.actorserviceprovider.impl.OperationPartial;
 import org.onap.policy.controlloop.actorserviceprovider.parameters.ControlLoopOperationParams;
 import org.onap.policy.controlloop.actorserviceprovider.spi.Actor;
-import org.onap.policy.controlloop.policy.PolicyResult;
 
 /**
  * Superclass for various Operation tests.
@@ -137,7 +137,7 @@ public class BasicOperation {
         when(guardOperator.buildOperation(any())).thenReturn(guardOperation);
 
         outcome = params.makeOutcome(TARGET_ENTITY);
-        outcome.setResult(PolicyResult.SUCCESS);
+        outcome.setResult(OperationResult.SUCCESS);
         when(guardOperation.start()).thenReturn(CompletableFuture.completedFuture(outcome));
 
         when(service.getActor(AaiConstants.ACTOR_NAME)).thenReturn(cqActor);
@@ -227,7 +227,7 @@ public class BasicOperation {
     protected void provideCqResponse(AaiCqResponse cq) {
         context.setProperty(AaiCqResponse.CONTEXT_KEY, cq);
         OperationOutcome outcome2 = params.makeOutcome(TARGET_ENTITY);
-        outcome2.setResult(PolicyResult.SUCCESS);
+        outcome2.setResult(OperationResult.SUCCESS);
         cqFuture.complete(outcome2);
     }
 }
index 047378b..60d3ddd 100644 (file)
@@ -34,9 +34,9 @@ import org.onap.policy.aai.AaiCqResponse;
 import org.onap.policy.common.utils.coder.CoderException;
 import org.onap.policy.common.utils.resources.ResourceUtils;
 import org.onap.policy.controlloop.actorserviceprovider.OperationOutcome;
+import org.onap.policy.controlloop.actorserviceprovider.OperationResult;
 import org.onap.policy.controlloop.actorserviceprovider.Util;
 import org.onap.policy.controlloop.actorserviceprovider.impl.OperationPartial;
-import org.onap.policy.controlloop.policy.PolicyResult;
 
 public class BasicOperationTest {
     private static final String ACTOR = "my-actor";
@@ -75,7 +75,7 @@ public class BasicOperationTest {
         CompletableFuture<OperationOutcome> future = oper.service.getActor(OperationPartial.GUARD_ACTOR_NAME)
                         .getOperator(OperationPartial.GUARD_OPERATION_NAME).buildOperation(null).start();
         assertTrue(future.isDone());
-        assertEquals(PolicyResult.SUCCESS, future.get().getResult());
+        assertEquals(OperationResult.SUCCESS, future.get().getResult());
     }
 
     @Test
@@ -116,6 +116,6 @@ public class BasicOperationTest {
 
         assertSame(cq, oper.context.getProperty(AaiCqResponse.CONTEXT_KEY));
         assertTrue(oper.cqFuture.isDone());
-        assertEquals(PolicyResult.SUCCESS, oper.cqFuture.get().getResult());
+        assertEquals(OperationResult.SUCCESS, oper.cqFuture.get().getResult());
     }
 }
index bb23fdc..0a1136d 100644 (file)
@@ -26,10 +26,10 @@ import javax.ws.rs.core.Response;
 import org.apache.commons.lang3.StringUtils;
 import org.onap.policy.controlloop.actorserviceprovider.OperationOutcome;
 import org.onap.policy.controlloop.actorserviceprovider.OperationProperties;
+import org.onap.policy.controlloop.actorserviceprovider.OperationResult;
 import org.onap.policy.controlloop.actorserviceprovider.impl.HttpOperation;
 import org.onap.policy.controlloop.actorserviceprovider.parameters.ControlLoopOperationParams;
 import org.onap.policy.controlloop.actorserviceprovider.parameters.HttpConfig;
-import org.onap.policy.controlloop.policy.PolicyResult;
 import org.onap.policy.vfc.VfcHealActionVmInfo;
 import org.onap.policy.vfc.VfcHealAdditionalParams;
 import org.onap.policy.vfc.VfcHealRequest;
@@ -151,13 +151,13 @@ public abstract class VfcOperation extends HttpOperation<VfcResponse> {
      * Prepends the message with the http status code.
      */
     @Override
-    public OperationOutcome setOutcome(OperationOutcome outcome, PolicyResult result, Response rawResponse,
+    public OperationOutcome setOutcome(OperationOutcome outcome, OperationResult result, Response rawResponse,
                     VfcResponse response) {
 
         // set default result and message
         setOutcome(outcome, result);
 
-        int code = (result == PolicyResult.FAILURE_TIMEOUT ? VFC_RESPONSE_CODE : rawResponse.getStatus());
+        int code = (result == OperationResult.FAILURE_TIMEOUT ? VFC_RESPONSE_CODE : rawResponse.getStatus());
 
         outcome.setResponse(response);
         outcome.setMessage(code + " " + outcome.getMessage());
index 068ffda..9a4677d 100644 (file)
@@ -36,9 +36,9 @@ import org.onap.policy.aai.AaiCqResponse;
 import org.onap.policy.common.endpoints.http.client.HttpClientFactoryInstance;
 import org.onap.policy.controlloop.actorserviceprovider.OperationOutcome;
 import org.onap.policy.controlloop.actorserviceprovider.OperationProperties;
+import org.onap.policy.controlloop.actorserviceprovider.OperationResult;
 import org.onap.policy.controlloop.actorserviceprovider.parameters.HttpPollingConfig;
 import org.onap.policy.controlloop.actorserviceprovider.parameters.HttpPollingParams;
-import org.onap.policy.controlloop.policy.PolicyResult;
 import org.onap.policy.vfc.VfcRequest;
 import org.onap.policy.vfc.VfcResponse;
 
@@ -87,7 +87,7 @@ public class RestartTest extends BasicVfcOperation {
         restartOper = new Restart(params, config);
 
         outcome = restartOper.start().get();
-        assertEquals(PolicyResult.SUCCESS, outcome.getResult());
+        assertEquals(OperationResult.SUCCESS, outcome.getResult());
         assertTrue(outcome.getResponse() instanceof VfcResponse);
     }
 
@@ -113,7 +113,7 @@ public class RestartTest extends BasicVfcOperation {
 
         // run the operation
         outcome = restartOper.start().get();
-        assertEquals(PolicyResult.SUCCESS, outcome.getResult());
+        assertEquals(OperationResult.SUCCESS, outcome.getResult());
         assertTrue(outcome.getResponse() instanceof VfcResponse);
     }
 
diff --git a/models-interactions/model-actors/actorServiceProvider/src/main/java/org/onap/policy/controlloop/actorserviceprovider/OperationFinalResult.java b/models-interactions/model-actors/actorServiceProvider/src/main/java/org/onap/policy/controlloop/actorserviceprovider/OperationFinalResult.java
new file mode 100644 (file)
index 0000000..67d25f2
--- /dev/null
@@ -0,0 +1,106 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * models
+ * ================================================================================
+ * Copyright (C) 2020 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.controlloop.actorserviceprovider;
+
+public enum OperationFinalResult {
+    /**
+     * The Control Loop Policy successfully completed its Operations.
+     */
+    FINAL_SUCCESS("Final_Success"),
+    /**
+     * The Control Loop Policy was an Open Loop and is finished.
+     */
+    FINAL_OPENLOOP("Final_OpenLoop"),
+    /**
+     * The Control Loop Policy failed in its last Operation Policy. NOTE: Previous Operation Policies may have been
+     * successful.
+     */
+    FINAL_FAILURE("Final_Failure"),
+    /**
+     * The Control Loop Policy failed because the overall timeout was met.
+     */
+    FINAL_FAILURE_TIMEOUT("Final_Failure_Timeout"),
+    /**
+     * The Control Loop Policy failed because an Operation Policy met its retry limit.
+     */
+    FINAL_FAILURE_RETRIES("Final_Failure_Retries"),
+    /**
+     * The Control Loop Policy failed due to an exception.
+     */
+    FINAL_FAILURE_EXCEPTION("Final_Failure_Exception"),
+    /**
+     * The Control Loop Policy failed due to guard denied.
+     */
+    FINAL_FAILURE_GUARD("Final_Failure_Guard");
+
+    String result;
+
+    private OperationFinalResult(String result) {
+        this.result = result;
+    }
+
+    /**
+     * Converts to a result object.
+     *
+     * @param result input string
+     * @return result object
+     */
+    public static OperationFinalResult toResult(String result) {
+        if (result.equalsIgnoreCase(FINAL_SUCCESS.toString())) {
+            return FINAL_SUCCESS;
+        }
+        if (result.equalsIgnoreCase(FINAL_OPENLOOP.toString())) {
+            return FINAL_OPENLOOP;
+        }
+        if (result.equalsIgnoreCase(FINAL_FAILURE.toString())) {
+            return FINAL_FAILURE;
+        }
+        if (result.equalsIgnoreCase(FINAL_FAILURE_TIMEOUT.toString())) {
+            return FINAL_FAILURE_TIMEOUT;
+        }
+        if (result.equalsIgnoreCase(FINAL_FAILURE_RETRIES.toString())) {
+            return FINAL_FAILURE_RETRIES;
+        }
+        if (result.equalsIgnoreCase(FINAL_FAILURE_EXCEPTION.toString())) {
+            return FINAL_FAILURE_EXCEPTION;
+        }
+        if (result.equalsIgnoreCase(FINAL_FAILURE_GUARD.toString())) {
+            return FINAL_FAILURE_GUARD;
+        }
+        return null;
+    }
+
+    /**
+     * Check if the result really is a result.
+     *
+     * @param result string
+     * @param finalResult result object
+     * @return true if a result
+     */
+    public static boolean isResult(String result, OperationFinalResult finalResult) {
+        OperationFinalResult toResult = OperationFinalResult.toResult(result);
+        if (toResult == null) {
+            return false;
+        }
+        return toResult.equals(finalResult);
+    }
+
+}
index 0c4350c..2d6a612 100644 (file)
@@ -25,7 +25,6 @@ import lombok.Data;
 import lombok.NoArgsConstructor;
 import lombok.NonNull;
 import org.onap.policy.controlloop.ControlLoopOperation;
-import org.onap.policy.controlloop.policy.PolicyResult;
 
 /**
  * Outcome from an operation. Objects of this type are passed from one stage to the next.
@@ -39,7 +38,7 @@ public class OperationOutcome {
     private Instant start;
     private Instant end;
     private String subRequestId;
-    private PolicyResult result = PolicyResult.SUCCESS;
+    private OperationResult result = OperationResult.SUCCESS;
     private String message;
     private boolean finalOutcome;
     private Object response;
@@ -119,7 +118,7 @@ public class OperationOutcome {
      *
      * @param result new result
      */
-    public void setResult(@NonNull PolicyResult result) {
+    public void setResult(@NonNull OperationResult result) {
         this.result = result;
     }
 }
diff --git a/models-interactions/model-actors/actorServiceProvider/src/main/java/org/onap/policy/controlloop/actorserviceprovider/OperationResult.java b/models-interactions/model-actors/actorServiceProvider/src/main/java/org/onap/policy/controlloop/actorserviceprovider/OperationResult.java
new file mode 100644 (file)
index 0000000..4577617
--- /dev/null
@@ -0,0 +1,88 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP
+ * ================================================================================
+ * Copyright (C) 2020 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.controlloop.actorserviceprovider;
+
+public enum OperationResult {
+    /**
+     * Operation was successful.
+     */
+    SUCCESS("Success"),
+    /**
+     * Operation failed.
+     */
+    FAILURE("Failure"),
+    /**
+     * Operation failed due to maximum retries being met.
+     */
+    FAILURE_RETRIES("Failure_Retries"),
+    /**
+     * Operation failed due to timeout occurring.
+     */
+    FAILURE_TIMEOUT("Failure_Timeout"),
+    /**
+     * Operation failed due to an exception.
+     */
+    FAILURE_EXCEPTION("Failure_Exception"),
+    /**
+     * Operation failed since Guard did not permit.
+     */
+    FAILURE_GUARD("Failure_Guard")
+    ;
+
+
+    private String result;
+    private OperationResult(String result) {
+        this.result = result;
+    }
+
+    @Override
+    public String toString() {
+        return this.result;
+    }
+
+    /**
+     * Convert to a result.
+     *
+     * @param result result string
+     * @return Result object
+     */
+    public static OperationResult toResult(String result) {
+        if (result.equalsIgnoreCase(SUCCESS.toString())) {
+            return SUCCESS;
+        }
+        if (result.equalsIgnoreCase(FAILURE.toString())) {
+            return FAILURE;
+        }
+        if (result.equalsIgnoreCase(FAILURE_RETRIES.toString())) {
+            return FAILURE_RETRIES;
+        }
+        if (result.equalsIgnoreCase(FAILURE_TIMEOUT.toString())) {
+            return FAILURE_TIMEOUT;
+        }
+        if (result.equalsIgnoreCase(FAILURE_EXCEPTION.toString())) {
+            return FAILURE_EXCEPTION;
+        }
+        if (result.equalsIgnoreCase(FAILURE_GUARD.toString())) {
+            return FAILURE_GUARD;
+        }
+        return null;
+    }
+}
diff --git a/models-interactions/model-actors/actorServiceProvider/src/main/java/org/onap/policy/controlloop/actorserviceprovider/TargetType.java b/models-interactions/model-actors/actorServiceProvider/src/main/java/org/onap/policy/controlloop/actorserviceprovider/TargetType.java
new file mode 100644 (file)
index 0000000..605445c
--- /dev/null
@@ -0,0 +1,65 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP
+ * ================================================================================
+ * Copyright (C) 2020 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.controlloop.actorserviceprovider;
+
+public enum TargetType {
+    VM("VM"), PNF("PNF"), VFC("VFC"), VNF("VNF"), VFMODULE("VFMODULE");
+
+    private String target;
+
+    private TargetType(String targetType) {
+        this.target = targetType;
+    }
+
+    @Override
+    public String toString() {
+        return this.target;
+    }
+
+    /**
+     * Converts a string to TargetType object if it matches.
+     *
+     * @param targetType String
+     * @return TargetType object
+     */
+    public static TargetType toTargetType(String targetType) {
+        if (targetType == null) {
+            return null;
+        }
+        if (targetType.equalsIgnoreCase(VM.toString())) {
+            return VM;
+        }
+        if (targetType.equalsIgnoreCase(PNF.toString())) {
+            return PNF;
+        }
+        if (targetType.equalsIgnoreCase(VFC.toString())) {
+            return VFC;
+        }
+        if (targetType.equalsIgnoreCase(VNF.toString())) {
+            return VNF;
+        }
+        if (targetType.equalsIgnoreCase(VFMODULE.toString())) {
+            return VFMODULE;
+        }
+
+        return null;
+    }
+}
index a3f3a69..e02e592 100644 (file)
@@ -29,12 +29,12 @@ import org.onap.policy.common.endpoints.utils.NetLoggerUtil.EventType;
 import org.onap.policy.common.utils.coder.CoderException;
 import org.onap.policy.common.utils.coder.StandardCoderObject;
 import org.onap.policy.controlloop.actorserviceprovider.OperationOutcome;
+import org.onap.policy.controlloop.actorserviceprovider.OperationResult;
 import org.onap.policy.controlloop.actorserviceprovider.parameters.BidirectionalTopicConfig;
 import org.onap.policy.controlloop.actorserviceprovider.parameters.ControlLoopOperationParams;
 import org.onap.policy.controlloop.actorserviceprovider.pipeline.PipelineControllerFuture;
 import org.onap.policy.controlloop.actorserviceprovider.topic.BidirectionalTopicHandler;
 import org.onap.policy.controlloop.actorserviceprovider.topic.Forwarder;
-import org.onap.policy.controlloop.policy.PolicyResult;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -215,14 +215,14 @@ public abstract class BidirectionalTopicOperation<Q, S> extends OperationPartial
             case SUCCESS:
                 logger.info("{}.{} request succeeded for {}", params.getActor(), params.getOperation(),
                                 params.getRequestId());
-                setOutcome(outcome, PolicyResult.SUCCESS, response);
+                setOutcome(outcome, OperationResult.SUCCESS, response);
                 postProcessResponse(outcome, rawResponse, response);
                 return outcome;
 
             case FAILURE:
                 logger.info("{}.{} request failed for {}", params.getActor(), params.getOperation(),
                                 params.getRequestId());
-                return setOutcome(outcome, PolicyResult.FAILURE, response);
+                return setOutcome(outcome, OperationResult.FAILURE, response);
 
             case STILL_WAITING:
             default:
@@ -240,7 +240,7 @@ public abstract class BidirectionalTopicOperation<Q, S> extends OperationPartial
      * @param response response used to populate the outcome
      * @return the updated operation
      */
-    public OperationOutcome setOutcome(OperationOutcome outcome, PolicyResult result, S response) {
+    public OperationOutcome setOutcome(OperationOutcome outcome, OperationResult result, S response) {
         outcome.setResponse(response);
         return setOutcome(outcome, result);
     }
index 09c876d..c75ca1d 100644 (file)
@@ -37,12 +37,12 @@ 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.controlloop.actorserviceprovider.OperationOutcome;
+import org.onap.policy.controlloop.actorserviceprovider.OperationResult;
 import org.onap.policy.controlloop.actorserviceprovider.parameters.ControlLoopOperationParams;
 import org.onap.policy.controlloop.actorserviceprovider.parameters.HttpConfig;
 import org.onap.policy.controlloop.actorserviceprovider.parameters.HttpParams;
 import org.onap.policy.controlloop.actorserviceprovider.parameters.HttpPollingConfig;
 import org.onap.policy.controlloop.actorserviceprovider.pipeline.PipelineControllerFuture;
-import org.onap.policy.controlloop.policy.PolicyResult;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -243,11 +243,12 @@ public abstract class HttpOperation<T> extends OperationPartial {
         if (!isSuccess(rawResponse, response)) {
             logger.info("{}.{} request failed with http error code {} for {}", params.getActor(), params.getOperation(),
                             rawResponse.getStatus(), params.getRequestId());
-            return CompletableFuture.completedFuture(setOutcome(outcome, PolicyResult.FAILURE, rawResponse, response));
+            return CompletableFuture.completedFuture(
+                    setOutcome(outcome, OperationResult.FAILURE, rawResponse, response));
         }
 
         logger.info("{}.{} request succeeded for {}", params.getActor(), params.getOperation(), params.getRequestId());
-        setOutcome(outcome, PolicyResult.SUCCESS, rawResponse, response);
+        setOutcome(outcome, OperationResult.SUCCESS, rawResponse, response);
         return postProcessResponse(outcome, url, rawResponse, response);
     }
 
@@ -260,7 +261,7 @@ public abstract class HttpOperation<T> extends OperationPartial {
      * @param response decoded response
      * @return the updated operation
      */
-    public OperationOutcome setOutcome(OperationOutcome outcome, PolicyResult result, Response rawResponse,
+    public OperationOutcome setOutcome(OperationOutcome outcome, OperationResult result, Response rawResponse,
                     T response) {
 
         outcome.setResponse(response);
@@ -292,13 +293,13 @@ public abstract class HttpOperation<T> extends OperationPartial {
                 logger.info("{}.{} request succeeded for {}", params.getActor(), params.getOperation(),
                                 params.getRequestId());
                 return CompletableFuture
-                                .completedFuture(setOutcome(outcome, PolicyResult.SUCCESS, rawResponse, response));
+                                .completedFuture(setOutcome(outcome, OperationResult.SUCCESS, rawResponse, response));
 
             case FAILURE:
                 logger.info("{}.{} request failed for {}", params.getActor(), params.getOperation(),
                                 params.getRequestId());
                 return CompletableFuture
-                                .completedFuture(setOutcome(outcome, PolicyResult.FAILURE, rawResponse, response));
+                                .completedFuture(setOutcome(outcome, OperationResult.FAILURE, rawResponse, response));
 
             case STILL_WAITING:
             default:
@@ -313,7 +314,7 @@ public abstract class HttpOperation<T> extends OperationPartial {
         if (pollCount++ >= cfg.getMaxPolls()) {
             logger.warn("{}: execeeded 'poll' limit {} for {}", getFullName(), cfg.getMaxPolls(),
                             params.getRequestId());
-            setOutcome(outcome, PolicyResult.FAILURE_TIMEOUT);
+            setOutcome(outcome, OperationResult.FAILURE_TIMEOUT);
             return CompletableFuture.completedFuture(outcome);
         }
 
index b5cc15e..c81575f 100644 (file)
@@ -54,10 +54,10 @@ import org.onap.policy.controlloop.actorserviceprovider.CallbackManager;
 import org.onap.policy.controlloop.actorserviceprovider.Operation;
 import org.onap.policy.controlloop.actorserviceprovider.OperationOutcome;
 import org.onap.policy.controlloop.actorserviceprovider.OperationProperties;
+import org.onap.policy.controlloop.actorserviceprovider.OperationResult;
 import org.onap.policy.controlloop.actorserviceprovider.parameters.ControlLoopOperationParams;
 import org.onap.policy.controlloop.actorserviceprovider.parameters.OperatorConfig;
 import org.onap.policy.controlloop.actorserviceprovider.pipeline.PipelineControllerFuture;
-import org.onap.policy.controlloop.policy.PolicyResult;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -132,10 +132,12 @@ public abstract class OperationPartial implements Operation {
         return config.getBlockingExecutor();
     }
 
+    @Override
     public String getActorName() {
         return params.getActor();
     }
 
+    @Override
     public String getName() {
         return params.getOperation();
     }
@@ -221,7 +223,7 @@ public abstract class OperationPartial implements Operation {
             // TODO need a FAILURE_MISSING_DATA (e.g., A&AI)
 
             outcome2.setFinalOutcome(true);
-            outcome2.setResult(PolicyResult.FAILURE_GUARD);
+            outcome2.setResult(OperationResult.FAILURE_GUARD);
             outcome2.setMessage(outcome != null ? outcome.getMessage() : null);
 
             // @formatter:off
@@ -392,7 +394,7 @@ public abstract class OperationPartial implements Operation {
      * @return {@code true} if the outcome was successful
      */
     protected boolean isSuccess(OperationOutcome outcome) {
-        return (outcome != null && outcome.getResult() == PolicyResult.SUCCESS);
+        return (outcome != null && outcome.getResult() == OperationResult.SUCCESS);
     }
 
     /**
@@ -403,7 +405,7 @@ public abstract class OperationPartial implements Operation {
      *         <i>and</i> was associated with this operator, {@code false} otherwise
      */
     protected boolean isActorFailed(OperationOutcome outcome) {
-        return (isSameOperation(outcome) && outcome.getResult() == PolicyResult.FAILURE);
+        return (isSameOperation(outcome) && outcome.getResult() == OperationResult.FAILURE);
     }
 
     /**
@@ -475,7 +477,7 @@ public abstract class OperationPartial implements Operation {
                 outcome = origOutcome;
             } else {
                 logger.warn("{}: null outcome; treating as a failure for {}", getFullName(), params.getRequestId());
-                outcome = this.setOutcome(params.makeOutcome(getTargetEntity()), PolicyResult.FAILURE);
+                outcome = this.setOutcome(params.makeOutcome(getTargetEntity()), OperationResult.FAILURE);
             }
 
             // ensure correct actor/operation
@@ -483,7 +485,7 @@ public abstract class OperationPartial implements Operation {
             outcome.setOperation(getName());
 
             // determine if we should retry, based on the result
-            if (outcome.getResult() != PolicyResult.FAILURE) {
+            if (outcome.getResult() != OperationResult.FAILURE) {
                 // do not retry success or other failure types (e.g., exception)
                 outcome.setFinalOutcome(true);
                 return outcome;
@@ -504,7 +506,7 @@ public abstract class OperationPartial implements Operation {
                  * FAILURE_RETRIES
                  */
                 logger.info("operation {} retries exhausted for {}", getFullName(), params.getRequestId());
-                outcome.setResult(PolicyResult.FAILURE_RETRIES);
+                outcome.setResult(OperationResult.FAILURE_RETRIES);
                 outcome.setFinalOutcome(true);
             }
 
@@ -989,7 +991,8 @@ public abstract class OperationPartial implements Operation {
      * @return the updated operation
      */
     public OperationOutcome setOutcome(OperationOutcome operation, Throwable thrown) {
-        PolicyResult result = (isTimeout(thrown) ? PolicyResult.FAILURE_TIMEOUT : PolicyResult.FAILURE_EXCEPTION);
+        OperationResult result = (isTimeout(thrown) ? OperationResult.FAILURE_TIMEOUT
+                : OperationResult.FAILURE_EXCEPTION);
         return setOutcome(operation, result);
     }
 
@@ -1000,10 +1003,10 @@ public abstract class OperationPartial implements Operation {
      * @param result result of the operation
      * @return the updated operation
      */
-    public OperationOutcome setOutcome(OperationOutcome operation, PolicyResult result) {
+    public OperationOutcome setOutcome(OperationOutcome operation, OperationResult result) {
         logger.trace("{}: set outcome {} for {}", getFullName(), result, params.getRequestId());
         operation.setResult(result);
-        operation.setMessage(result == PolicyResult.SUCCESS ? ControlLoopOperation.SUCCESS_MSG
+        operation.setMessage(result == OperationResult.SUCCESS ? ControlLoopOperation.SUCCESS_MSG
                         : ControlLoopOperation.FAILED_MSG);
 
         return operation;
index 66573f3..0e4f09b 100644 (file)
@@ -37,9 +37,9 @@ import org.onap.policy.controlloop.VirtualControlLoopEvent;
 import org.onap.policy.controlloop.actorserviceprovider.ActorService;
 import org.onap.policy.controlloop.actorserviceprovider.Operation;
 import org.onap.policy.controlloop.actorserviceprovider.OperationOutcome;
+import org.onap.policy.controlloop.actorserviceprovider.TargetType;
 import org.onap.policy.controlloop.actorserviceprovider.Util;
 import org.onap.policy.controlloop.actorserviceprovider.controlloop.ControlLoopEventContext;
-import org.onap.policy.controlloop.policy.Target;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -54,6 +54,13 @@ import org.slf4j.LoggerFactory;
 public class ControlLoopOperationParams {
     private static final Logger logger = LoggerFactory.getLogger(ControlLoopOperationParams.class);
 
+    public static final String PARAMS_ENTITY_RESOURCEID = "resourceID";
+    public static final String PARAMS_ENTITY_MODEL_INVARIANT_ID = "modelInvariantId";
+    public static final String PARAMS_ENTITY_MODEL_VERSION_ID = "modelVersionId";
+    public static final String PARAMS_ENTITY_MODEL_NAME = "modelName";
+    public static final String PARAMS_ENTITY_MODEL_VERSION = "modelVersion";
+    public static final String PARAMS_ENTITY_MODEL_CUSTOMIZATION_ID = "modelCustomizationId";
+
     /**
      * Actor name.
      */
@@ -107,10 +114,16 @@ public class ControlLoopOperationParams {
     private Integer retry;
 
     /**
-     * The Target information, extracted from the Policy. May be {@code null}, depending
+     * The Target Type information, extracted from the Policy. May be {@code null}, depending
      * on the requirement of the operation to be invoked.
      */
-    private Target target;
+    private TargetType targetType;
+
+    /**
+     * Target entitiy ids, extracted from the Policy. May be (@code null}, depending on
+     * the requirement of the operation to be invoked.
+     */
+    private Map<String, String> targetEntityIds;
 
     /**
      * Target entity.
index 5820bec..605a733 100644 (file)
@@ -30,7 +30,6 @@ import java.time.Instant;
 import org.junit.Before;
 import org.junit.Test;
 import org.onap.policy.controlloop.ControlLoopOperation;
-import org.onap.policy.controlloop.policy.PolicyResult;
 
 public class OperationOutcomeTest {
     private static final String ACTOR = "my-actor";
@@ -39,7 +38,7 @@ public class OperationOutcomeTest {
     private static final Instant START = Instant.ofEpochMilli(10);
     private static final Instant END = Instant.ofEpochMilli(20);
     private static final String SUB_REQ_ID = "my-sub-request-id";
-    private static final PolicyResult RESULT = PolicyResult.FAILURE_GUARD;
+    private static final OperationResult RESULT = OperationResult.FAILURE_GUARD;
     private static final String MESSAGE = "my-message";
     private static final String RESPONSE = "my-response";
 
@@ -124,8 +123,8 @@ public class OperationOutcomeTest {
 
     @Test
     public void testSetResult() {
-        outcome.setResult(PolicyResult.FAILURE_EXCEPTION);
-        assertEquals(PolicyResult.FAILURE_EXCEPTION, outcome.getResult());
+        outcome.setResult(OperationResult.FAILURE_EXCEPTION);
+        assertEquals(OperationResult.FAILURE_EXCEPTION, outcome.getResult());
 
         assertThatThrownBy(() -> outcome.setResult(null));
     }
index f63e07e..14b1daf 100644 (file)
@@ -55,11 +55,11 @@ import org.onap.policy.common.utils.coder.StandardCoder;
 import org.onap.policy.common.utils.coder.StandardCoderObject;
 import org.onap.policy.common.utils.time.PseudoExecutor;
 import org.onap.policy.controlloop.actorserviceprovider.OperationOutcome;
+import org.onap.policy.controlloop.actorserviceprovider.OperationResult;
 import org.onap.policy.controlloop.actorserviceprovider.parameters.BidirectionalTopicConfig;
 import org.onap.policy.controlloop.actorserviceprovider.parameters.ControlLoopOperationParams;
 import org.onap.policy.controlloop.actorserviceprovider.topic.BidirectionalTopicHandler;
 import org.onap.policy.controlloop.actorserviceprovider.topic.Forwarder;
-import org.onap.policy.controlloop.policy.PolicyResult;
 
 public class BidirectionalTopicOperationTest {
     private static final CommInfrastructure SINK_INFRA = CommInfrastructure.NOOP;
@@ -163,7 +163,7 @@ public class BidirectionalTopicOperationTest {
         assertTrue(future.isDone());
 
         assertSame(outcome, future.get());
-        assertEquals(PolicyResult.SUCCESS, outcome.getResult());
+        assertEquals(OperationResult.SUCCESS, outcome.getResult());
         assertEquals(response, outcome.getResponse());
 
         verify(forwarder).unregister(eq(Arrays.asList(REQ_ID)), eq(listenerCaptor.getValue()));
@@ -263,7 +263,7 @@ public class BidirectionalTopicOperationTest {
         MyStringOperation oper2 = new MyStringOperation();
 
         assertSame(outcome, oper2.processResponse(outcome, TEXT, null));
-        assertEquals(PolicyResult.SUCCESS, outcome.getResult());
+        assertEquals(OperationResult.SUCCESS, outcome.getResult());
         assertEquals(TEXT, outcome.getResponse());
     }
 
@@ -276,7 +276,7 @@ public class BidirectionalTopicOperationTest {
         MyScoOperation oper2 = new MyScoOperation();
 
         assertSame(outcome, oper2.processResponse(outcome, responseText, stdResponse));
-        assertEquals(PolicyResult.SUCCESS, outcome.getResult());
+        assertEquals(OperationResult.SUCCESS, outcome.getResult());
         assertEquals(stdResponse, outcome.getResponse());
     }
 
@@ -293,7 +293,7 @@ public class BidirectionalTopicOperationTest {
         stdResponse = coder.decode(responseText, StandardCoderObject.class);
 
         assertSame(outcome, oper.processResponse(outcome, responseText, stdResponse));
-        assertEquals(PolicyResult.FAILURE, outcome.getResult());
+        assertEquals(OperationResult.FAILURE, outcome.getResult());
         assertEquals(resp, outcome.getResponse());
     }
 
@@ -303,7 +303,7 @@ public class BidirectionalTopicOperationTest {
     @Test
     public void testProcessResponseDecodeOk() throws CoderException {
         assertSame(outcome, oper.processResponse(outcome, responseText, stdResponse));
-        assertEquals(PolicyResult.SUCCESS, outcome.getResult());
+        assertEquals(OperationResult.SUCCESS, outcome.getResult());
         assertEquals(response, outcome.getResponse());
     }
 
index daabaa2..453592d 100644 (file)
@@ -79,11 +79,11 @@ import org.onap.policy.common.utils.coder.CoderException;
 import org.onap.policy.common.utils.network.NetworkUtil;
 import org.onap.policy.controlloop.VirtualControlLoopEvent;
 import org.onap.policy.controlloop.actorserviceprovider.OperationOutcome;
+import org.onap.policy.controlloop.actorserviceprovider.OperationResult;
 import org.onap.policy.controlloop.actorserviceprovider.controlloop.ControlLoopEventContext;
 import org.onap.policy.controlloop.actorserviceprovider.parameters.ControlLoopOperationParams;
 import org.onap.policy.controlloop.actorserviceprovider.parameters.HttpConfig;
 import org.onap.policy.controlloop.actorserviceprovider.parameters.HttpParams;
-import org.onap.policy.controlloop.policy.PolicyResult;
 
 public class HttpOperationTest {
 
@@ -257,7 +257,7 @@ public class HttpOperationTest {
         assertSame(outcome, future2.get(5, TimeUnit.SECONDS));
         assertSame(TEXT, outcome.getResponse());
 
-        assertEquals(PolicyResult.SUCCESS, outcome.getResult());
+        assertEquals(OperationResult.SUCCESS, outcome.getResult());
     }
 
     /**
@@ -289,7 +289,7 @@ public class HttpOperationTest {
         CompletableFuture<OperationOutcome> result = oper.processResponse(outcome, PATH, response);
         assertTrue(result.isDone());
         assertSame(outcome, result.get());
-        assertEquals(PolicyResult.SUCCESS, outcome.getResult());
+        assertEquals(OperationResult.SUCCESS, outcome.getResult());
         assertSame(TEXT, outcome.getResponse());
     }
 
@@ -302,7 +302,7 @@ public class HttpOperationTest {
         CompletableFuture<OperationOutcome> result = oper.processResponse(outcome, PATH, response);
         assertTrue(result.isDone());
         assertSame(outcome, result.get());
-        assertEquals(PolicyResult.FAILURE, outcome.getResult());
+        assertEquals(OperationResult.FAILURE, outcome.getResult());
         assertSame(TEXT, outcome.getResponse());
     }
 
@@ -318,7 +318,7 @@ public class HttpOperationTest {
         CompletableFuture<OperationOutcome> result = oper2.processResponse(outcome, PATH, response);
         assertTrue(result.isDone());
         assertSame(outcome, result.get());
-        assertEquals(PolicyResult.SUCCESS, outcome.getResult());
+        assertEquals(OperationResult.SUCCESS, outcome.getResult());
         assertEquals(Integer.valueOf(10), outcome.getResponse());
     }
 
@@ -359,7 +359,7 @@ public class HttpOperationTest {
         OperationOutcome outcome = runOperation(oper2);
         assertNotNull(outcome);
         assertEquals(1, nget);
-        assertEquals(PolicyResult.SUCCESS, outcome.getResult());
+        assertEquals(OperationResult.SUCCESS, outcome.getResult());
         assertTrue(outcome.getResponse() instanceof MyResponse);
     }
 
@@ -376,7 +376,7 @@ public class HttpOperationTest {
         OperationOutcome outcome = runOperation(oper2);
         assertNotNull(outcome);
         assertEquals(1, ndelete);
-        assertEquals(PolicyResult.SUCCESS, outcome.getResult());
+        assertEquals(OperationResult.SUCCESS, outcome.getResult());
         assertTrue(outcome.getResponse() instanceof String);
     }
 
@@ -392,7 +392,7 @@ public class HttpOperationTest {
         OperationOutcome outcome = runOperation(oper2);
         assertNotNull(outcome);
         assertEquals(1, npost);
-        assertEquals(PolicyResult.SUCCESS, outcome.getResult());
+        assertEquals(OperationResult.SUCCESS, outcome.getResult());
         assertTrue(outcome.getResponse() instanceof MyResponse);
     }
 
@@ -409,7 +409,7 @@ public class HttpOperationTest {
         OperationOutcome outcome = runOperation(oper2);
         assertNotNull(outcome);
         assertEquals(1, nput);
-        assertEquals(PolicyResult.SUCCESS, outcome.getResult());
+        assertEquals(OperationResult.SUCCESS, outcome.getResult());
         assertTrue(outcome.getResponse() instanceof MyResponse);
     }
 
index ede2b79..845758a 100644 (file)
@@ -44,10 +44,10 @@ import org.mockito.MockitoAnnotations;
 import org.mockito.stubbing.Answer;
 import org.onap.policy.common.endpoints.http.client.HttpClient;
 import org.onap.policy.controlloop.actorserviceprovider.OperationOutcome;
+import org.onap.policy.controlloop.actorserviceprovider.OperationResult;
 import org.onap.policy.controlloop.actorserviceprovider.parameters.ControlLoopOperationParams;
 import org.onap.policy.controlloop.actorserviceprovider.parameters.HttpConfig;
 import org.onap.policy.controlloop.actorserviceprovider.parameters.HttpPollingConfig;
-import org.onap.policy.controlloop.policy.PolicyResult;
 
 /**
  * Tests HttpOperation when polling is enabled.
@@ -134,7 +134,7 @@ public class HttpPollingOperationTest {
                         oper.postProcessResponse(outcome, FULL_PATH, rawResponse, response);
         assertTrue(future2.isDone());
         assertSame(outcome, future2.get());
-        assertEquals(PolicyResult.SUCCESS, outcome.getResult());
+        assertEquals(OperationResult.SUCCESS, outcome.getResult());
         assertNotNull(oper.getSubRequestId());
         assertSame(response, outcome.getResponse());
 
@@ -144,7 +144,7 @@ public class HttpPollingOperationTest {
         future2 = oper.postProcessResponse(outcome, FULL_PATH, rawResponse, response);
         assertTrue(future2.isDone());
         assertSame(outcome, future2.get());
-        assertEquals(PolicyResult.FAILURE, outcome.getResult());
+        assertEquals(OperationResult.FAILURE, outcome.getResult());
         assertNotNull(oper.getSubRequestId());
         assertSame(response, outcome.getResponse());
     }
@@ -175,7 +175,7 @@ public class HttpPollingOperationTest {
                         oper.postProcessResponse(outcome, FULL_PATH, rawResponse, response);
 
         assertSame(outcome, future2.get(5, TimeUnit.SECONDS));
-        assertEquals(PolicyResult.SUCCESS, outcome.getResult());
+        assertEquals(OperationResult.SUCCESS, outcome.getResult());
         assertEquals(2, oper.getPollCount());
 
         /*
@@ -186,7 +186,7 @@ public class HttpPollingOperationTest {
         future2 = oper.postProcessResponse(outcome, FULL_PATH, rawResponse, response);
 
         assertSame(outcome, future2.get(5, TimeUnit.SECONDS));
-        assertEquals(PolicyResult.FAILURE_TIMEOUT, outcome.getResult());
+        assertEquals(OperationResult.FAILURE_TIMEOUT, outcome.getResult());
         assertEquals(MAX_POLLS + 1, oper.getPollCount());
 
         oper.resetPollCount();
index 6db824f..455393c 100644 (file)
@@ -76,12 +76,12 @@ import org.onap.policy.controlloop.actorserviceprovider.ActorService;
 import org.onap.policy.controlloop.actorserviceprovider.Operation;
 import org.onap.policy.controlloop.actorserviceprovider.OperationOutcome;
 import org.onap.policy.controlloop.actorserviceprovider.OperationProperties;
+import org.onap.policy.controlloop.actorserviceprovider.OperationResult;
 import org.onap.policy.controlloop.actorserviceprovider.Operator;
 import org.onap.policy.controlloop.actorserviceprovider.controlloop.ControlLoopEventContext;
 import org.onap.policy.controlloop.actorserviceprovider.parameters.ControlLoopOperationParams;
 import org.onap.policy.controlloop.actorserviceprovider.parameters.OperatorConfig;
 import org.onap.policy.controlloop.actorserviceprovider.spi.Actor;
-import org.onap.policy.controlloop.policy.PolicyResult;
 import org.slf4j.LoggerFactory;
 
 public class OperationPartialTest {
@@ -99,8 +99,8 @@ public class OperationPartialTest {
     private static final int TIMEOUT = 1000;
     private static final UUID REQ_ID = UUID.randomUUID();
 
-    private static final List<PolicyResult> FAILURE_RESULTS = Arrays.asList(PolicyResult.values()).stream()
-                    .filter(result -> result != PolicyResult.SUCCESS).collect(Collectors.toList());
+    private static final List<OperationResult> FAILURE_RESULTS = Arrays.asList(OperationResult.values()).stream()
+                    .filter(result -> result != OperationResult.SUCCESS).collect(Collectors.toList());
 
     /**
      * Used to attach an appender to the class' logger.
@@ -238,7 +238,7 @@ public class OperationPartialTest {
 
     @Test
     public void testStart() {
-        verifyRun("testStart", 1, 1, PolicyResult.SUCCESS);
+        verifyRun("testStart", 1, 1, OperationResult.SUCCESS);
     }
 
     /**
@@ -254,7 +254,7 @@ public class OperationPartialTest {
 
         assertNotNull(opstart);
         assertNotNull(opend);
-        assertEquals(PolicyResult.SUCCESS, opend.getResult());
+        assertEquals(OperationResult.SUCCESS, opend.getResult());
 
         assertEquals(MAX_PARALLEL, numStart);
         assertEquals(MAX_PARALLEL, oper.getCount());
@@ -268,7 +268,7 @@ public class OperationPartialTest {
     public void testStartPreprocessorFailure() {
         oper.setPreProc(CompletableFuture.completedFuture(makeFailure()));
 
-        verifyRun("testStartPreprocessorFailure", 1, 0, PolicyResult.FAILURE_GUARD);
+        verifyRun("testStartPreprocessorFailure", 1, 0, OperationResult.FAILURE_GUARD);
     }
 
     /**
@@ -279,7 +279,7 @@ public class OperationPartialTest {
         // arrange for the preprocessor to throw an exception
         oper.setPreProc(CompletableFuture.failedFuture(new IllegalStateException(EXPECTED_EXCEPTION)));
 
-        verifyRun("testStartPreprocessorException", 1, 0, PolicyResult.FAILURE_GUARD);
+        verifyRun("testStartPreprocessorException", 1, 0, OperationResult.FAILURE_GUARD);
     }
 
     /**
@@ -328,7 +328,7 @@ public class OperationPartialTest {
     public void testStartGuardAsync() throws Exception {
         CompletableFuture<OperationOutcome> future = oper.startGuardAsync();
         assertTrue(future.isDone());
-        assertEquals(PolicyResult.SUCCESS, future.get().getResult());
+        assertEquals(OperationResult.SUCCESS, future.get().getResult());
 
         // verify the parameters that were passed
         ArgumentCaptor<ControlLoopOperationParams> paramsCaptor =
@@ -387,10 +387,10 @@ public class OperationPartialTest {
 
         OperationOutcome outcome = new OperationOutcome();
 
-        outcome.setResult(PolicyResult.SUCCESS);
+        outcome.setResult(OperationResult.SUCCESS);
         assertTrue(oper.isSuccess(outcome));
 
-        for (PolicyResult failure : FAILURE_RESULTS) {
+        for (OperationResult failure : FAILURE_RESULTS) {
             outcome.setResult(failure);
             assertFalse("testIsSuccess-" + failure, oper.isSuccess(outcome));
         }
@@ -403,14 +403,14 @@ public class OperationPartialTest {
         OperationOutcome outcome = params.makeOutcome(null);
 
         // incorrect outcome
-        outcome.setResult(PolicyResult.SUCCESS);
+        outcome.setResult(OperationResult.SUCCESS);
         assertFalse(oper.isActorFailed(outcome));
 
-        outcome.setResult(PolicyResult.FAILURE_RETRIES);
+        outcome.setResult(OperationResult.FAILURE_RETRIES);
         assertFalse(oper.isActorFailed(outcome));
 
         // correct outcome
-        outcome.setResult(PolicyResult.FAILURE);
+        outcome.setResult(OperationResult.FAILURE);
 
         // incorrect actor
         outcome.setActor(MY_SINK);
@@ -441,7 +441,7 @@ public class OperationPartialTest {
         assertTrue(executor.runAll(MAX_REQUESTS));
 
         assertNotNull(opend);
-        assertEquals(PolicyResult.FAILURE_EXCEPTION, opend.getResult());
+        assertEquals(OperationResult.FAILURE_EXCEPTION, opend.getResult());
     }
 
     @Test
@@ -461,7 +461,7 @@ public class OperationPartialTest {
             protected CompletableFuture<OperationOutcome> startOperationAsync(int attempt, OperationOutcome outcome) {
 
                 OperationOutcome outcome2 = params.makeOutcome(null);
-                outcome2.setResult(PolicyResult.SUCCESS);
+                outcome2.setResult(OperationResult.SUCCESS);
 
                 /*
                  * Create an incomplete future that will timeout after the operation's
@@ -476,7 +476,7 @@ public class OperationPartialTest {
             }
         };
 
-        assertEquals(PolicyResult.FAILURE_TIMEOUT, oper.start().get().getResult());
+        assertEquals(OperationResult.FAILURE_TIMEOUT, oper.start().get().getResult());
     }
 
     /**
@@ -491,7 +491,7 @@ public class OperationPartialTest {
 
         oper.setMaxFailures(10);
 
-        verifyRun("testSetRetryFlag_testRetryOnFailure_ZeroRetries", 1, 1, PolicyResult.FAILURE);
+        verifyRun("testSetRetryFlag_testRetryOnFailure_ZeroRetries", 1, 1, OperationResult.FAILURE);
     }
 
     /**
@@ -506,7 +506,7 @@ public class OperationPartialTest {
 
         oper.setMaxFailures(10);
 
-        verifyRun("testSetRetryFlag_testRetryOnFailure_NullRetries", 1, 1, PolicyResult.FAILURE);
+        verifyRun("testSetRetryFlag_testRetryOnFailure_NullRetries", 1, 1, OperationResult.FAILURE);
     }
 
     /**
@@ -523,7 +523,7 @@ public class OperationPartialTest {
         oper.setMaxFailures(10);
 
         verifyRun("testSetRetryFlag_testRetryOnFailure_RetriesExhausted", maxRetries + 1, maxRetries + 1,
-                        PolicyResult.FAILURE_RETRIES);
+                        OperationResult.FAILURE_RETRIES);
     }
 
     /**
@@ -540,7 +540,7 @@ public class OperationPartialTest {
         oper.setMaxFailures(maxFailures);
 
         verifyRun("testSetRetryFlag_testRetryOnFailure_SuccessAfterRetries", maxFailures + 1, maxFailures + 1,
-                        PolicyResult.SUCCESS);
+                        OperationResult.SUCCESS);
     }
 
     /**
@@ -560,7 +560,7 @@ public class OperationPartialTest {
             }
         };
 
-        verifyRun("testSetRetryFlag_testRetryOnFailure_NullOutcome", 1, 1, PolicyResult.FAILURE, noop());
+        verifyRun("testSetRetryFlag_testRetryOnFailure_NullOutcome", 1, 1, OperationResult.FAILURE, noop());
     }
 
     @Test
@@ -622,7 +622,7 @@ public class OperationPartialTest {
     @Test
     public void testHandlePreprocessorFailureSuccess() {
         oper.setPreProc(CompletableFuture.completedFuture(makeSuccess()));
-        verifyRun("testHandlePreprocessorFailureTrue", 1, 1, PolicyResult.SUCCESS);
+        verifyRun("testHandlePreprocessorFailureTrue", 1, 1, OperationResult.SUCCESS);
     }
 
     /**
@@ -631,7 +631,7 @@ public class OperationPartialTest {
     @Test
     public void testHandlePreprocessorFailureFailed() throws Exception {
         oper.setPreProc(CompletableFuture.completedFuture(makeFailure()));
-        verifyRun("testHandlePreprocessorFailureFalse", 1, 0, PolicyResult.FAILURE_GUARD);
+        verifyRun("testHandlePreprocessorFailureFalse", 1, 0, OperationResult.FAILURE_GUARD);
     }
 
     /**
@@ -641,7 +641,7 @@ public class OperationPartialTest {
     public void testHandlePreprocessorFailureNull() throws Exception {
         // arrange to return a null outcome from the preprocessor
         oper.setPreProc(CompletableFuture.completedFuture(null));
-        verifyRun("testHandlePreprocessorFailureNull", 1, 0, PolicyResult.FAILURE_GUARD);
+        verifyRun("testHandlePreprocessorFailureNull", 1, 0, OperationResult.FAILURE_GUARD);
     }
 
     @Test
@@ -649,7 +649,7 @@ public class OperationPartialTest {
         // arrange to generate an exception when operation runs
         oper.setGenException(true);
 
-        verifyRun("testFromException", 1, 1, PolicyResult.FAILURE_EXCEPTION);
+        verifyRun("testFromException", 1, 1, OperationResult.FAILURE_EXCEPTION);
     }
 
     /**
@@ -657,7 +657,7 @@ public class OperationPartialTest {
      */
     @Test
     public void testFromExceptionNoExcept() {
-        verifyRun("testFromExceptionNoExcept", 1, 1, PolicyResult.SUCCESS);
+        verifyRun("testFromExceptionNoExcept", 1, 1, OperationResult.SUCCESS);
     }
 
     /**
@@ -843,13 +843,13 @@ public class OperationPartialTest {
     @Test
     public void testCombineOutcomes() throws Exception {
         // only one outcome
-        verifyOutcomes(0, PolicyResult.SUCCESS);
-        verifyOutcomes(0, PolicyResult.FAILURE_EXCEPTION);
+        verifyOutcomes(0, OperationResult.SUCCESS);
+        verifyOutcomes(0, OperationResult.FAILURE_EXCEPTION);
 
         // maximum is in different positions
-        verifyOutcomes(0, PolicyResult.FAILURE, PolicyResult.SUCCESS, PolicyResult.FAILURE_GUARD);
-        verifyOutcomes(1, PolicyResult.SUCCESS, PolicyResult.FAILURE, PolicyResult.FAILURE_GUARD);
-        verifyOutcomes(2, PolicyResult.SUCCESS, PolicyResult.FAILURE_GUARD, PolicyResult.FAILURE);
+        verifyOutcomes(0, OperationResult.FAILURE, OperationResult.SUCCESS, OperationResult.FAILURE_GUARD);
+        verifyOutcomes(1, OperationResult.SUCCESS, OperationResult.FAILURE, OperationResult.FAILURE_GUARD);
+        verifyOutcomes(2, OperationResult.SUCCESS, OperationResult.FAILURE_GUARD, OperationResult.FAILURE);
 
         // null outcome - takes precedence over a success
         List<Supplier<CompletableFuture<OperationOutcome>>> tasks = new LinkedList<>();
@@ -904,7 +904,7 @@ public class OperationPartialTest {
 
         // second task fails, third should not run
         OperationOutcome failure = params.makeOutcome(null);
-        failure.setResult(PolicyResult.FAILURE);
+        failure.setResult(OperationResult.FAILURE);
         tasks.clear();
         tasks.add(() -> CompletableFuture.completedFuture(outcome));
         tasks.add(() -> CompletableFuture.completedFuture(failure));
@@ -936,7 +936,7 @@ public class OperationPartialTest {
         assertSame(future1, oper.sequence(() -> future1));
     }
 
-    private void verifyOutcomes(int expected, PolicyResult... results) throws Exception {
+    private void verifyOutcomes(int expected, OperationResult... results) throws Exception {
         List<Supplier<CompletableFuture<OperationOutcome>>> tasks = new LinkedList<>();
 
         OperationOutcome expectedOutcome = null;
@@ -964,11 +964,11 @@ public class OperationPartialTest {
 
         OperationOutcome outcome = params.makeOutcome(null);
 
-        Map<PolicyResult, Integer> map = Map.of(PolicyResult.SUCCESS, 0, PolicyResult.FAILURE_GUARD, 2,
-                        PolicyResult.FAILURE_RETRIES, 3, PolicyResult.FAILURE, 4, PolicyResult.FAILURE_TIMEOUT, 5,
-                        PolicyResult.FAILURE_EXCEPTION, 6);
+        Map<OperationResult, Integer> map = Map.of(OperationResult.SUCCESS, 0, OperationResult.FAILURE_GUARD, 2,
+                OperationResult.FAILURE_RETRIES, 3, OperationResult.FAILURE, 4, OperationResult.FAILURE_TIMEOUT, 5,
+                OperationResult.FAILURE_EXCEPTION, 6);
 
-        for (Entry<PolicyResult, Integer> ent : map.entrySet()) {
+        for (Entry<OperationResult, Integer> ent : map.entrySet()) {
             outcome.setResult(ent.getKey());
             assertEquals(ent.getKey().toString(), ent.getValue().intValue(), oper.detmPriority(outcome));
         }
@@ -1039,12 +1039,12 @@ public class OperationPartialTest {
         outcome = new OperationOutcome();
         oper.setOutcome(outcome, timex);
         assertEquals(ControlLoopOperation.FAILED_MSG, outcome.getMessage());
-        assertEquals(PolicyResult.FAILURE_TIMEOUT, outcome.getResult());
+        assertEquals(OperationResult.FAILURE_TIMEOUT, outcome.getResult());
 
         outcome = new OperationOutcome();
         oper.setOutcome(outcome, new IllegalStateException(EXPECTED_EXCEPTION));
         assertEquals(ControlLoopOperation.FAILED_MSG, outcome.getMessage());
-        assertEquals(PolicyResult.FAILURE_EXCEPTION, outcome.getResult());
+        assertEquals(OperationResult.FAILURE_EXCEPTION, outcome.getResult());
     }
 
     @Test
@@ -1052,15 +1052,15 @@ public class OperationPartialTest {
         OperationOutcome outcome;
 
         outcome = new OperationOutcome();
-        oper.setOutcome(outcome, PolicyResult.SUCCESS);
+        oper.setOutcome(outcome, OperationResult.SUCCESS);
         assertEquals(ControlLoopOperation.SUCCESS_MSG, outcome.getMessage());
-        assertEquals(PolicyResult.SUCCESS, outcome.getResult());
+        assertEquals(OperationResult.SUCCESS, outcome.getResult());
 
-        oper.setOutcome(outcome, PolicyResult.SUCCESS);
+        oper.setOutcome(outcome, OperationResult.SUCCESS);
         assertEquals(ControlLoopOperation.SUCCESS_MSG, outcome.getMessage());
-        assertEquals(PolicyResult.SUCCESS, outcome.getResult());
+        assertEquals(OperationResult.SUCCESS, outcome.getResult());
 
-        for (PolicyResult result : FAILURE_RESULTS) {
+        for (OperationResult result : FAILURE_RESULTS) {
             outcome = new OperationOutcome();
             oper.setOutcome(outcome, result);
             assertEquals(result.toString(), ControlLoopOperation.FAILED_MSG, outcome.getMessage());
@@ -1199,14 +1199,14 @@ public class OperationPartialTest {
 
     private OperationOutcome makeSuccess() {
         OperationOutcome outcome = params.makeOutcome(null);
-        outcome.setResult(PolicyResult.SUCCESS);
+        outcome.setResult(OperationResult.SUCCESS);
 
         return outcome;
     }
 
     private OperationOutcome makeFailure() {
         OperationOutcome outcome = params.makeOutcome(null);
-        outcome.setResult(PolicyResult.FAILURE);
+        outcome.setResult(OperationResult.FAILURE);
 
         return outcome;
     }
@@ -1220,7 +1220,7 @@ public class OperationPartialTest {
      * @param expectedResult expected outcome
      */
     private void verifyRun(String testName, int expectedCallbacks, int expectedOperations,
-                    PolicyResult expectedResult) {
+            OperationResult expectedResult) {
 
         verifyRun(testName, expectedCallbacks, expectedOperations, expectedResult, noop());
     }
@@ -1236,8 +1236,8 @@ public class OperationPartialTest {
      *        {@link OperationPartial#start(ControlLoopOperationParams)} before the tasks
      *        in the executor are run
      */
-    private void verifyRun(String testName, int expectedCallbacks, int expectedOperations, PolicyResult expectedResult,
-                    Consumer<CompletableFuture<OperationOutcome>> manipulator) {
+    private void verifyRun(String testName, int expectedCallbacks, int expectedOperations,
+            OperationResult expectedResult, Consumer<CompletableFuture<OperationOutcome>> manipulator) {
 
         tstart = null;
         opstart = null;
@@ -1342,9 +1342,9 @@ public class OperationPartialTest {
             operation.setSubRequestId(String.valueOf(attempt));
 
             if (count > maxFailures) {
-                operation.setResult(PolicyResult.SUCCESS);
+                operation.setResult(OperationResult.SUCCESS);
             } else {
-                operation.setResult(PolicyResult.FAILURE);
+                operation.setResult(OperationResult.FAILURE);
             }
 
             return operation;
index 5e79247..caa8408 100644 (file)
@@ -57,7 +57,6 @@ import org.onap.policy.controlloop.actorserviceprovider.Operator;
 import org.onap.policy.controlloop.actorserviceprovider.controlloop.ControlLoopEventContext;
 import org.onap.policy.controlloop.actorserviceprovider.parameters.ControlLoopOperationParams.ControlLoopOperationParamsBuilder;
 import org.onap.policy.controlloop.actorserviceprovider.spi.Actor;
-import org.onap.policy.controlloop.policy.Target;
 
 public class ControlLoopOperationParamsTest {
     private static final String NULL_MSG = "null";
@@ -65,7 +64,6 @@ public class ControlLoopOperationParamsTest {
     private static final String EXPECTED_EXCEPTION = "expected exception";
     private static final String ACTOR = "my-actor";
     private static final String OPERATION = "my-operation";
-    private static final Target TARGET = new Target();
     private static final String TARGET_ENTITY = "my-target";
     private static final Integer RETRY = 3;
     private static final Integer TIMEOUT = 100;
@@ -128,7 +126,7 @@ public class ControlLoopOperationParamsTest {
 
         params = ControlLoopOperationParams.builder().actorService(actorService).completeCallback(completer)
                         .context(context).executor(executor).actor(ACTOR).operation(OPERATION).payload(payload)
-                        .retry(RETRY).target(TARGET).targetEntity(TARGET_ENTITY).timeoutSec(TIMEOUT)
+                        .retry(RETRY).targetEntity(TARGET_ENTITY).timeoutSec(TIMEOUT)
                         .startCallback(starter).preprocessed(true).build();
 
         outcome = params.makeOutcome(TARGET_ENTITY);
@@ -257,7 +255,7 @@ public class ControlLoopOperationParamsTest {
         assertTrue(params.toBuilder().build().validate().isValid());
 
         // these can be null
-        assertTrue(params.toBuilder().payload(null).retry(null).target(null).timeoutSec(null).startCallback(null)
+        assertTrue(params.toBuilder().payload(null).retry(null).timeoutSec(null).startCallback(null)
                         .completeCallback(null).build().validate().isValid());
 
         // test with minimal fields
@@ -355,14 +353,6 @@ public class ControlLoopOperationParamsTest {
         assertNull(ControlLoopOperationParams.builder().build().getRetry());
     }
 
-    @Test
-    public void testTarget() {
-        assertSame(TARGET, params.getTarget());
-
-        // should be null when unspecified
-        assertNull(ControlLoopOperationParams.builder().build().getTarget());
-    }
-
     @Test
     public void testGetTimeoutSec() {
         assertSame(TIMEOUT, params.getTimeoutSec());
index ec8f4e0..1b6398c 100644 (file)
       <groupId>com.google.guava</groupId>
       <artifactId>guava</artifactId>
     </dependency>
-    <dependency>
-      <groupId>org.onap.policy.models.policy-models-interactions</groupId>
-      <artifactId>model-yaml</artifactId>
-      <version>${project.version}</version>
-    </dependency>
   </dependencies>
 </project>
index 066c38b..5a83b46 100644 (file)
 package org.onap.policy.sim.dmaap.e2e;
 
 import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
 
+import com.att.nsa.cambria.client.CambriaClientBuilders;
+import com.att.nsa.cambria.client.CambriaClientBuilders.ConsumerBuilder;
+import com.att.nsa.cambria.client.CambriaConsumer;
 import java.io.File;
 import java.io.PrintWriter;
 import java.net.HttpURLConnection;
+import java.net.MalformedURLException;
 import java.net.URL;
 import java.nio.charset.StandardCharsets;
 import java.nio.file.Files;
+import java.security.GeneralSecurityException;
 import java.util.Arrays;
+import java.util.Iterator;
 import java.util.List;
 import java.util.concurrent.BlockingQueue;
 import java.util.concurrent.LinkedBlockingQueue;
@@ -39,7 +47,6 @@ import org.junit.Test;
 import org.onap.policy.common.endpoints.event.comm.TopicEndpointManager;
 import org.onap.policy.common.endpoints.event.comm.TopicSink;
 import org.onap.policy.common.endpoints.parameters.TopicParameterGroup;
-import org.onap.policy.common.endpoints.parameters.TopicParameters;
 import org.onap.policy.common.utils.coder.CoderException;
 import org.onap.policy.common.utils.coder.StandardCoder;
 import org.onap.policy.common.utils.network.NetworkUtil;
@@ -56,6 +63,7 @@ public class EndToEndTest extends CommonRestServer {
     private static final int MAX_WAIT_SEC = 5;
     private static final String TOPIC = "MY-TOPIC";
     private static final String TOPIC2 = "MY-TOPIC-B";
+    private static final String TOPIC3 = "MY-TOPIC-C";
     private static final int MAX_MSG = 200;
 
     private static Main main;
@@ -75,6 +83,16 @@ public class EndToEndTest extends CommonRestServer {
      */
     private static TopicParameterGroup topicConfig;
 
+    /**
+     * The "host:port", extracted from <i>httpPrefix</i>.
+     */
+    private static String hostPort;
+
+    /**
+     * Unique consumer name used by a single test case.
+     */
+    private int consumerName;
+
     /**
      * Starts the rest server.
      *
@@ -105,6 +123,8 @@ public class EndToEndTest extends CommonRestServer {
                         .register((infra, topic, event) -> queue.add(event));
         TopicEndpointManager.getManager().getDmaapTopicSource(TOPIC2)
                         .register((infra, topic, event) -> queue2.add(event));
+
+        hostPort = httpPrefix.substring(httpPrefix.indexOf("http://"), httpPrefix.length() - 1);
     }
 
     /**
@@ -127,6 +147,8 @@ public class EndToEndTest extends CommonRestServer {
      */
     @Before
     public void setUp() {
+        ++consumerName;
+
         queue.clear();
         queue2.clear();
     }
@@ -177,11 +199,16 @@ public class EndToEndTest extends CommonRestServer {
      */
     private void test(String testName, String mediaType, BiConsumer<PrintWriter, List<String>> writeMessages)
                     throws Exception {
+
+        /*
+         * Force consumer name to be registered with the server by attempting to fetch a message.
+         */
+        buildConsumer(0).fetch();
+
         String msg1 = "{'abc':10.0}".replace('\'', '"');
         String msg2 = "{'def':20.0}".replace('\'', '"');
 
-        TopicParameters sinkcfg = topicConfig.getTopicSinks().get(0);
-        URL url = new URL(httpPrefix + "events/" + sinkcfg.getTopic());
+        URL url = new URL(httpPrefix + "events/" + TOPIC3);
 
         HttpURLConnection conn = (HttpURLConnection) url.openConnection();
         conn.setRequestMethod("POST");
@@ -195,8 +222,29 @@ public class EndToEndTest extends CommonRestServer {
 
         assertEquals(testName + " response code", HttpURLConnection.HTTP_OK, conn.getResponseCode());
 
-        assertEquals(testName + " message 1", msg1, queue.poll(MAX_WAIT_SEC, TimeUnit.SECONDS));
-        assertEquals(testName + " message 2", msg2, queue.poll(MAX_WAIT_SEC, TimeUnit.SECONDS));
+        // fetch the messages
+        Iterator<String> iter = buildConsumer(1000).fetch().iterator();
+
+        assertTrue(testName + " have message 1", iter.hasNext());
+        assertEquals(testName + " message 1", msg1, iter.next());
+
+        assertTrue(testName + " have message 2", iter.hasNext());
+        assertEquals(testName + " message 2", msg2, iter.next());
+
+        // no more messages
+        assertFalse(testName + " extra message", iter.hasNext());
+    }
+
+    private CambriaConsumer buildConsumer(int timeoutMs) throws MalformedURLException, GeneralSecurityException {
+        ConsumerBuilder builder = new CambriaClientBuilders.ConsumerBuilder();
+
+        builder.knownAs(String.valueOf(consumerName), "my-consumer-id")
+                .usingHosts(hostPort).onTopic(TOPIC3)
+                .waitAtServer(timeoutMs).receivingAtMost(5);
+
+        builder.withSocketTimeout(timeoutMs + 2000);
+
+        return builder.build();
     }
 
     /**