aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSébastien Determe <sebastien.determe@intl.att.com>2020-04-21 15:20:04 +0000
committerGerrit Code Review <gerrit@onap.org>2020-04-21 15:20:04 +0000
commit286492027e88f2463d6b91e670e6f5f3712888ab (patch)
tree44049df0c4f98eb7f1ba606601d9e7c4b8016c96
parent17edc3c718345d4e2e1b045ccec776dab300abbb (diff)
parent472dc126eb9f30c09df344357db2c62f20d0b92c (diff)
Merge "Payload is expected as string in operational policy"
-rw-r--r--src/main/java/org/onap/clamp/clds/tosca/update/execution/cds/ToscaMetadataCdsProcess.java71
-rw-r--r--src/main/java/org/onap/clamp/policy/operational/LegacyOperationalPolicy.java5
-rw-r--r--src/main/java/org/onap/clamp/policy/operational/OperationalPolicyRepresentationBuilder.java88
-rw-r--r--src/test/resources/tosca/new-converter/tosca_apex_with_metadata.json276
-rw-r--r--src/test/resources/tosca/operational-policy-cds-payload-with-list.json14
-rw-r--r--src/test/resources/tosca/operational-policy-json-schema.json372
-rw-r--r--src/test/resources/tosca/operational-policy-payload-legacy.yaml34
-rw-r--r--src/test/resources/tosca/operational-policy-payload.json2
-rw-r--r--src/test/resources/tosca/operational-policy-payload.yaml34
-rw-r--r--src/test/resources/tosca/operational-policy-properties.json33
10 files changed, 405 insertions, 524 deletions
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<Map.Entry<String, JsonElement>> entrySet = inputs.entrySet();
for (Map.Entry<String, JsonElement> 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<Map.Entry<String, JsonElement>> entrySet = inputs.entrySet();
+ for (Map.Entry<String, JsonElement> 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"
+ }
}
]
},