aboutsummaryrefslogtreecommitdiffstats
path: root/controlloop/common/actors/actor.appclcm/src/main/java/org/onap/policy/controlloop/actor/appclcm/AppcLcmActorServiceProvider.java
diff options
context:
space:
mode:
Diffstat (limited to 'controlloop/common/actors/actor.appclcm/src/main/java/org/onap/policy/controlloop/actor/appclcm/AppcLcmActorServiceProvider.java')
-rw-r--r--controlloop/common/actors/actor.appclcm/src/main/java/org/onap/policy/controlloop/actor/appclcm/AppcLcmActorServiceProvider.java21
1 files changed, 19 insertions, 2 deletions
diff --git a/controlloop/common/actors/actor.appclcm/src/main/java/org/onap/policy/controlloop/actor/appclcm/AppcLcmActorServiceProvider.java b/controlloop/common/actors/actor.appclcm/src/main/java/org/onap/policy/controlloop/actor/appclcm/AppcLcmActorServiceProvider.java
index b4151a9f9..2030e2349 100644
--- a/controlloop/common/actors/actor.appclcm/src/main/java/org/onap/policy/controlloop/actor/appclcm/AppcLcmActorServiceProvider.java
+++ b/controlloop/common/actors/actor.appclcm/src/main/java/org/onap/policy/controlloop/actor/appclcm/AppcLcmActorServiceProvider.java
@@ -236,8 +236,9 @@ public class AppcLcmActorServiceProvider implements Actor {
* APPC will populate the payload based on A&AI look up of the vnd-id provided in the action
* identifiers.
*/
- if (RECIPE_RESTART.equalsIgnoreCase(policy.getRecipe()) || RECIPE_REBUILD.equalsIgnoreCase(policy.getRecipe())
- || RECIPE_MIGRATE.equalsIgnoreCase(policy.getRecipe())) {
+ if (recipeSupportsPayload(policy.getRecipe()) && payloadSupplied(policy.getPayload())) {
+ appcRequest.setPayload(parsePayload(policy.getPayload()));
+ } else {
appcRequest.setPayload(null);
}
@@ -250,6 +251,22 @@ public class AppcLcmActorServiceProvider implements Actor {
return dmaapRequest;
}
+ private static boolean payloadSupplied(Map<String, String> payload) {
+ return payload != null && !payload.isEmpty();
+ }
+
+ private static boolean recipeSupportsPayload(String recipe) {
+ return !RECIPE_RESTART.equalsIgnoreCase(recipe) && !RECIPE_REBUILD.equalsIgnoreCase(recipe)
+ && !RECIPE_MIGRATE.equalsIgnoreCase(recipe);
+ }
+
+ private static String parsePayload(Map<String, String> payload) {
+ StringBuilder payloadString = new StringBuilder("{");
+ payload
+ .forEach((key, value) -> payloadString.append("\"").append(key).append("\": ").append(value).append(","));
+ return payloadString.substring(0, payloadString.length() - 1) + "}";
+ }
+
/**
* Parses the operation attempt using the subRequestId of APPC response.
*