diff options
author | Jim Hahn <jrh3@att.com> | 2020-08-21 13:43:08 -0400 |
---|---|---|
committer | Jim Hahn <jrh3@att.com> | 2020-10-27 14:55:15 -0400 |
commit | 19ef8b24a98c09a349e6ae7309f535a0135463f6 (patch) | |
tree | d988e5a58865ae6f3a38dcb31e4f195f18e59946 /models-interactions/model-actors/actor.vfc | |
parent | 6b29d2c19e288148171db0c0e446e18dcd46effd (diff) |
Make Actors event-agnostic
Removed event and event-context code from the Actor code. Also removed
the preprocessing steps from the Actor code, giving the application
complete control over any preprocessing.
Also fixed a bug wherein the APPC actor was treating the
AAI_RESOURCE_VNF property as a String instead of as a GenericVnf.
Issue-ID: POLICY-2746-actor
Change-Id: Ibc05fe39ffedc0bc461abf10e6a960861ac70119
Signed-off-by: Jim Hahn <jrh3@att.com>
Diffstat (limited to 'models-interactions/model-actors/actor.vfc')
3 files changed, 16 insertions, 100 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 0a1136d2f..65c7318ff 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 @@ -21,7 +21,6 @@ package org.onap.policy.controlloop.actor.vfc; import java.util.List; -import java.util.concurrent.CompletableFuture; import javax.ws.rs.core.Response; import org.apache.commons.lang3.StringUtils; import org.onap.policy.controlloop.actorserviceprovider.OperationOutcome; @@ -82,14 +81,6 @@ public abstract class VfcOperation extends HttpOperation<VfcResponse> { return super.getPollingPath() + jobId; } - /** - * Starts the GUARD. - */ - @Override - protected CompletableFuture<OperationOutcome> startPreprocessorAsync() { - return startGuardAsync(); - } - @Override protected Status detmStatus(Response rawResponse, VfcResponse response) { if (rawResponse.getStatus() == 200) { @@ -170,16 +161,15 @@ public abstract class VfcOperation extends HttpOperation<VfcResponse> { * @return request */ protected VfcRequest constructVfcRequest() { - 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); + final String serviceInstance = getProperty(OperationProperties.ENRICHMENT_SERVICE_ID); + final String vmId = getProperty(OperationProperties.ENRICHMENT_VSERVER_ID); + final String vmName = getProperty(OperationProperties.ENRICHMENT_VSERVER_NAME); + final String vnfId = getProperty(OperationProperties.ENRICHMENT_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."); + "Missing enrichment data for service instance, server id, or server name."); } VfcHealActionVmInfo vmActionInfo = new VfcHealActionVmInfo(); @@ -202,21 +192,4 @@ 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 9a4677d79..fab7636ba 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,7 +32,6 @@ 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; @@ -67,49 +66,26 @@ 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); - restartOper = new Restart(params, config); - } - - /** - * Tests "success" case with simulator. - */ - @Test - public void testSuccess() 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).build(); restartOper = new Restart(params, config); - outcome = restartOper.start().get(); - assertEquals(OperationResult.SUCCESS, outcome.getResult()); - assertTrue(outcome.getResponse() instanceof VfcResponse); + loadProperties(); } /** - * Tests "success" case with simulator, using properties instead of custom query data. + * Tests "success" case with simulator. */ @Test - public void testSuccessViaProperties() throws Exception { + public void testSuccess() 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); + loadProperties(); // run the operation outcome = restartOper.start().get(); @@ -142,4 +118,11 @@ public class RestartTest extends BasicVfcOperation { assertNotNull(resultPair.getLeft()); assertNotNull(resultPair.getRight()); } + + private void loadProperties() { + 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); + } } 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 6f8956f6f..4f20c12d4 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,11 +26,9 @@ 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; @@ -60,11 +58,6 @@ public class VfcOperationTest extends BasicVfcOperation { } @Test - public void testStartPreprocessorAsync() { - assertNotNull(oper.startPreprocessorAsync()); - } - - @Test public void testResetPollCount() { oper.resetPollCount(); assertEquals(0, oper.getPollCount()); @@ -88,37 +81,4 @@ public class VfcOperationTest extends BasicVfcOperation { public void testIsSuccess() { 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) {}; - } } |