From ef5768de060c6cbf10b06569e00617b052dc7e61 Mon Sep 17 00:00:00 2001 From: Jim Hahn Date: Mon, 23 Mar 2020 11:36:09 -0400 Subject: Update new SDNR actor with v2.0 structures SDNR v2.0 introduced an extra "input" and "output" layer within the body of the messages. Added POJOs to match that, and updated the actor to use the new POJOs so that no extra steps are needed during serialization or deserialization. Also modified the SDNR and APPC-LCM simulators to discard request messages when looking for the response, if the sink and source topics happen to be the same. Added the SDNR simulator. Added more coverage to the SDNR actor. Fixed a sonar issue in the SDNR junit code: - use a constant instead of a literal (i.e., for "ModifyConfig") Issue-ID: POLICY-2434 Signed-off-by: Jim Hahn Change-Id: I70914a299dd5e9ee8eaccb5d42a2596cab814091 --- .../actor/sdnr/ModifyConfigOperation.java | 10 ++--- .../controlloop/actor/sdnr/SdnrOperation.java | 52 +++++++++++----------- 2 files changed, 31 insertions(+), 31 deletions(-) (limited to 'models-interactions/model-actors/actor.sdnr/src/main/java') diff --git a/models-interactions/model-actors/actor.sdnr/src/main/java/org/onap/policy/controlloop/actor/sdnr/ModifyConfigOperation.java b/models-interactions/model-actors/actor.sdnr/src/main/java/org/onap/policy/controlloop/actor/sdnr/ModifyConfigOperation.java index 21f1562cf..a5193ec52 100644 --- a/models-interactions/model-actors/actor.sdnr/src/main/java/org/onap/policy/controlloop/actor/sdnr/ModifyConfigOperation.java +++ b/models-interactions/model-actors/actor.sdnr/src/main/java/org/onap/policy/controlloop/actor/sdnr/ModifyConfigOperation.java @@ -23,7 +23,7 @@ package org.onap.policy.controlloop.actor.sdnr; import org.apache.commons.lang3.tuple.Pair; import org.onap.policy.controlloop.actorserviceprovider.parameters.BidirectionalTopicConfig; import org.onap.policy.controlloop.actorserviceprovider.parameters.ControlLoopOperationParams; -import org.onap.policy.sdnr.PciRequestWrapper; +import org.onap.policy.sdnr.PciMessage; public class ModifyConfigOperation extends SdnrOperation { public static final String NAME = "ModifyConfig"; @@ -39,14 +39,14 @@ public class ModifyConfigOperation extends SdnrOperation { } @Override - protected Pair makeRequest(int attempt) { - final Pair req = super.makeRequest(attempt); - final PciRequestWrapper request = req.getRight(); + protected Pair makeRequest(int attempt) { + final Pair req = super.makeRequest(attempt); + final PciMessage request = req.getRight(); // // Set the recipe and action information // request.setRpcName(NAME.toLowerCase()); - request.getBody().setAction(NAME); + request.getBody().getInput().setAction(NAME); return req; } } diff --git a/models-interactions/model-actors/actor.sdnr/src/main/java/org/onap/policy/controlloop/actor/sdnr/SdnrOperation.java b/models-interactions/model-actors/actor.sdnr/src/main/java/org/onap/policy/controlloop/actor/sdnr/SdnrOperation.java index b11c701b2..de498e6ab 100644 --- a/models-interactions/model-actors/actor.sdnr/src/main/java/org/onap/policy/controlloop/actor/sdnr/SdnrOperation.java +++ b/models-interactions/model-actors/actor.sdnr/src/main/java/org/onap/policy/controlloop/actor/sdnr/SdnrOperation.java @@ -31,37 +31,38 @@ import org.onap.policy.controlloop.actorserviceprovider.parameters.Bidirectional 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; import org.onap.policy.sdnr.PciRequest; -import org.onap.policy.sdnr.PciRequestWrapper; import org.onap.policy.sdnr.PciResponse; -import org.onap.policy.sdnr.PciResponseWrapper; import org.onap.policy.sdnr.util.StatusCodeEnum; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -public abstract class SdnrOperation extends BidirectionalTopicOperation { +public abstract class SdnrOperation extends BidirectionalTopicOperation { private static final Logger logger = LoggerFactory.getLogger(SdnrOperation.class); /** * Keys used to match the response with the request listener. The sub request ID is a * UUID, so it can be used to uniquely identify the response. *

- * Note: if these change, then {@link #getExpectedKeyValues(int, Request)} must be + * Note: if these change, then {@link #getExpectedKeyValues(int, PciMessage)} must be * updated accordingly. */ - public static final List SELECTOR_KEYS = List.of(new SelectorKey("CommonHeader", "SubRequestID")); + public static final List SELECTOR_KEYS = + List.of(new SelectorKey("body", "output", "CommonHeader", "SubRequestID")); public SdnrOperation(ControlLoopOperationParams params, BidirectionalTopicConfig config) { - super(params, config, PciResponseWrapper.class); + super(params, config, PciMessage.class); } /** - * Note: these values must match {@link #SELECTOR_KEYS}. + * Note: these values must be in correspondence with {@link #SELECTOR_KEYS}. */ @Override - protected List getExpectedKeyValues(int attempt, PciRequestWrapper request) { - return List.of(request.getBody().getCommonHeader().getSubRequestId()); + protected List getExpectedKeyValues(int attempt, PciMessage request) { + return List.of(request.getBody().getInput().getCommonHeader().getSubRequestId()); } @Override @@ -70,18 +71,17 @@ public abstract class SdnrOperation extends BidirectionalTopicOperation makeRequest(int attempt) { + protected Pair makeRequest(int attempt) { VirtualControlLoopEvent onset = params.getContext().getEvent(); String subRequestId = UUID.randomUUID().toString(); /* Construct an SDNR request using pci Model */ - /* - * The actual pci request is placed in a wrapper used to send through dmaap. The - * current version is 2.0 as of R1. - */ - PciRequestWrapper dmaapRequest = new PciRequestWrapper(); + PciMessage dmaapRequest = new PciMessage(); dmaapRequest.setVersion("1.0"); dmaapRequest.setCorrelationId(onset.getRequestId() + "-" + subRequestId); dmaapRequest.setType("request"); @@ -152,10 +151,11 @@ public abstract class SdnrOperation extends BidirectionalTopicOperation