summaryrefslogtreecommitdiffstats
path: root/controlloop/common/actors/actor.appc
diff options
context:
space:
mode:
Diffstat (limited to 'controlloop/common/actors/actor.appc')
-rw-r--r--controlloop/common/actors/actor.appc/src/main/java/org/onap/policy/controlloop/actor/appc/APPCActorServiceProvider.java189
-rw-r--r--controlloop/common/actors/actor.appc/src/test/java/org/onap/policy/controlloop/actor/appc/AppcServiceProviderTest.java49
2 files changed, 118 insertions, 120 deletions
diff --git a/controlloop/common/actors/actor.appc/src/main/java/org/onap/policy/controlloop/actor/appc/APPCActorServiceProvider.java b/controlloop/common/actors/actor.appc/src/main/java/org/onap/policy/controlloop/actor/appc/APPCActorServiceProvider.java
index ef897b9c9..e9cd70c42 100644
--- a/controlloop/common/actors/actor.appc/src/main/java/org/onap/policy/controlloop/actor/appc/APPCActorServiceProvider.java
+++ b/controlloop/common/actors/actor.appc/src/main/java/org/onap/policy/controlloop/actor/appc/APPCActorServiceProvider.java
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* APPCActorServiceProvider
* ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * Copyright (C) 2017-2018 AT&T Intellectual Property. All rights reserved.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -20,118 +20,107 @@
package org.onap.policy.controlloop.actor.appc;
+import com.google.common.collect.ImmutableList;
+import com.google.common.collect.ImmutableMap;
+
import java.util.Collections;
import java.util.List;
-import org.onap.policy.controlloop.VirtualControlLoopEvent;
import org.onap.policy.appc.CommonHeader;
import org.onap.policy.appc.Request;
import org.onap.policy.controlloop.ControlLoopOperation;
+import org.onap.policy.controlloop.VirtualControlLoopEvent;
+import org.onap.policy.controlloop.actorserviceprovider.spi.Actor;
import org.onap.policy.controlloop.policy.Policy;
import org.onap.policy.vnf.trafficgenerator.PGRequest;
import org.onap.policy.vnf.trafficgenerator.PGStream;
import org.onap.policy.vnf.trafficgenerator.PGStreams;
-import org.onap.policy.controlloop.actorserviceprovider.spi.Actor;
-
-import com.google.common.collect.ImmutableList;
-import com.google.common.collect.ImmutableMap;
public class APPCActorServiceProvider implements Actor {
- // Strings for targets
- private static final String TARGET_VM = "VM";
- private static final String TARGET_VNF = "VNF";
-
- // Strings for recipes
- private static final String RECIPE_RESTART = "Restart";
- private static final String RECIPE_REBUILD = "Rebuild";
- private static final String RECIPE_MIGRATE = "Migrate";
- private static final String RECIPE_MODIFY = "ModifyConfig";
-
- private static final ImmutableList<String> recipes = ImmutableList.of(RECIPE_RESTART, RECIPE_REBUILD, RECIPE_MIGRATE, RECIPE_MODIFY);
- private static final ImmutableMap<String, List<String>> targets = new ImmutableMap.Builder<String, List<String>>()
- .put(RECIPE_RESTART, ImmutableList.of(TARGET_VM))
- .put(RECIPE_REBUILD, ImmutableList.of(TARGET_VM))
- .put(RECIPE_MIGRATE, ImmutableList.of(TARGET_VM))
- .put(RECIPE_MODIFY, ImmutableList.of(TARGET_VNF))
- .build();
- private static final ImmutableMap<String, List<String>> payloads = new ImmutableMap.Builder<String, List<String>>()
- .put(RECIPE_MODIFY, ImmutableList.of("generic-vnf.vnf-id"))
- .build();
-
- @Override
- public String actor() {
- return "APPC";
- }
-
- @Override
- public List<String> recipes() {
- return ImmutableList.copyOf(recipes);
- }
-
- @Override
- public List<String> recipeTargets(String recipe) {
- return ImmutableList.copyOf(targets.getOrDefault(recipe, Collections.emptyList()));
- }
-
- @Override
- public List<String> recipePayloads(String recipe) {
- return ImmutableList.copyOf(payloads.getOrDefault(recipe, Collections.emptyList()));
- }
-
- /**
- * Constructs an APPC request conforming to the legacy API.
- * The legacy API will be deprecated in future releases as
- * all legacy functionality is moved into the LCM API.
- *
- * @param onset
- * the event that is reporting the alert for policy
- * to perform an action
- * @param operation
- * the control loop operation specifying the actor,
- * operation, target, etc.
- * @param policy
- * the policy the was specified from the yaml generated
- * by CLAMP or through the Policy GUI/API
- * @return an APPC request conforming to the legacy API
- * @throws AAIException
- */
- public static Request constructRequest(VirtualControlLoopEvent onset, ControlLoopOperation operation,
- Policy policy, String targetVnf) {
- /*
- * Construct an APPC request
- */
- Request request = new Request();
- request.setCommonHeader(new CommonHeader());
- request.getCommonHeader().setRequestID(onset.getRequestID());
- request.getCommonHeader().setSubRequestID(operation.getSubRequestId());
- request.setAction(policy.getRecipe().substring(0, 1).toUpperCase()
- + policy.getRecipe().substring(1));
-
- /*
- * For now Policy generates the PG Streams as a demo, in the
- * future the payload can be provided by CLAMP
- */
- request.getPayload().put("generic-vnf.vnf-id", targetVnf);
-
- PGRequest pgRequest = new PGRequest();
- pgRequest.pgStreams = new PGStreams();
-
- PGStream pgStream;
- for (int i = 0; i < 5; i++) {
- pgStream = new PGStream();
- pgStream.streamId = "fw_udp"+(i+1);
- pgStream.isEnabled = "true";
- pgRequest.pgStreams.pgStream.add(pgStream);
- }
- request.getPayload().put("pg-streams", pgRequest.pgStreams);
-
- /*
- * Return the request
- */
-
- return request;
- }
+ // Strings for targets
+ private static final String TARGET_VM = "VM";
+ private static final String TARGET_VNF = "VNF";
+
+ // Strings for recipes
+ private static final String RECIPE_RESTART = "Restart";
+ private static final String RECIPE_REBUILD = "Rebuild";
+ private static final String RECIPE_MIGRATE = "Migrate";
+ private static final String RECIPE_MODIFY = "ModifyConfig";
+
+ private static final ImmutableList<String> recipes =
+ ImmutableList.of(RECIPE_RESTART, RECIPE_REBUILD, RECIPE_MIGRATE, RECIPE_MODIFY);
+ private static final ImmutableMap<String, List<String>> targets = new ImmutableMap.Builder<String, List<String>>()
+ .put(RECIPE_RESTART, ImmutableList.of(TARGET_VM)).put(RECIPE_REBUILD, ImmutableList.of(TARGET_VM))
+ .put(RECIPE_MIGRATE, ImmutableList.of(TARGET_VM)).put(RECIPE_MODIFY, ImmutableList.of(TARGET_VNF)).build();
+ private static final ImmutableMap<String, List<String>> payloads = new ImmutableMap.Builder<String, List<String>>()
+ .put(RECIPE_MODIFY, ImmutableList.of("generic-vnf.vnf-id")).build();
+
+ @Override
+ public String actor() {
+ return "APPC";
+ }
+
+ @Override
+ public List<String> recipes() {
+ return ImmutableList.copyOf(recipes);
+ }
+
+ @Override
+ public List<String> recipeTargets(String recipe) {
+ return ImmutableList.copyOf(targets.getOrDefault(recipe, Collections.emptyList()));
+ }
+
+ @Override
+ public List<String> recipePayloads(String recipe) {
+ return ImmutableList.copyOf(payloads.getOrDefault(recipe, Collections.emptyList()));
+ }
+
+ /**
+ * Constructs an APPC request conforming to the legacy API. The legacy API will be deprecated in
+ * future releases as all legacy functionality is moved into the LCM API.
+ *
+ * @param onset the event that is reporting the alert for policy to perform an action
+ * @param operation the control loop operation specifying the actor, operation, target, etc.
+ * @param policy the policy the was specified from the yaml generated by CLAMP or through the
+ * Policy GUI/API
+ * @return an APPC request conforming to the legacy API
+ */
+ public static Request constructRequest(VirtualControlLoopEvent onset, ControlLoopOperation operation, Policy policy,
+ String targetVnf) {
+ /*
+ * Construct an APPC request
+ */
+ Request request = new Request();
+ request.setCommonHeader(new CommonHeader());
+ request.getCommonHeader().setRequestID(onset.getRequestID());
+ request.getCommonHeader().setSubRequestID(operation.getSubRequestId());
+ request.setAction(policy.getRecipe().substring(0, 1).toUpperCase() + policy.getRecipe().substring(1));
+
+ /*
+ * For now Policy generates the PG Streams as a demo, in the future the payload can be
+ * provided by CLAMP
+ */
+ request.getPayload().put("generic-vnf.vnf-id", targetVnf);
+
+ PGRequest pgRequest = new PGRequest();
+ pgRequest.pgStreams = new PGStreams();
+
+ PGStream pgStream;
+ for (int i = 0; i < 5; i++) {
+ pgStream = new PGStream();
+ pgStream.streamId = "fw_udp" + (i + 1);
+ pgStream.isEnabled = "true";
+ pgRequest.pgStreams.pgStream.add(pgStream);
+ }
+ request.getPayload().put("pg-streams", pgRequest.pgStreams);
+
+ /*
+ * Return the request
+ */
+
+ return request;
+ }
}
diff --git a/controlloop/common/actors/actor.appc/src/test/java/org/onap/policy/controlloop/actor/appc/AppcServiceProviderTest.java b/controlloop/common/actors/actor.appc/src/test/java/org/onap/policy/controlloop/actor/appc/AppcServiceProviderTest.java
index 58510ba8c..0670a2b15 100644
--- a/controlloop/common/actors/actor.appc/src/test/java/org/onap/policy/controlloop/actor/appc/AppcServiceProviderTest.java
+++ b/controlloop/common/actors/actor.appc/src/test/java/org/onap/policy/controlloop/actor/appc/AppcServiceProviderTest.java
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* AppcServiceProviderTest
* ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * Copyright (C) 2017-2018 AT&T Intellectual Property. All rights reserved.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -20,7 +20,10 @@
package org.onap.policy.controlloop.actor.appc;
-import static org.junit.Assert.*;
+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;
@@ -49,15 +52,15 @@ import org.slf4j.LoggerFactory;
public class AppcServiceProviderTest {
private static final Logger logger = LoggerFactory.getLogger(AppcServiceProviderTest.class);
-
+
private static VirtualControlLoopEvent onsetEvent;
private static ControlLoopOperation operation;
private static Policy policy;
static {
- /*
- * Construct an onset with an AAI subtag containing
- * generic-vnf.vnf-id and a target type of VM.
+ /*
+ * Construct an onset with an AAI subtag containing generic-vnf.vnf-id and a target type of
+ * VM.
*/
onsetEvent = new VirtualControlLoopEvent();
onsetEvent.setClosedLoopControlName("closedLoopControlName-Test");
@@ -90,14 +93,17 @@ public class AppcServiceProviderTest {
policy.setPayload(null);
policy.setRetry(2);
policy.setTimeout(300);
-
+
/* Set environment properties */
PolicyEngine.manager.setEnvironmentProperty("aai.url", "http://localhost:6666");
PolicyEngine.manager.setEnvironmentProperty("aai.username", "AAI");
PolicyEngine.manager.setEnvironmentProperty("aai.password", "AAI");
-
+
}
+ /**
+ * Set up before test class.
+ */
@BeforeClass
public static void setUpSimulator() {
try {
@@ -107,17 +113,20 @@ public class AppcServiceProviderTest {
}
}
+ /**
+ * Tear down after test class.
+ */
@AfterClass
public static void tearDownSimulator() {
HttpServletServer.factory.destroy();
}
-
+
@Test
public void constructModifyConfigRequestTest() {
-
+
Request appcRequest = null;
appcRequest = APPCActorServiceProvider.constructRequest(onsetEvent, operation, policy, "vnf01");
-
+
/* The service provider must return a non null APPC request */
assertNotNull(appcRequest);
@@ -136,11 +145,11 @@ public class AppcServiceProviderTest {
assertTrue(appcRequest.getPayload().containsKey("pg-streams"));
logger.debug("APPC Request: \n" + appcRequest.toString());
-
+
/* Print out request as json to make sure serialization works */
String jsonRequest = Serialization.gsonPretty.toJson(appcRequest);
logger.debug("JSON Output: \n" + jsonRequest);
-
+
/* The JSON string must contain the following fields */
assertTrue(jsonRequest.contains("commonHeader"));
assertTrue(jsonRequest.contains("action"));
@@ -148,7 +157,7 @@ public class AppcServiceProviderTest {
assertTrue(jsonRequest.contains("payload"));
assertTrue(jsonRequest.contains("generic-vnf.vnf-id"));
assertTrue(jsonRequest.contains("pg-streams"));
-
+
Response appcResponse = new Response(appcRequest);
appcResponse.getStatus().setCode(ResponseCode.SUCCESS.getValue());
appcResponse.getStatus().setDescription("AppC success");
@@ -159,11 +168,11 @@ public class AppcServiceProviderTest {
@Test
public void testMethods() {
- APPCActorServiceProvider sp = new APPCActorServiceProvider();
-
- assertEquals("APPC", sp.actor());
- assertEquals(4, sp.recipes().size());
- assertEquals("VM", sp.recipeTargets("Restart").get(0));
- assertEquals(0, sp.recipePayloads("Restart").size());
+ APPCActorServiceProvider sp = new APPCActorServiceProvider();
+
+ assertEquals("APPC", sp.actor());
+ assertEquals(4, sp.recipes().size());
+ assertEquals("VM", sp.recipeTargets("Restart").get(0));
+ assertEquals(0, sp.recipePayloads("Restart").size());
}
}