summaryrefslogtreecommitdiffstats
path: root/models-interactions/model-actors/actor.vfc
diff options
context:
space:
mode:
Diffstat (limited to 'models-interactions/model-actors/actor.vfc')
-rw-r--r--models-interactions/model-actors/actor.vfc/src/main/java/org/onap/policy/controlloop/actor/vfc/VfcOperation.java38
-rw-r--r--models-interactions/model-actors/actor.vfc/src/test/java/org/onap/policy/controlloop/actor/vfc/RestartTest.java41
-rw-r--r--models-interactions/model-actors/actor.vfc/src/test/java/org/onap/policy/controlloop/actor/vfc/VfcOperationTest.java34
3 files changed, 99 insertions, 14 deletions
diff --git a/models-interactions/model-actors/actor.vfc/src/main/java/org/onap/policy/controlloop/actor/vfc/VfcOperation.java b/models-interactions/model-actors/actor.vfc/src/main/java/org/onap/policy/controlloop/actor/vfc/VfcOperation.java
index 8bd4630d6..bb23fdcc5 100644
--- a/models-interactions/model-actors/actor.vfc/src/main/java/org/onap/policy/controlloop/actor/vfc/VfcOperation.java
+++ b/models-interactions/model-actors/actor.vfc/src/main/java/org/onap/policy/controlloop/actor/vfc/VfcOperation.java
@@ -26,7 +26,6 @@ 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.controlloop.ControlLoopEventContext;
import org.onap.policy.controlloop.actorserviceprovider.impl.HttpOperation;
import org.onap.policy.controlloop.actorserviceprovider.parameters.ControlLoopOperationParams;
import org.onap.policy.controlloop.actorserviceprovider.parameters.HttpConfig;
@@ -48,7 +47,7 @@ public abstract class VfcOperation extends HttpOperation<VfcResponse> {
// @formatter:off
private static final List<String> PROPERTY_NAMES = List.of(
- OperationProperties.ENRICHMENT_SERVICE_INSTANCE_ID,
+ OperationProperties.ENRICHMENT_SERVICE_ID,
OperationProperties.ENRICHMENT_VSERVER_ID,
OperationProperties.ENRICHMENT_VSERVER_NAME,
OperationProperties.ENRICHMENT_GENERIC_VNF_ID);
@@ -133,7 +132,7 @@ public abstract class VfcOperation extends HttpOperation<VfcResponse> {
*/
protected String getRequestState(VfcResponse response) {
if (response == null || response.getResponseDescriptor() == null
- || StringUtils.isBlank(response.getResponseDescriptor().getStatus())) {
+ || StringUtils.isBlank(response.getResponseDescriptor().getStatus())) {
return null;
}
return response.getResponseDescriptor().getStatus();
@@ -153,7 +152,7 @@ public abstract class VfcOperation extends HttpOperation<VfcResponse> {
*/
@Override
public OperationOutcome setOutcome(OperationOutcome outcome, PolicyResult result, Response rawResponse,
- VfcResponse response) {
+ VfcResponse response) {
// set default result and message
setOutcome(outcome, result);
@@ -171,14 +170,16 @@ public abstract class VfcOperation extends HttpOperation<VfcResponse> {
* @return request
*/
protected VfcRequest constructVfcRequest() {
- ControlLoopEventContext context = params.getContext();
- String serviceInstance = context.getEnrichment().get("service-instance.service-instance-id");
- String vmId = context.getEnrichment().get("vserver.vserver-id");
- String vmName = context.getEnrichment().get("vserver.vserver-name");
+ final String serviceInstance = getOptProperty(OperationProperties.ENRICHMENT_SERVICE_ID,
+ "service-instance.service-instance-id");
+ final String vmId = getOptProperty(OperationProperties.ENRICHMENT_VSERVER_ID, "vserver.vserver-id");
+ final String vmName = getOptProperty(OperationProperties.ENRICHMENT_VSERVER_NAME, "vserver.vserver-name");
+ final String vnfId = getOptProperty(OperationProperties.ENRICHMENT_GENERIC_VNF_ID, GENERIC_VNF_ID);
if (StringUtils.isBlank(serviceInstance) || StringUtils.isBlank(vmId) || StringUtils.isBlank(vmName)) {
+ // original code did not check the VNF id, so we won't check it either
throw new IllegalArgumentException(
- "Cannot extract enrichment data for service instance, server id, or server name.");
+ "Cannot extract enrichment data for service instance, server id, or server name.");
}
VfcHealActionVmInfo vmActionInfo = new VfcHealActionVmInfo();
@@ -190,7 +191,7 @@ public abstract class VfcOperation extends HttpOperation<VfcResponse> {
additionalParams.setActionInfo(vmActionInfo);
VfcHealRequest healRequest = new VfcHealRequest();
- healRequest.setVnfInstanceId(params.getContext().getEnrichment().get(GENERIC_VNF_ID));
+ healRequest.setVnfInstanceId(vnfId);
healRequest.setCause(getName());
healRequest.setAdditionalParams(additionalParams);
@@ -201,4 +202,21 @@ public abstract class VfcOperation extends HttpOperation<VfcResponse> {
return request;
}
+
+ /**
+ * Gets an optional property, first checking the properties, then checking the
+ * enrichment data.
+ *
+ * @param propName property name
+ * @param enrichmentName property name within the enrichment data
+ * @return the property's value, or {@code null} if it is not found
+ */
+ protected String getOptProperty(String propName, String enrichmentName) {
+ if (containsProperty(propName)) {
+ // return the value, even if it's null
+ return getProperty(propName);
+ }
+
+ return params.getContext().getEnrichment().get(enrichmentName);
+ }
}
diff --git a/models-interactions/model-actors/actor.vfc/src/test/java/org/onap/policy/controlloop/actor/vfc/RestartTest.java b/models-interactions/model-actors/actor.vfc/src/test/java/org/onap/policy/controlloop/actor/vfc/RestartTest.java
index 46666456a..068ffdaab 100644
--- a/models-interactions/model-actors/actor.vfc/src/test/java/org/onap/policy/controlloop/actor/vfc/RestartTest.java
+++ b/models-interactions/model-actors/actor.vfc/src/test/java/org/onap/policy/controlloop/actor/vfc/RestartTest.java
@@ -32,6 +32,7 @@ import org.junit.AfterClass;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
+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;
@@ -42,8 +43,14 @@ import org.onap.policy.vfc.VfcRequest;
import org.onap.policy.vfc.VfcResponse;
public class RestartTest extends BasicVfcOperation {
+ private static final String TEST_SERVICE_INSTANCE_ID = "test-service-instance-id";
+ private static final String TEST_VSERVER_ID = "test-vserver-id";
+ private static final String TEST_VSERVER_NAME = "test-vserver-name";
+ private static final String TEST_GENERIC_VNF_ID = "test-generic-vnf-id";
+
private Restart restartOper;
+
@BeforeClass
public static void setUpBeforeClass() throws Exception {
initBeforeClass();
@@ -60,9 +67,9 @@ public class RestartTest extends BasicVfcOperation {
@Before
public void setup() throws Exception {
super.setUp();
- params.getContext().getEnrichment().put("service-instance.service-instance-id", "test-service-instance-id");
- params.getContext().getEnrichment().put("vserver.vserver-id", "test-vserver-id");
- params.getContext().getEnrichment().put("vserver.vserver-name", "test-vserver-name");
+ params.getContext().getEnrichment().put("service-instance.service-instance-id", TEST_SERVICE_INSTANCE_ID);
+ params.getContext().getEnrichment().put("vserver.vserver-id", TEST_VSERVER_ID);
+ params.getContext().getEnrichment().put("vserver.vserver-name", TEST_VSERVER_NAME);
restartOper = new Restart(params, config);
}
@@ -84,6 +91,32 @@ public class RestartTest extends BasicVfcOperation {
assertTrue(outcome.getResponse() instanceof VfcResponse);
}
+ /**
+ * Tests "success" case with simulator, using properties instead of custom query data.
+ */
+ @Test
+ public void testSuccessViaProperties() throws Exception {
+ HttpPollingParams opParams = HttpPollingParams.builder().clientName(MY_CLIENT).path("ns").pollPath("jobs")
+ .maxPolls(1).build();
+ config = new HttpPollingConfig(blockingExecutor, opParams, HttpClientFactoryInstance.getClientFactory());
+
+ params = params.toBuilder().retry(0).timeoutSec(5).executor(blockingExecutor).preprocessed(true).build();
+ params.getContext().removeProperty(AaiCqResponse.CONTEXT_KEY);
+
+ restartOper = new Restart(params, config);
+
+ // set the properties
+ restartOper.setProperty(OperationProperties.ENRICHMENT_SERVICE_ID, TEST_SERVICE_INSTANCE_ID);
+ restartOper.setProperty(OperationProperties.ENRICHMENT_VSERVER_ID, TEST_VSERVER_ID);
+ restartOper.setProperty(OperationProperties.ENRICHMENT_VSERVER_NAME, TEST_VSERVER_NAME);
+ restartOper.setProperty(OperationProperties.ENRICHMENT_GENERIC_VNF_ID, TEST_GENERIC_VNF_ID);
+
+ // run the operation
+ outcome = restartOper.start().get();
+ assertEquals(PolicyResult.SUCCESS, outcome.getResult());
+ assertTrue(outcome.getResponse() instanceof VfcResponse);
+ }
+
@Test
public void testConstructor() {
CompletableFuture<OperationOutcome> futureRes = restartOper.startOperationAsync(1, outcome);
@@ -96,7 +129,7 @@ public class RestartTest extends BasicVfcOperation {
// @formatter:off
assertThat(restartOper.getPropertyNames()).isEqualTo(
List.of(
- OperationProperties.ENRICHMENT_SERVICE_INSTANCE_ID,
+ OperationProperties.ENRICHMENT_SERVICE_ID,
OperationProperties.ENRICHMENT_VSERVER_ID,
OperationProperties.ENRICHMENT_VSERVER_NAME,
OperationProperties.ENRICHMENT_GENERIC_VNF_ID));
diff --git a/models-interactions/model-actors/actor.vfc/src/test/java/org/onap/policy/controlloop/actor/vfc/VfcOperationTest.java b/models-interactions/model-actors/actor.vfc/src/test/java/org/onap/policy/controlloop/actor/vfc/VfcOperationTest.java
index 425ff91b1..6f8956f6f 100644
--- a/models-interactions/model-actors/actor.vfc/src/test/java/org/onap/policy/controlloop/actor/vfc/VfcOperationTest.java
+++ b/models-interactions/model-actors/actor.vfc/src/test/java/org/onap/policy/controlloop/actor/vfc/VfcOperationTest.java
@@ -26,9 +26,11 @@ import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertSame;
import static org.junit.Assert.assertTrue;
+import java.util.Map;
import org.junit.Before;
import org.junit.Test;
import org.mockito.Mockito;
+import org.onap.policy.controlloop.actorserviceprovider.controlloop.ControlLoopEventContext;
import org.onap.policy.vfc.VfcResponse;
import org.onap.policy.vfc.VfcResponseDescriptor;
@@ -87,4 +89,36 @@ public class VfcOperationTest extends BasicVfcOperation {
assertTrue(oper.isSuccess(rawResponse, response));
}
+ @Test
+ public void testGetOptProperty() {
+ // in neither property nor enrichment
+ assertNull(oper.getOptProperty("propA", "propA2"));
+
+ // both - should choose the property
+ remakeOper(Map.of("propB2", "valueB2"));
+ oper.setProperty("propB", "valueB");
+ assertEquals("valueB", oper.getOptProperty("propB", "propB2"));
+
+ // both - should choose the property, even if it's null
+ remakeOper(Map.of("propC2", "valueC2"));
+ oper.setProperty("propC", null);
+ assertNull(oper.getOptProperty("propC", "propC2"));
+
+ // only in enrichment data
+ remakeOper(Map.of("propD2", "valueD2"));
+ assertEquals("valueD2", oper.getOptProperty("propD", "propD2"));
+ }
+
+ /**
+ * Remakes the operation, with the specified A&AI enrichment data.
+ *
+ * @param aai A&AI enrichment data
+ */
+ private void remakeOper(Map<String, String> aai) {
+ event.setAai(aai);
+ context = new ControlLoopEventContext(event);
+ params = params.toBuilder().context(context).build();
+
+ oper = new VfcOperation(params, config) {};
+ }
}