SDNC Blueprints Processor Model Service 77/64577/1
authorSingal, Kapil (ks220y) <ks220y@att.com>
Wed, 5 Sep 2018 03:11:42 +0000 (23:11 -0400)
committerSingal, Kapil (ks220y) <ks220y@att.com>
Wed, 5 Sep 2018 03:11:42 +0000 (23:11 -0400)
Creating SDN Controller Blueprints Processor Model Service JUnit Tests - 2

Change-Id: I871401fc661a671beaec8319cb40d10b71a4093c
Issue-ID: CCSDK-516
Signed-off-by: Singal, Kapil (ks220y) <ks220y@att.com>
blueprints-processor/plugin/model-provider/src/test/resources/componentnode/default.json [new file with mode: 0644]
blueprints-processor/plugin/model-provider/src/test/resources/dictionary/dictionary_schema.json [new file with mode: 0644]
blueprints-processor/plugin/model-provider/src/test/resources/properties/convert.json [new file with mode: 0644]
blueprints-processor/plugin/model-provider/src/test/resources/properties/default.json [new file with mode: 0644]
blueprints-processor/plugin/model-provider/src/test/resources/service_templates/default.json [new file with mode: 0644]
blueprints-processor/plugin/model-provider/src/test/resources/service_templates/ra-content-with-mising-value.json [new file with mode: 0644]
blueprints-processor/plugin/model-provider/src/test/resources/service_templates/resource_assignment.json [new file with mode: 0644]
blueprints-processor/plugin/model-provider/src/test/resources/service_templates/velocity/base-config-template.vtl [new file with mode: 0644]
blueprints-processor/plugin/model-provider/src/test/resources/service_templates/velocity/licence-template.vtl [new file with mode: 0644]
blueprints-processor/plugin/model-provider/src/test/resources/service_templates/vrr_config.json [new file with mode: 0644]

