Payload is expected as string in operational policy 42/106242/2
authorVidyashree-Huawei <vidyashree.rama@huawei.com>
Mon, 20 Apr 2020 06:48:50 +0000 (12:18 +0530)
committerVidyashree-Huawei <vidyashree.rama@huawei.com>
Tue, 21 Apr 2020 14:58:13 +0000 (20:28 +0530)
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 <vidyashree.rama@huawei.com>
src/main/java/org/onap/clamp/clds/tosca/update/execution/cds/ToscaMetadataCdsProcess.java
src/main/java/org/onap/clamp/policy/operational/LegacyOperationalPolicy.java
src/main/java/org/onap/clamp/policy/operational/OperationalPolicyRepresentationBuilder.java
src/test/resources/tosca/new-converter/tosca_apex_with_metadata.json
src/test/resources/tosca/operational-policy-cds-payload-with-list.json
src/test/resources/tosca/operational-policy-json-schema.json
src/test/resources/tosca/operational-policy-payload-legacy.yaml
src/test/resources/tosca/operational-policy-payload.json
src/test/resources/tosca/operational-policy-payload.yaml
src/test/resources/tosca/operational-policy-properties.json

index c156414..c92cad1 100644 (file)
@@ -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;
     }
 }
index 3765277..a7a344d 100644 (file)
@@ -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 {
index 4e362d8..57d13ef 100644 (file)
@@ -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;
+    }
 }
index 793ba5e..ad98529 100644 (file)
                         "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\":\"\"}"
                       }
                     }
                   },
                         "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\":\"\"}"
                       }
                     }
                   },
                         "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\":\"\"}"
                       }
                     }
                   },
                         "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\":\"\"}"
                       }
                     }
                   },
                         "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\":\"\"}"
                       }
                     }
                   },
                         "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\":\"\"}"
                       }
                     }
                   }
index 24269ec..13b468e 100644 (file)
                                 }
                               },
                               "payload": {
-                                "title": "Payload (YAML)",
+                                "title": "Payload",
                                 "type": "object",
                                 "properties": {
                                   "artifact_name": {
                                           }
                                         }
                                       },
-                                      "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"
                                       }
                                     }
                                   }
index 87457f1..9dee089 100644 (file)
                                 }
                               },
                               "payload": {
-                                "title": "Payload (YAML)",
+                                "title": "Payload",
                                 "type": "object",
                                 "properties": {
                                   "artifact_name": {
                                   "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"
                                       }
                                     }
                                   }
                                 }
                               },
                               "payload": {
-                                "title": "Payload (YAML)",
+                                "title": "Payload",
                                 "type": "object",
                                 "properties": {
                                   "artifact_name": {
                                   "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"
                                       }
                                     }
                                   }
                                 }
                               },
                               "payload": {
-                                "title": "Payload (YAML)",
+                                "title": "Payload",
                                 "type": "object",
                                 "properties": {
                                   "artifact_name": {
                                   "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"
                                       }
                                     }
                                   }
                                 }
                               },
                               "payload": {
-                                "title": "Payload (YAML)",
+                                "title": "Payload",
                                 "type": "object",
                                 "properties": {
                                   "artifact_name": {
                                   "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"
                                       }
                                     }
                                   }
                                 }
                               },
                               "payload": {
-                                "title": "Payload (YAML)",
+                                "title": "Payload",
                                 "type": "object",
                                 "properties": {
                                   "artifact_name": {
                                   "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"
                                       }
                                     }
                                   }
                                 }
                               },
                               "payload": {
-                                "title": "Payload (YAML)",
+                                "title": "Payload",
                                 "type": "object",
                                 "properties": {
                                   "artifact_name": {
                                   "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"
                                       }
                                     }
                                   }
index 72bbf9b..1108ec8 100644 (file)
@@ -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
index e53950a..0bb5582 100644 (file)
@@ -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
index aaa9627..a756b57 100644 (file)
@@ -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: '{}'
index 2777a15..aaf9dc3 100644 (file)
           "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"
+        }
       }
     ]
   },