From: root1 Date: Tue, 11 Aug 2020 13:14:29 +0000 (+0530) Subject: CLAMP should not display all CDS workflow properties X-Git-Tag: 5.1.0~2 X-Git-Url: https://gerrit.onap.org/r/gitweb?p=clamp.git;a=commitdiff_plain;h=2d9f989e0d37002c758bdf66a3f25fcfdac35b62 CLAMP should not display all CDS workflow properties CLAMP should not display all CDS workflow properties Issue-ID: CLAMP-856 Signed-off-by: root1 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 fa15e277..fd3b3539 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 @@ public class CdsServices { 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 @@ public class CdsServices { 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 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); + } + + 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); } - throw new CdsParametersException("Entry schema is null for " + propertyName); } 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 94a477fe..39fa25a2 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 @@ public class ToscaMetadataCdsProcess extends ToscaMetadataProcess { obj.addProperty("title", workflowsEntry.getKey()); obj.add("properties", createInputPropertiesForPayload(workflowsEntry.getValue().getAsJsonObject(), - controllerProperties)); + controllerProperties, + workflowsEntry.getKey())); schemaAnyOf.add(obj); } } @@ -150,10 +152,12 @@ public class ToscaMetadataCdsProcess extends ToscaMetadataProcess { * @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 @@ public class ToscaMetadataCdsProcess extends ToscaMetadataProcess { "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> entrySet = inputs.entrySet(); for (Map.Entry 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 ee403065..c0e1c019 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 class OperationalPolicyRepresentationBuilder { 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 @@ public class OperationalPolicyRepresentationBuilder { 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 @@ public class OperationalPolicyRepresentationBuilder { * @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 @@ public class OperationalPolicyRepresentationBuilder { "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> entrySet = inputs.entrySet(); for (Map.Entry entry : entrySet) { String key = entry.getKey(); JsonObject inputProperty = inputs.getAsJsonObject(key); - if (inputProperty.get(TYPE) == null) { - addDataFields(entry.getValue().getAsJsonObject(), dataObj); + 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 @@ public class OperationalPolicyRepresentationBuilder { 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 @@ public class OperationalPolicyRepresentationBuilder { } 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 7f0e5760..f7774214 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 @@ public class ToscaConverterWithDictionarySupportItCase { @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 b90a2861..4f728b44 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 @@ public class OperationalPolicyRepresentationBuilderTest { @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 7e78bb06..2b649317 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 e46da676..115d79b1 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 5b373a45..07d851f3 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 d0f78cf1..7f76c6ca 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?connectionTimeToLive=5000/.file b/src/test/resources/http-cache/example/api/v1/blueprint-model/workflow-spec?connectionTimeToLive=5000/.file index 13d3feaa..9e616dfe 100644 --- a/src/test/resources/http-cache/example/api/v1/blueprint-model/workflow-spec?connectionTimeToLive=5000/.file +++ b/src/test/resources/http-cache/example/api/v1/blueprint-model/workflow-spec?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 591840b4..fea65843 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 00000000..2a656852 --- /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 688a09ab..1c0fe24b 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 f6713aff..4519d5c9 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 e8363b46..dc6c32fa 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 00000000..d972d0cb --- /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 dc47b44d..b55adbf5 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 + } + } + } } } }