diff --git a/blueprints-processor/plugin/model-provider/src/test/resources/componentnode/default.json b/blueprints-processor/plugin/model-provider/src/test/resources/componentnode/default.json
new file mode 100644 (file)
index 0000000..0129195
--- /dev/null
@@ -0,0 +1,100 @@
+{\r
+       "metadata": {\r
+               "author": "ks220y@att.com",\r
+               "vendor": "Juniper",\r
+               "os": "XXX",\r
+               "service-type": "AVPN",\r
+               "vnf-type": "VRR",\r
+               "action": "Base Configuration",\r
+               "sub-action": "Generate Configuration",\r
+               "service-template-name": "VRR-baseconfiguration",\r
+               "service-template-version": "1.0.0"\r
+       },\r
+       "topology_template": {\r
+               "inputs": {\r
+                       "service-instance-id": {\r
+                               "required": true,\r
+                               "type": "string"\r
+                       },\r
+                       "vnf-id": {\r
+                               "required": true,\r
+                               "type": "string"\r
+                       },\r
+                       "service": {\r
+                               "required": true,\r
+                               "type": "string"\r
+                       },\r
+                       "region": {\r
+                               "required": true,\r
+                               "type": "string"\r
+                       },\r
+                       "bundle-id": {\r
+                               "required": true,\r
+                               "type": "string"\r
+                       },\r
+                       "bundle-mac": {\r
+                               "required": true,\r
+                               "type": "string"\r
+                       }\r
+               },\r
+               "node_templates": {\r
+                       "generate-configuration": {\r
+                               "type": "mock-component-generateConfig",\r
+                               "interfaces": {\r
+                                       "org-onap-ccsdk-config-params-service-MockComponentNode": {\r
+                                               "operations": {\r
+                                                       "process": {\r
+                                                               "inputs": {\r
+                                                                       "entity-type": "vnf-type",\r
+                                                                       "template-content": "sample-template",\r
+                                                                       "entity-id": "{ \"get_input\" : \"vnf-id\" }"\r
+                                                               },\r
+                                                               "outputs": {\r
+                                                                       "mergedData": "merged Data",\r
+                                                                       "status": "status"\r
+                                                               }\r
+                                                       }\r
+                                               }\r
+                                       }\r
+                               }\r
+                       }\r
+               }\r
+       },\r
+       "node_types": {\r
+               "mock-component-generateConfig": {\r
+                       "interfaces": {\r
+                               "org-onap-ccsdk-config-params-service-MockComponentNode": {\r
+                                       "operations": {\r
+                                               "process": {\r
+                                                       "inputs": {\r
+                                                               "entity-type": {\r
+                                                                       "required": false,\r
+                                                                       "type": "string"\r
+                                                               },\r
+                                                               "template-content": {\r
+                                                                       "required": false,\r
+                                                                       "type": "string"\r
+                                                               },\r
+                                                               "entity-id": {\r
+                                                                       "required": true,\r
+                                                                       "type": "string"\r
+                                                               }\r
+                                                       },\r
+                                                       "outputs": {\r
+                                                               "generated-config": {\r
+                                                                       "required": true,\r
+                                                                       "type": "string"\r
+                                                               },\r
+                                                               "status": {\r
+                                                                       "required": true,\r
+                                                                       "type": "string"\r
+                                                               }\r
+                                                       }\r
+                                               }\r
+                                       }\r
+                               }\r
+                       },\r
+                       "derived_from": "tosca.nodes.Component"\r
+               }\r
+       }\r
+}\r
diff --git a/blueprints-processor/plugin/model-provider/src/test/resources/dictionary/dictionary_schema.json b/blueprints-processor/plugin/model-provider/src/test/resources/dictionary/dictionary_schema.json
new file mode 100644 (file)
index 0000000..dd297ab
--- /dev/null
@@ -0,0 +1,261 @@
+{\r
+       "type": "object",\r
+       "properties": {\r
+               "resource-path": {\r
+                       "type": "string",\r
+                       "required": true\r
+               },\r
+               "description": {\r
+                       "type": "string"\r
+               },\r
+               "updated-by": {\r
+                       "type": "string"\r
+               },\r
+               "data-type": {\r
+                       "type": "string",\r
+                       "required": true\r
+               },\r
+               "sources": {\r
+                       "type": "object",\r
+                       "required": true,\r
+                       "properties": {\r
+                               "input": {\r
+                                       "type": "object",\r
+                                       "properties": {\r
+                                               "key": {\r
+                                                       "type": "string"\r
+                                               }\r
+                                       }\r
+                               },\r
+                               "component": {\r
+                                       "type": "object",\r
+                                       "properties": {\r
+                                               "name": {\r
+                                                       "type": "string",\r
+                                                       "required": true\r
+                                               },\r
+                                               "input-key-mapping": {\r
+                                                       "type": "object",\r
+                                                       "additionalProperties": {\r
+                                                               "type": "string"\r
+                                                       }\r
+                                               },\r
+                                               "output-key-mapping": {\r
+                                                       "type": "object",\r
+                                                       "additionalProperties": {\r
+                                                               "type": "string"\r
+                                                       }\r
+                                               }\r
+                                       }\r
+                               },\r
+                               "default": {\r
+                                       "type": "any"\r
+                               },\r
+                               "aai": {\r
+                                       "type": "any"\r
+                               },\r
+                               "mdsal": {\r
+                                       "type": "object",\r
+                                       "properties": {\r
+                                               "path": {\r
+                                                       "type": "string",\r
+                                                       "required": true\r
+                                               },\r
+                                               "url-path": {\r
+                                                       "type": "string",\r
+                                                       "required": true\r
+                                               },\r
+                                               "input-key-mapping": {\r
+                                                       "type": "object",\r
+                                                       "additionalProperties": {\r
+                                                               "type": "string"\r
+                                                       }\r
+                                               },\r
+                                               "type": {\r
+                                                       "type": "string",\r
+                                                       "required": true\r
+                                               },\r
+                                               "output-key-mapping": {\r
+                                                       "type": "object",\r
+                                                       "additionalProperties": {\r
+                                                               "type": "string"\r
+                                                       }\r
+                                               },\r
+                                               "base": {\r
+                                                       "type": "string",\r
+                                                       "required": true\r
+                                               }\r
+                                       }\r
+                               },\r
+                               "network-resource-discovery": {\r
+                                       "type": "object",\r
+                                       "properties": {\r
+                                               "input-key-mapping": {\r
+                                                       "type": "object",\r
+                                                       "additionalProperties": {\r
+                                                               "type": "string"\r
+                                                       }\r
+                                               },\r
+                                               "output-key-mapping": {\r
+                                                       "type": "object",\r
+                                                       "additionalProperties": {\r
+                                                               "type": "string"\r
+                                                       }\r
+                                               }\r
+                                       }\r
+                               },\r
+                               "db": {\r
+                                       "type": "object",\r
+                                       "properties": {\r
+                                               "query": {\r
+                                                       "type": "string",\r
+                                                       "required": true\r
+                                               },\r
+                                               "input-key-mapping": {\r
+                                                       "type": "object",\r
+                                                       "additionalProperties": {\r
+                                                               "type": "string"\r
+                                                       }\r
+                                               },\r
+                                               "type": {\r
+                                                       "type": "string",\r
+                                                       "required": true\r
+                                               },\r
+                                               "output-key-mapping": {\r
+                                                       "type": "object",\r
+                                                       "additionalProperties": {\r
+                                                               "type": "string"\r
+                                                       }\r
+                                               },\r
+                                               "base": {\r
+                                                       "type": "string",\r
+                                                       "required": true\r
+                                               }\r
+                                       }\r
+                               },\r
+                               "policy": {\r
+                                       "type": "object",\r
+                                       "properties": {\r
+                                               "input-key-mapping": {\r
+                                                       "type": "object",\r
+                                                       "additionalProperties": {\r
+                                                               "type": "string"\r
+                                                       }\r
+                                               },\r
+                                               "output-key-mapping": {\r
+                                                       "type": "object",\r
+                                                       "additionalProperties": {\r
+                                                               "type": "string"\r
+                                                       }\r
+                                               }\r
+                                       }\r
+                               }\r
+                       }\r
+               },\r
+               "candidate-dependency": {\r
+                       "type": "object",\r
+                       "properties": {\r
+                               "input": {\r
+                                       "type": "object",\r
+                                       "properties": {\r
+                                               "names": {\r
+                                                       "type": "array",\r
+                                                       "items": {\r
+                                                               "type": "string"\r
+                                                       }\r
+                                               }\r
+                                       }\r
+                               },\r
+                               "component": {\r
+                                       "type": "object",\r
+                                       "properties": {\r
+                                               "names": {\r
+                                                       "type": "array",\r
+                                                       "items": {\r
+                                                               "type": "string"\r
+                                                       }\r
+                                               }\r
+                                       }\r
+                               },\r
+                               "aai": {\r
+                                       "type": "object",\r
+                                       "properties": {\r
+                                               "names": {\r
+                                                       "type": "array",\r
+                                                       "items": {\r
+                                                               "type": "string"\r
+                                                       }\r
+                                               }\r
+                                       }\r
+                               },\r
+                               "mdsal": {\r
+                                       "type": "object",\r
+                                       "properties": {\r
+                                               "names": {\r
+                                                       "type": "array",\r
+                                                       "items": {\r
+                                                               "type": "string"\r
+                                                       }\r
+                                               }\r
+                                       }\r
+                               },\r
+                               "network-resource-discovery": {\r
+                                       "type": "object",\r
+                                       "properties": {\r
+                                               "names": {\r
+                                                       "type": "array",\r
+                                                       "items": {\r
+                                                               "type": "string"\r
+                                                       }\r
+                                               }\r
+                                       }\r
+                               },\r
+                               "db": {\r
+                                       "type": "object",\r
+                                       "properties": {\r
+                                               "names": {\r
+                                                       "type": "array",\r
+                                                       "items": {\r
+                                                               "type": "string"\r
+                                                       }\r
+                                               }\r
+                                       }\r
+                               },\r
+                               "policy": {\r
+                                       "type": "object",\r
+                                       "properties": {\r
+                                               "names": {\r
+                                                       "type": "array",\r
+                                                       "items": {\r
+                                                               "type": "string"\r
+                                                       }\r
+                                               }\r
+                                       }\r
+                               }\r
+                       }\r
+               },\r
+               "tags": {\r
+                       "type": "string"\r
+               },\r
+               "default": {\r
+                       "type": "any"\r
+               },\r
+               "name": {\r
+                       "type": "string",\r
+                       "required": true\r
+               },\r
+               "valid-values": {\r
+                       "type": "string"\r
+               },\r
+               "resource-type": {\r
+                       "type": "string",\r
+                       "required": true\r
+               },\r
+               "sample-value": {\r
+                       "type": "string"\r
+               },\r
+               "entry-schema": {\r
+                       "type": "string"\r
+               }\r
+       }\r
+}\r
diff --git a/blueprints-processor/plugin/model-provider/src/test/resources/properties/convert.json b/blueprints-processor/plugin/model-provider/src/test/resources/properties/convert.json
new file mode 100644 (file)
index 0000000..cb7d08e
--- /dev/null
@@ -0,0 +1,33 @@
+{\r
+       "type": "sdnc-component-getResourceAssignment",\r
+       "interfaces": {\r
+               "ResourceAssignmentService": {\r
+                       "operations": {\r
+                               "getResourceAssignment": {\r
+                                       "inputs": {\r
+                                               "assignment-mappings": [\r
+                                                       {\r
+                                                               "name": "service-name",\r
+                                                               "mapping-field": "service",\r
+                                                               "mapping-category": "SDN",\r
+                                                               "required": true\r
+                                                       },\r
+                                                       {\r
+                                                               "name": "region-name",\r
+                                                               "mapping-field": "region",\r
+                                                               "mapping-category": "SDN",\r
+                                                               "required": true\r
+                                                       }\r
+                                               ],\r
+                                               "pre-data": "{ \"get_attribute\" : \"get-resource-assignment.config-params\" }",\r
+                                               "prifix": "get-resource-assignment"\r
+                                       },\r
+                                       "outputs": {\r
+                                               "resource-assignment-status": "success",\r
+                                               "resource-assignment-params": "{ \"set_value\" : \"get-resource-assignment.config-params\" }"\r
+                                       }\r
+                               }\r
+                       }\r
+               }\r
+       }\r
+}\r
diff --git a/blueprints-processor/plugin/model-provider/src/test/resources/properties/default.json b/blueprints-processor/plugin/model-provider/src/test/resources/properties/default.json
new file mode 100644 (file)
index 0000000..335a687
--- /dev/null
@@ -0,0 +1,16 @@
+{\r
+       "default": "{ \"get_input\" : \"loopback-default\" }",\r
+       "domain": "ethernet",\r
+       "criteria": [\r
+               {\r
+                       "value": "dummy301me1",\r
+                       "type": "complex",\r
+                       "nodeString": "layer3-service-list[].service-data.l3sdn-vnf-fields.vnf-name"\r
+               },\r
+               {\r
+                       "value": "{ \"get_input\" : \"host-ip-address\" }",\r
+                       "type": "simple",\r
+                       "nodeString": "layer3-service-list[].service-data.l3sdn-vnf-fields.vnf-name"\r
+               }\r
+       ]\r
+}\r
diff --git a/blueprints-processor/plugin/model-provider/src/test/resources/service_templates/default.json b/blueprints-processor/plugin/model-provider/src/test/resources/service_templates/default.json
new file mode 100644 (file)
index 0000000..a2fc775
--- /dev/null
@@ -0,0 +1,622 @@
+{\r
+       "tosca_definitions_version": "sdn_config_1_0_0",\r
+       "metadata": {\r
+               "author": "ks220y@att.com",\r
+               "service-template-name": "VRR-baseconfiguration",\r
+               "service-template-version": "1.0.0",\r
+               "release": "1802",\r
+               "service-type": "AVPN",\r
+               "vnf-type": "VRR"\r
+       },\r
+       "topology_template": {\r
+               "inputs": {\r
+                       "request-id": {\r
+                               "required": true,\r
+                               "type": "string"\r
+                       },\r
+                       "service-instance-id": {\r
+                               "required": true,\r
+                               "type": "string"\r
+                       },\r
+                       "action-name": {\r
+                               "required": true,\r
+                               "type": "string"\r
+                       },\r
+                       "scope-type": {\r
+                               "required": true,\r
+                               "type": "string"\r
+                       },\r
+                       "hostname": {\r
+                               "required": true,\r
+                               "type": "string"\r
+                       }\r
+               },\r
+               "node_templates": {\r
+                       "base-config-template": {\r
+                               "type": "artifact-config-template",\r
+                               "properties": {\r
+                                       "action-names": [\r
+                                               "resource-assignment-action"\r
+                                       ]\r
+                               },\r
+                               "capabilities": {\r
+                                       "content": {\r
+                                               "properties": {\r
+                                                       "content": "db://base-config-template"\r
+                                               }\r
+                                       },\r
+                                       "mapping": {\r
+                                               "properties": {\r
+                                                       "mapping": [\r
+                                                               {\r
+                                                                       "name": "vnf-id",\r
+                                                                       "input-param": true,\r
+                                                                       "property": {\r
+                                                                               "type": "string",\r
+                                                                               "required": true\r
+                                                                       },\r
+                                                                       "dictionary-name": "vnf-id",\r
+                                                                       "dictionary-source": "input"\r
+                                                               },\r
+                                                               {\r
+                                                                       "name": "group-name",\r
+                                                                       "input-param": true,\r
+                                                                       "property": {\r
+                                                                               "type": "string",\r
+                                                                               "required": true\r
+                                                                       },\r
+                                                                       "dictionary-name": "group-name",\r
+                                                                       "dictionary-source": "input"\r
+                                                               }\r
+                                                       ]\r
+                                               }\r
+                                       }\r
+                               }\r
+                       },\r
+                       "licence-template": {\r
+                               "type": "artifact-config-template",\r
+                               "properties": {\r
+                                       "action-names": [\r
+                                               "resource-assignment-action"\r
+                                       ]\r
+                               },\r
+                               "capabilities": {\r
+                                       "content": {\r
+                                               "properties": {\r
+                                                       "content": "db://licence-template"\r
+                                               }\r
+                                       },\r
+                                       "mapping": {\r
+                                               "properties": {\r
+                                                       "mapping": [\r
+                                                               {\r
+                                                                       "name": "bundle-id",\r
+                                                                       "input-param": true,\r
+                                                                       "property": {\r
+                                                                               "type": "string"\r
+                                                                       },\r
+                                                                       "dictionary-name": "bundle-id",\r
+                                                                       "dictionary-source": "input"\r
+                                                               },\r
+                                                               {\r
+                                                                       "name": "bundle-mac",\r
+                                                                       "input-param": true,\r
+                                                                       "property": {\r
+                                                                               "type": "string",\r
+                                                                               "required": true\r
+                                                                       },\r
+                                                                       "dictionary-name": "bundle-mac",\r
+                                                                       "dictionary-source": "input"\r
+                                                               }\r
+                                                       ]\r
+                                               }\r
+                                       }\r
+                               }\r
+                       },\r
+                       "resource-assignment-action": {\r
+                               "type": "dg-resource-assignment",\r
+                               "interfaces": {\r
+                                       "CONFIG": {\r
+                                               "operations": {\r
+                                                       "ResourceAssignment": {\r
+                                                               \r
+                                                       }\r
+                                               }\r
+                                       }\r
+                               },\r
+                               "capabilities": {\r
+                                       "dg-node": {\r
+                                               \r
+                                       }\r
+                               },\r
+                               "requirements": {\r
+                                       "component-dependency": {\r
+                                               "capability": "component-node",\r
+                                               "node": "resource-assignment",\r
+                                               "relationship": "tosca.relationships.DependsOn"\r
+                                       }\r
+                               }\r
+                       },\r
+                       "config-generator-action": {\r
+                               "type": "dg-config-generator",\r
+                               "interfaces": {\r
+                                       "CONFIG": {\r
+                                               "operations": {\r
+                                                       "GenerateConfiguration": {\r
+                                                               \r
+                                                       }\r
+                                               }\r
+                                       }\r
+                               },\r
+                               "capabilities": {\r
+                                       "dg-node": {\r
+                                               \r
+                                       }\r
+                               },\r
+                               "requirements": {\r
+                                       "component-dependency": {\r
+                                               "capability": "component-node",\r
+                                               "node": "generate-configuration",\r
+                                               "relationship": "tosca.relationships.DependsOn"\r
+                                       }\r
+                               }\r
+                       },\r
+                       "resource-assignment": {\r
+                               "type": "component-resource-assignment",\r
+                               "interfaces": {\r
+                                       "org-onap-ccsdk-config-assignment-service-ConfigAssignmentNode": {\r
+                                               "operations": {\r
+                                                       "process": {\r
+                                                               "inputs": {\r
+                                                                       "action-name": "{ \"get_input\" : \"action-name\" }",\r
+                                                                       "resource-type": "vnf-type",\r
+                                                                       "template-names": [\r
+                                                                               "base-config-template",\r
+                                                                               "licence-template"\r
+                                                                       ],\r
+                                                                       "request-id": "{ \"get_input\" : \"request-id\" }",\r
+                                                                       "resource-id": "{ \"get_input\" : \"vnf-id\" }"\r
+                                                               },\r
+                                                               "outputs": {\r
+                                                                       "resource-assignment-params": "",\r
+                                                                       "status": ""\r
+                                                               }\r
+                                                       }\r
+                                               }\r
+                                       }\r
+                               },\r
+                               "capabilities": {\r
+                                       "component-node": {\r
+                                               \r
+                                       }\r
+                               }\r
+                       },\r
+                       "generate-configuration": {\r
+                               "type": "component-config-generator",\r
+                               "interfaces": {\r
+                                       "org-onap-ccsdk-config-generator-service-ConfigGeneratorNode": {\r
+                                               "operations": {\r
+                                                       "process": {\r
+                                                               "inputs": {\r
+                                                                       "action-name": "{ \"get_input\" : \"action-name\" }",\r
+                                                                       "resource-type": "vnf-type",\r
+                                                                       "request-id": "{ \"get_input\" : \"request-id\" }",\r
+                                                                       "resource-id": "{ \"get_input\" : \"vnf-id\" }",\r
+                                                                       "template-name": "base-config-template"\r
+                                                               },\r
+                                                               "outputs": {\r
+                                                                       "generated-config": "",\r
+                                                                       "status": ""\r
+                                                               }\r
+                                                       }\r
+                                               }\r
+                                       }\r
+                               },\r
+                               "capabilities": {\r
+                                       "component-node": {\r
+                                               \r
+                                       }\r
+                               }\r
+                       }\r
+               }\r
+       },\r
+       "artifact_types": {\r
+               "artifact-template-velocity": {\r
+                       "description": " Velocity Template used for Configuration",\r
+                       "version": "1.0.0",\r
+                       "file_ext": [\r
+                               "vtl"\r
+                       ],\r
+                       "derived_from": "tosca.artifacts.Implementation"\r
+               },\r
+               "artifact-mapping-resource": {\r
+                       "description": " Velocity Template Resource Mapping File used along with Configuration template",\r
+                       "version": "1.0.0",\r
+                       "file_ext": [\r
+                               "json"\r
+                       ],\r
+                       "derived_from": "tosca.artifacts.Implementation"\r
+               },\r
+               "artifact-script-python": {\r
+                       "description": " Python Script Template used for Configuration",\r
+                       "version": "1.0.0",\r
+                       "file_ext": [\r
+                               "py"\r
+                       ],\r
+                       "derived_from": "tosca.artifacts.Implementation"\r
+               }\r
+       },\r
+       "node_types": {\r
+               "dg-resource-assignment": {\r
+                       "description": "This is Resource Assignment Directed Graph",\r
+                       "version": "1.0.0",\r
+                       "properties": {\r
+                               "mode": {\r
+                                       "required": false,\r
+                                       "type": "string",\r
+                                       "default": "sync"\r
+                               },\r
+                               "version": {\r
+                                       "required": false,\r
+                                       "type": "string",\r
+                                       "default": "LATEST"\r
+                               },\r
+                               "is-start-flow": {\r
+                                       "required": false,\r
+                                       "type": "boolean",\r
+                                       "default": "false"\r
+                               }\r
+                       },\r
+                       "capabilities": {\r
+                               "dg-node": {\r
+                                       "type": "tosca.capabilities.Node"\r
+                               },\r
+                               "content": {\r
+                                       "type": "tosca.capability.Content",\r
+                                       "properties": {\r
+                                               "type": {\r
+                                                       "required": false,\r
+                                                       "type": "string",\r
+                                                       "default": "json"\r
+                                               },\r
+                                               "content": {\r
+                                                       "required": true,\r
+                                                       "type": "string"\r
+                                               }\r
+                                       }\r
+                               }\r
+                       },\r
+                       "requirements": {\r
+                               "component-dependency": {\r
+                                       "capability": "component-node",\r
+                                       "node": "component-resource-assignment",\r
+                                       "relationship": "tosca.relationships.DependsOn"\r
+                               }\r
+                       },\r
+                       "interfaces": {\r
+                               "CONFIG": {\r
+                                       "operations": {\r
+                                               "ResourceAssignment": {\r
+                                                       "inputs": {\r
+                                                               "params": {\r
+                                                                       "required": false,\r
+                                                                       "type": "list",\r
+                                                                       "entry_schema": {\r
+                                                                               "type": "datatype-property"\r
+                                                                       }\r
+                                                               }\r
+                                                       }\r
+                                               }\r
+                                       }\r
+                               }\r
+                       },\r
+                       "derived_from": "tosca.nodes.DG"\r
+               },\r
+               "dg-config-generator": {\r
+                       "description": "This is Activate DG for Config Generator Directed Graph",\r
+                       "version": "1.0.0",\r
+                       "properties": {\r
+                               "mode": {\r
+                                       "required": false,\r
+                                       "type": "string",\r
+                                       "default": "sync"\r
+                               },\r
+                               "version": {\r
+                                       "required": false,\r
+                                       "type": "string",\r
+                                       "default": "LATEST"\r
+                               },\r
+                               "is-start-flow": {\r
+                                       "required": false,\r
+                                       "type": "boolean",\r
+                                       "default": "false"\r
+                               }\r
+                       },\r
+                       "capabilities": {\r
+                               "dg-node": {\r
+                                       "type": "tosca.capabilities.Node"\r
+                               },\r
+                               "content": {\r
+                                       "type": "tosca.capability.Content",\r
+                                       "properties": {\r
+                                               "type": {\r
+                                                       "required": false,\r
+                                                       "type": "string",\r
+                                                       "default": "json"\r
+                                               },\r
+                                               "content": {\r
+                                                       "required": true,\r
+                                                       "type": "string"\r
+                                               }\r
+                                       }\r
+                               }\r
+                       },\r
+                       "requirements": {\r
+                               "component-dependency": {\r
+                                       "capability": "component-node",\r
+                                       "node": "component-config-generator",\r
+                                       "relationship": "tosca.relationships.DependsOn"\r
+                               }\r
+                       },\r
+                       "interfaces": {\r
+                               "CONFIG": {\r
+                                       "operations": {\r
+                                               "GenerateConfiguration": {\r
+                                                       "inputs": {\r
+                                                               "params": {\r
+                                                                       "required": false,\r
+                                                                       "type": "list",\r
+                                                                       "entry_schema": {\r
+                                                                               "type": "datatype-property"\r
+                                                                       }\r
+                                                               }\r
+                                                       }\r
+                                               }\r
+                                       }\r
+                               }\r
+                       },\r
+                       "derived_from": "tosca.nodes.DG"\r
+               },\r
+               "artifact-config-template": {\r
+                       "description": "This is Configuration Velocity Template",\r
+                       "version": "1.0.0",\r
+                       "properties": {\r
+                               "action-names": {\r
+                                       "required": true,\r
+                                       "type": "list",\r
+                                       "entry_schema": {\r
+                                               "type": "string"\r
+                                       }\r
+                               },\r
+                               "content": {\r
+                                       "required": false,\r
+                                       "type": "string"\r
+                               },\r
+                               "mapping": {\r
+                                       "required": false,\r
+                                       "type": "list",\r
+                                       "entry_schema": {\r
+                                               "type": "datatype-resource-assignment"\r
+                                       }\r
+                               }\r
+                       },\r
+                       "capabilities": {\r
+                               "content": {\r
+                                       "type": "tosca.capability.Content",\r
+                                       "properties": {\r
+                                               "content": {\r
+                                                       "required": true,\r
+                                                       "type": "string"\r
+                                               }\r
+                                       }\r
+                               },\r
+                               "mapping": {\r
+                                       "type": "tosca.capability.Mapping",\r
+                                       "properties": {\r
+                                               "mapping": {\r
+                                                       "required": false,\r
+                                                       "type": "list",\r
+                                                       "entry_schema": {\r
+                                                               "type": "datatype-resource-assignment"\r
+                                                       }\r
+                                               }\r
+                                       }\r
+                               }\r
+                       },\r
+                       "derived_from": "tosca.nodes.Artifact"\r
+               },\r
+               "component-resource-assignment": {\r
+                       "description": "This is Resource Assignment Component API",\r
+                       "version": "1.0.0",\r
+                       "capabilities": {\r
+                               "component-node": {\r
+                                       "type": "tosca.capabilities.Node"\r
+                               }\r
+                       },\r
+                       "interfaces": {\r
+                               "org-onap-ccsdk-config-assignment-service-ConfigAssignmentNode": {\r
+                                       "operations": {\r
+                                               "process": {\r
+                                                       "inputs": {\r
+                                                               "action-name": {\r
+                                                                       "description": "Action Name to get from Database, Either (message & mask-info ) or ( resource-id & resource-type & action-name & template-name ) should be present. Message will be given higest priority",\r
+                                                                       "required": false,\r
+                                                                       "type": "string"\r
+                                                               },\r
+                                                               "handler-name": {\r
+                                                                       "description": "Name of the Artifact Node Template, to get the template Content. If template-content is present, then content wont be reterived from the Artifact Node Template.",\r
+                                                                       "required": true,\r
+                                                                       "type": "string"\r
+                                                               },\r
+                                                               "resource-type": {\r
+                                                                       "required": false,\r
+                                                                       "type": "string"\r
+                                                               },\r
+                                                               "template-names": {\r
+                                                                       "description": "Name of the Artifact Node Templates, to get the template Content.",\r
+                                                                       "required": true,\r
+                                                                       "type": "list",\r
+                                                                       "entry_schema": {\r
+                                                                               "type": "string"\r
+                                                                       }\r
+                                                               },\r
+                                                               "request-id": {\r
+                                                                       "description": "Request Id used to store the generated configuration, in the database along with the template-name",\r
+                                                                       "required": true,\r
+                                                                       "type": "string"\r
+                                                               },\r
+                                                               "resource-id": {\r
+                                                                       "description": "Id used to pull the data content from the data base. Either template-data or resource-id should be present",\r
+                                                                       "required": true,\r
+                                                                       "type": "string"\r
+                                                               }\r
+                                                       },\r
+                                                       "outputs": {\r
+                                                               "resource-assignment-params": {\r
+                                                                       "required": true,\r
+                                                                       "type": "string"\r
+                                                               },\r
+                                                               "status": {\r
+                                                                       "required": true,\r
+                                                                       "type": "string"\r
+                                                               }\r
+                                                       }\r
+                                               }\r
+                                       }\r
+                               }\r
+                       },\r
+                       "derived_from": "tosca.nodes.Component"\r
+               },\r
+               "component-config-generator": {\r
+                       "description": "This is Generate Configuration Component API",\r
+                       "version": "1.0.0",\r
+                       "capabilities": {\r
+                               "component-node": {\r
+                                       "type": "tosca.capabilities.Node"\r
+                               }\r
+                       },\r
+                       "interfaces": {\r
+                               "org-onap-ccsdk-config-generator-service-ConfigGeneratorNode": {\r
+                                       "operations": {\r
+                                               "process": {\r
+                                                       "inputs": {\r
+                                                               "template-data": {\r
+                                                                       "description": "Conditional : JSON string which is used to mash with template. Either template-data or ( resource-id and resource-type ) should be present",\r
+                                                                       "required": false,\r
+                                                                       "type": "string"\r
+                                                               },\r
+                                                               "action-name": {\r
+                                                                       "description": "Conditional : Action Name to get from Database, Either (message & mask-info ) or ( resource-id & resource-type & action-name & template-name ) should be present. Message will be given higest priority",\r
+                                                                       "required": false,\r
+                                                                       "type": "string"\r
+                                                               },\r
+                                                               "template-content": {\r
+                                                                       "description": "Conditional : Dynamic Template used to generate Configuration.",\r
+                                                                       "required": false,\r
+                                                                       "type": "string"\r
+                                                               },\r
+                                                               "resource-type": {\r
+                                                                       "description": "Conditional : resource-type used to pull the data content from the data base. Either template-data or ( resource-id and resource-type ) should be present",\r
+                                                                       "required": false,\r
+                                                                       "type": "string"\r
+                                                               },\r
+                                                               "request-id": {\r
+                                                                       "description": "Request Id used to store the generated configuration, in the database along with the template-name",\r
+                                                                       "required": true,\r
+                                                                       "type": "string"\r
+                                                               },\r
+                                                               "resource-id": {\r
+                                                                       "description": "Conditional : Id used to pull the data content from the data base. Either template-data or ( resource-id and resource-type ) should be present",\r
+                                                                       "required": false,\r
+                                                                       "type": "string"\r
+                                                               },\r
+                                                               "template-name": {\r
+                                                                       "description": "Conditional : Name of the Artifact Node Template, to get the template Content. If template-content is present, then content wont be reterived from the Artifact Node Template.",\r
+                                                                       "required": true,\r
+                                                                       "type": "string"\r
+                                                               }\r
+                                                       },\r
+                                                       "outputs": {\r
+                                                               "generated-config": {\r
+                                                                       "description": "Generated Configuration for the Template adn Resource Data",\r
+                                                                       "required": true,\r
+                                                                       "type": "string"\r
+                                                               },\r
+                                                               "mask-info": {\r
+                                                                       "description": "If template contains mask encription keys, then this mask-info field will be generated, This JSON Content alligns to the bean org.onap.ccsdk.config.model.data.custom.MaskInfo ",\r
+                                                                       "required": false,\r
+                                                                       "type": "string"\r
+                                                               },\r
+                                                               "status": {\r
+                                                                       "description": "Status of the Component Execution ( success or failure )",\r
+                                                                       "required": true,\r
+                                                                       "type": "string"\r
+                                                               }\r
+                                                       }\r
+                                               }\r
+                                       }\r
+                               }\r
+                       },\r
+                       "derived_from": "tosca.nodes.Component"\r
+               }\r
+       },\r
+       "data_types": {\r
+               "datatype-resource-assignment": {\r
+                       "version": "1.0.0",\r
+                       "description": "This is Resource Assignment Data Type",\r
+                       "properties": {\r
+                               "property": {\r
+                                       "required": true,\r
+                                       "type": "datatype-property"\r
+                               },\r
+                               "input-param": {\r
+                                       "required": true,\r
+                                       "type": "boolean"\r
+                               },\r
+                               "dictionary-name": {\r
+                                       "required": false,\r
+                                       "type": "string"\r
+                               },\r
+                               "dictionary-source": {\r
+                                       "required": false,\r
+                                       "type": "string"\r
+                               },\r
+                               "dependencies": {\r
+                                       "required": true,\r
+                                       "type": "list",\r
+                                       "entry_schema": {\r
+                                               "type": "string"\r
+                                       }\r
+                               }\r
+                       },\r
+                       "derived_from": "tosca.datatypes.Root"\r
+               },\r
+               "datatype-property": {\r
+                       "version": "1.0.0",\r
+                       "description": "This is Entry point Input Data Type, which is dynamic datatype, The parameter names will be populated during the Design time for each inputs",\r
+                       "properties": {\r
+                               "type": {\r
+                                       "required": true,\r
+                                       "type": "string"\r
+                               },\r
+                               "description": {\r
+                                       "required": false,\r
+                                       "type": "string"\r
+                               },\r
+                               "required": {\r
+                                       "required": false,\r
+                                       "type": "boolean"\r
+                               },\r
+                               "default": {\r
+                                       "required": false,\r
+                                       "type": "string"\r
+                               },\r
+                               "entry_schema": {\r
+                                       "required": false,\r
+                                       "type": "string"\r
+                               }\r
+                       },\r
+                       "derived_from": "tosca.datatypes.Root"\r
+               }\r
+       }\r
+}\r
diff --git a/blueprints-processor/plugin/model-provider/src/test/resources/service_templates/ra-content-with-mising-value.json b/blueprints-processor/plugin/model-provider/src/test/resources/service_templates/ra-content-with-mising-value.json
new file mode 100644 (file)
index 0000000..72332d1
--- /dev/null
@@ -0,0 +1,265 @@
+[\r
+       {\r
+               "name": "security-manager-resource-key",\r
+               "input-param": true,\r
+               "property": {\r
+                       "type": "string",\r
+                       "required": true\r
+               },\r
+               "dictionary-name": "security-manager-resource-key",\r
+               "dictionary-source": "input"\r
+       },\r
+       {\r
+               "name": "security-manager-resource-name",\r
+               "input-param": true,\r
+               "property": {\r
+                       "type": "string",\r
+                       "required": true\r
+               },\r
+               "dictionary-name": "security-manager-resource-name",\r
+               "dictionary-source": "input"\r
+       },\r
+       {\r
+               "name": "snmp-server-ipv4-addresses",\r
+               "input-param": true,\r
+               "property": {\r
+                       "type": "list",\r
+                       "required": true,\r
+                       "entry_schema": {\r
+                               "type": "string"\r
+                       }\r
+               },\r
+               "dictionary-name": "snmp-server-ipv4-addresses",\r
+               "dictionary-source": "network-resource-discovery",\r
+               "dependencies": [\r
+                       "asn-region",\r
+                       "complex-code"\r
+               ]\r
+       },\r
+       {\r
+               "name": "snmp-community",\r
+               "input-param": true,\r
+               "property": {\r
+                       "type": "string",\r
+                       "required": true\r
+               },\r
+               "dictionary-name": "snmp-community",\r
+               "dictionary-source": "nsm",\r
+               "dependencies": [\r
+                       "security-manager-resource-name",\r
+                       "security-manager-resource-key"\r
+               ],\r
+               "version": 0\r
+       },\r
+       {\r
+               "name": "lo0-local-ipv4-address",\r
+               "property": {\r
+                       "description": "",\r
+                       "required": true,\r
+                       "type": "string",\r
+                       "status": "",\r
+                       "constraints": [\r
+                               {\r
+                                       \r
+                               }\r
+                       ],\r
+                       "value": {\r
+                               \r
+                       },\r
+                       "entry_schema": {\r
+                               "type": ""\r
+                       }\r
+               },\r
+               "input-param": false,\r
+               "dictionary-name": "lo0-local-ipv4-address",\r
+               "dictionary-source": "network-resource-discovery",\r
+               "dependencies": [\r
+                       "hostname"\r
+               ],\r
+               "version": 0\r
+       },\r
+       {\r
+               "name": "adig-urlb-route-reflectors",\r
+               "property": {\r
+                       "description": "",\r
+                       "required": true,\r
+                       "type": "list",\r
+                       "status": "",\r
+                       "constraints": [\r
+                               {\r
+                                       \r
+                               }\r
+                       ],\r
+                       "value": {\r
+                               \r
+                       },\r
+                       "entry_schema": {\r
+                               "type": "dt-adig-urlb-route-reflectors"\r
+                       }\r
+               },\r
+               "input-param": false,\r
+               "dictionary-name": "adig-urlb-route-reflectors",\r
+               "dictionary-source": "network-resource-discovery",\r
+               "dependencies": [\r
+                       "region"\r
+               ],\r
+               "version": 0\r
+       },\r
+       {\r
+               "name": "bundle-id",\r
+               "property": {\r
+                       "description": "",\r
+                       "required": true,\r
+                       "type": "string",\r
+                       "status": "",\r
+                       "constraints": [\r
+                               {\r
+                                       \r
+                               }\r
+                       ],\r
+                       "value": {\r
+                               \r
+                       },\r
+                       "entry_schema": {\r
+                               "type": ""\r
+                       }\r
+               },\r
+               "input-param": false,\r
+               "dictionary-name": "bundle-id",\r
+               "dictionary-source": "network-resource-discovery",\r
+               "dependencies": [\r
+                       "hostname"\r
+               ],\r
+               "version": 0\r
+       },\r
+       {\r
+               "name": "uplink-1-unit",\r
+               "property": {\r
+                       "description": "",\r
+                       "required": true,\r
+                       "type": "integer",\r
+                       "status": "",\r
+                       "constraints": [\r
+                               {\r
+                                       \r
+                               }\r
+                       ],\r
+                       "value": {\r
+                               \r
+                       },\r
+                       "entry_schema": {\r
+                               "type": ""\r
+                       }\r
+               },\r
+               "input-param": false,\r
+               "dictionary-name": "uplink-1-unit",\r
+               "dictionary-source": "network-resource-discovery",\r
+               "dependencies": [\r
+                       "hostname"\r
+               ],\r
+               "version": 0\r
+       },\r
+       {\r
+               "name": "uplink-2-unit",\r
+               "property": {\r
+                       "description": "",\r
+                       "required": true,\r
+                       "type": "integer",\r
+                       "status": "",\r
+                       "constraints": [\r
+                               {\r
+                                       \r
+                               }\r
+                       ],\r
+                       "value": {\r
+                               \r
+                       },\r
+                       "entry_schema": {\r
+                               "type": ""\r
+                       }\r
+               },\r
+               "input-param": false,\r
+               "dictionary-name": "uplink-2-unit",\r
+               "dictionary-source": "network-resource-discovery",\r
+               "dependencies": [\r
+                       "hostname"\r
+               ],\r
+               "version": 0\r
+       },\r
+       {\r
+               "name": "lo10-local-ipv4-address",\r
+               "property": {\r
+                       "description": "",\r
+                       "required": true,\r
+                       "type": "string",\r
+                       "status": "",\r
+                       "constraints": [\r
+                               {\r
+                                       \r
+                               }\r
+                       ],\r
+                       "value": {\r
+                               \r
+                       },\r
+                       "entry_schema": {\r
+                               "type": ""\r
+                       }\r
+               },\r
+               "input-param": false,\r
+               "dictionary-name": "lo10-local-ipv4-address",\r
+               "dictionary-source": "network-resource-discovery",\r
+               "dependencies": [\r
+                       "hostname"\r
+               ],\r
+               "version": 0\r
+       },\r
+       {\r
+               "name": "complex-code",\r
+               "property": {\r
+                       "required": true,\r
+                       "type": "string"\r
+               },\r
+               "dictionary-name": "complex-code",\r
+               "dictionary-source": "network-resource-discovery",\r
+               "dependencies": [\r
+                       "hostname"\r
+               ],\r
+               "version": 0\r
+       },\r
+       {\r
+               "name": "country-code",\r
+               "property": {\r
+                       "required": true,\r
+                       "type": "string"\r
+               },\r
+               "dictionary-name": "country-code",\r
+               "dictionary-source": "network-resource-discovery",\r
+               "dependencies": [\r
+                       "hostname"\r
+               ],\r
+               "version": 0\r
+       },\r
+       {\r
+               "name": "hostname",\r
+               "property": {\r
+                       "required": true,\r
+                       "type": "string"\r
+               },\r
+               "dictionary-name": "hostname",\r
+               "dictionary-source": "input",\r
+               "version": 0\r
+       },\r
+       {\r
+               "name": "region",\r
+               "property": {\r
+                       "required": true,\r
+                       "type": "string"\r
+               },\r
+               "dictionary-name": "region",\r
+               "dictionary-source": "network-resource-discovery",\r
+               "dependencies": [\r
+                       "hostname"\r
+               ],\r
+               "version": 0\r
+       }\r
+]
\ No newline at end of file
diff --git a/blueprints-processor/plugin/model-provider/src/test/resources/service_templates/resource_assignment.json b/blueprints-processor/plugin/model-provider/src/test/resources/service_templates/resource_assignment.json
new file mode 100644 (file)
index 0000000..030af7b
--- /dev/null
@@ -0,0 +1,407 @@
+{\r
+       "metadata": {\r
+               "author": "ks220y@att.com",\r
+               "service-template-name": "VRR-baseconfiguration",\r
+               "service-template-version": "1.0.0",\r
+               "release": "1802",\r
+               "service-type": "AVPN",\r
+               "vnf-type": "VRR"\r
+       },\r
+       "topology_template": {\r
+               "inputs": {\r
+                       "request-id": {\r
+                               "required": true,\r
+                               "type": "string"\r
+                       },\r
+                       "service-instance-id": {\r
+                               "required": true,\r
+                               "type": "string"\r
+                       },\r
+                       "action-name": {\r
+                               "required": true,\r
+                               "type": "string"\r
+                       },\r
+                       "scope-type": {\r
+                               "required": true,\r
+                               "type": "string"\r
+                       },\r
+                       "hostname": {\r
+                               "required": true,\r
+                               "type": "string"\r
+                       }\r
+               },\r
+               "node_templates": {\r
+                       "base-config-template": {\r
+                               "type": "artifact-config-template",\r
+                               "properties": {\r
+                                       "action-names": [\r
+                                               "resource-assignment-action"\r
+                                       ]\r
+                               },\r
+                               "capabilities": {\r
+                                       "content": {\r
+                                               "properties": {\r
+                                                       "content": "db://base-config-template"\r
+                                               }\r
+                                       },\r
+                                       "mapping": {\r
+                                               "properties": {\r
+                                                       "mapping": [\r
+                                                               {\r
+                                                                       "name": "vnf-id",\r
+                                                                       "input-param": true,\r
+                                                                       "property": {\r
+                                                                               "type": "string",\r
+                                                                               "required": true\r
+                                                                       },\r
+                                                                       "dictionary-name": "vnf-id",\r
+                                                                       "dictionary-source": "input"\r
+                                                               },\r
+                                                               {\r
+                                                                       "name": "group-name",\r
+                                                                       "input-param": true,\r
+                                                                       "property": {\r
+                                                                               "type": "string",\r
+                                                                               "required": true\r
+                                                                       },\r
+                                                                       "dictionary-name": "group-name",\r
+                                                                       "dictionary-source": "input"\r
+                                                               }\r
+                                                       ]\r
+                                               }\r
+                                       }\r
+                               }\r
+                       },\r
+                       "resource-assignment-action": {\r
+                               "type": "dg-resource-assignment",\r
+                               "interfaces": {\r
+                                       "CONFIG": {\r
+                                               "operations": {\r
+                                                       "ResourceAssignment": {\r
+                                                               \r
+                                                       }\r
+                                               }\r
+                                       }\r
+                               },\r
+                               "capabilities": {\r
+                                       "dg-node": {\r
+                                               \r
+                                       }\r
+                               },\r
+                               "requirements": {\r
+                                       "component-dependency": {\r
+                                               "capability": "component-node",\r
+                                               "node": "resource-assignment",\r
+                                               "relationship": "tosca.relationships.DependsOn"\r
+                                       }\r
+                               }\r
+                       },\r
+                       "licence-template": {\r
+                               "type": "artifact-config-template",\r
+                               "properties": {\r
+                                       "action-names": [\r
+                                               "resource-assignment-action"\r
+                                       ]\r
+                               },\r
+                               "capabilities": {\r
+                                       "content": {\r
+                                               "properties": {\r
+                                                       "content": "db://licence-template"\r
+                                               }\r
+                                       },\r
+                                       "mapping": {\r
+                                               "properties": {\r
+                                                       "mapping": [\r
+                                                               {\r
+                                                                       "name": "bundle-id",\r
+                                                                       "input-param": true,\r
+                                                                       "property": {\r
+                                                                               "type": "string"\r
+                                                                       },\r
+                                                                       "dictionary-name": "bundle-id",\r
+                                                                       "dictionary-source": "input"\r
+                                                               },\r
+                                                               {\r
+                                                                       "name": "bundle-mac",\r
+                                                                       "input-param": true,\r
+                                                                       "property": {\r
+                                                                               "type": "string",\r
+                                                                               "required": true\r
+                                                                       },\r
+                                                                       "dictionary-name": "bundle-mac",\r
+                                                                       "dictionary-source": "input"\r
+                                                               }\r
+                                                       ]\r
+                                               }\r
+                                       }\r
+                               }\r
+                       },\r
+                       "resource-assignment": {\r
+                               "type": "component-resource-assignment",\r
+                               "interfaces": {\r
+                                       "org-onap-ccsdk-config-assignment-service-ConfigAssignmentNode": {\r
+                                               "operations": {\r
+                                                       "process": {\r
+                                                               "inputs": {\r
+                                                                       "action-name": "{ \"get_input\" : \"action-name\" }",\r
+                                                                       "resource-type": "vnf-type",\r
+                                                                       "template-names": [\r
+                                                                               "base-config-template",\r
+                                                                               "licence-template"\r
+                                                                       ],\r
+                                                                       "request-id": "{ \"get_input\" : \"request-id\" }",\r
+                                                                       "resource-id": "{ \"get_input\" : \"vnf-id\" }"\r
+                                                               },\r
+                                                               "outputs": {\r
+                                                                       "resource-assignment-params": "",\r
+                                                                       "status": ""\r
+                                                               }\r
+                                                       }\r
+                                               }\r
+                                       }\r
+                               },\r
+                               "capabilities": {\r
+                                       "component-node": {\r
+                                               \r
+                                       }\r
+                               }\r
+                       }\r
+               }\r
+       },\r
+       "node_types": {\r
+               "dg-resource-assignment": {\r
+                       "description": "This is Resource Assignment Directed Graph",\r
+                       "version": "1.0.0",\r
+                       "properties": {\r
+                               "mode": {\r
+                                       "required": false,\r
+                                       "type": "string",\r
+                                       "default": "sync"\r
+                               },\r
+                               "version": {\r
+                                       "required": false,\r
+                                       "type": "string",\r
+                                       "default": "LATEST"\r
+                               },\r
+                               "is-start-flow": {\r
+                                       "required": false,\r
+                                       "type": "boolean",\r
+                                       "default": "false"\r
+                               }\r
+                       },\r
+                       "capabilities": {\r
+                               "dg-node": {\r
+                                       "type": "tosca.capabilities.Node"\r
+                               },\r
+                               "content": {\r
+                                       "type": "tosca.capability.Content",\r
+                                       "properties": {\r
+                                               "type": {\r
+                                                       "required": false,\r
+                                                       "type": "string",\r
+                                                       "default": "json"\r
+                                               },\r
+                                               "content": {\r
+                                                       "required": true,\r
+                                                       "type": "string"\r
+                                               }\r
+                                       }\r
+                               }\r
+                       },\r
+                       "requirements": {\r
+                               "component-dependency": {\r
+                                       "capability": "component-node",\r
+                                       "node": "component-resource-assignment",\r
+                                       "relationship": "tosca.relationships.DependsOn"\r
+                               }\r
+                       },\r
+                       "interfaces": {\r
+                               "CONFIG": {\r
+                                       "operations": {\r
+                                               "ResourceAssignment": {\r
+                                                       "inputs": {\r
+                                                               "params": {\r
+                                                                       "required": false,\r
+                                                                       "type": "list",\r
+                                                                       "entry_schema": {\r
+                                                                               "type": "datatype-property"\r
+                                                                       }\r
+                                                               }\r
+                                                       }\r
+                                               }\r
+                                       }\r
+                               }\r
+                       },\r
+                       "derived_from": "tosca.nodes.DG"\r
+               },\r
+               "component-resource-assignment": {\r
+                       "description": "This is Resource Assignment Component API",\r
+                       "version": "1.0.0",\r
+                       "capabilities": {\r
+                               "component-node": {\r
+                                       "type": "tosca.capabilities.Node"\r
+                               }\r
+                       },\r
+                       "interfaces": {\r
+                               "org-onap-ccsdk-config-assignment-service-ConfigAssignmentNode": {\r
+                                       "operations": {\r
+                                               "process": {\r
+                                                       "inputs": {\r
+                                                               "action-name": {\r
+                                                                       "description": "Action Name to get from Database, Either (message & mask-info ) or ( resource-id & resource-type & action-name & template-name ) should be present. Message will be given higest priority",\r
+                                                                       "required": false,\r
+                                                                       "type": "string"\r
+                                                               },\r
+                                                               "handler-name": {\r
+                                                                       "description": "Name of the Artifact Node Template, to get the template Content. If template-content is present, then content wont be reterived from the Artifact Node Template.",\r
+                                                                       "required": true,\r
+                                                                       "type": "string"\r
+                                                               },\r
+                                                               "resource-type": {\r
+                                                                       "required": false,\r
+                                                                       "type": "string"\r
+                                                               },\r
+                                                               "template-names": {\r
+                                                                       "description": "Name of the Artifact Node Templates, to get the template Content.",\r
+                                                                       "required": true,\r
+                                                                       "type": "list",\r
+                                                                       "entry_schema": {\r
+                                                                               "type": "string"\r
+                                                                       }\r
+                                                               },\r
+                                                               "request-id": {\r
+                                                                       "description": "Request Id used to store the generated configuration, in the database along with the template-name",\r
+                                                                       "required": true,\r
+                                                                       "type": "string"\r
+                                                               },\r
+                                                               "resource-id": {\r
+                                                                       "description": "Id used to pull the data content from the data base. Either template-data or resource-id should be present",\r
+                                                                       "required": true,\r
+                                                                       "type": "string"\r
+                                                               }\r
+                                                       },\r
+                                                       "outputs": {\r
+                                                               "resource-assignment-params": {\r
+                                                                       "required": true,\r
+                                                                       "type": "string"\r
+                                                               },\r
+                                                               "status": {\r
+                                                                       "required": true,\r
+                                                                       "type": "string"\r
+                                                               }\r
+                                                       }\r
+                                               }\r
+                                       }\r
+                               }\r
+                       },\r
+                       "derived_from": "tosca.nodes.Component"\r
+               },\r
+               "artifact-config-template": {\r
+                       "description": "This is Configuration Velocity Template",\r
+                       "version": "1.0.0",\r
+                       "properties": {\r
+                               "action-names": {\r
+                                       "required": true,\r
+                                       "type": "list",\r
+                                       "entry_schema": {\r
+                                               "type": "string"\r
+                                       }\r
+                               },\r
+                               "content": {\r
+                                       "required": false,\r
+                                       "type": "string"\r
+                               },\r
+                               "mapping": {\r
+                                       "required": false,\r
+                                       "type": "list",\r
+                                       "entry_schema": {\r
+                                               "type": "datatype-resource-assignment"\r
+                                       }\r
+                               }\r
+                       },\r
+                       "capabilities": {\r
+                               "content": {\r
+                                       "type": "tosca.capability.Content",\r
+                                       "properties": {\r
+                                               "content": {\r
+                                                       "required": true,\r
+                                                       "type": "string"\r
+                                               }\r
+                                       }\r
+                               },\r
+                               "mapping": {\r
+                                       "type": "tosca.capability.Mapping",\r
+                                       "properties": {\r
+                                               "mapping": {\r
+                                                       "required": false,\r
+                                                       "type": "list",\r
+                                                       "entry_schema": {\r
+                                                               "type": "datatype-resource-assignment"\r
+                                                       }\r
+                                               }\r
+                                       }\r
+                               }\r
+                       },\r
+                       "derived_from": "tosca.nodes.Artifact"\r
+               }\r
+       },\r
+       "data_types": {\r
+               "datatype-resource-assignment": {\r
+                       "version": "1.0.0",\r
+                       "description": "This is Resource Assignment Data Type",\r
+                       "properties": {\r
+                               "property": {\r
+                                       "required": true,\r
+                                       "type": "datatype-property"\r
+                               },\r
+                               "input-param": {\r
+                                       "required": true,\r
+                                       "type": "boolean"\r
+                               },\r
+                               "dictionary-name": {\r
+                                       "required": false,\r
+                                       "type": "string"\r
+                               },\r
+                               "dictionary-source": {\r
+                                       "required": false,\r
+                                       "type": "string"\r
+                               },\r
+                               "dependencies": {\r
+                                       "required": true,\r
+                                       "type": "list",\r
+                                       "entry_schema": {\r
+                                               "type": "string"\r
+                                       }\r
+                               }\r
+                       },\r
+                       "derived_from": "tosca.datatypes.Root"\r
+               },\r
+               "datatype-property": {\r
+                       "version": "1.0.0",\r
+                       "description": "This is Entry point Input Data Type, which is dynamic datatype, The parameter names will be populated during the Design time for each inputs",\r
+                       "properties": {\r
+                               "type": {\r
+                                       "required": true,\r
+                                       "type": "string"\r
+                               },\r
+                               "description": {\r
+                                       "required": false,\r
+                                       "type": "string"\r
+                               },\r
+                               "required": {\r
+                                       "required": false,\r
+                                       "type": "boolean"\r
+                               },\r
+                               "default": {\r
+                                       "required": false,\r
+                                       "type": "string"\r
+                               },\r
+                               "entry_schema": {\r
+                                       "required": false,\r
+                                       "type": "string"\r
+                               }\r
+                       },\r
+                       "derived_from": "tosca.datatypes.Root"\r
+               }\r
+       }\r
+}\r
diff --git a/blueprints-processor/plugin/model-provider/src/test/resources/service_templates/velocity/base-config-template.vtl b/blueprints-processor/plugin/model-provider/src/test/resources/service_templates/velocity/base-config-template.vtl
new file mode 100644 (file)
index 0000000..ce7745b
--- /dev/null
@@ -0,0 +1 @@
+This is sample Base Configuration for ${bundle-id} for ${bundle-mac}
\ No newline at end of file
diff --git a/blueprints-processor/plugin/model-provider/src/test/resources/service_templates/velocity/licence-template.vtl b/blueprints-processor/plugin/model-provider/src/test/resources/service_templates/velocity/licence-template.vtl
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/blueprints-processor/plugin/model-provider/src/test/resources/service_templates/vrr_config.json b/blueprints-processor/plugin/model-provider/src/test/resources/service_templates/vrr_config.json
new file mode 100644 (file)
index 0000000..525136f
--- /dev/null
@@ -0,0 +1,171 @@
+{\r
+       "metadata": {\r
+               "author": "ks220y@att.com",\r
+               "service-template-name": "VRR-baseconfiguration",\r
+               "service-template-version": "1.0.0",\r
+               "release": "1802",\r
+               "service-type": "AVPN",\r
+               "vnf-type": "VRR"\r
+       },\r
+       "topology_template": {\r
+               "inputs": {\r
+                       "request-id": {\r
+                               "required": true,\r
+                               "type": "string"\r
+                       },\r
+                       "service-instance-id": {\r
+                               "required": true,\r
+                               "type": "string"\r
+                       },\r
+                       "action-name": {\r
+                               "required": true,\r
+                               "type": "string"\r
+                       },\r
+                       "scope-type": {\r
+                               "required": true,\r
+                               "type": "string"\r
+                       },\r
+                       "hostname": {\r
+                               "required": true,\r
+                               "type": "string"\r
+                       }\r
+               },\r
+               "node_templates": {\r
+                       "base-config-template": {\r
+                               "type": "artifact-config-template",\r
+                               "properties": {\r
+                                       "action-names": [\r
+                                               "resource-assignment-action"\r
+                                       ]\r
+                               },\r
+                               "capabilities": {\r
+                                       "content": {\r
+                                               "properties": {\r
+                                                       "content": "db://base-config-template"\r
+                                               }\r
+                                       },\r
+                                       "mapping": {\r
+                                               "properties": {\r
+                                                       "mapping": [\r
+                                                               {\r
+                                                                       "name": "vnf-id",\r
+                                                                       "input-param": true,\r
+                                                                       "property": {\r
+                                                                               "type": "string",\r
+                                                                               "required": true\r
+                                                                       },\r
+                                                                       "dictionary-name": "vnf-id",\r
+                                                                       "dictionary-source": "input"\r
+                                                               },\r
+                                                               {\r
+                                                                       "name": "group-name",\r
+                                                                       "input-param": true,\r
+                                                                       "property": {\r
+                                                                               "type": "string",\r
+                                                                               "required": true\r
+                                                                       },\r
+                                                                       "dictionary-name": "group-name",\r
+                                                                       "dictionary-source": "input"\r
+                                                               }\r
+                                                       ]\r
+                                               }\r
+                                       }\r
+                               }\r
+                       },\r
+                       "resource-assignment-action": {\r
+                               "type": "dg-resource-assignment",\r
+                               "interfaces": {\r
+                                       "CONFIG": {\r
+                                               "operations": {\r
+                                                       "ResourceAssignment": {\r
+                                                               \r
+                                                       }\r
+                                               }\r
+                                       }\r
+                               },\r
+                               "capabilities": {\r
+                                       "dg-node": {\r
+                                               \r
+                                       }\r
+                               },\r
+                               "requirements": {\r
+                                       "component-dependency": {\r
+                                               "capability": "component-node",\r
+                                               "node": "resource-assignment",\r
+                                               "relationship": "tosca.relationships.DependsOn"\r
+                                       }\r
+                               }\r
+                       },\r
+                       "licence-template": {\r
+                               "type": "artifact-config-template",\r
+                               "properties": {\r
+                                       "action-names": [\r
+                                               "resource-assignment-action"\r
+                                       ]\r
+                               },\r
+                               "capabilities": {\r
+                                       "content": {\r
+                                               "properties": {\r
+                                                       "content": "db://licence-template"\r
+                                               }\r
+                                       },\r
+                                       "mapping": {\r
+                                               "properties": {\r
+                                                       "mapping": [\r
+                                                               {\r
+                                                                       "name": "bundle-id",\r
+                                                                       "input-param": true,\r
+                                                                       "property": {\r
+                                                                               "type": "string"\r
+                                                                       },\r
+                                                                       "dictionary-name": "bundle-id",\r
+                                                                       "dictionary-source": "input"\r
+                                                               },\r
+                                                               {\r
+                                                                       "name": "bundle-mac",\r
+                                                                       "input-param": true,\r
+                                                                       "property": {\r
+                                                                               "type": "string",\r
+                                                                               "required": true\r
+                                                                       },\r
+                                                                       "dictionary-name": "bundle-mac",\r
+                                                                       "dictionary-source": "input"\r
+                                                               }\r
+                                                       ]\r
+                                               }\r
+                                       }\r
+                               }\r
+                       },\r
+                       "resource-assignment": {\r
+                               "type": "component-resource-assignment",\r
+                               "interfaces": {\r
+                                       "org-onap-ccsdk-config-assignment-service-ConfigAssignmentNode": {\r
+                                               "operations": {\r
+                                                       "process": {\r
+                                                               "inputs": {\r
+                                                                       "action-name": "{ \"get_input\" : \"action-name\" }",\r
+                                                                       "resource-type": "vnf-type",\r
+                                                                       "template-names": [\r
+                                                                               "base-config-template",\r
+                                                                               "licence-template"\r
+                                                                       ],\r
+                                                                       "request-id": "{ \"get_input\" : \"request-id\" }",\r
+                                                                       "resource-id": "{ \"get_input\" : \"vnf-id\" }"\r
+                                                               },\r
+                                                               "outputs": {\r
+                                                                       "resource-assignment-params": "",\r
+                                                                       "status": ""\r
+                                                               }\r
+                                                       }\r
+                                               }\r
+                                       }\r
+                               },\r
+                               "capabilities": {\r
+                                       "component-node": {\r
+                                               \r
+                                       }\r
+                               }\r
+                       }\r
+               }\r
+       }\r
+}\r