From 3c327c1fe313cb31dcc914dcaee7f38255240099 Mon Sep 17 00:00:00 2001 From: xuegao Date: Mon, 23 Mar 2020 14:30:56 +0100 Subject: Populate deployment parameters Create deployment parameters while creating loops. Issue-ID: CLAMP-788 Change-Id: Icb4ebc786b87468846692744f27b697734015401 Signed-off-by: xuegao --- src/main/java/org/onap/clamp/loop/Loop.java | 2 + .../clamp/loop/deploy/DcaeDeployParameters.java | 60 +++++++++------------- .../resources/clds/camel/routes/loop-flows.xml | 4 +- 3 files changed, 27 insertions(+), 39 deletions(-) (limited to 'src/main') diff --git a/src/main/java/org/onap/clamp/loop/Loop.java b/src/main/java/org/onap/clamp/loop/Loop.java index 605e42fd1..19a17dbb0 100644 --- a/src/main/java/org/onap/clamp/loop/Loop.java +++ b/src/main/java/org/onap/clamp/loop/Loop.java @@ -57,6 +57,7 @@ import org.onap.clamp.loop.common.AuditEntity; import org.onap.clamp.loop.components.external.DcaeComponent; import org.onap.clamp.loop.components.external.ExternalComponent; import org.onap.clamp.loop.components.external.PolicyComponent; +import org.onap.clamp.loop.deploy.DcaeDeployParameters; import org.onap.clamp.loop.log.LoopLog; import org.onap.clamp.loop.service.Service; import org.onap.clamp.loop.template.LoopElementModel; @@ -173,6 +174,7 @@ public class Loop extends AuditEntity implements Serializable { .createPolicyInstance(this, toscaConverter)); } }); + this.setGlobalPropertiesJson(DcaeDeployParameters.getDcaeDeploymentParametersInJson(this)); } public String getName() { diff --git a/src/main/java/org/onap/clamp/loop/deploy/DcaeDeployParameters.java b/src/main/java/org/onap/clamp/loop/deploy/DcaeDeployParameters.java index 48349e791..e2b16e62e 100644 --- a/src/main/java/org/onap/clamp/loop/deploy/DcaeDeployParameters.java +++ b/src/main/java/org/onap/clamp/loop/deploy/DcaeDeployParameters.java @@ -26,11 +26,9 @@ package org.onap.clamp.loop.deploy; import com.google.gson.JsonObject; import java.util.LinkedHashMap; -import java.util.LinkedHashSet; import java.util.Map; import java.util.Set; -import org.onap.clamp.clds.sdc.controller.installer.BlueprintArtifact; import org.onap.clamp.clds.util.JsonUtils; import org.onap.clamp.loop.Loop; import org.onap.clamp.policy.microservice.MicroServicePolicy; @@ -41,32 +39,27 @@ import org.yaml.snakeyaml.Yaml; */ public class DcaeDeployParameters { - private static LinkedHashMap init(Set blueprintArtifactList, Loop loop) { + private static LinkedHashMap init(Loop loop) { LinkedHashMap deploymentParamMap = new LinkedHashMap<>(); - String microServiceName = ((MicroServicePolicy) loop.getMicroServicePolicies().toArray()[0]).getName(); - // Add index to the microservice name from the 2nd blueprint artifact for now. - // Update the microservice names, when able to link the microserivce <-> - // blueprint in the future - int index = 0; - for (BlueprintArtifact blueprintArtifact : blueprintArtifactList) { - if (index > 0) { - deploymentParamMap.put(microServiceName + index, - generateDcaeDeployParameter(blueprintArtifact, microServiceName)); - } else { - deploymentParamMap.put(microServiceName, - generateDcaeDeployParameter(blueprintArtifact, microServiceName)); - } - index++; + Set microServiceList = loop.getMicroServicePolicies(); + + for (MicroServicePolicy microService : microServiceList) { + deploymentParamMap.put(microService.getName(), + generateDcaeDeployParameter(microService)); } return deploymentParamMap; } - private static JsonObject generateDcaeDeployParameter(BlueprintArtifact blueprintArtifact, - String microServiceName) { + private static JsonObject generateDcaeDeployParameter(MicroServicePolicy microService) { + return generateDcaeDeployParameter(microService.getLoopElementModel().getBlueprint(), + microService.getName()); + } + + private static JsonObject generateDcaeDeployParameter(String blueprint, String tabName) { JsonObject deployJsonBody = new JsonObject(); Yaml yaml = new Yaml(); Map inputsNodes = ((Map) ((Map) yaml - .load(blueprintArtifact.getDcaeBlueprint())).get("inputs")); + .load(blueprint)).get("inputs")); inputsNodes.entrySet().stream().filter(e -> !e.getKey().contains("policy_id")).forEach(elem -> { Object defaultValue = ((Map) elem.getValue()).get("default"); if (defaultValue != null) { @@ -76,7 +69,7 @@ public class DcaeDeployParameters { } }); // For Dublin only one micro service is expected - deployJsonBody.addProperty("policy_id", microServiceName); + deployJsonBody.addProperty("policy_id", tabName); return deployJsonBody; } @@ -99,27 +92,20 @@ public class DcaeDeployParameters { * * @return The deploymentParameters in Json */ - public static JsonObject getDcaeDeploymentParametersInJson(Set blueprintArtifactList, - Loop loop) { - LinkedHashMap deploymentParamMap = init(blueprintArtifactList, loop); - + public static JsonObject getDcaeDeploymentParametersInJson(Loop loop) { JsonObject globalProperties = new JsonObject(); JsonObject deployParamJson = new JsonObject(); - for (Map.Entry mapElement : deploymentParamMap.entrySet()) { - deployParamJson.add(mapElement.getKey(), mapElement.getValue()); + if (loop.getLoopTemplate().getUniqueBlueprint()) { + String tabName = "loop template blueprint"; + deployParamJson.add(tabName, generateDcaeDeployParameter(loop.getLoopTemplate().getBlueprint(), tabName)); + } else { + LinkedHashMap deploymentParamMap = init(loop); + for (Map.Entry mapElement : deploymentParamMap.entrySet()) { + deployParamJson.add(mapElement.getKey(), mapElement.getValue()); + } } globalProperties.add("dcaeDeployParameters", deployParamJson); return globalProperties; } - /** - * Convert the object in Json. - * - * @return The deploymentParameters in Json - */ - public static JsonObject getDcaeDeploymentParametersInJson(BlueprintArtifact blueprintArtifact, Loop loop) { - LinkedHashSet blueprintArtifactList = new LinkedHashSet<>(); - blueprintArtifactList.add(blueprintArtifact); - return getDcaeDeploymentParametersInJson(blueprintArtifactList, loop); - } } diff --git a/src/main/resources/clds/camel/routes/loop-flows.xml b/src/main/resources/clds/camel/routes/loop-flows.xml index a4b6e2920..8c22743a3 100644 --- a/src/main/resources/clds/camel/routes/loop-flows.xml +++ b/src/main/resources/clds/camel/routes/loop-flows.xml @@ -59,10 +59,10 @@ ${body.getName()} - onap.policies.controlloop.Operational + ${body.getPolicyModel().getPolicyModelType()} - 1 + 1.0.0 ${body} -- cgit 1.2.3-korg