diff options
10 files changed, 39 insertions, 27 deletions
@@ -24,7 +24,7 @@ <modelVersion>4.0.0</modelVersion> <groupId>org.onap.clamp</groupId> <artifactId>clds</artifactId> - <version>4.0.0-SNAPSHOT</version> + <version>4.0.1-SNAPSHOT</version> <name>clamp</name> <!-- --> diff --git a/src/main/java/org/onap/clamp/clds/sdc/controller/installer/BlueprintParser.java b/src/main/java/org/onap/clamp/clds/sdc/controller/installer/BlueprintParser.java index aca2ed01..3792c172 100644 --- a/src/main/java/org/onap/clamp/clds/sdc/controller/installer/BlueprintParser.java +++ b/src/main/java/org/onap/clamp/clds/sdc/controller/installer/BlueprintParser.java @@ -53,21 +53,23 @@ public class BlueprintParser { private static final String TYPE = "type"; private static final String PROPERTIES = "properties"; private static final String NAME = "name"; - private static final String POLICYID = "policy_id"; - private static final String POLICY_TYPEID = "policy_type_id"; + private static final String INPUT = "inputs"; + private static final String GET_INPUT = "get_input"; + private static final String POLICY_MODELID = "policy_model_id"; private static final String RELATIONSHIPS = "relationships"; private static final String CLAMP_NODE_RELATIONSHIPS_GETS_INPUT_FROM = "clamp_node.relationships.gets_input_from"; private static final String TARGET = "target"; public Set<MicroService> getMicroServices(String blueprintString) { Set<MicroService> microServices = new HashSet<>(); - JsonObject jsonObject = BlueprintParser.convertToJson(blueprintString); - JsonObject nodeTemplateList = jsonObject.get(NODE_TEMPLATES).getAsJsonObject(); + JsonObject blueprintJson = BlueprintParser.convertToJson(blueprintString); + JsonObject nodeTemplateList = blueprintJson.get(NODE_TEMPLATES).getAsJsonObject(); + JsonObject inputList = blueprintJson.get(INPUT).getAsJsonObject(); for (Entry<String, JsonElement> entry : nodeTemplateList.entrySet()) { JsonObject nodeTemplate = entry.getValue().getAsJsonObject(); if (nodeTemplate.get(TYPE).getAsString().contains(DCAE_NODES)) { - MicroService microService = getNodeRepresentation(entry, nodeTemplateList); + MicroService microService = getNodeRepresentation(entry, nodeTemplateList, inputList); microServices.add(microService); } } @@ -119,12 +121,12 @@ public class BlueprintParser { return ""; } - String findModelTypeInTargetArray(JsonArray jsonArray, JsonObject nodeTemplateList) { + String findModelTypeInTargetArray(JsonArray jsonArray, JsonObject nodeTemplateList, JsonObject inputList) { for (JsonElement elem : jsonArray) { String modelType = getModelType( new AbstractMap.SimpleEntry<String, JsonElement>(elem.getAsJsonObject().get(TARGET).getAsString(), nodeTemplateList.get(elem.getAsJsonObject().get(TARGET).getAsString()).getAsJsonObject()), - nodeTemplateList); + nodeTemplateList, inputList); if (!modelType.isEmpty()) { return modelType; } @@ -132,29 +134,34 @@ public class BlueprintParser { return ""; } - String getModelType(Entry<String, JsonElement> entry, JsonObject nodeTemplateList) { + String getModelType(Entry<String, JsonElement> entry, JsonObject nodeTemplateList, JsonObject inputList) { JsonObject ob = entry.getValue().getAsJsonObject(); // Search first in this node template if (ob.has(PROPERTIES)) { JsonObject properties = ob.get(PROPERTIES).getAsJsonObject(); - if (properties.has(POLICYID)) { - JsonObject policyIdObj = properties.get(POLICYID).getAsJsonObject(); - if (policyIdObj.has(POLICY_TYPEID)) { - return policyIdObj.get(POLICY_TYPEID).getAsString(); + if (properties.has(POLICY_MODELID)) { + if (properties.get(POLICY_MODELID).isJsonObject()) { + // it's a blueprint parameter + return inputList.get(properties.get(POLICY_MODELID).getAsJsonObject().get(GET_INPUT).getAsString()) + .getAsJsonObject().get("default").getAsString(); + } else { + // It's a direct value + return properties.get(POLICY_MODELID).getAsString(); } } } - // Then it's may be a relationship + // Or it's may be defined in a relationship if (ob.has(RELATIONSHIPS)) { - return findModelTypeInTargetArray(ob.get(RELATIONSHIPS).getAsJsonArray(), nodeTemplateList); + return findModelTypeInTargetArray(ob.get(RELATIONSHIPS).getAsJsonArray(), nodeTemplateList, inputList); } return ""; } - MicroService getNodeRepresentation(Entry<String, JsonElement> entry, JsonObject nodeTemplateList) { + MicroService getNodeRepresentation(Entry<String, JsonElement> entry, JsonObject nodeTemplateList, + JsonObject inputList) { String name = getName(entry); String getInputFrom = getInput(entry); - String modelType = getModelType(entry, nodeTemplateList); + String modelType = getModelType(entry, nodeTemplateList, inputList); return new MicroService(name, modelType, getInputFrom, ""); } diff --git a/src/test/java/org/onap/clamp/clds/sdc/controller/installer/BlueprintParserTest.java b/src/test/java/org/onap/clamp/clds/sdc/controller/installer/BlueprintParserTest.java index 7a1f9f0a..dec63977 100644 --- a/src/test/java/org/onap/clamp/clds/sdc/controller/installer/BlueprintParserTest.java +++ b/src/test/java/org/onap/clamp/clds/sdc/controller/installer/BlueprintParserTest.java @@ -144,7 +144,7 @@ public class BlueprintParserTest { MicroService expected = new MicroService(SECOND_APPP, MODEL_TYPE1, FIRST_APPP, ""); Entry<String, JsonElement> entry = jsonObject.entrySet().iterator().next(); - MicroService actual = new BlueprintParser().getNodeRepresentation(entry, jsonObject); + MicroService actual = new BlueprintParser().getNodeRepresentation(entry, jsonObject, null); Assert.assertEquals(expected, actual); } diff --git a/src/test/resources/clds/blueprint-with-microservice-chain.yaml b/src/test/resources/clds/blueprint-with-microservice-chain.yaml index 4a7e5d7a..fa2d7205 100644 --- a/src/test/resources/clds/blueprint-with-microservice-chain.yaml +++ b/src/test/resources/clds/blueprint-with-microservice-chain.yaml @@ -31,7 +31,7 @@ node_templates: service_component_name_override: second_app image: { get_input: second_app_docker_image } policy_id: - policy_type_id: type2 + policy_model_id: "type2" interfaces: cloudify.interfaces.lifecycle: start: @@ -56,7 +56,7 @@ node_templates: image: { get_input: first_app_docker_image } container_port: 6565 policy_id: - policy_type_id: type1 + policy_model_id: "type1" interfaces: cloudify.interfaces.lifecycle: start: @@ -81,7 +81,7 @@ node_templates: image: { get_input: third_app_docker_image } container_port: 443 policy_id: - policy_type_id: type3 + policy_model_id: "type3" interfaces: cloudify.interfaces.lifecycle: start: diff --git a/src/test/resources/clds/single-microservice-fragment-valid.yaml b/src/test/resources/clds/single-microservice-fragment-valid.yaml index 269ee506..2c168071 100644 --- a/src/test/resources/clds/single-microservice-fragment-valid.yaml +++ b/src/test/resources/clds/single-microservice-fragment-valid.yaml @@ -6,7 +6,7 @@ second_app: image: { get_input: second_app_docker_image } name: second_app policy_id: - policy_type_id: type1 + policy_model_id: "type1" interfaces: cloudify.interfaces.lifecycle: start: diff --git a/src/test/resources/example/sdc/blueprint-dcae/prop-text-for-tca-3.json b/src/test/resources/example/sdc/blueprint-dcae/prop-text-for-tca-3.json index f8f53165..012c46e9 100644 --- a/src/test/resources/example/sdc/blueprint-dcae/prop-text-for-tca-3.json +++ b/src/test/resources/example/sdc/blueprint-dcae/prop-text-for-tca-3.json @@ -40,7 +40,8 @@ "cbs_host": "config-binding-service.dcae.svc.cluster.local", "cbs_port": "10000", "external_port": "32012", - "policy_id": "AUTO_GENERATED_POLICY_ID_AT_SUBMIT" + "policy_id": "AUTO_GENERATED_POLICY_ID_AT_SUBMIT", + "policy_model_id": "onap.policies.monitoring.cdap.tca.hi.lo.app" } } ] diff --git a/src/test/resources/example/sdc/blueprint-dcae/tca.yaml b/src/test/resources/example/sdc/blueprint-dcae/tca.yaml index edaa0be2..0cb9cdb6 100644 --- a/src/test/resources/example/sdc/blueprint-dcae/tca.yaml +++ b/src/test/resources/example/sdc/blueprint-dcae/tca.yaml @@ -17,7 +17,7 @@ node_templates: properties: policy_id: get_input: policy_id - policy_type_id: onap.policies.monitoring.cdap.tca.hi.lo.app + policy_model_id: "onap.policies.monitoring.cdap.tca.hi.lo.app" cdap_host_host: type: dcae.nodes.StreamingAnalytics.SelectedCDAPInfrastructure properties: diff --git a/src/test/resources/example/sdc/blueprint-dcae/tca_2.yaml b/src/test/resources/example/sdc/blueprint-dcae/tca_2.yaml index 56ae32a7..00ebfe7f 100644 --- a/src/test/resources/example/sdc/blueprint-dcae/tca_2.yaml +++ b/src/test/resources/example/sdc/blueprint-dcae/tca_2.yaml @@ -171,4 +171,4 @@ node_templates: properties: policy_id: get_input: policy_id - policy_type_id: onap.policies.monitoring.cdap.tca.hi.lo.app + policy_model_id: "onap.policies.monitoring.cdap.tca.hi.lo.app" diff --git a/src/test/resources/example/sdc/blueprint-dcae/tca_3.yaml b/src/test/resources/example/sdc/blueprint-dcae/tca_3.yaml index 53cfc4f7..6fab504b 100644 --- a/src/test/resources/example/sdc/blueprint-dcae/tca_3.yaml +++ b/src/test/resources/example/sdc/blueprint-dcae/tca_3.yaml @@ -51,6 +51,9 @@ inputs: type: string description: Kubernetes node port on which CDAPgui is exposed default: "32012" + policy_model_id: + type: string + default: "onap.policies.monitoring.cdap.tca.hi.lo.app" node_templates: tca_k8s: @@ -150,4 +153,5 @@ node_templates: properties: policy_id: get_input: policy_id - policy_type_id: onap.policies.monitoring.cdap.tca.hi.lo.app + policy_model_id: + get_input: policy_model_id diff --git a/version.properties b/version.properties index 937711c7..16b9934e 100644 --- a/version.properties +++ b/version.properties @@ -27,7 +27,7 @@ major=4 minor=0 -patch=0 +patch=1 base_version=${major}.${minor}.${patch} |