summaryrefslogtreecommitdiffstats
path: root/controlloop/common/actors
diff options
context:
space:
mode:
authorSaravanan A <saravanan.a75@wipro.com>2019-04-05 20:45:44 +0530
committerPamela Dragosh <pdragosh@research.att.com>2019-04-08 17:27:35 -0400
commit776b69ebd28440f84a890b1d4170af77ca5974ff (patch)
tree849f41dc83e8a794bd875d08f122ffef3e6e3dc1 /controlloop/common/actors
parente55d256a9eeb411bb485919eb4c1d449cbae5d46 (diff)
Code changes done for OOF SON use case
Added a new control loop for SON ANR changes Introducing control loop response flow using DCAE_CL_RSP topic Change-Id: I81d0e92ce2f5c489596ad70d7b523cab0d8436ce Issue-ID: POLICY-1463 Signed-off-by: Saravanan A <saravanan.a75@wipro.com> Signed-off-by: Pamela Dragosh <pdragosh@research.att.com>
Diffstat (limited to 'controlloop/common/actors')
-rw-r--r--controlloop/common/actors/actor.sdnr/src/main/java/org/onap/policy/controlloop/actor/sdnr/SdnrActorServiceProvider.java49
-rw-r--r--controlloop/common/actors/actor.sdnr/src/test/java/org/onap/policy/controlloop/actor/sdnr/SdnrActorServiceProviderTest.java38
2 files changed, 72 insertions, 15 deletions
diff --git a/controlloop/common/actors/actor.sdnr/src/main/java/org/onap/policy/controlloop/actor/sdnr/SdnrActorServiceProvider.java b/controlloop/common/actors/actor.sdnr/src/main/java/org/onap/policy/controlloop/actor/sdnr/SdnrActorServiceProvider.java
index 406870208..d6ec1d219 100644
--- a/controlloop/common/actors/actor.sdnr/src/main/java/org/onap/policy/controlloop/actor/sdnr/SdnrActorServiceProvider.java
+++ b/controlloop/common/actors/actor.sdnr/src/main/java/org/onap/policy/controlloop/actor/sdnr/SdnrActorServiceProvider.java
@@ -7,9 +7,9 @@
* 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.
@@ -27,6 +27,7 @@ import java.util.Collections;
import java.util.List;
import org.onap.policy.controlloop.ControlLoopOperation;
+import org.onap.policy.controlloop.ControlLoopResponse;
import org.onap.policy.controlloop.VirtualControlLoopEvent;
import org.onap.policy.controlloop.actorserviceprovider.spi.Actor;
import org.onap.policy.controlloop.policy.Policy;
@@ -68,6 +69,7 @@ public class SdnrActorServiceProvider implements Actor {
// Strings for recipes
private static final String RECIPE_MODIFY = "ModifyConfig";
+ private static final String RECIPE_MODIFY_ANR = "ModifyConfigANR";
/* To be used in future releases when pci ModifyConfig is used */
private static final String SDNR_REQUEST_PARAMS = "request-parameters";
@@ -102,7 +104,7 @@ public class SdnrActorServiceProvider implements Actor {
/**
* Constructs an SDNR request conforming to the pci API. The actual request is
* constructed and then placed in a wrapper object used to send through DMAAP.
- *
+ *
* @param onset
* the event that is reporting the alert for policy to perform an
* action
@@ -160,11 +162,11 @@ public class SdnrActorServiceProvider implements Actor {
/**
* Parses the operation attempt using the subRequestId of SDNR response.
- *
+ *
* @param subRequestId
* the sub id used to send to SDNR, Policy sets this using the
* operation attempt
- *
+ *
* @return the current operation attempt
*/
public static Integer parseOperationAttempt(String subRequestId) {
@@ -182,11 +184,11 @@ public class SdnrActorServiceProvider implements Actor {
* Processes the SDNR pci response sent from SDNR. Determines if the SDNR
* operation was successful/unsuccessful and maps this to the corresponding
* Policy result.
- *
+ *
* @param dmaapResponse
* the dmaap wrapper message that contains the actual SDNR reponse
* inside the body field
- *
+ *
* @return an key-value pair that contains the Policy result and SDNR response
* message
*/
@@ -252,4 +254,37 @@ public class SdnrActorServiceProvider implements Actor {
}
return new SdnrActorServiceProvider.Pair<>(result, message);
}
+
+ /**
+ * Converts the SDNR response to ControlLoopResponse object.
+ *
+ * @param dmaapResponse
+ * the dmaap wrapper message that contains the actual SDNR reponse
+ * inside the body field
+ *
+ * @return a ControlLoopResponse object to send to DCAE_CL_RSP topic
+ */
+ public static ControlLoopResponse getControlLoopResponse(PciResponseWrapper dmaapResponse,
+ VirtualControlLoopEvent event) {
+
+ logger.info("SDNR getClosedLoopResponse called : {} {}", dmaapResponse, event);
+
+ /* The actual SDNR response is inside the wrapper's body field. */
+ PciResponse sdnrResponse = dmaapResponse.getBody();
+
+ /* The ControlLoop response determined from the SDNR Response and input event. */
+ ControlLoopResponse clRsp = new ControlLoopResponse();
+ clRsp.setPayload(sdnrResponse.getPayload());
+ clRsp.setFrom("SDNR");
+ clRsp.setTarget("DCAE");
+ clRsp.setClosedLoopControlName(event.getClosedLoopControlName());
+ clRsp.setPolicyName(event.getPolicyName());
+ clRsp.setPolicyVersion(event.getPolicyVersion());
+ clRsp.setRequestId(event.getRequestId());
+ clRsp.setVersion(event.getVersion());
+ logger.info("SDNR getClosedLoopResponse clRsp : {}", clRsp);
+
+ return clRsp;
+ }
+
}
diff --git a/controlloop/common/actors/actor.sdnr/src/test/java/org/onap/policy/controlloop/actor/sdnr/SdnrActorServiceProviderTest.java b/controlloop/common/actors/actor.sdnr/src/test/java/org/onap/policy/controlloop/actor/sdnr/SdnrActorServiceProviderTest.java
index 030bb9ec4..ac302565c 100644
--- a/controlloop/common/actors/actor.sdnr/src/test/java/org/onap/policy/controlloop/actor/sdnr/SdnrActorServiceProviderTest.java
+++ b/controlloop/common/actors/actor.sdnr/src/test/java/org/onap/policy/controlloop/actor/sdnr/SdnrActorServiceProviderTest.java
@@ -6,9 +6,9 @@
* 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.
@@ -22,28 +22,24 @@ package org.onap.policy.controlloop.actor.sdnr;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;
-import static org.junit.Assert.fail;
import java.time.Instant;
import java.util.HashMap;
import java.util.UUID;
-import org.junit.AfterClass;
-import org.junit.BeforeClass;
import org.junit.Test;
-import org.onap.policy.common.endpoints.http.server.HttpServletServer;
import org.onap.policy.controlloop.ControlLoopEventStatus;
import org.onap.policy.controlloop.ControlLoopOperation;
+import org.onap.policy.controlloop.ControlLoopResponse;
import org.onap.policy.controlloop.ControlLoopTargetType;
import org.onap.policy.controlloop.VirtualControlLoopEvent;
import org.onap.policy.controlloop.policy.Policy;
import org.onap.policy.controlloop.policy.Target;
import org.onap.policy.controlloop.policy.TargetType;
-import org.onap.policy.drools.system.PolicyEngine;
import org.onap.policy.sdnr.PciRequest;
import org.onap.policy.sdnr.PciResponse;
+import org.onap.policy.sdnr.PciResponseWrapper;
import org.onap.policy.sdnr.util.Serialization;
-import org.onap.policy.simulators.Util;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -92,6 +88,32 @@ public class SdnrActorServiceProviderTest {
policy.setPayload(null);
policy.setRetry(2);
policy.setTimeout(300);
+
+ }
+
+ @Test
+ public void getControlLoopResponseTest() {
+ PciRequest sdnrRequest;
+ sdnrRequest = SdnrActorServiceProvider.constructRequest(onsetEvent, operation, policy).getBody();
+ PciResponse sdnrResponse = new PciResponse(sdnrRequest);
+ sdnrResponse.getStatus().setCode(200);
+ sdnrResponse.getStatus().setValue("SDNR success");
+ sdnrResponse.setPayload("sdnr payload ");
+ /* Print out request as json to make sure serialization works */
+ String jsonResponse = Serialization.gsonPretty.toJson(sdnrResponse);
+ logger.info(jsonResponse);
+ PciResponseWrapper pciResponseWrapper = new PciResponseWrapper();
+ pciResponseWrapper.setBody(sdnrResponse);
+
+ ControlLoopResponse clRsp = SdnrActorServiceProvider.getControlLoopResponse(pciResponseWrapper, onsetEvent);
+ assertEquals(clRsp.getClosedLoopControlName(), onsetEvent.getClosedLoopControlName());
+ assertEquals(clRsp.getRequestId(), onsetEvent.getRequestId());
+ assertEquals(clRsp.getPolicyName(), onsetEvent.getPolicyName());
+ assertEquals(clRsp.getPolicyVersion(), onsetEvent.getPolicyVersion());
+ assertEquals(clRsp.getVersion(), onsetEvent.getVersion());
+ assertEquals(clRsp.getFrom(), "SDNR");
+ assertEquals(clRsp.getTarget(), "DCAE");
+ assertEquals(clRsp.getPayload(), sdnrResponse.getPayload());
}
@Test