diff options
author | Jim Hahn <jrh3@att.com> | 2020-03-06 18:22:28 -0500 |
---|---|---|
committer | Jim Hahn <jrh3@att.com> | 2020-03-06 19:04:13 -0500 |
commit | 2440b81428fa4bfa28a51f87c58e12c78ced744b (patch) | |
tree | 61ca5668446ed47301ee3b2cca520cc7a83d46aa /models-interactions/model-actors/actor.so/src | |
parent | 3c1fb89886d7ebf2efe1183e92b4ed8191f506b4 (diff) |
Add subrequest ID to OperationOutcome
Rule notifications need the subrequest ID to be populated in the
OperationOutcome object, where possible.
Issue-ID: POLICY-2385
Signed-off-by: Jim Hahn <jrh3@att.com>
Change-Id: Ic44320f67ad8df7bcb3000cfa667f95427818e71
Diffstat (limited to 'models-interactions/model-actors/actor.so/src')
2 files changed, 17 insertions, 2 deletions
diff --git a/models-interactions/model-actors/actor.so/src/main/java/org/onap/policy/controlloop/actor/so/SoOperation.java b/models-interactions/model-actors/actor.so/src/main/java/org/onap/policy/controlloop/actor/so/SoOperation.java index 1ca6c734c..3a14c3bde 100644 --- a/models-interactions/model-actors/actor.so/src/main/java/org/onap/policy/controlloop/actor/so/SoOperation.java +++ b/models-interactions/model-actors/actor.so/src/main/java/org/onap/policy/controlloop/actor/so/SoOperation.java @@ -198,12 +198,14 @@ public abstract class SoOperation extends HttpOperation<SoResponse> { if (rawResponse.getStatus() == 200) { String requestState = getRequestState(response); if (COMPLETE.equalsIgnoreCase(requestState)) { + populateSubRequestId(outcome, response); successfulCompletion(); return CompletableFuture .completedFuture(setOutcome(outcome, PolicyResult.SUCCESS, rawResponse, response)); } if (FAILED.equalsIgnoreCase(requestState)) { + populateSubRequestId(outcome, response); return CompletableFuture .completedFuture(setOutcome(outcome, PolicyResult.FAILURE, rawResponse, response)); } @@ -212,8 +214,7 @@ public abstract class SoOperation extends HttpOperation<SoResponse> { // still incomplete // need a request ID with which to query - if (response == null || response.getRequestReferences() == null - || response.getRequestReferences().getRequestId() == null) { + if (!populateSubRequestId(outcome, response)) { throw new IllegalArgumentException("missing request ID in response"); } @@ -230,6 +231,16 @@ public abstract class SoOperation extends HttpOperation<SoResponse> { return sleep(getWaitMsGet(), TimeUnit.MILLISECONDS).thenComposeAsync(doGet); } + private boolean populateSubRequestId(OperationOutcome outcome, SoResponse response) { + if (response == null || response.getRequestReferences() == null + || response.getRequestReferences().getRequestId() == null) { + return false; + } + + outcome.setSubRequestId(response.getRequestReferences().getRequestId()); + return true; + } + /** * Invoked when a request completes successfully. */ diff --git a/models-interactions/model-actors/actor.so/src/test/java/org/onap/policy/controlloop/actor/so/SoOperationTest.java b/models-interactions/model-actors/actor.so/src/test/java/org/onap/policy/controlloop/actor/so/SoOperationTest.java index 129c19381..992065638 100644 --- a/models-interactions/model-actors/actor.so/src/test/java/org/onap/policy/controlloop/actor/so/SoOperationTest.java +++ b/models-interactions/model-actors/actor.so/src/test/java/org/onap/policy/controlloop/actor/so/SoOperationTest.java @@ -166,17 +166,21 @@ public class SoOperationTest extends BasicSoOperation { @Test public void testPostProcess() throws Exception { // completed + outcome.setSubRequestId(null); CompletableFuture<OperationOutcome> future2 = oper.postProcessResponse(outcome, PATH, rawResponse, response); assertTrue(future2.isDone()); assertSame(outcome, future2.get()); assertEquals(PolicyResult.SUCCESS, outcome.getResult()); + assertNotNull(outcome.getSubRequestId()); // failed + outcome.setSubRequestId(null); response.getRequest().getRequestStatus().setRequestState(SoOperation.FAILED); future2 = oper.postProcessResponse(outcome, PATH, rawResponse, response); assertTrue(future2.isDone()); assertSame(outcome, future2.get()); assertEquals(PolicyResult.FAILURE, outcome.getResult()); + assertNotNull(outcome.getSubRequestId()); // no request id in the response response.getRequestReferences().setRequestId(null); |