From: Vidyashree-Huawei Date: Mon, 20 Apr 2020 06:48:50 +0000 (+0530) Subject: Payload is expected as string in operational policy X-Git-Tag: 5.0.5~7^2 X-Git-Url: https://gerrit.onap.org/r/gitweb?a=commitdiff_plain;h=472dc126eb9f30c09df344357db2c62f20d0b92c;p=clamp.git Payload is expected as string in operational policy 1. converted json to string for legacy operational policy 2. added payload data as default string value for generic operational policy Change-Id: If63423c24d736623b227537f0f83edeaac819215 Issue-ID: CLAMP-831 Signed-off-by: Vidyashree-Huawei --- diff --git a/src/main/java/org/onap/clamp/clds/tosca/update/execution/cds/ToscaMetadataCdsProcess.java b/src/main/java/org/onap/clamp/clds/tosca/update/execution/cds/ToscaMetadataCdsProcess.java index c1564141..c92cad1f 100644 --- a/src/main/java/org/onap/clamp/clds/tosca/update/execution/cds/ToscaMetadataCdsProcess.java +++ b/src/main/java/org/onap/clamp/clds/tosca/update/execution/cds/ToscaMetadataCdsProcess.java @@ -23,9 +23,7 @@ package org.onap.clamp.clds.tosca.update.execution.cds; -import static org.onap.clamp.clds.tosca.ToscaSchemaConstants.PROPERTIES; import static org.onap.clamp.clds.tosca.ToscaSchemaConstants.TYPE; -import static org.onap.clamp.clds.tosca.ToscaSchemaConstants.TYPE_LIST; import com.google.gson.JsonArray; import com.google.gson.JsonElement; @@ -133,20 +131,14 @@ public class ToscaMetadataCdsProcess extends ToscaMetadataProcess { return result; } - private static JsonObject createAnyOfJsonProperty(String name, String defaultValue) { + private static JsonObject createAnyOfJsonProperty(String name, + String defaultValue, + boolean readOnlyFlag) { JsonObject result = new JsonObject(); result.addProperty("title", name); result.addProperty("type", "string"); result.addProperty("default", defaultValue); - result.addProperty("readOnly", "True"); - return result; - } - - private static JsonObject createAnyOfJsonObject(String name, JsonObject allProperties) { - JsonObject result = new JsonObject(); - result.addProperty("title", name); - result.addProperty("type", "object"); - result.add("properties", allProperties); + result.addProperty("readOnly", readOnlyFlag); return result; } @@ -173,66 +165,37 @@ public class ToscaMetadataCdsProcess extends ToscaMetadataProcess { JsonObject inputs = workFlow.getAsJsonObject("inputs"); JsonObject jsonObject = new JsonObject(); jsonObject.add("artifact_name", createAnyOfJsonProperty( - "artifact name", artifactName)); + "artifact name", artifactName, true)); jsonObject.add("artifact_version", createAnyOfJsonProperty( - "artifact version", artifactVersion)); - jsonObject.add("mode", createCdsInputProperty( - "mode", "string", "async", null)); + "artifact version", artifactVersion, true)); + jsonObject.add("mode", createAnyOfJsonProperty( + "mode", "async", false)); jsonObject.add("data", createDataProperty(inputs)); - return jsonObject; } private static JsonObject createDataProperty(JsonObject inputs) { JsonObject data = new JsonObject(); data.addProperty("title", "data"); - data.add(PROPERTIES, addDataFields(inputs)); + data.addProperty("type", "string"); + data.addProperty("format", "textarea"); + JsonObject defaultValue = new JsonObject(); + addDefaultValueForData(inputs, defaultValue); + data.addProperty("default", defaultValue.toString()); return data; } - private static JsonObject addDataFields(JsonObject inputs) { - JsonObject jsonObject = new JsonObject(); + private static void addDefaultValueForData(JsonObject inputs, + JsonObject defaultValue) { Set> entrySet = inputs.entrySet(); for (Map.Entry entry : entrySet) { String key = entry.getKey(); JsonObject inputProperty = inputs.getAsJsonObject(key); if (inputProperty.get(TYPE) == null) { - jsonObject.add(entry.getKey(), - createAnyOfJsonObject(key, - addDataFields(entry.getValue().getAsJsonObject()))); + addDefaultValueForData(entry.getValue().getAsJsonObject(), defaultValue); } else { - jsonObject.add(entry.getKey(), - createCdsInputProperty(key, - inputProperty.get("type").getAsString(), - null, - entry.getValue().getAsJsonObject())); + defaultValue.addProperty(entry.getKey(), ""); } } - return jsonObject; - } - - private static JsonObject createCdsInputProperty(String title, - String type, - String defaultValue, - JsonObject cdsProperty) { - JsonObject property = new JsonObject(); - property.addProperty("title", title); - - if (TYPE_LIST.equalsIgnoreCase(type)) { - property.addProperty(TYPE, "array"); - if (cdsProperty.get(PROPERTIES) != null) { - JsonObject listProperties = new JsonObject(); - listProperties.add(PROPERTIES, - addDataFields(cdsProperty.get(PROPERTIES).getAsJsonObject())); - property.add("items", listProperties); - } - } else { - property.addProperty(TYPE, type); - } - - if (defaultValue != null) { - property.addProperty("default", defaultValue); - } - return property; } } diff --git a/src/main/java/org/onap/clamp/policy/operational/LegacyOperationalPolicy.java b/src/main/java/org/onap/clamp/policy/operational/LegacyOperationalPolicy.java index 3765277d..a7a344df 100644 --- a/src/main/java/org/onap/clamp/policy/operational/LegacyOperationalPolicy.java +++ b/src/main/java/org/onap/clamp/policy/operational/LegacyOperationalPolicy.java @@ -234,6 +234,11 @@ public class LegacyOperationalPolicy { JsonObject payloadObject = payloadElem != null ? payloadElem.getAsJsonObject() : null; if (payloadObject != null) { + /* Since policy expects payload to be map of string, + converting data object to string. */ + JsonObject dataObject = payloadObject.get("data").getAsJsonObject(); + payloadObject.remove("data"); + payloadObject.addProperty("data", dataObject.toString()); policy.getAsJsonObject().add(PAYLOAD, payloadObject); } else { diff --git a/src/main/java/org/onap/clamp/policy/operational/OperationalPolicyRepresentationBuilder.java b/src/main/java/org/onap/clamp/policy/operational/OperationalPolicyRepresentationBuilder.java index 4e362d84..57d13ef1 100644 --- a/src/main/java/org/onap/clamp/policy/operational/OperationalPolicyRepresentationBuilder.java +++ b/src/main/java/org/onap/clamp/policy/operational/OperationalPolicyRepresentationBuilder.java @@ -24,8 +24,6 @@ package org.onap.clamp.policy.operational; -import static org.onap.clamp.clds.tosca.update.execution.cds.ToscaMetadataCdsProcess.createInputPropertiesForPayload; - import com.att.eelf.configuration.EELFLogger; import com.att.eelf.configuration.EELFManager; import com.google.gson.JsonArray; @@ -33,7 +31,9 @@ import com.google.gson.JsonElement; import com.google.gson.JsonObject; import java.io.IOException; +import java.util.Map; import java.util.Map.Entry; +import java.util.Set; import org.onap.clamp.clds.util.JsonUtils; import org.onap.clamp.clds.util.ResourceFileUtil; @@ -44,6 +44,10 @@ public class OperationalPolicyRepresentationBuilder { private static final EELFLogger logger = EELFManager.getInstance().getLogger(OperationalPolicyRepresentationBuilder.class); + public static final String PROPERTIES = "properties"; + public static final String TYPE = "type"; + public static final String TYPE_LIST = "list"; + /** * This method generates the operational policy json representation that will be * used by ui for rendering. It uses the model (VF and VFModule) defined in the @@ -213,7 +217,7 @@ public class OperationalPolicyRepresentationBuilder { private static JsonObject createPayloadProperty(JsonObject workFlow, JsonObject controllerProperties, String workFlowName) { JsonObject payload = new JsonObject(); - payload.addProperty("title", "Payload (YAML)"); + payload.addProperty("title", "Payload"); payload.addProperty("type", "object"); payload.add("properties", createInputPropertiesForPayload(workFlow, controllerProperties)); @@ -233,4 +237,82 @@ public class OperationalPolicyRepresentationBuilder { recipe.add("options", options); return recipe; } + + /** + * Returns the properties of payload based on the cds work flows. + * + * @param workFlow cds work flows to update payload + * @param controllerProperties cds properties to get blueprint name and + * version + * @return returns the properties of payload + */ + public static JsonObject createInputPropertiesForPayload(JsonObject workFlow, + JsonObject controllerProperties) { + String artifactName = controllerProperties.get("sdnc_model_name").getAsString(); + String artifactVersion = controllerProperties.get("sdnc_model_version").getAsString(); + JsonObject inputs = workFlow.getAsJsonObject("inputs"); + JsonObject jsonObject = new JsonObject(); + jsonObject.add("artifact_name", createSchemaProperty( + "artifact name", "string", artifactName, "True", null)); + jsonObject.add("artifact_version", createSchemaProperty( + "artifact version", "string", artifactVersion, "True", null)); + jsonObject.add("mode", createCdsInputProperty( + "mode", "string", "async" ,null)); + jsonObject.add("data", createDataProperty(inputs)); + return jsonObject; + } + + private static JsonObject createDataProperty(JsonObject inputs) { + JsonObject data = new JsonObject(); + data.addProperty("title", "data"); + JsonObject dataObj = new JsonObject(); + addDataFields(inputs, dataObj); + data.add(PROPERTIES, dataObj); + return data; + } + + private static void addDataFields(JsonObject inputs, + JsonObject dataObj) { + Set> entrySet = inputs.entrySet(); + for (Map.Entry entry : entrySet) { + String key = entry.getKey(); + JsonObject inputProperty = inputs.getAsJsonObject(key); + if (inputProperty.get(TYPE) == null) { + addDataFields(entry.getValue().getAsJsonObject(), dataObj); + } else { + dataObj.add(entry.getKey(), + createCdsInputProperty(key, + inputProperty.get(TYPE).getAsString(), + null, + entry.getValue().getAsJsonObject())); + } + } + } + + private static JsonObject createCdsInputProperty(String title, + String type, + String defaultValue, + JsonObject cdsProperty) { + JsonObject property = new JsonObject(); + property.addProperty("title", title); + + if (TYPE_LIST.equalsIgnoreCase(type)) { + property.addProperty(TYPE, "array"); + if (cdsProperty.get(PROPERTIES) != null) { + JsonObject dataObject = new JsonObject(); + addDataFields(cdsProperty.get(PROPERTIES).getAsJsonObject(), + dataObject); + JsonObject listProperties = new JsonObject(); + listProperties.add(PROPERTIES, dataObject); + property.add("items", listProperties); + } + } else { + property.addProperty(TYPE, type); + } + + if (defaultValue != null) { + property.addProperty("default", defaultValue); + } + return property; + } } diff --git a/src/test/resources/tosca/new-converter/tosca_apex_with_metadata.json b/src/test/resources/tosca/new-converter/tosca_apex_with_metadata.json index 793ba5e7..ad985292 100644 --- a/src/test/resources/tosca/new-converter/tosca_apex_with_metadata.json +++ b/src/test/resources/tosca/new-converter/tosca_apex_with_metadata.json @@ -76,57 +76,25 @@ "title": "artifact name", "type": "string", "default": "baseconfiguration", - "readOnly": "True" + "readOnly": true }, "artifact_version": { "title": "artifact version", "type": "string", "default": "1.0.0", - "readOnly": "True" + "readOnly": true }, "mode": { "title": "mode", "type": "string", - "default": "async" + "default": "async", + "readOnly": false }, "data": { "title": "data", - "properties": { - "resource-assignment-properties": { - "title": "resource-assignment-properties", - "type": "object", - "properties": { - "request-id": { - "title": "request-id", - "type": "string" - }, - "service-instance-id": { - "title": "service-instance-id", - "type": "string" - }, - "vnf-id": { - "title": "vnf-id", - "type": "string" - }, - "action-name": { - "title": "action-name", - "type": "string" - }, - "scope-type": { - "title": "scope-type", - "type": "string" - }, - "hostname": { - "title": "hostname", - "type": "string" - }, - "vnf_name": { - "title": "vnf_name", - "type": "string" - } - } - } - } + "type": "string", + "format": "textarea", + "default": "{\"request-id\":\"\",\"service-instance-id\":\"\",\"vnf-id\":\"\",\"action-name\":\"\",\"scope-type\":\"\",\"hostname\":\"\",\"vnf_name\":\"\"}" } } }, @@ -137,57 +105,25 @@ "title": "artifact name", "type": "string", "default": "baseconfiguration", - "readOnly": "True" + "readOnly": true }, "artifact_version": { "title": "artifact version", "type": "string", "default": "1.0.0", - "readOnly": "True" + "readOnly": true }, "mode": { "title": "mode", "type": "string", - "default": "async" + "default": "async", + "readOnly": false }, "data": { "title": "data", - "properties": { - "resource-assignment-properties": { - "title": "resource-assignment-properties", - "type": "object", - "properties": { - "request-id": { - "title": "request-id", - "type": "string" - }, - "service-instance-id": { - "title": "service-instance-id", - "type": "string" - }, - "vnf-id": { - "title": "vnf-id", - "type": "string" - }, - "action-name": { - "title": "action-name", - "type": "string" - }, - "scope-type": { - "title": "scope-type", - "type": "string" - }, - "hostname": { - "title": "hostname", - "type": "string" - }, - "vnf_name": { - "title": "vnf_name", - "type": "string" - } - } - } - } + "type": "string", + "format": "textarea", + "default": "{\"request-id\":\"\",\"service-instance-id\":\"\",\"vnf-id\":\"\",\"action-name\":\"\",\"scope-type\":\"\",\"hostname\":\"\",\"vnf_name\":\"\"}" } } }, @@ -198,57 +134,25 @@ "title": "artifact name", "type": "string", "default": "baseconfiguration", - "readOnly": "True" + "readOnly": true }, "artifact_version": { "title": "artifact version", "type": "string", "default": "1.0.0", - "readOnly": "True" + "readOnly": true }, "mode": { "title": "mode", "type": "string", - "default": "async" + "default": "async", + "readOnly": false }, "data": { "title": "data", - "properties": { - "resource-assignment-properties": { - "title": "resource-assignment-properties", - "type": "object", - "properties": { - "request-id": { - "title": "request-id", - "type": "string" - }, - "service-instance-id": { - "title": "service-instance-id", - "type": "string" - }, - "vnf-id": { - "title": "vnf-id", - "type": "string" - }, - "action-name": { - "title": "action-name", - "type": "string" - }, - "scope-type": { - "title": "scope-type", - "type": "string" - }, - "hostname": { - "title": "hostname", - "type": "string" - }, - "vnf_name": { - "title": "vnf_name", - "type": "string" - } - } - } - } + "type": "string", + "format": "textarea", + "default": "{\"request-id\":\"\",\"service-instance-id\":\"\",\"vnf-id\":\"\",\"action-name\":\"\",\"scope-type\":\"\",\"hostname\":\"\",\"vnf_name\":\"\"}" } } }, @@ -259,57 +163,25 @@ "title": "artifact name", "type": "string", "default": "baseconfiguration", - "readOnly": "True" + "readOnly": true }, "artifact_version": { "title": "artifact version", "type": "string", "default": "1.0.0", - "readOnly": "True" + "readOnly": true }, "mode": { "title": "mode", "type": "string", - "default": "async" + "default": "async", + "readOnly": false }, "data": { "title": "data", - "properties": { - "resource-assignment-properties": { - "title": "resource-assignment-properties", - "type": "object", - "properties": { - "request-id": { - "title": "request-id", - "type": "string" - }, - "service-instance-id": { - "title": "service-instance-id", - "type": "string" - }, - "vnf-id": { - "title": "vnf-id", - "type": "string" - }, - "action-name": { - "title": "action-name", - "type": "string" - }, - "scope-type": { - "title": "scope-type", - "type": "string" - }, - "hostname": { - "title": "hostname", - "type": "string" - }, - "vnf_name": { - "title": "vnf_name", - "type": "string" - } - } - } - } + "type": "string", + "format": "textarea", + "default": "{\"request-id\":\"\",\"service-instance-id\":\"\",\"vnf-id\":\"\",\"action-name\":\"\",\"scope-type\":\"\",\"hostname\":\"\",\"vnf_name\":\"\"}" } } }, @@ -320,57 +192,25 @@ "title": "artifact name", "type": "string", "default": "baseconfiguration", - "readOnly": "True" + "readOnly": true }, "artifact_version": { "title": "artifact version", "type": "string", "default": "1.0.0", - "readOnly": "True" + "readOnly": true }, "mode": { "title": "mode", "type": "string", - "default": "async" + "default": "async", + "readOnly": false }, "data": { "title": "data", - "properties": { - "resource-assignment-properties": { - "title": "resource-assignment-properties", - "type": "object", - "properties": { - "request-id": { - "title": "request-id", - "type": "string" - }, - "service-instance-id": { - "title": "service-instance-id", - "type": "string" - }, - "vnf-id": { - "title": "vnf-id", - "type": "string" - }, - "action-name": { - "title": "action-name", - "type": "string" - }, - "scope-type": { - "title": "scope-type", - "type": "string" - }, - "hostname": { - "title": "hostname", - "type": "string" - }, - "vnf_name": { - "title": "vnf_name", - "type": "string" - } - } - } - } + "type": "string", + "format": "textarea", + "default": "{\"request-id\":\"\",\"service-instance-id\":\"\",\"vnf-id\":\"\",\"action-name\":\"\",\"scope-type\":\"\",\"hostname\":\"\",\"vnf_name\":\"\"}" } } }, @@ -381,57 +221,25 @@ "title": "artifact name", "type": "string", "default": "baseconfiguration", - "readOnly": "True" + "readOnly": true }, "artifact_version": { "title": "artifact version", "type": "string", "default": "1.0.0", - "readOnly": "True" + "readOnly": true }, "mode": { "title": "mode", "type": "string", - "default": "async" + "default": "async", + "readOnly": false }, "data": { "title": "data", - "properties": { - "resource-assignment-properties": { - "title": "resource-assignment-properties", - "type": "object", - "properties": { - "request-id": { - "title": "request-id", - "type": "string" - }, - "service-instance-id": { - "title": "service-instance-id", - "type": "string" - }, - "vnf-id": { - "title": "vnf-id", - "type": "string" - }, - "action-name": { - "title": "action-name", - "type": "string" - }, - "scope-type": { - "title": "scope-type", - "type": "string" - }, - "hostname": { - "title": "hostname", - "type": "string" - }, - "vnf_name": { - "title": "vnf_name", - "type": "string" - } - } - } - } + "type": "string", + "format": "textarea", + "default": "{\"request-id\":\"\",\"service-instance-id\":\"\",\"vnf-id\":\"\",\"action-name\":\"\",\"scope-type\":\"\",\"hostname\":\"\",\"vnf_name\":\"\"}" } } } diff --git a/src/test/resources/tosca/operational-policy-cds-payload-with-list.json b/src/test/resources/tosca/operational-policy-cds-payload-with-list.json index 24269ec7..13b468ea 100644 --- a/src/test/resources/tosca/operational-policy-cds-payload-with-list.json +++ b/src/test/resources/tosca/operational-policy-cds-payload-with-list.json @@ -258,7 +258,7 @@ } }, "payload": { - "title": "Payload (YAML)", + "title": "Payload", "type": "object", "properties": { "artifact_name": { @@ -297,15 +297,9 @@ } } }, - "resource-assignment-properties": { - "title": "resource-assignment-properties", - "type": "object", - "properties": { - "private1-prefix-id": { - "title": "private1-prefix-id", - "type": "string" - } - } + "private1-prefix-id": { + "title": "private1-prefix-id", + "type": "string" } } } diff --git a/src/test/resources/tosca/operational-policy-json-schema.json b/src/test/resources/tosca/operational-policy-json-schema.json index 87457f1d..9dee089e 100644 --- a/src/test/resources/tosca/operational-policy-json-schema.json +++ b/src/test/resources/tosca/operational-policy-json-schema.json @@ -258,7 +258,7 @@ } }, "payload": { - "title": "Payload (YAML)", + "title": "Payload", "type": "object", "properties": { "artifact_name": { @@ -281,39 +281,33 @@ "data": { "title": "data", "properties": { - "resource-assignment-properties": { - "title": "resource-assignment-properties", - "type": "object", - "properties": { - "request-id": { - "title": "request-id", - "type": "string" - }, - "service-instance-id": { - "title": "service-instance-id", - "type": "string" - }, - "vnf-id": { - "title": "vnf-id", - "type": "string" - }, - "action-name": { - "title": "action-name", - "type": "string" - }, - "scope-type": { - "title": "scope-type", - "type": "string" - }, - "hostname": { - "title": "hostname", - "type": "string" - }, - "vnf_name": { - "title": "vnf_name", - "type": "string" - } - } + "request-id": { + "title": "request-id", + "type": "string" + }, + "service-instance-id": { + "title": "service-instance-id", + "type": "string" + }, + "vnf-id": { + "title": "vnf-id", + "type": "string" + }, + "action-name": { + "title": "action-name", + "type": "string" + }, + "scope-type": { + "title": "scope-type", + "type": "string" + }, + "hostname": { + "title": "hostname", + "type": "string" + }, + "vnf_name": { + "title": "vnf_name", + "type": "string" } } } @@ -334,7 +328,7 @@ } }, "payload": { - "title": "Payload (YAML)", + "title": "Payload", "type": "object", "properties": { "artifact_name": { @@ -357,39 +351,33 @@ "data": { "title": "data", "properties": { - "resource-assignment-properties": { - "title": "resource-assignment-properties", - "type": "object", - "properties": { - "request-id": { - "title": "request-id", - "type": "string" - }, - "service-instance-id": { - "title": "service-instance-id", - "type": "string" - }, - "vnf-id": { - "title": "vnf-id", - "type": "string" - }, - "action-name": { - "title": "action-name", - "type": "string" - }, - "scope-type": { - "title": "scope-type", - "type": "string" - }, - "hostname": { - "title": "hostname", - "type": "string" - }, - "vnf_name": { - "title": "vnf_name", - "type": "string" - } - } + "request-id": { + "title": "request-id", + "type": "string" + }, + "service-instance-id": { + "title": "service-instance-id", + "type": "string" + }, + "vnf-id": { + "title": "vnf-id", + "type": "string" + }, + "action-name": { + "title": "action-name", + "type": "string" + }, + "scope-type": { + "title": "scope-type", + "type": "string" + }, + "hostname": { + "title": "hostname", + "type": "string" + }, + "vnf_name": { + "title": "vnf_name", + "type": "string" } } } @@ -410,7 +398,7 @@ } }, "payload": { - "title": "Payload (YAML)", + "title": "Payload", "type": "object", "properties": { "artifact_name": { @@ -433,39 +421,33 @@ "data": { "title": "data", "properties": { - "resource-assignment-properties": { - "title": "resource-assignment-properties", - "type": "object", - "properties": { - "request-id": { - "title": "request-id", - "type": "string" - }, - "service-instance-id": { - "title": "service-instance-id", - "type": "string" - }, - "vnf-id": { - "title": "vnf-id", - "type": "string" - }, - "action-name": { - "title": "action-name", - "type": "string" - }, - "scope-type": { - "title": "scope-type", - "type": "string" - }, - "hostname": { - "title": "hostname", - "type": "string" - }, - "vnf_name": { - "title": "vnf_name", - "type": "string" - } - } + "request-id": { + "title": "request-id", + "type": "string" + }, + "service-instance-id": { + "title": "service-instance-id", + "type": "string" + }, + "vnf-id": { + "title": "vnf-id", + "type": "string" + }, + "action-name": { + "title": "action-name", + "type": "string" + }, + "scope-type": { + "title": "scope-type", + "type": "string" + }, + "hostname": { + "title": "hostname", + "type": "string" + }, + "vnf_name": { + "title": "vnf_name", + "type": "string" } } } @@ -486,7 +468,7 @@ } }, "payload": { - "title": "Payload (YAML)", + "title": "Payload", "type": "object", "properties": { "artifact_name": { @@ -509,39 +491,33 @@ "data": { "title": "data", "properties": { - "resource-assignment-properties": { - "title": "resource-assignment-properties", - "type": "object", - "properties": { - "request-id": { - "title": "request-id", - "type": "string" - }, - "service-instance-id": { - "title": "service-instance-id", - "type": "string" - }, - "vnf-id": { - "title": "vnf-id", - "type": "string" - }, - "action-name": { - "title": "action-name", - "type": "string" - }, - "scope-type": { - "title": "scope-type", - "type": "string" - }, - "hostname": { - "title": "hostname", - "type": "string" - }, - "vnf_name": { - "title": "vnf_name", - "type": "string" - } - } + "request-id": { + "title": "request-id", + "type": "string" + }, + "service-instance-id": { + "title": "service-instance-id", + "type": "string" + }, + "vnf-id": { + "title": "vnf-id", + "type": "string" + }, + "action-name": { + "title": "action-name", + "type": "string" + }, + "scope-type": { + "title": "scope-type", + "type": "string" + }, + "hostname": { + "title": "hostname", + "type": "string" + }, + "vnf_name": { + "title": "vnf_name", + "type": "string" } } } @@ -562,7 +538,7 @@ } }, "payload": { - "title": "Payload (YAML)", + "title": "Payload", "type": "object", "properties": { "artifact_name": { @@ -585,39 +561,33 @@ "data": { "title": "data", "properties": { - "resource-assignment-properties": { - "title": "resource-assignment-properties", - "type": "object", - "properties": { - "request-id": { - "title": "request-id", - "type": "string" - }, - "service-instance-id": { - "title": "service-instance-id", - "type": "string" - }, - "vnf-id": { - "title": "vnf-id", - "type": "string" - }, - "action-name": { - "title": "action-name", - "type": "string" - }, - "scope-type": { - "title": "scope-type", - "type": "string" - }, - "hostname": { - "title": "hostname", - "type": "string" - }, - "vnf_name": { - "title": "vnf_name", - "type": "string" - } - } + "request-id": { + "title": "request-id", + "type": "string" + }, + "service-instance-id": { + "title": "service-instance-id", + "type": "string" + }, + "vnf-id": { + "title": "vnf-id", + "type": "string" + }, + "action-name": { + "title": "action-name", + "type": "string" + }, + "scope-type": { + "title": "scope-type", + "type": "string" + }, + "hostname": { + "title": "hostname", + "type": "string" + }, + "vnf_name": { + "title": "vnf_name", + "type": "string" } } } @@ -638,7 +608,7 @@ } }, "payload": { - "title": "Payload (YAML)", + "title": "Payload", "type": "object", "properties": { "artifact_name": { @@ -661,39 +631,33 @@ "data": { "title": "data", "properties": { - "resource-assignment-properties": { - "title": "resource-assignment-properties", - "type": "object", - "properties": { - "request-id": { - "title": "request-id", - "type": "string" - }, - "service-instance-id": { - "title": "service-instance-id", - "type": "string" - }, - "vnf-id": { - "title": "vnf-id", - "type": "string" - }, - "action-name": { - "title": "action-name", - "type": "string" - }, - "scope-type": { - "title": "scope-type", - "type": "string" - }, - "hostname": { - "title": "hostname", - "type": "string" - }, - "vnf_name": { - "title": "vnf_name", - "type": "string" - } - } + "request-id": { + "title": "request-id", + "type": "string" + }, + "service-instance-id": { + "title": "service-instance-id", + "type": "string" + }, + "vnf-id": { + "title": "vnf-id", + "type": "string" + }, + "action-name": { + "title": "action-name", + "type": "string" + }, + "scope-type": { + "title": "scope-type", + "type": "string" + }, + "hostname": { + "title": "hostname", + "type": "string" + }, + "vnf_name": { + "title": "vnf_name", + "type": "string" } } } diff --git a/src/test/resources/tosca/operational-policy-payload-legacy.yaml b/src/test/resources/tosca/operational-policy-payload-legacy.yaml index 72bbf9ba..1108ec8b 100644 --- a/src/test/resources/tosca/operational-policy-payload-legacy.yaml +++ b/src/test/resources/tosca/operational-policy-payload-legacy.yaml @@ -50,15 +50,7 @@ policies: payload: artifact_name: baseconfiguration artifact_version: 1.0.0 - data: - resource-assignment-properties: - action-name: action-name - hostname: hostname - request-id: request-id - scope-type: scope-type - service-instance-id: service-instance-id - vnf-id: vnf-id - vnf_name: vnf_name + data: '{"resource-assignment-properties":{"request-id":"request-id","service-instance-id":"service-instance-id","vnf-id":"vnf-id","action-name":"action-name","scope-type":"scope-type","hostname":"hostname","vnf_name":"vnf_name"}}' mode: async recipe: resource-assignment retry: 0 @@ -72,3 +64,27 @@ policies: resourceID: Vloadbalancerms..vpkg..module-1 type: VFMODULE timeout: 0 +- actor: CDS + failure: final_failure + failure_exception: final_failure_exception + failure_guard: final_failure_guard + failure_retries: final_failure_retries + failure_timeout: final_failure_timeout + id: policy4 + payload: + artifact_name: baseconfiguration + artifact_version: 1.0.0 + data: '{}' + mode: async + recipe: modify-config + retry: 0 + success: final_success + target: + modelCustomizationId: 1bffdc31-a37d-4dee-b65c-dde623a76e52 + modelInvariantId: ca052563-eb92-4b5b-ad41-9111768ce043 + modelName: Vloadbalancerms..vpkg..module-1 + modelVersion: 1 + modelVersionId: 1e725ccc-b823-4f67-82b9-4f4367070dbc + resourceID: Vloadbalancerms..vpkg..module-1 + type: VFMODULE + timeout: 0 diff --git a/src/test/resources/tosca/operational-policy-payload.json b/src/test/resources/tosca/operational-policy-payload.json index e53950af..0bb5582e 100644 --- a/src/test/resources/tosca/operational-policy-payload.json +++ b/src/test/resources/tosca/operational-policy-payload.json @@ -1,4 +1,4 @@ { "policy-id": "testPolicy.legacy", - "content": "controlLoop%3A%0A++abatement%3A+true%0A++controlLoopName%3A+LOOP_ASJOy_v1_0_ResourceInstanceName1_tca%0A++timeout%3A+0%0A++trigger_policy%3A+policy1%0Apolicies%3A%0A-+actor%3A+APPC%0A++failure%3A+policy2%0A++failure_exception%3A+final_failure_exception%0A++failure_guard%3A+final_failure_guard%0A++failure_retries%3A+final_failure_retries%0A++failure_timeout%3A+final_failure_timeout%0A++id%3A+policy1%0A++payload%3A%0A++++configurationParameters%3A+%27%5B%7B%22ip-addr%22%3A%22%24.vf-module-topology.vf-module-parameters.param%5B10%5D.value%22%2C%22oam-ip-addr%22%3A%22%24.vf-module-topology.vf-module-parameters.param%5B15%5D.value%22%2C%22enabled%22%3A%22%24.vf-module-topology.vf-module-parameters.param%5B22%5D.value%22%7D%5D%27%0A++++requestParameters%3A+%27%7B%22usePreload%22%3Atrue%2C%22userParams%22%3A%5B%5D%7D%27%0A++recipe%3A+Restart%0A++retry%3A+0%0A++success%3A+final_success%0A++target%3A%0A++++resourceID%3A+vLoadBalancerMS%0A++++type%3A+VNF%0A++timeout%3A+0%0A-+actor%3A+SO%0A++failure%3A+final_failure%0A++failure_exception%3A+final_failure_exception%0A++failure_guard%3A+final_failure_guard%0A++failure_retries%3A+final_failure_retries%0A++failure_timeout%3A+final_failure_timeout%0A++id%3A+policy2%0A++recipe%3A+VF+Module+Create%0A++retry%3A+0%0A++success%3A+final_success%0A++target%3A%0A++++modelCustomizationId%3A+1bffdc31-a37d-4dee-b65c-dde623a76e52%0A++++modelInvariantId%3A+ca052563-eb92-4b5b-ad41-9111768ce043%0A++++modelName%3A+Vloadbalancerms..vpkg..module-1%0A++++modelVersion%3A+1%0A++++modelVersionId%3A+1e725ccc-b823-4f67-82b9-4f4367070dbc%0A++++resourceID%3A+Vloadbalancerms..vpkg..module-1%0A++++type%3A+VFMODULE%0A++timeout%3A+0%0A-+actor%3A+CDS%0A++failure%3A+final_failure%0A++failure_exception%3A+final_failure_exception%0A++failure_guard%3A+final_failure_guard%0A++failure_retries%3A+final_failure_retries%0A++failure_timeout%3A+final_failure_timeout%0A++id%3A+policy3%0A++payload%3A%0A++++artifact_name%3A+baseconfiguration%0A++++artifact_version%3A+1.0.0%0A++++data%3A%0A++++++resource-assignment-properties%3A%0A++++++++action-name%3A+action-name%0A++++++++hostname%3A+hostname%0A++++++++request-id%3A+request-id%0A++++++++scope-type%3A+scope-type%0A++++++++service-instance-id%3A+service-instance-id%0A++++++++vnf-id%3A+vnf-id%0A++++++++vnf_name%3A+vnf_name%0A++++mode%3A+async%0A++recipe%3A+resource-assignment%0A++retry%3A+0%0A++success%3A+final_success%0A++target%3A%0A++++modelCustomizationId%3A+1bffdc31-a37d-4dee-b65c-dde623a76e52%0A++++modelInvariantId%3A+ca052563-eb92-4b5b-ad41-9111768ce043%0A++++modelName%3A+Vloadbalancerms..vpkg..module-1%0A++++modelVersion%3A+1%0A++++modelVersionId%3A+1e725ccc-b823-4f67-82b9-4f4367070dbc%0A++++resourceID%3A+Vloadbalancerms..vpkg..module-1%0A++++type%3A+VFMODULE%0A++timeout%3A+0%0A" + "content": "controlLoop%3A%0A++abatement%3A+true%0A++controlLoopName%3A+LOOP_ASJOy_v1_0_ResourceInstanceName1_tca%0A++timeout%3A+0%0A++trigger_policy%3A+policy1%0Apolicies%3A%0A-+actor%3A+APPC%0A++failure%3A+policy2%0A++failure_exception%3A+final_failure_exception%0A++failure_guard%3A+final_failure_guard%0A++failure_retries%3A+final_failure_retries%0A++failure_timeout%3A+final_failure_timeout%0A++id%3A+policy1%0A++payload%3A%0A++++configurationParameters%3A+%27%5B%7B%22ip-addr%22%3A%22%24.vf-module-topology.vf-module-parameters.param%5B10%5D.value%22%2C%22oam-ip-addr%22%3A%22%24.vf-module-topology.vf-module-parameters.param%5B15%5D.value%22%2C%22enabled%22%3A%22%24.vf-module-topology.vf-module-parameters.param%5B22%5D.value%22%7D%5D%27%0A++++requestParameters%3A+%27%7B%22usePreload%22%3Atrue%2C%22userParams%22%3A%5B%5D%7D%27%0A++recipe%3A+Restart%0A++retry%3A+0%0A++success%3A+final_success%0A++target%3A%0A++++resourceID%3A+vLoadBalancerMS%0A++++type%3A+VNF%0A++timeout%3A+0%0A-+actor%3A+SO%0A++failure%3A+final_failure%0A++failure_exception%3A+final_failure_exception%0A++failure_guard%3A+final_failure_guard%0A++failure_retries%3A+final_failure_retries%0A++failure_timeout%3A+final_failure_timeout%0A++id%3A+policy2%0A++recipe%3A+VF+Module+Create%0A++retry%3A+0%0A++success%3A+final_success%0A++target%3A%0A++++modelCustomizationId%3A+1bffdc31-a37d-4dee-b65c-dde623a76e52%0A++++modelInvariantId%3A+ca052563-eb92-4b5b-ad41-9111768ce043%0A++++modelName%3A+Vloadbalancerms..vpkg..module-1%0A++++modelVersion%3A+1%0A++++modelVersionId%3A+1e725ccc-b823-4f67-82b9-4f4367070dbc%0A++++resourceID%3A+Vloadbalancerms..vpkg..module-1%0A++++type%3A+VFMODULE%0A++timeout%3A+0%0A-+actor%3A+CDS%0A++failure%3A+final_failure%0A++failure_exception%3A+final_failure_exception%0A++failure_guard%3A+final_failure_guard%0A++failure_retries%3A+final_failure_retries%0A++failure_timeout%3A+final_failure_timeout%0A++id%3A+policy3%0A++payload%3A%0A++++artifact_name%3A+baseconfiguration%0A++++artifact_version%3A+1.0.0%0A++++data%3A+%27%7B%22resource-assignment-properties%22%3A%7B%22request-id%22%3A%22request-id%22%2C%22service-instance-id%22%3A%22service-instance-id%22%2C%22vnf-id%22%3A%22vnf-id%22%2C%22action-name%22%3A%22action-name%22%2C%22scope-type%22%3A%22scope-type%22%2C%22hostname%22%3A%22hostname%22%2C%22vnf_name%22%3A%22vnf_name%22%7D%7D%27%0A++++mode%3A+async%0A++recipe%3A+resource-assignment%0A++retry%3A+0%0A++success%3A+final_success%0A++target%3A%0A++++modelCustomizationId%3A+1bffdc31-a37d-4dee-b65c-dde623a76e52%0A++++modelInvariantId%3A+ca052563-eb92-4b5b-ad41-9111768ce043%0A++++modelName%3A+Vloadbalancerms..vpkg..module-1%0A++++modelVersion%3A+1%0A++++modelVersionId%3A+1e725ccc-b823-4f67-82b9-4f4367070dbc%0A++++resourceID%3A+Vloadbalancerms..vpkg..module-1%0A++++type%3A+VFMODULE%0A++timeout%3A+0%0A-+actor%3A+CDS%0A++failure%3A+final_failure%0A++failure_exception%3A+final_failure_exception%0A++failure_guard%3A+final_failure_guard%0A++failure_retries%3A+final_failure_retries%0A++failure_timeout%3A+final_failure_timeout%0A++id%3A+policy4%0A++payload%3A%0A++++artifact_name%3A+baseconfiguration%0A++++artifact_version%3A+1.0.0%0A++++data%3A+%27%7B%7D%27%0A++++mode%3A+async%0A++recipe%3A+modify-config%0A++retry%3A+0%0A++success%3A+final_success%0A++target%3A%0A++++modelCustomizationId%3A+1bffdc31-a37d-4dee-b65c-dde623a76e52%0A++++modelInvariantId%3A+ca052563-eb92-4b5b-ad41-9111768ce043%0A++++modelName%3A+Vloadbalancerms..vpkg..module-1%0A++++modelVersion%3A+1%0A++++modelVersionId%3A+1e725ccc-b823-4f67-82b9-4f4367070dbc%0A++++resourceID%3A+Vloadbalancerms..vpkg..module-1%0A++++type%3A+VFMODULE%0A++timeout%3A+0%0A" } \ No newline at end of file diff --git a/src/test/resources/tosca/operational-policy-payload.yaml b/src/test/resources/tosca/operational-policy-payload.yaml index aaa96276..a756b57d 100644 --- a/src/test/resources/tosca/operational-policy-payload.yaml +++ b/src/test/resources/tosca/operational-policy-payload.yaml @@ -73,12 +73,28 @@ topology_template: artifact_name: baseconfiguration artifact_version: 1.0.0 mode: async - data: - resource-assignment-properties: - request-id: request-id - service-instance-id: service-instance-id - vnf-id: vnf-id - action-name: action-name - scope-type: scope-type - hostname: hostname - vnf_name: vnf_name + data: '{"resource-assignment-properties":{"request-id":"request-id","service-instance-id":"service-instance-id","vnf-id":"vnf-id","action-name":"action-name","scope-type":"scope-type","hostname":"hostname","vnf_name":"vnf_name"}}' + - id: policy4 + retry: '0' + timeout: '0' + success: final_success + failure: final_failure + failure_timeout: final_failure_timeout + failure_retries: final_failure_retries + failure_exception: final_failure_exception + failure_guard: final_failure_guard + target: + type: VFMODULE + resourceID: Vloadbalancerms..vpkg..module-1 + modelInvariantId: ca052563-eb92-4b5b-ad41-9111768ce043 + modelVersionId: 1e725ccc-b823-4f67-82b9-4f4367070dbc + modelName: Vloadbalancerms..vpkg..module-1 + modelVersion: '1' + modelCustomizationId: 1bffdc31-a37d-4dee-b65c-dde623a76e52 + actor: CDS + recipe: modify-config + payload: + artifact_name: baseconfiguration + artifact_version: 1.0.0 + mode: async + data: '{}' diff --git a/src/test/resources/tosca/operational-policy-properties.json b/src/test/resources/tosca/operational-policy-properties.json index 2777a158..aaf9dc37 100644 --- a/src/test/resources/tosca/operational-policy-properties.json +++ b/src/test/resources/tosca/operational-policy-properties.json @@ -93,6 +93,39 @@ "modelVersion": "1", "modelCustomizationId": "1bffdc31-a37d-4dee-b65c-dde623a76e52" } + }, + { + "actor": { + "actor": "CDS", + "recipe": { + "recipe": "modify-config", + "payload": { + "artifact_name": "baseconfiguration", + "artifact_version": "1.0.0", + "mode": "async", + "data": { + } + } + } + }, + "id": "policy4", + "retry": "0", + "timeout": "0", + "success": "final_success", + "failure": "final_failure", + "failure_timeout": "final_failure_timeout", + "failure_retries": "final_failure_retries", + "failure_exception": "final_failure_exception", + "failure_guard": "final_failure_guard", + "target": { + "type": "VFMODULE", + "resourceID": "Vloadbalancerms..vpkg..module-1", + "modelInvariantId": "ca052563-eb92-4b5b-ad41-9111768ce043", + "modelVersionId": "1e725ccc-b823-4f67-82b9-4f4367070dbc", + "modelName": "Vloadbalancerms..vpkg..module-1", + "modelVersion": "1", + "modelCustomizationId": "1bffdc31-a37d-4dee-b65c-dde623a76e52" + } } ] },