CLAMP should not display all CDS workflow properties
CLAMP should not display all CDS workflow properties
Issue-ID: CLAMP-856
Signed-off-by: root1 <vidyashree.rama@huawei.com>
Change-Id: I98fc46c9c9ba574a3606740921d74743cb6f38ea
diff --git a/src/main/java/org/onap/clamp/clds/client/CdsServices.java b/src/main/java/org/onap/clamp/clds/client/CdsServices.java
index fa15e27..fd3b353 100644
--- a/src/main/java/org/onap/clamp/clds/client/CdsServices.java
+++ b/src/main/java/org/onap/clamp/clds/client/CdsServices.java
@@ -22,6 +22,8 @@
package org.onap.clamp.clds.client;
+import static java.lang.Boolean.parseBoolean;
+
import com.att.eelf.configuration.EELFLogger;
import com.att.eelf.configuration.EELFManager;
import com.google.gson.JsonElement;
@@ -52,6 +54,10 @@
protected static final EELFLogger logger = EELFManager.getInstance().getLogger(CdsServices.class);
+ private static final String TYPE = "type";
+ private static final String PROPERTIES = "properties";
+ private static final String LIST = "list";
+
/**
* Constructor.
*/
@@ -129,55 +135,80 @@
JsonObject dataTypes = root.getAsJsonObject("dataTypes");
JsonObject workFlowProperties = new JsonObject();
- workFlowProperties.add("inputs", getInputProperties(inputs, dataTypes));
+ workFlowProperties.add("inputs", getInputProperties(inputs, dataTypes, new JsonObject()));
return workFlowProperties;
}
- private JsonObject getInputProperties(JsonObject inputs, JsonObject dataTypes) {
- JsonObject inputObject = new JsonObject();
+ private JsonObject getInputProperties(JsonObject inputs, JsonObject dataTypes,
+ JsonObject inputObject) {
+ if (inputs == null) {
+ return inputObject;
+ }
+
for (Map.Entry<String, JsonElement> entry : inputs.entrySet()) {
String key = entry.getKey();
JsonObject inputProperty = inputs.getAsJsonObject(key);
- String type = inputProperty.get("type").getAsString();
+ String type = inputProperty.get(TYPE).getAsString();
if (isComplexType(type, dataTypes)) {
inputObject.add(key, handleComplexType(type, dataTypes));
- } else if (type.equalsIgnoreCase("list")) {
- inputObject.add(key, handleListType(key, inputProperty,
- dataTypes));
- } else {
+ } else if (LIST.equalsIgnoreCase(type)) {
+ handleListType(key, inputProperty, dataTypes, inputObject);
+ } else if (isInputParam(inputProperty)) {
inputObject.add(key, entry.getValue());
}
}
return inputObject;
}
- private JsonObject handleListType(String propertyName,
+ private void handleListType(String propertyName,
JsonObject inputProperty,
- JsonObject dataTypes) {
- if (inputProperty.get("entry_schema") != null) {
- String type = inputProperty.get("entry_schema").getAsJsonObject().get(
- "type").getAsString();
- if (dataTypes.get(type) != null) {
- JsonObject jsonObject = new JsonObject();
- jsonObject.addProperty("type", "list");
- jsonObject.add("properties", handleComplexType(type, dataTypes));
- return jsonObject;
- } else {
- return inputProperty;
- }
+ JsonObject dataTypes,
+ JsonObject inputObject) {
+ if (inputProperty.get("entry_schema") == null) {
+ throw new CdsParametersException("Entry schema is null for " + propertyName);
}
- throw new CdsParametersException("Entry schema is null for " + propertyName);
+
+ String type = inputProperty.get("entry_schema").getAsJsonObject().get(
+ TYPE).getAsString();
+ if (dataTypes.get(type) != null) {
+ JsonObject jsonObject = new JsonObject();
+ jsonObject.addProperty(TYPE, LIST);
+ jsonObject.add(PROPERTIES, getPropertiesObject(type, dataTypes));
+ inputObject.add(propertyName, jsonObject);
+ } else if (isInputParam(inputProperty)) {
+ inputObject.add(propertyName, inputProperty);
+ }
}
private JsonObject handleComplexType(String key, JsonObject dataTypes) {
- JsonObject properties = dataTypes.get(key).getAsJsonObject().get("properties").getAsJsonObject();
- return getInputProperties(properties, dataTypes);
+ JsonObject jsonObject = new JsonObject();
+ jsonObject.addProperty(TYPE, "object");
+ jsonObject.add(PROPERTIES, getPropertiesObject(key, dataTypes));
+ return jsonObject;
+ }
+
+ private JsonObject getPropertiesObject(String key, JsonObject dataTypes) {
+ JsonObject properties = dataTypes.get(key).getAsJsonObject().get(PROPERTIES).getAsJsonObject();
+ JsonObject object = new JsonObject();
+ getInputProperties(properties, dataTypes, object);
+ return object;
}
private boolean isComplexType(String type, JsonObject dataTypes) {
+ if (dataTypes == null) {
+ return false;
+ }
return dataTypes.get(type) != null;
}
+ private boolean isInputParam(JsonObject inputProperty) {
+ JsonElement inputParam = inputProperty.get("input-param");
+ if (inputParam == null) {
+ return false;
+ }
+ return parseBoolean(inputParam.getAsString());
+ }
+
/**
* Creates payload to query CDS to get workflow input properties.
*
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 94a477f..39fa25a 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
@@ -24,6 +24,7 @@
package org.onap.clamp.clds.tosca.update.execution.cds;
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;
@@ -108,7 +109,8 @@
obj.addProperty("title", workflowsEntry.getKey());
obj.add("properties",
createInputPropertiesForPayload(workflowsEntry.getValue().getAsJsonObject(),
- controllerProperties));
+ controllerProperties,
+ workflowsEntry.getKey()));
schemaAnyOf.add(obj);
}
}
@@ -150,10 +152,12 @@
* @param workFlow cds work flows to update payload
* @param controllerProperties cds properties to get blueprint name and
* version
+ * @param workFlowName work flow name
* @return returns the properties of payload
*/
public static JsonObject createInputPropertiesForPayload(JsonObject workFlow,
- JsonObject controllerProperties) {
+ JsonObject controllerProperties,
+ String workFlowName) {
String artifactName = controllerProperties.get("sdnc_model_name").getAsString();
String artifactVersion = controllerProperties.get("sdnc_model_version").getAsString();
JsonObject inputs = workFlow.getAsJsonObject("inputs");
@@ -164,32 +168,53 @@
"artifact version", artifactVersion, true));
jsonObject.add("mode", createAnyOfJsonProperty(
"mode", "async", false));
- jsonObject.add("data", createDataProperty(inputs));
+ jsonObject.add("data", createDataProperty(inputs, workFlowName));
return jsonObject;
}
- private static JsonObject createDataProperty(JsonObject inputs) {
+ private static JsonObject createDataProperty(JsonObject inputs, String workFlowName) {
JsonObject data = new JsonObject();
data.addProperty("title", "data");
data.addProperty("type", "string");
data.addProperty("format", "textarea");
JsonObject defaultValue = new JsonObject();
- addDefaultValueForData(inputs, defaultValue);
+ addDefaultValueForData(inputs, defaultValue, workFlowName);
data.addProperty("default", defaultValue.toString());
return data;
}
private static void addDefaultValueForData(JsonObject inputs,
- JsonObject defaultValue) {
+ JsonObject defaultValue,
+ String workFlowName) {
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) {
- addDefaultValueForData(entry.getValue().getAsJsonObject(), defaultValue);
+ if (key.equalsIgnoreCase(workFlowName + "-properties")) {
+ addDefaultValueForData(entry.getValue().getAsJsonObject().get("properties")
+ .getAsJsonObject(), defaultValue, workFlowName);
+ } else if ("object".equalsIgnoreCase(inputProperty.get(TYPE).getAsString())) {
+ JsonObject object = new JsonObject();
+ addDefaultValueForData(entry.getValue().getAsJsonObject().get("properties")
+ .getAsJsonObject(), object, workFlowName);
+ defaultValue.add(entry.getKey(), object);
+ } else if (TYPE_LIST.equalsIgnoreCase(inputProperty.get(TYPE).getAsString())) {
+ defaultValue.add(entry.getKey(), handleListType(entry.getValue().getAsJsonObject(), workFlowName));
} else {
defaultValue.addProperty(entry.getKey(), "");
}
}
}
+
+ private static JsonArray handleListType(JsonObject inputs,
+ String workFlowName) {
+
+ JsonObject object = new JsonObject();
+ if (inputs.get("properties") != null) {
+ addDefaultValueForData(inputs.get("properties").getAsJsonObject(), object, workFlowName);
+ }
+ JsonArray arr = new JsonArray();
+ arr.add(object);
+ return arr;
+ }
}
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 ee40306..c0e1c01 100644
--- a/src/main/java/org/onap/clamp/policy/operational/OperationalPolicyRepresentationBuilder.java
+++ b/src/main/java/org/onap/clamp/policy/operational/OperationalPolicyRepresentationBuilder.java
@@ -53,6 +53,8 @@
public static final String STRING = "string";
public static final String TYPE = "type";
public static final String TYPE_LIST = "list";
+ public static final String TYPE_OBJECT = "object";
+ public static final String TYPE_ARRAY = "array";
private OperationalPolicyRepresentationBuilder() {
throw new IllegalStateException("This is Utility class, not supposed to be initiated.");
@@ -240,8 +242,8 @@
JsonObject payload = new JsonObject();
payload.addProperty(TITLE, "Payload");
payload.addProperty(TYPE, "object");
- payload.add(PROPERTIES, createInputPropertiesForPayload(workFlow,
- controllerProperties));
+ payload.add(PROPERTIES, createInputPropertiesForPayload(workFlow, controllerProperties,
+ workFlowName));
JsonObject properties = new JsonObject();
properties.add(RECIPE, createRecipeForCdsWorkflow(workFlowName));
properties.add("payload", payload);
@@ -265,10 +267,12 @@
* @param workFlow cds work flows to update payload
* @param controllerProperties cds properties to get blueprint name and
* version
+ * @param workFlowName work flow name
* @return returns the properties of payload
*/
public static JsonObject createInputPropertiesForPayload(JsonObject workFlow,
- JsonObject controllerProperties) {
+ JsonObject controllerProperties,
+ String workFlowName) {
String artifactName = controllerProperties.get("sdnc_model_name").getAsString();
String artifactVersion = controllerProperties.get("sdnc_model_version").getAsString();
JsonObject inputs = workFlow.getAsJsonObject("inputs");
@@ -279,33 +283,33 @@
"artifact version", STRING, artifactVersion, "True", null));
jsonObject.add("mode", createCdsInputProperty(
"mode", STRING, "async" ,null));
- jsonObject.add("data", createDataProperty(inputs));
+ jsonObject.add("data", createDataProperty(inputs, workFlowName));
return jsonObject;
}
- private static JsonObject createDataProperty(JsonObject inputs) {
+ private static JsonObject createDataProperty(JsonObject inputs, String workflowName) {
JsonObject data = new JsonObject();
data.addProperty(TITLE, "data");
JsonObject dataObj = new JsonObject();
- addDataFields(inputs, dataObj);
+ addDataFields(inputs, dataObj, workflowName);
data.add(PROPERTIES, dataObj);
return data;
}
private static void addDataFields(JsonObject inputs,
- JsonObject dataObj) {
+ JsonObject dataObj,
+ String workFlowName) {
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);
+ if (key.equalsIgnoreCase(workFlowName + "-properties")) {
+ addDataFields(entry.getValue().getAsJsonObject().get("properties").getAsJsonObject(),
+ dataObj, workFlowName);
} else {
dataObj.add(entry.getKey(),
- createCdsInputProperty(key,
- inputProperty.get(TYPE).getAsString(),
- null,
- entry.getValue().getAsJsonObject()));
+ createCdsInputProperty(key, inputProperty.get(TYPE).getAsString(),null,
+ entry.getValue().getAsJsonObject()));
}
}
}
@@ -318,15 +322,15 @@
property.addProperty(TITLE, title);
if (TYPE_LIST.equalsIgnoreCase(type)) {
- property.addProperty(TYPE, "array");
+ property.addProperty(TYPE, TYPE_ARRAY);
if (cdsProperty != null && cdsProperty.get(PROPERTIES) != null) {
- JsonObject dataObject = new JsonObject();
- addDataFields(cdsProperty.get(PROPERTIES).getAsJsonObject(),
- dataObject);
JsonObject listProperties = new JsonObject();
- listProperties.add(PROPERTIES, dataObject);
+ listProperties.add(PROPERTIES, getProperties(cdsProperty.get(PROPERTIES).getAsJsonObject()));
property.add(ITEMS, listProperties);
}
+ } else if (TYPE_OBJECT.equalsIgnoreCase(type)) {
+ property.addProperty(TYPE, TYPE_OBJECT);
+ property.add(PROPERTIES, getProperties(cdsProperty.get(PROPERTIES).getAsJsonObject()));
} else {
property.addProperty(TYPE, type);
}
@@ -336,4 +340,13 @@
}
return property;
}
+
+ private static JsonObject getProperties(JsonObject inputProperties) {
+ if (inputProperties == null) {
+ return null;
+ }
+ JsonObject dataObject = new JsonObject();
+ addDataFields(inputProperties, dataObject, null);
+ return dataObject;
+ }
}
diff --git a/src/test/java/org/onap/clamp/clds/tosca/update/ToscaConverterWithDictionarySupportItCase.java b/src/test/java/org/onap/clamp/clds/tosca/update/ToscaConverterWithDictionarySupportItCase.java
index 7f0e576..f777421 100644
--- a/src/test/java/org/onap/clamp/clds/tosca/update/ToscaConverterWithDictionarySupportItCase.java
+++ b/src/test/java/org/onap/clamp/clds/tosca/update/ToscaConverterWithDictionarySupportItCase.java
@@ -128,7 +128,7 @@
@Transactional
public final void testMetadataClampPossibleValueWithExecutor() throws IOException, UnknownComponentException {
Service service = new Service(ResourceFileUtil.getResourceAsString("tosca/service-details.json"),
- ResourceFileUtil.getResourceAsString("tosca/resource-details.json"));
+ ResourceFileUtil.getResourceAsString("tosca/resource-details-cds.json"));
JsonTemplateManager jsonTemplateManager =
new JsonTemplateManager(
ResourceFileUtil.getResourceAsString("http-cache/example/policy/api/v1/policytypes/onap"
diff --git a/src/test/java/org/onap/clamp/policy/operational/OperationalPolicyRepresentationBuilderTest.java b/src/test/java/org/onap/clamp/policy/operational/OperationalPolicyRepresentationBuilderTest.java
index b90a286..4f728b4 100644
--- a/src/test/java/org/onap/clamp/policy/operational/OperationalPolicyRepresentationBuilderTest.java
+++ b/src/test/java/org/onap/clamp/policy/operational/OperationalPolicyRepresentationBuilderTest.java
@@ -37,8 +37,8 @@
@Test
public void testOperationalPolicyPayloadConstruction() throws IOException {
- JsonObject jsonModel = new GsonBuilder().create()
- .fromJson(ResourceFileUtil.getResourceAsString("tosca/model-properties.json"), JsonObject.class);
+ JsonObject jsonModel = new GsonBuilder().create().fromJson(ResourceFileUtil
+ .getResourceAsString("tosca/model-properties-operational-policy.json"), JsonObject.class);
Service service = new Service(jsonModel.get("serviceDetails").getAsJsonObject(),
jsonModel.get("resourceDetails").getAsJsonObject(), "1.0");
diff --git a/src/test/resources/example/cds-response/vFW-CDS-modify-config-wf-expected-result.json b/src/test/resources/example/cds-response/vFW-CDS-modify-config-wf-expected-result.json
index 7e78bb0..2b64931 100644
--- a/src/test/resources/example/cds-response/vFW-CDS-modify-config-wf-expected-result.json
+++ b/src/test/resources/example/cds-response/vFW-CDS-modify-config-wf-expected-result.json
@@ -1,57 +1,29 @@
{
"inputs": {
- "resolution-key": {
- "required": true,
- "type": "string"
- },
"modify-config-properties": {
- "vpg_onap_private_ip_0": {
- "description": "",
- "required": false,
- "type": "string",
- "status": "",
- "constraints": [
- {}
- ],
- "entry_schema": {
- "type": ""
+ "type": "object",
+ "properties": {
+ "service-instance-id": {
+ "type": "string",
+ "input-param": true
+ },
+ "update-active-streams": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "input-param": true,
+ "status": "",
+ "constraints": [
+ {}
+ ],
+ "entry_schema": {
+ "type": "dt-data"
+ }
+ },
+ "generic-vnf.vnf-id": {
+ "type": "string",
+ "input-param": true
}
- },
- "service-instance.service-instance-id": {
- "type": "string"
- },
- "vnf-id": {
- "type": "string"
- },
- "data": {
- "description": "",
- "required": false,
- "type": "string",
- "status": "",
- "constraints": [
- {}
- ],
- "entry_schema": {
- "type": "dt-data"
- }
- },
- "service-instance-id": {
- "type": "string"
- },
- "update-active-streams": {
- "description": "",
- "required": false,
- "type": "string",
- "status": "",
- "constraints": [
- {}
- ],
- "entry_schema": {
- "type": "dt-data"
- }
- },
- "generic-vnf.vnf-id": {
- "type": "string"
}
}
}
diff --git a/src/test/resources/example/cds-response/vFW-CDS-modify-config-workflow.json b/src/test/resources/example/cds-response/vFW-CDS-modify-config-workflow.json
index e46da67..115d79b 100644
--- a/src/test/resources/example/cds-response/vFW-CDS-modify-config-workflow.json
+++ b/src/test/resources/example/cds-response/vFW-CDS-modify-config-workflow.json
@@ -51,12 +51,14 @@
}
},
"service-instance-id": {
- "type": "string"
+ "type": "string",
+ "input-param": true
},
"update-active-streams": {
"description": "",
"required": false,
"type": "string",
+ "input-param": true,
"status": "",
"constraints": [
{}
@@ -66,7 +68,8 @@
}
},
"generic-vnf.vnf-id": {
- "type": "string"
+ "type": "string",
+ "input-param": true
}
},
"derived_from": "tosca.datatypes.Dynamic"
diff --git a/src/test/resources/example/cds-response/vFW-CDS-resource-assignment-wf-expected-result.json b/src/test/resources/example/cds-response/vFW-CDS-resource-assignment-wf-expected-result.json
index 5b373a4..07d851f 100644
--- a/src/test/resources/example/cds-response/vFW-CDS-resource-assignment-wf-expected-result.json
+++ b/src/test/resources/example/cds-response/vFW-CDS-resource-assignment-wf-expected-result.json
@@ -1,12 +1,5 @@
{
"inputs": {
- "template-prefix": {
- "required": true,
- "type": "list",
- "entry_schema": {
- "type": "string"
- }
- },
"template-prefix-with-complex-type": {
"type": "list",
"properties": {
@@ -14,6 +7,7 @@
"description": "",
"required": false,
"type": "string",
+ "input-param": true,
"status": "",
"constraints": [
{}
@@ -25,16 +19,20 @@
}
},
"resource-assignment-properties": {
- "private1-prefix-id": {
- "description": "",
- "required": false,
- "type": "string",
- "status": "",
- "constraints": [
- {}
- ],
- "entry_schema": {
- "type": ""
+ "type": "object",
+ "properties": {
+ "private1-prefix-id": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "input-param": true,
+ "status": "",
+ "constraints": [
+ {}
+ ],
+ "entry_schema": {
+ "type": ""
+ }
}
}
}
diff --git a/src/test/resources/example/cds-response/vFW-CDS-resource-assignment-workflow.json b/src/test/resources/example/cds-response/vFW-CDS-resource-assignment-workflow.json
index d0f78cf..7f76c6c 100644
--- a/src/test/resources/example/cds-response/vFW-CDS-resource-assignment-workflow.json
+++ b/src/test/resources/example/cds-response/vFW-CDS-resource-assignment-workflow.json
@@ -45,6 +45,7 @@
"description": "",
"required": false,
"type": "string",
+ "input-param": true,
"status": "",
"constraints": [
{}
@@ -64,6 +65,7 @@
"description": "",
"required": false,
"type": "string",
+ "input-param": true,
"status": "",
"constraints": [
{}
diff --git "a/src/test/resources/http-cache/example/api/v1/blueprint-model/workflow-spec&\04363;connectionTimeToLive=5000/.file" "b/src/test/resources/http-cache/example/api/v1/blueprint-model/workflow-spec&\04363;connectionTimeToLive=5000/.file"
index 13d3fea..9e616df 100644
--- "a/src/test/resources/http-cache/example/api/v1/blueprint-model/workflow-spec&\04363;connectionTimeToLive=5000/.file"
+++ "b/src/test/resources/http-cache/example/api/v1/blueprint-model/workflow-spec&\04363;connectionTimeToLive=5000/.file"
@@ -34,11 +34,13 @@
"properties": {
"request-id": {
"required": true,
- "type": "string"
+ "type": "string",
+ "input-param": true
},
"service-instance-id": {
"required": true,
- "type": "string"
+ "type": "string",
+ "input-param": true
},
"vnf-id": {
"required": true,
@@ -54,7 +56,13 @@
},
"hostname": {
"required": true,
- "type": "string"
+ "type": "string",
+ "input-param": true
+ },
+ "request-info": {
+ "required": true,
+ "type": "dt-request-info-properties",
+ "input-param": true
},
"vnf_name": {
"required": true,
@@ -63,6 +71,26 @@
},
"constraints": null,
"derived_from": "tosca.datatypes.Dynamic"
+ },
+ "dt-request-info-properties": {
+ "description": "This is Dynamically generated data type for workflow activate",
+ "version": "1.0.0",
+ "metadata": null,
+ "attributes": null,
+ "properties": {
+ "prop1": {
+ "required": true,
+ "type": "string",
+ "input-param": true
+ },
+ "prop2": {
+ "required": true,
+ "type": "string",
+ "input-param": true
+ }
+ },
+ "constraints": null,
+ "derived_from": "tosca.datatypes.Dynamic"
}
}
}
\ No newline at end of file
diff --git a/src/test/resources/tosca/model-properties-cds.json b/src/test/resources/tosca/model-properties-cds.json
index 591840b..fea6584 100644
--- a/src/test/resources/tosca/model-properties-cds.json
+++ b/src/test/resources/tosca/model-properties-cds.json
@@ -62,16 +62,19 @@
}
},
"resource-assignment-properties": {
- "private1-prefix-id": {
- "description": "",
- "required": false,
- "type": "string",
- "status": "",
- "constraints": [
- {}
- ],
- "entry_schema": {
- "type": ""
+ "type": "object",
+ "properties": {
+ "private1-prefix-id": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [
+ {}
+ ],
+ "entry_schema": {
+ "type": ""
+ }
}
}
}
diff --git a/src/test/resources/tosca/model-properties-operational-policy.json b/src/test/resources/tosca/model-properties-operational-policy.json
new file mode 100644
index 0000000..2a65685
--- /dev/null
+++ b/src/test/resources/tosca/model-properties-operational-policy.json
@@ -0,0 +1,353 @@
+{
+ "serviceDetails": {
+ "serviceType": "",
+ "namingPolicy": "",
+ "environmentContext": "General_Revenue-Bearing",
+ "serviceEcompNaming": "true",
+ "serviceRole": "",
+ "name": "vLoadBalancerMS",
+ "description": "vLBMS",
+ "invariantUUID": "30ec5b59-4799-48d8-ac5f-1058a6b0e48f",
+ "ecompGeneratedNaming": "true",
+ "category": "Network L4+",
+ "type": "Service",
+ "UUID": "63cac700-ab9a-4115-a74f-7eac85e3fce0",
+ "instantiationType": "A-la-carte"
+ },
+ "resourceDetails": {
+ "CP": {
+ },
+ "VL": {
+ },
+ "VF": {
+ "vLoadBalancerMS 0": {
+ "resourceVendor": "Test",
+ "resourceVendorModelNumber": "",
+ "name": "vLoadBalancerMS",
+ "description": "vLBMS",
+ "invariantUUID": "1a31b9f2-e50d-43b7-89b3-a040250cf506",
+ "subcategory": "Load Balancer",
+ "category": "Application L4+",
+ "type": "VF",
+ "UUID": "b4c4f3d7-929e-4b6d-a1cd-57e952ddc3e6",
+ "version": "1.0",
+ "resourceVendorRelease": "1.0",
+ "customizationUUID": "465246dc-7748-45f4-a013-308d92922552",
+ "controllerProperties": {
+ "sdnc_model_name": "baseconfiguration",
+ "sdnc_model_version": "1.0.0",
+ "workflows": {
+ "resource-assignment": {
+ "inputs": {
+ "resource-assignment-properties": {
+ "type": "object",
+ "properties": {
+ "request-id": {
+ "type": "string",
+ "required": true,
+ "input-param": true
+ },
+ "service-instance-id": {
+ "type": "string",
+ "required": true,
+ "input-param": true
+ },
+ "hostname": {
+ "type": "string",
+ "required": true,
+ "input-param": true
+ },
+ "request-info": {
+ "type": "object",
+ "properties": {
+ "prop1": {
+ "required": true,
+ "type": "string",
+ "input-param": true
+ },
+ "prop2": {
+ "required": true,
+ "type": "string",
+ "input-param": true
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "activate": {
+ "inputs": {
+ "activate-properties": {
+ "type": "object",
+ "properties": {
+ "request-id": {
+ "type": "string",
+ "required": true,
+ "input-param": true
+ },
+ "service-instance-id": {
+ "type": "string",
+ "required": true,
+ "input-param": true
+ },
+ "hostname": {
+ "type": "string",
+ "required": true,
+ "input-param": true
+ },
+ "request-info": {
+ "type": "object",
+ "properties": {
+ "prop1": {
+ "required": true,
+ "type": "string",
+ "input-param": true
+ },
+ "prop2": {
+ "required": true,
+ "type": "string",
+ "input-param": true
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "activate-restconf": {
+ "inputs": {
+ "activate-restconf-properties": {
+ "type": "object",
+ "properties": {
+ "request-id": {
+ "type": "string",
+ "required": true,
+ "input-param": true
+ },
+ "service-instance-id": {
+ "type": "string",
+ "required": true,
+ "input-param": true
+ },
+ "hostname": {
+ "type": "string",
+ "required": true,
+ "input-param": true
+ },
+ "request-info": {
+ "type": "object",
+ "properties": {
+ "prop1": {
+ "required": true,
+ "type": "string",
+ "input-param": true
+ },
+ "prop2": {
+ "required": true,
+ "type": "string",
+ "input-param": true
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "activate-cli": {
+ "inputs": {
+ "activate-cli-properties": {
+ "type": "object",
+ "properties": {
+ "request-id": {
+ "type": "string",
+ "required": true,
+ "input-param": true
+ },
+ "service-instance-id": {
+ "type": "string",
+ "required": true,
+ "input-param": true
+ },
+ "hostname": {
+ "type": "string",
+ "required": true,
+ "input-param": true
+ },
+ "request-info": {
+ "type": "object",
+ "properties": {
+ "prop1": {
+ "required": true,
+ "type": "string",
+ "input-param": true
+ },
+ "prop2": {
+ "required": true,
+ "type": "string",
+ "input-param": true
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "assign-activate": {
+ "inputs": {
+ "assign-activate-properties": {
+ "type": "object",
+ "properties": {
+ "request-id": {
+ "type": "string",
+ "required": true,
+ "input-param": true
+ },
+ "service-instance-id": {
+ "type": "string",
+ "required": true,
+ "input-param": true
+ },
+ "hostname": {
+ "type": "string",
+ "required": true,
+ "input-param": true
+ },
+ "request-info": {
+ "type": "object",
+ "properties": {
+ "prop1": {
+ "required": true,
+ "type": "string",
+ "input-param": true
+ },
+ "prop2": {
+ "required": true,
+ "type": "string",
+ "input-param": true
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "imperative-test-wf": {
+ "inputs": {
+ "imperative-test-wf-properties": {
+ "type": "object",
+ "properties": {
+ "request-id": {
+ "type": "string",
+ "required": true,
+ "input-param": true
+ },
+ "service-instance-id": {
+ "type": "string",
+ "required": true,
+ "input-param": true
+ },
+ "hostname": {
+ "type": "string",
+ "required": true,
+ "input-param": true
+ },
+ "request-info": {
+ "type": "object",
+ "properties": {
+ "prop1": {
+ "required": true,
+ "type": "string",
+ "input-param": true
+ },
+ "prop2": {
+ "required": true,
+ "type": "string",
+ "input-param": true
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "CR": {
+ },
+ "VFC": {
+ },
+ "PNF": {
+ },
+ "Service": {
+ },
+ "CVFC": {
+ },
+ "Service Proxy": {
+ },
+ "Configuration": {
+ },
+ "AllottedResource": {
+ },
+ "VFModule": {
+ "Vloadbalancerms..vpkg..module-1": {
+ "vfModuleModelInvariantUUID": "ca052563-eb92-4b5b-ad41-9111768ce043",
+ "vfModuleModelVersion": "1",
+ "vfModuleModelName": "Vloadbalancerms..vpkg..module-1",
+ "vfModuleModelUUID": "1e725ccc-b823-4f67-82b9-4f4367070dbc",
+ "vfModuleModelCustomizationUUID": "1bffdc31-a37d-4dee-b65c-dde623a76e52",
+ "min_vf_module_instances": 0,
+ "vf_module_label": "vpkg",
+ "max_vf_module_instances": 1,
+ "vf_module_type": "Expansion",
+ "isBase": false,
+ "initial_count": 0,
+ "volume_group": false
+ },
+ "Vloadbalancerms..vdns..module-3": {
+ "vfModuleModelInvariantUUID": "4c10ba9b-f88f-415e-9de3-5d33336047fa",
+ "vfModuleModelVersion": "1",
+ "vfModuleModelName": "Vloadbalancerms..vdns..module-3",
+ "vfModuleModelUUID": "4fa73b49-8a6c-493e-816b-eb401567b720",
+ "vfModuleModelCustomizationUUID": "bafcdab0-801d-4d81-9ead-f464640a38b1",
+ "min_vf_module_instances": 0,
+ "vf_module_label": "vdns",
+ "max_vf_module_instances": 50,
+ "vf_module_type": "Expansion",
+ "isBase": false,
+ "initial_count": 0,
+ "volume_group": false
+ },
+ "Vloadbalancerms..base_template..module-0": {
+ "vfModuleModelInvariantUUID": "921f7c96-ebdd-42e6-81b9-1cfc0c9796f3",
+ "vfModuleModelVersion": "1",
+ "vfModuleModelName": "Vloadbalancerms..base_template..module-0",
+ "vfModuleModelUUID": "63734409-f745-4e4d-a38b-131638a0edce",
+ "vfModuleModelCustomizationUUID": "86baddea-c730-4fb8-9410-cd2e17fd7f27",
+ "min_vf_module_instances": 1,
+ "vf_module_label": "base_template",
+ "max_vf_module_instances": 1,
+ "vf_module_type": "Base",
+ "isBase": true,
+ "initial_count": 1,
+ "volume_group": false
+ },
+ "Vloadbalancerms..vlb..module-2": {
+ "vfModuleModelInvariantUUID": "a772a1f4-0064-412c-833d-4749b15828dd",
+ "vfModuleModelVersion": "1",
+ "vfModuleModelName": "Vloadbalancerms..vlb..module-2",
+ "vfModuleModelUUID": "0f5c3f6a-650a-4303-abb6-fff3e573a07a",
+ "vfModuleModelCustomizationUUID": "96a78aad-4ffb-4ef0-9c4f-deb03bf1d806",
+ "min_vf_module_instances": 0,
+ "vf_module_label": "vlb",
+ "max_vf_module_instances": 1,
+ "vf_module_type": "Expansion",
+ "isBase": false,
+ "initial_count": 0,
+ "volume_group": false
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/test/resources/tosca/model-properties.json b/src/test/resources/tosca/model-properties.json
index 688a09a..1c0fe24 100644
--- a/src/test/resources/tosca/model-properties.json
+++ b/src/test/resources/tosca/model-properties.json
@@ -40,33 +40,38 @@
"resource-assignment": {
"inputs": {
"resource-assignment-properties": {
- "request-id": {
- "type": "string",
- "required": true
- },
- "service-instance-id": {
- "type": "string",
- "required": true
- },
- "vnf-id": {
- "type": "string",
- "required": true
- },
- "action-name": {
- "type": "string",
- "required": true
- },
- "scope-type": {
- "type": "string",
- "required": true
- },
- "hostname": {
- "type": "string",
- "required": true
- },
- "vnf_name": {
- "type": "string",
- "required": true
+ "type": "object",
+ "properties": {
+ "request-id": {
+ "type": "string",
+ "required": true,
+ "input-param": true
+ },
+ "service-instance-id": {
+ "type": "string",
+ "required": true,
+ "input-param": true
+ },
+ "hostname": {
+ "type": "string",
+ "required": true,
+ "input-param": true
+ },
+ "request-info": {
+ "type": "object",
+ "properties": {
+ "prop1": {
+ "required": true,
+ "type": "string",
+ "input-param": true
+ },
+ "prop2": {
+ "required": true,
+ "type": "string",
+ "input-param": true
+ }
+ }
+ }
}
}
}
@@ -74,33 +79,38 @@
"activate": {
"inputs": {
"resource-assignment-properties": {
- "request-id": {
- "type": "string",
- "required": true
- },
- "service-instance-id": {
- "type": "string",
- "required": true
- },
- "vnf-id": {
- "type": "string",
- "required": true
- },
- "action-name": {
- "type": "string",
- "required": true
- },
- "scope-type": {
- "type": "string",
- "required": true
- },
- "hostname": {
- "type": "string",
- "required": true
- },
- "vnf_name": {
- "type": "string",
- "required": true
+ "type": "object",
+ "properties": {
+ "request-id": {
+ "type": "string",
+ "required": true,
+ "input-param": true
+ },
+ "service-instance-id": {
+ "type": "string",
+ "required": true,
+ "input-param": true
+ },
+ "hostname": {
+ "type": "string",
+ "required": true,
+ "input-param": true
+ },
+ "request-info": {
+ "type": "object",
+ "properties": {
+ "prop1": {
+ "required": true,
+ "type": "string",
+ "input-param": true
+ },
+ "prop2": {
+ "required": true,
+ "type": "string",
+ "input-param": true
+ }
+ }
+ }
}
}
}
@@ -108,33 +118,38 @@
"activate-restconf": {
"inputs": {
"resource-assignment-properties": {
- "request-id": {
- "type": "string",
- "required": true
- },
- "service-instance-id": {
- "type": "string",
- "required": true
- },
- "vnf-id": {
- "type": "string",
- "required": true
- },
- "action-name": {
- "type": "string",
- "required": true
- },
- "scope-type": {
- "type": "string",
- "required": true
- },
- "hostname": {
- "type": "string",
- "required": true
- },
- "vnf_name": {
- "type": "string",
- "required": true
+ "type": "object",
+ "properties": {
+ "request-id": {
+ "type": "string",
+ "required": true,
+ "input-param": true
+ },
+ "service-instance-id": {
+ "type": "string",
+ "required": true,
+ "input-param": true
+ },
+ "hostname": {
+ "type": "string",
+ "required": true,
+ "input-param": true
+ },
+ "request-info": {
+ "type": "object",
+ "properties": {
+ "prop1": {
+ "required": true,
+ "type": "string",
+ "input-param": true
+ },
+ "prop2": {
+ "required": true,
+ "type": "string",
+ "input-param": true
+ }
+ }
+ }
}
}
}
@@ -142,33 +157,38 @@
"activate-cli": {
"inputs": {
"resource-assignment-properties": {
- "request-id": {
- "type": "string",
- "required": true
- },
- "service-instance-id": {
- "type": "string",
- "required": true
- },
- "vnf-id": {
- "type": "string",
- "required": true
- },
- "action-name": {
- "type": "string",
- "required": true
- },
- "scope-type": {
- "type": "string",
- "required": true
- },
- "hostname": {
- "type": "string",
- "required": true
- },
- "vnf_name": {
- "type": "string",
- "required": true
+ "type": "object",
+ "properties": {
+ "request-id": {
+ "type": "string",
+ "required": true,
+ "input-param": true
+ },
+ "service-instance-id": {
+ "type": "string",
+ "required": true,
+ "input-param": true
+ },
+ "hostname": {
+ "type": "string",
+ "required": true,
+ "input-param": true
+ },
+ "request-info": {
+ "type": "object",
+ "properties": {
+ "prop1": {
+ "required": true,
+ "type": "string",
+ "input-param": true
+ },
+ "prop2": {
+ "required": true,
+ "type": "string",
+ "input-param": true
+ }
+ }
+ }
}
}
}
@@ -176,33 +196,38 @@
"assign-activate": {
"inputs": {
"resource-assignment-properties": {
- "request-id": {
- "type": "string",
- "required": true
- },
- "service-instance-id": {
- "type": "string",
- "required": true
- },
- "vnf-id": {
- "type": "string",
- "required": true
- },
- "action-name": {
- "type": "string",
- "required": true
- },
- "scope-type": {
- "type": "string",
- "required": true
- },
- "hostname": {
- "type": "string",
- "required": true
- },
- "vnf_name": {
- "type": "string",
- "required": true
+ "type": "object",
+ "properties": {
+ "request-id": {
+ "type": "string",
+ "required": true,
+ "input-param": true
+ },
+ "service-instance-id": {
+ "type": "string",
+ "required": true,
+ "input-param": true
+ },
+ "hostname": {
+ "type": "string",
+ "required": true,
+ "input-param": true
+ },
+ "request-info": {
+ "type": "object",
+ "properties": {
+ "prop1": {
+ "required": true,
+ "type": "string",
+ "input-param": true
+ },
+ "prop2": {
+ "required": true,
+ "type": "string",
+ "input-param": true
+ }
+ }
+ }
}
}
}
@@ -210,38 +235,43 @@
"imperative-test-wf": {
"inputs": {
"resource-assignment-properties": {
- "request-id": {
- "type": "string",
- "required": true
- },
- "service-instance-id": {
- "type": "string",
- "required": true
- },
- "vnf-id": {
- "type": "string",
- "required": true
- },
- "action-name": {
- "type": "string",
- "required": true
- },
- "scope-type": {
- "type": "string",
- "required": true
- },
- "hostname": {
- "type": "string",
- "required": true
- },
- "vnf_name": {
- "type": "string",
- "required": true
+ "type": "object",
+ "properties": {
+ "request-id": {
+ "type": "string",
+ "required": true,
+ "input-param": true
+ },
+ "service-instance-id": {
+ "type": "string",
+ "required": true,
+ "input-param": true
+ },
+ "hostname": {
+ "type": "string",
+ "required": true,
+ "input-param": true
+ },
+ "request-info": {
+ "type": "object",
+ "properties": {
+ "prop1": {
+ "required": true,
+ "type": "string",
+ "input-param": true
+ },
+ "prop2": {
+ "required": true,
+ "type": "string",
+ "input-param": true
+ }
+ }
+ }
}
}
}
- }
- }
+ }
+ }
}
}
},
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 f6713af..4519d5c 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
@@ -94,7 +94,7 @@
"title": "data",
"type": "string",
"format": "textarea",
- "default": "{\"request-id\":\"\",\"service-instance-id\":\"\",\"vnf-id\":\"\",\"action-name\":\"\",\"scope-type\":\"\",\"hostname\":\"\",\"vnf_name\":\"\"}"
+ "default": "{\"request-id\":\"\",\"service-instance-id\":\"\",\"hostname\":\"\",\"request-info\":{\"prop1\":\"\",\"prop2\":\"\"}}"
}
}
},
@@ -123,7 +123,7 @@
"title": "data",
"type": "string",
"format": "textarea",
- "default": "{\"request-id\":\"\",\"service-instance-id\":\"\",\"vnf-id\":\"\",\"action-name\":\"\",\"scope-type\":\"\",\"hostname\":\"\",\"vnf_name\":\"\"}"
+ "default": "{\"request-id\":\"\",\"service-instance-id\":\"\",\"hostname\":\"\",\"request-info\":{\"prop1\":\"\",\"prop2\":\"\"}}"
}
}
},
@@ -152,7 +152,7 @@
"title": "data",
"type": "string",
"format": "textarea",
- "default": "{\"request-id\":\"\",\"service-instance-id\":\"\",\"vnf-id\":\"\",\"action-name\":\"\",\"scope-type\":\"\",\"hostname\":\"\",\"vnf_name\":\"\"}"
+ "default": "{\"request-id\":\"\",\"service-instance-id\":\"\",\"hostname\":\"\",\"request-info\":{\"prop1\":\"\",\"prop2\":\"\"}}"
}
}
},
@@ -181,7 +181,7 @@
"title": "data",
"type": "string",
"format": "textarea",
- "default": "{\"request-id\":\"\",\"service-instance-id\":\"\",\"vnf-id\":\"\",\"action-name\":\"\",\"scope-type\":\"\",\"hostname\":\"\",\"vnf_name\":\"\"}"
+ "default": "{\"request-id\":\"\",\"service-instance-id\":\"\",\"hostname\":\"\",\"request-info\":{\"prop1\":\"\",\"prop2\":\"\"}}"
}
}
},
@@ -210,7 +210,7 @@
"title": "data",
"type": "string",
"format": "textarea",
- "default": "{\"request-id\":\"\",\"service-instance-id\":\"\",\"vnf-id\":\"\",\"action-name\":\"\",\"scope-type\":\"\",\"hostname\":\"\",\"vnf_name\":\"\"}"
+ "default": "{\"request-id\":\"\",\"service-instance-id\":\"\",\"hostname\":\"\",\"request-info\":{\"prop1\":\"\",\"prop2\":\"\"}}"
}
}
},
@@ -239,7 +239,7 @@
"title": "data",
"type": "string",
"format": "textarea",
- "default": "{\"request-id\":\"\",\"service-instance-id\":\"\",\"vnf-id\":\"\",\"action-name\":\"\",\"scope-type\":\"\",\"hostname\":\"\",\"vnf_name\":\"\"}"
+ "default": "{\"request-id\":\"\",\"service-instance-id\":\"\",\"hostname\":\"\",\"request-info\":{\"prop1\":\"\",\"prop2\":\"\"}}"
}
}
}
diff --git a/src/test/resources/tosca/operational-policy-json-schema.json b/src/test/resources/tosca/operational-policy-json-schema.json
index e8363b4..dc6c32f 100644
--- a/src/test/resources/tosca/operational-policy-json-schema.json
+++ b/src/test/resources/tosca/operational-policy-json-schema.json
@@ -288,25 +288,23 @@
"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-info": {
+ "title": "request-info",
+ "type": "object",
+ "properties": {
+ "prop1": {
+ "title": "prop1",
+ "type": "string"
+ },
+ "prop2": {
+ "title": "prop2",
+ "type": "string"
+ }
+ }
}
}
}
@@ -358,25 +356,23 @@
"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-info": {
+ "title": "request-info",
+ "type": "object",
+ "properties": {
+ "prop1": {
+ "title": "prop1",
+ "type": "string"
+ },
+ "prop2": {
+ "title": "prop2",
+ "type": "string"
+ }
+ }
}
}
}
@@ -428,25 +424,23 @@
"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-info": {
+ "title": "request-info",
+ "type": "object",
+ "properties": {
+ "prop1": {
+ "title": "prop1",
+ "type": "string"
+ },
+ "prop2": {
+ "title": "prop2",
+ "type": "string"
+ }
+ }
}
}
}
@@ -498,25 +492,23 @@
"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-info": {
+ "title": "request-info",
+ "type": "object",
+ "properties": {
+ "prop1": {
+ "title": "prop1",
+ "type": "string"
+ },
+ "prop2": {
+ "title": "prop2",
+ "type": "string"
+ }
+ }
}
}
}
@@ -568,25 +560,23 @@
"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-info": {
+ "title": "request-info",
+ "type": "object",
+ "properties": {
+ "prop1": {
+ "title": "prop1",
+ "type": "string"
+ },
+ "prop2": {
+ "title": "prop2",
+ "type": "string"
+ }
+ }
}
}
}
@@ -638,25 +628,23 @@
"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-info": {
+ "title": "request-info",
+ "type": "object",
+ "properties": {
+ "prop1": {
+ "title": "prop1",
+ "type": "string"
+ },
+ "prop2": {
+ "title": "prop2",
+ "type": "string"
+ }
+ }
}
}
}
diff --git a/src/test/resources/tosca/resource-details-cds.json b/src/test/resources/tosca/resource-details-cds.json
new file mode 100644
index 0000000..d972d0c
--- /dev/null
+++ b/src/test/resources/tosca/resource-details-cds.json
@@ -0,0 +1,336 @@
+{
+ "CP": {
+ },
+ "VL": {
+ },
+ "VF": {
+ "vLoadBalancerMS 0": {
+ "resourceVendor": "Test",
+ "resourceVendorModelNumber": "",
+ "name": "vLoadBalancerMS",
+ "description": "vLBMS",
+ "invariantUUID": "1a31b9f2-e50d-43b7-89b3-a040250cf506",
+ "subcategory": "Load Balancer",
+ "category": "Application L4+",
+ "type": "VF",
+ "UUID": "b4c4f3d7-929e-4b6d-a1cd-57e952ddc3e6",
+ "version": "1.0",
+ "resourceVendorRelease": "1.0",
+ "customizationUUID": "465246dc-7748-45f4-a013-308d92922552",
+ "controllerProperties": {
+ "sdnc_model_name": "baseconfiguration",
+ "sdnc_model_version": "1.0.0",
+ "workflows": {
+ "resource-assignment": {
+ "inputs": {
+ "resource-assignment-properties": {
+ "type": "object",
+ "properties": {
+ "request-id": {
+ "type": "string",
+ "required": true,
+ "input-param": true
+ },
+ "service-instance-id": {
+ "type": "string",
+ "required": true,
+ "input-param": true
+ },
+ "hostname": {
+ "type": "string",
+ "required": true,
+ "input-param": true
+ },
+ "request-info": {
+ "type": "object",
+ "properties": {
+ "prop1": {
+ "required": true,
+ "type": "string",
+ "input-param": true
+ },
+ "prop2": {
+ "required": true,
+ "type": "string",
+ "input-param": true
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "activate": {
+ "inputs": {
+ "activate-properties": {
+ "type": "object",
+ "properties": {
+ "request-id": {
+ "type": "string",
+ "required": true,
+ "input-param": true
+ },
+ "service-instance-id": {
+ "type": "string",
+ "required": true,
+ "input-param": true
+ },
+ "hostname": {
+ "type": "string",
+ "required": true,
+ "input-param": true
+ },
+ "request-info": {
+ "type": "object",
+ "properties": {
+ "prop1": {
+ "required": true,
+ "type": "string",
+ "input-param": true
+ },
+ "prop2": {
+ "required": true,
+ "type": "string",
+ "input-param": true
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "activate-restconf": {
+ "inputs": {
+ "activate-restconf-properties": {
+ "type": "object",
+ "properties": {
+ "request-id": {
+ "type": "string",
+ "required": true,
+ "input-param": true
+ },
+ "service-instance-id": {
+ "type": "string",
+ "required": true,
+ "input-param": true
+ },
+ "hostname": {
+ "type": "string",
+ "required": true,
+ "input-param": true
+ },
+ "request-info": {
+ "type": "object",
+ "properties": {
+ "prop1": {
+ "required": true,
+ "type": "string",
+ "input-param": true
+ },
+ "prop2": {
+ "required": true,
+ "type": "string",
+ "input-param": true
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "activate-cli": {
+ "inputs": {
+ "activate-cli-properties": {
+ "type": "object",
+ "properties": {
+ "request-id": {
+ "type": "string",
+ "required": true,
+ "input-param": true
+ },
+ "service-instance-id": {
+ "type": "string",
+ "required": true,
+ "input-param": true
+ },
+ "hostname": {
+ "type": "string",
+ "required": true,
+ "input-param": true
+ },
+ "request-info": {
+ "type": "object",
+ "properties": {
+ "prop1": {
+ "required": true,
+ "type": "string",
+ "input-param": true
+ },
+ "prop2": {
+ "required": true,
+ "type": "string",
+ "input-param": true
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "assign-activate": {
+ "inputs": {
+ "assign-activate-properties": {
+ "type": "object",
+ "properties": {
+ "request-id": {
+ "type": "string",
+ "required": true,
+ "input-param": true
+ },
+ "service-instance-id": {
+ "type": "string",
+ "required": true,
+ "input-param": true
+ },
+ "hostname": {
+ "type": "string",
+ "required": true,
+ "input-param": true
+ },
+ "request-info": {
+ "type": "object",
+ "properties": {
+ "prop1": {
+ "required": true,
+ "type": "string",
+ "input-param": true
+ },
+ "prop2": {
+ "required": true,
+ "type": "string",
+ "input-param": true
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "imperative-test-wf": {
+ "inputs": {
+ "imperative-test-wf-properties": {
+ "type": "object",
+ "properties": {
+ "request-id": {
+ "type": "string",
+ "required": true,
+ "input-param": true
+ },
+ "service-instance-id": {
+ "type": "string",
+ "required": true,
+ "input-param": true
+ },
+ "hostname": {
+ "type": "string",
+ "required": true,
+ "input-param": true
+ },
+ "request-info": {
+ "type": "object",
+ "properties": {
+ "prop1": {
+ "required": true,
+ "type": "string",
+ "input-param": true
+ },
+ "prop2": {
+ "required": true,
+ "type": "string",
+ "input-param": true
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "CR": {
+ },
+ "VFC": {
+ },
+ "PNF": {
+ },
+ "Service": {
+ },
+ "CVFC": {
+ },
+ "Service Proxy": {
+ },
+ "Configuration": {
+ },
+ "AllottedResource": {
+ },
+ "VFModule": {
+ "Vloadbalancerms..vpkg..module-1": {
+ "vfModuleModelInvariantUUID": "ca052563-eb92-4b5b-ad41-9111768ce043",
+ "vfModuleModelVersion": "1",
+ "vfModuleModelName": "Vloadbalancerms..vpkg..module-1",
+ "vfModuleModelUUID": "1e725ccc-b823-4f67-82b9-4f4367070dbc",
+ "vfModuleModelCustomizationUUID": "1bffdc31-a37d-4dee-b65c-dde623a76e52",
+ "min_vf_module_instances": 0,
+ "vf_module_label": "vpkg",
+ "max_vf_module_instances": 1,
+ "vf_module_type": "Expansion",
+ "isBase": false,
+ "initial_count": 0,
+ "volume_group": false
+ },
+ "Vloadbalancerms..vdns..module-3": {
+ "vfModuleModelInvariantUUID": "4c10ba9b-f88f-415e-9de3-5d33336047fa",
+ "vfModuleModelVersion": "1",
+ "vfModuleModelName": "Vloadbalancerms..vdns..module-3",
+ "vfModuleModelUUID": "4fa73b49-8a6c-493e-816b-eb401567b720",
+ "vfModuleModelCustomizationUUID": "bafcdab0-801d-4d81-9ead-f464640a38b1",
+ "min_vf_module_instances": 0,
+ "vf_module_label": "vdns",
+ "max_vf_module_instances": 50,
+ "vf_module_type": "Expansion",
+ "isBase": false,
+ "initial_count": 0,
+ "volume_group": false
+ },
+ "Vloadbalancerms..base_template..module-0": {
+ "vfModuleModelInvariantUUID": "921f7c96-ebdd-42e6-81b9-1cfc0c9796f3",
+ "vfModuleModelVersion": "1",
+ "vfModuleModelName": "Vloadbalancerms..base_template..module-0",
+ "vfModuleModelUUID": "63734409-f745-4e4d-a38b-131638a0edce",
+ "vfModuleModelCustomizationUUID": "86baddea-c730-4fb8-9410-cd2e17fd7f27",
+ "min_vf_module_instances": 1,
+ "vf_module_label": "base_template",
+ "max_vf_module_instances": 1,
+ "vf_module_type": "Base",
+ "isBase": true,
+ "initial_count": 1,
+ "volume_group": false
+ },
+ "Vloadbalancerms..vlb..module-2": {
+ "vfModuleModelInvariantUUID": "a772a1f4-0064-412c-833d-4749b15828dd",
+ "vfModuleModelVersion": "1",
+ "vfModuleModelName": "Vloadbalancerms..vlb..module-2",
+ "vfModuleModelUUID": "0f5c3f6a-650a-4303-abb6-fff3e573a07a",
+ "vfModuleModelCustomizationUUID": "96a78aad-4ffb-4ef0-9c4f-deb03bf1d806",
+ "min_vf_module_instances": 0,
+ "vf_module_label": "vlb",
+ "max_vf_module_instances": 1,
+ "vf_module_type": "Expansion",
+ "isBase": false,
+ "initial_count": 0,
+ "volume_group": false
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/test/resources/tosca/resource-details.json b/src/test/resources/tosca/resource-details.json
index dc47b44..b55adbf 100644
--- a/src/test/resources/tosca/resource-details.json
+++ b/src/test/resources/tosca/resource-details.json
@@ -24,33 +24,38 @@
"resource-assignment": {
"inputs": {
"resource-assignment-properties": {
- "request-id": {
- "type": "string",
- "required": true
- },
- "service-instance-id": {
- "type": "string",
- "required": true
- },
- "vnf-id": {
- "type": "string",
- "required": true
- },
- "action-name": {
- "type": "string",
- "required": true
- },
- "scope-type": {
- "type": "string",
- "required": true
- },
- "hostname": {
- "type": "string",
- "required": true
- },
- "vnf_name": {
- "type": "string",
- "required": true
+ "type": "object",
+ "properties": {
+ "request-id": {
+ "type": "string",
+ "required": true,
+ "input-param": true
+ },
+ "service-instance-id": {
+ "type": "string",
+ "required": true,
+ "input-param": true
+ },
+ "hostname": {
+ "type": "string",
+ "required": true,
+ "input-param": true
+ },
+ "request-info": {
+ "type": "object",
+ "properties": {
+ "prop1": {
+ "required": true,
+ "type": "string",
+ "input-param": true
+ },
+ "prop2": {
+ "required": true,
+ "type": "string",
+ "input-param": true
+ }
+ }
+ }
}
}
}
@@ -58,33 +63,38 @@
"activate": {
"inputs": {
"resource-assignment-properties": {
- "request-id": {
- "type": "string",
- "required": true
- },
- "service-instance-id": {
- "type": "string",
- "required": true
- },
- "vnf-id": {
- "type": "string",
- "required": true
- },
- "action-name": {
- "type": "string",
- "required": true
- },
- "scope-type": {
- "type": "string",
- "required": true
- },
- "hostname": {
- "type": "string",
- "required": true
- },
- "vnf_name": {
- "type": "string",
- "required": true
+ "type": "object",
+ "properties": {
+ "request-id": {
+ "type": "string",
+ "required": true,
+ "input-param": true
+ },
+ "service-instance-id": {
+ "type": "string",
+ "required": true,
+ "input-param": true
+ },
+ "hostname": {
+ "type": "string",
+ "required": true,
+ "input-param": true
+ },
+ "request-info": {
+ "type": "object",
+ "properties": {
+ "prop1": {
+ "required": true,
+ "type": "string",
+ "input-param": true
+ },
+ "prop2": {
+ "required": true,
+ "type": "string",
+ "input-param": true
+ }
+ }
+ }
}
}
}
@@ -92,33 +102,38 @@
"activate-restconf": {
"inputs": {
"resource-assignment-properties": {
- "request-id": {
- "type": "string",
- "required": true
- },
- "service-instance-id": {
- "type": "string",
- "required": true
- },
- "vnf-id": {
- "type": "string",
- "required": true
- },
- "action-name": {
- "type": "string",
- "required": true
- },
- "scope-type": {
- "type": "string",
- "required": true
- },
- "hostname": {
- "type": "string",
- "required": true
- },
- "vnf_name": {
- "type": "string",
- "required": true
+ "type": "object",
+ "properties": {
+ "request-id": {
+ "type": "string",
+ "required": true,
+ "input-param": true
+ },
+ "service-instance-id": {
+ "type": "string",
+ "required": true,
+ "input-param": true
+ },
+ "hostname": {
+ "type": "string",
+ "required": true,
+ "input-param": true
+ },
+ "request-info": {
+ "type": "object",
+ "properties": {
+ "prop1": {
+ "required": true,
+ "type": "string",
+ "input-param": true
+ },
+ "prop2": {
+ "required": true,
+ "type": "string",
+ "input-param": true
+ }
+ }
+ }
}
}
}
@@ -126,33 +141,38 @@
"activate-cli": {
"inputs": {
"resource-assignment-properties": {
- "request-id": {
- "type": "string",
- "required": true
- },
- "service-instance-id": {
- "type": "string",
- "required": true
- },
- "vnf-id": {
- "type": "string",
- "required": true
- },
- "action-name": {
- "type": "string",
- "required": true
- },
- "scope-type": {
- "type": "string",
- "required": true
- },
- "hostname": {
- "type": "string",
- "required": true
- },
- "vnf_name": {
- "type": "string",
- "required": true
+ "type": "object",
+ "properties": {
+ "request-id": {
+ "type": "string",
+ "required": true,
+ "input-param": true
+ },
+ "service-instance-id": {
+ "type": "string",
+ "required": true,
+ "input-param": true
+ },
+ "hostname": {
+ "type": "string",
+ "required": true,
+ "input-param": true
+ },
+ "request-info": {
+ "type": "object",
+ "properties": {
+ "prop1": {
+ "required": true,
+ "type": "string",
+ "input-param": true
+ },
+ "prop2": {
+ "required": true,
+ "type": "string",
+ "input-param": true
+ }
+ }
+ }
}
}
}
@@ -160,33 +180,38 @@
"assign-activate": {
"inputs": {
"resource-assignment-properties": {
- "request-id": {
- "type": "string",
- "required": true
- },
- "service-instance-id": {
- "type": "string",
- "required": true
- },
- "vnf-id": {
- "type": "string",
- "required": true
- },
- "action-name": {
- "type": "string",
- "required": true
- },
- "scope-type": {
- "type": "string",
- "required": true
- },
- "hostname": {
- "type": "string",
- "required": true
- },
- "vnf_name": {
- "type": "string",
- "required": true
+ "type": "object",
+ "properties": {
+ "request-id": {
+ "type": "string",
+ "required": true,
+ "input-param": true
+ },
+ "service-instance-id": {
+ "type": "string",
+ "required": true,
+ "input-param": true
+ },
+ "hostname": {
+ "type": "string",
+ "required": true,
+ "input-param": true
+ },
+ "request-info": {
+ "type": "object",
+ "properties": {
+ "prop1": {
+ "required": true,
+ "type": "string",
+ "input-param": true
+ },
+ "prop2": {
+ "required": true,
+ "type": "string",
+ "input-param": true
+ }
+ }
+ }
}
}
}
@@ -194,33 +219,38 @@
"imperative-test-wf": {
"inputs": {
"resource-assignment-properties": {
- "request-id": {
- "type": "string",
- "required": true
- },
- "service-instance-id": {
- "type": "string",
- "required": true
- },
- "vnf-id": {
- "type": "string",
- "required": true
- },
- "action-name": {
- "type": "string",
- "required": true
- },
- "scope-type": {
- "type": "string",
- "required": true
- },
- "hostname": {
- "type": "string",
- "required": true
- },
- "vnf_name": {
- "type": "string",
- "required": true
+ "type": "object",
+ "properties": {
+ "request-id": {
+ "type": "string",
+ "required": true,
+ "input-param": true
+ },
+ "service-instance-id": {
+ "type": "string",
+ "required": true,
+ "input-param": true
+ },
+ "hostname": {
+ "type": "string",
+ "required": true,
+ "input-param": true
+ },
+ "request-info": {
+ "type": "object",
+ "properties": {
+ "prop1": {
+ "required": true,
+ "type": "string",
+ "input-param": true
+ },
+ "prop2": {
+ "required": true,
+ "type": "string",
+ "input-param": true
+ }
+ }
+ }
}
}
}