diff options
Diffstat (limited to 'models-interactions/model-actors/actor.so')
2 files changed, 16 insertions, 9 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 4d53f6350..86b910176 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,14 +198,14 @@ public abstract class SoOperation extends HttpOperation<SoResponse> { if (rawResponse.getStatus() == 200) { String requestState = getRequestState(response); if (COMPLETE.equalsIgnoreCase(requestState)) { - populateSubRequestId(outcome, response); + extractSubRequestId(response); successfulCompletion(); return CompletableFuture .completedFuture(setOutcome(outcome, PolicyResult.SUCCESS, rawResponse, response)); } if (FAILED.equalsIgnoreCase(requestState)) { - populateSubRequestId(outcome, response); + extractSubRequestId(response); return CompletableFuture .completedFuture(setOutcome(outcome, PolicyResult.FAILURE, rawResponse, response)); } @@ -214,7 +214,7 @@ public abstract class SoOperation extends HttpOperation<SoResponse> { // still incomplete // need a request ID with which to query - if (!populateSubRequestId(outcome, response)) { + if (!extractSubRequestId(response)) { throw new IllegalArgumentException("missing request ID in response"); } @@ -231,13 +231,18 @@ public abstract class SoOperation extends HttpOperation<SoResponse> { return sleep(getWaitMsGet(), TimeUnit.MILLISECONDS).thenComposeAsync(doGet); } - private boolean populateSubRequestId(OperationOutcome outcome, SoResponse response) { + @Override + public void generateSubRequestId(int attempt) { + setSubRequestId(null); + } + + private boolean extractSubRequestId(SoResponse response) { if (response == null || response.getRequestReferences() == null || response.getRequestReferences().getRequestId() == null) { return false; } - outcome.setSubRequestId(response.getRequestReferences().getRequestId()); + setSubRequestId(response.getRequestReferences().getRequestId()); return true; } 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 80f20b59b..ce0d2c24f 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,21 +166,23 @@ public class SoOperationTest extends BasicSoOperation { @Test public void testPostProcess() throws Exception { // completed - outcome.setSubRequestId(null); + oper.generateSubRequestId(2); + assertNull(oper.getSubRequestId()); CompletableFuture<OperationOutcome> future2 = oper.postProcessResponse(outcome, PATH, rawResponse, response); assertTrue(future2.isDone()); assertSame(outcome, future2.get()); assertEquals(PolicyResult.SUCCESS, outcome.getResult()); - assertNotNull(outcome.getSubRequestId()); + assertNotNull(oper.getSubRequestId()); // failed - outcome.setSubRequestId(null); + oper.generateSubRequestId(2); + assertNull(oper.getSubRequestId()); 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()); + assertNotNull(oper.getSubRequestId()); // no request id in the response response.getRequestReferences().setRequestId(null); |