summaryrefslogtreecommitdiffstats
path: root/src/main/java/org
diff options
context:
space:
mode:
authorxuegao <xg353y@intl.att.com>2019-12-13 11:50:24 +0100
committerxuegao <xg353y@intl.att.com>2019-12-16 13:00:03 +0100
commit9047defa7549ebd9a84cef3e10bbfd90f068097b (patch)
tree4cb5d0f32ca599d6a8ae7d3490f331af1e40383b /src/main/java/org
parent4d8c1ab21a3f5baf82a91a3cc9ab2af8823e6e34 (diff)
Update deploymentParameters
Update deploymentParameters to allow a map of <msName, deploymentParams> instead of a single deploymentParam Issue-ID: CLAMP-569, CLAMP-570 Change-Id: I6abc4fe193157644bd6abe1c893a1416cadec988 Signed-off-by: xuegao <xg353y@intl.att.com>
Diffstat (limited to 'src/main/java/org')
-rw-r--r--src/main/java/org/onap/clamp/clds/model/dcae/DcaeInventoryCache.java5
-rw-r--r--src/main/java/org/onap/clamp/loop/CsarInstaller.java36
-rw-r--r--src/main/java/org/onap/clamp/loop/deploy/DeployParameters.java127
3 files changed, 134 insertions, 34 deletions
diff --git a/src/main/java/org/onap/clamp/clds/model/dcae/DcaeInventoryCache.java b/src/main/java/org/onap/clamp/clds/model/dcae/DcaeInventoryCache.java
index b383c18b..558102c5 100644
--- a/src/main/java/org/onap/clamp/clds/model/dcae/DcaeInventoryCache.java
+++ b/src/main/java/org/onap/clamp/clds/model/dcae/DcaeInventoryCache.java
@@ -38,6 +38,11 @@ public class DcaeInventoryCache {
private Map<String, Set<DcaeInventoryResponse>> blueprintsMap = new ConcurrentHashMap<>();
+ /**
+ * Add Dcae inventory response.
+ *
+ * @param inventoryResponse the Dcae inventory response
+ */
public void addDcaeInventoryResponse(DcaeInventoryResponse inventoryResponse) {
Set<DcaeInventoryResponse> responsesSet = blueprintsMap.get(inventoryResponse.getAsdcServiceId());
if (responsesSet == null) {
diff --git a/src/main/java/org/onap/clamp/loop/CsarInstaller.java b/src/main/java/org/onap/clamp/loop/CsarInstaller.java
index 3f69e116..371f88e8 100644
--- a/src/main/java/org/onap/clamp/loop/CsarInstaller.java
+++ b/src/main/java/org/onap/clamp/loop/CsarInstaller.java
@@ -45,6 +45,7 @@ import org.onap.clamp.clds.sdc.controller.installer.CsarHandler;
import org.onap.clamp.clds.sdc.controller.installer.MicroService;
import org.onap.clamp.clds.util.JsonUtils;
import org.onap.clamp.clds.util.drawing.SvgFacade;
+import org.onap.clamp.loop.deploy.DeployParameters;
import org.onap.clamp.loop.service.Service;
import org.onap.clamp.loop.service.ServiceRepository;
import org.onap.clamp.policy.Policy;
@@ -240,9 +241,7 @@ public class CsarInstaller {
}
private JsonObject createGlobalPropertiesJson(BlueprintArtifact blueprintArtifact, Loop newLoop) {
- JsonObject globalProperties = new JsonObject();
- globalProperties.add("dcaeDeployParameters", getAllBlueprintParametersInJson(blueprintArtifact, newLoop));
- return globalProperties;
+ return new DeployParameters(blueprintArtifact, newLoop).getDeploymentParametersinJson();
}
private static JsonObject createVfModuleProperties(CsarHandler csar) {
@@ -280,24 +279,6 @@ public class CsarInstaller {
return resourcesProp;
}
- private JsonObject getAllBlueprintParametersInJson(BlueprintArtifact blueprintArtifact, Loop newLoop) {
- JsonObject node = new JsonObject();
- Yaml yaml = new Yaml();
- Map<String, Object> inputsNodes = ((Map<String, Object>) ((Map<String, Object>) yaml
- .load(blueprintArtifact.getDcaeBlueprint())).get("inputs"));
- inputsNodes.entrySet().stream().filter(e -> !e.getKey().contains("policy_id")).forEach(elem -> {
- Object defaultValue = ((Map<String, Object>) elem.getValue()).get("default");
- if (defaultValue != null) {
- addPropertyToNode(node, elem.getKey(), defaultValue);
- } else {
- node.addProperty(elem.getKey(), "");
- }
- });
- // For Dublin only one micro service is expected
- node.addProperty("policy_id", ((MicroServicePolicy) newLoop.getMicroServicePolicies().toArray()[0]).getName());
- return node;
- }
-
/**
* ll get the latest version of the artifact (version can be specified to DCAE
* call).
@@ -311,17 +292,4 @@ public class CsarInstaller {
blueprintArtifact.getResourceAttached().getResourceInvariantUUID());
}
- private void addPropertyToNode(JsonObject node, String key, Object value) {
- if (value instanceof String) {
- node.addProperty(key, (String) value);
- } else if (value instanceof Number) {
- node.addProperty(key, (Number) value);
- } else if (value instanceof Boolean) {
- node.addProperty(key, (Boolean) value);
- } else if (value instanceof Character) {
- node.addProperty(key, (Character) value);
- } else {
- node.addProperty(key, JsonUtils.GSON.toJson(value));
- }
- }
}
diff --git a/src/main/java/org/onap/clamp/loop/deploy/DeployParameters.java b/src/main/java/org/onap/clamp/loop/deploy/DeployParameters.java
new file mode 100644
index 00000000..c994af7c
--- /dev/null
+++ b/src/main/java/org/onap/clamp/loop/deploy/DeployParameters.java
@@ -0,0 +1,127 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP CLAMP
+ * ================================================================================
+ * Copyright (C) 2019 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.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END============================================
+ * ===================================================================
+ *
+ */
+
+package org.onap.clamp.loop.deploy;
+
+import com.google.gson.JsonObject;
+
+import java.util.LinkedHashMap;
+import java.util.LinkedHashSet;
+import java.util.Map;
+
+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;
+import org.yaml.snakeyaml.Yaml;
+
+public class DeployParameters {
+
+ private LinkedHashMap<String, JsonObject> deploymentParamMap = new LinkedHashMap<String, JsonObject>();
+
+ /**
+ * Constructor.
+ *
+ * @param blueprintArtifactList A list of blueprint artifacts
+ * @param loop The loop object
+ */
+ public DeployParameters(LinkedHashSet<BlueprintArtifact> blueprintArtifactList, Loop loop) {
+ this.init(blueprintArtifactList, loop);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param blueprintArtifact One blueprint artifact
+ * @param loop The loop object
+ */
+ public DeployParameters(BlueprintArtifact blueprintArtifact, Loop loop) {
+ LinkedHashSet<BlueprintArtifact> blueprintArtifactList = new LinkedHashSet<BlueprintArtifact>();
+ blueprintArtifactList.add(blueprintArtifact);
+ this.init(blueprintArtifactList, loop);
+ }
+
+ private void init(LinkedHashSet<BlueprintArtifact> blueprintArtifactList, Loop loop) {
+ 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,
+ generateDeployParameter(blueprintArtifact, microServiceName));
+ } else {
+ deploymentParamMap.put(microServiceName, generateDeployParameter(blueprintArtifact, microServiceName));
+ }
+ index++;
+ }
+ }
+
+ private JsonObject generateDeployParameter(BlueprintArtifact blueprintArtifact, String microServiceName) {
+ JsonObject deployJsonBody = new JsonObject();
+ Yaml yaml = new Yaml();
+ Map<String, Object> inputsNodes = ((Map<String, Object>) ((Map<String, Object>) yaml
+ .load(blueprintArtifact.getDcaeBlueprint())).get("inputs"));
+ inputsNodes.entrySet().stream().filter(e -> !e.getKey().contains("policy_id")).forEach(elem -> {
+ Object defaultValue = ((Map<String, Object>) elem.getValue()).get("default");
+ if (defaultValue != null) {
+ addPropertyToNode(deployJsonBody, elem.getKey(), defaultValue);
+ } else {
+ deployJsonBody.addProperty(elem.getKey(), "");
+ }
+ });
+ // For Dublin only one micro service is expected
+ deployJsonBody.addProperty("policy_id", microServiceName);
+ return deployJsonBody;
+ }
+
+ private void addPropertyToNode(JsonObject node, String key, Object value) {
+ if (value instanceof String) {
+ node.addProperty(key, (String) value);
+ } else if (value instanceof Number) {
+ node.addProperty(key, (Number) value);
+ } else if (value instanceof Boolean) {
+ node.addProperty(key, (Boolean) value);
+ } else if (value instanceof Character) {
+ node.addProperty(key, (Character) value);
+ } else {
+ node.addProperty(key, JsonUtils.GSON.toJson(value));
+ }
+ }
+
+ /**
+ * Convert the object in Json.
+ *
+ * @return The deploymentParameters in Json
+ */
+ public JsonObject getDeploymentParametersinJson() {
+ JsonObject globalProperties = new JsonObject();
+ JsonObject deployParamJson = new JsonObject();
+ for (Map.Entry<String, JsonObject> mapElement: deploymentParamMap.entrySet()) {
+ deployParamJson.add(mapElement.getKey(), mapElement.getValue());
+ }
+ globalProperties.add("dcaeDeployParameters", deployParamJson);
+ return globalProperties;
+ }
+
+}