Controller Blueprints Microservice 39/65239/1
authorMuthuramalingam, Brinda Santh(bs2796) <bs2796@att.com>
Fri, 7 Sep 2018 15:24:07 +0000 (15:24 +0000)
committerMuthuramalingam, Brinda Santh(bs2796) <bs2796@att.com>
Fri, 7 Sep 2018 15:24:07 +0000 (15:24 +0000)
Add Capability Definition validations and add custom capabilities Types for content, mapping, netconf, ssh and sftp

Change-Id: I6a89d20280852034ce6ee56d2a9e97d3aab9c2db
Issue-ID: CCSDK-484
Signed-off-by: Muthuramalingam, Brinda Santh(bs2796) <bs2796@att.com>
20 files changed:
components/core/load/blueprints/baseconfiguration/Definitions/activation-blueprint.json
components/core/load/model_type/node_type/artifact-config-template.json
components/core/load/model_type/node_type/dg-activate-netconf.json
components/core/load/model_type/node_type/dg-config-generator.json
components/core/load/model_type/node_type/dg-resource-assign-activate.json
components/core/load/model_type/node_type/dg-resource-assignment.json
components/core/src/main/kotlin/org/onap/ccsdk/apps/controllerblueprints/core/BluePrintConstants.kt
components/core/src/main/kotlin/org/onap/ccsdk/apps/controllerblueprints/core/BluePrintTypes.kt
components/core/src/main/kotlin/org/onap/ccsdk/apps/controllerblueprints/core/data/BluePrintModel.kt
components/core/src/main/kotlin/org/onap/ccsdk/apps/controllerblueprints/core/service/BluePrintValidatorService.kt
ms/controllerblueprints/application/load/model_type/node_type/artifact-config-template.json
ms/controllerblueprints/application/load/model_type/node_type/dg-activate-netconf.json
ms/controllerblueprints/application/load/model_type/node_type/dg-config-generator.json
ms/controllerblueprints/application/load/model_type/node_type/dg-resource-assign-activate.json
ms/controllerblueprints/application/load/model_type/node_type/dg-resource-assignment.json
ms/controllerblueprints/application/load/model_type/node_type/vnf-netconf-device.json
ms/controllerblueprints/modules/service/load/blueprints/vrr-test/Definitions/vrr-test.json
ms/controllerblueprints/modules/service/src/main/resources/service_template/default_netconf.json
ms/controllerblueprints/modules/service/src/test/resources/enhance/enhance-template.json
ms/controllerblueprints/modules/service/src/test/resources/enhance/enhanced-template.json

index 3eb4fed..714195f 100644 (file)
           }\r
         },\r
         "capabilities": {\r
-          "dg-node": {},\r
-          "content": {\r
-            "properties": {\r
-              "type": "json"\r
-            }\r
-          }\r
+          "dg-node": {}\r
         },\r
         "interfaces": {\r
           "CONFIG": {\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": false,\r
-              "type": "string"\r
-            }\r
-          }\r
         }\r
       },\r
       "requirements": {\r
index be9bbfc..af99d75 100644 (file)
@@ -12,7 +12,7 @@
        },\r
        "capabilities": {\r
                "content": {\r
-                       "type": "tosca.capability.Content",\r
+                       "type": "tosca.capabilities.Content",\r
                        "properties": {\r
                                "content": {\r
                                        "required": true,\r
@@ -21,7 +21,7 @@
                        }\r
                },\r
                "mapping": {\r
-                       "type": "tosca.capability.Mapping",\r
+                       "type": "tosca.capabilities.Mapping",\r
                        "properties": {\r
                                "mapping": {\r
                                        "required": false,\r
index a9d16ed..57667de 100644 (file)
        "capabilities": {
                "dg-node": {
                        "type": "tosca.capabilities.Node"
-               },
-               "content": {
-                       "type": "tosca.capability.Content",
-                       "properties": {
-                               "type": {
-                                       "required": false,
-                                       "type": "string",
-                                       "default": "json"
-                               },
-                               "content": {
-                                       "required": true,
-                                       "type": "string"
-                               }
-                       }
                }
        },
        "requirements": {
index 6794b3c..e59c34b 100644 (file)
        "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
index 22a4d81..ca703a7 100644 (file)
        "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": false,\r
-                                       "type": "string"\r
-                               }\r
-                       }\r
                }\r
        },\r
        "requirements": {\r
index 7c01faa..9cce82a 100644 (file)
        "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": false,\r
-                                       "type": "string"\r
-                               }\r
-                       }\r
                }\r
        },\r
        "requirements": {\r
index ffad8e5..d4bd20a 100644 (file)
@@ -16,6 +16,7 @@
  */\r
 \r
 package org.onap.ccsdk.apps.controllerblueprints.core\r
+\r
 /**\r
  * BluePrintConstants\r
  *\r
@@ -94,10 +95,28 @@ object BluePrintConstants {
     const val MODEL_TYPE_NODES_COMPONENT_PYTHON: String = "tosca.nodes.component.Python"\r
     const val MODEL_TYPE_NODES_COMPONENT_JAVA_SCRIPT: String = "tosca.nodes.component.JavaScript"\r
 \r
-    const val MODEL_TYPE_ARTIFACT_TYPE_IMPLEMENTATION ="tosca.artifacts.Implementation"\r
+    const val MODEL_TYPE_ARTIFACT_TYPE_IMPLEMENTATION = "tosca.artifacts.Implementation"\r
 \r
     const val MODEL_TYPE_DATA_TYPE_DYNAMIC = "tosca.datatypes.Dynamic"\r
 \r
+    const val MODEL_TYPE_CAPABILITY_TYPE_NODE = "tosca.capabilities.Node"\r
+    const val MODEL_TYPE_CAPABILITY_TYPE_COMPUTE = "tosca.capabilities.Compute"\r
+    const val MODEL_TYPE_CAPABILITY_TYPE_NETWORK = "tosca.capabilities.Network"\r
+    const val MODEL_TYPE_CAPABILITY_TYPE_STORAGE = "tosca.capabilities.Storage"\r
+    const val MODEL_TYPE_CAPABILITY_TYPE_ENDPOINT = "tosca.capabilities.Endpoint"\r
+    const val MODEL_TYPE_CAPABILITY_TYPE_ENDPOINT_PUBLIC = "tosca.capabilities.Endpoint.Public"\r
+    const val MODEL_TYPE_CAPABILITY_TYPE_ENDPOINT_ADMIN = "tosca.capabilities.Endpoint.Admin"\r
+    const val MODEL_TYPE_CAPABILITY_TYPE_ENDPOINT_DATABASE = "tosca.capabilities.Endpoint.Database"\r
+    const val MODEL_TYPE_CAPABILITY_TYPE_ATTACHMENT = "tosca.capabilities.Attachment"\r
+    const val MODEL_TYPE_CAPABILITY_TYPE_OPERATION_SYSTEM = "tosca.capabilities.OperatingSystem"\r
+    const val MODEL_TYPE_CAPABILITY_TYPE_BINDABLE = "tosca.capabilities.network.Bindable"\r
+    // Custom capabilities\r
+    const val MODEL_TYPE_CAPABILITY_TYPE_CONTENT = "tosca.capabilities.Content"\r
+    const val MODEL_TYPE_CAPABILITY_TYPE_MAPPING = "tosca.capabilities.Mapping"\r
+    const val MODEL_TYPE_CAPABILITY_TYPE_NETCONF = "tosca.capabilities.Netconf"\r
+    const val MODEL_TYPE_CAPABILITY_TYPE_SSH = "tosca.capabilities.Ssh"\r
+    const val MODEL_TYPE_CAPABILITY_TYPE_SFTP = "tosca.capabilities.Sftp"\r
+\r
     const val EXPRESSION_GET_INPUT: String = "get_input"\r
     const val EXPRESSION_GET_ATTRIBUTE: String = "get_attribute"\r
     const val EXPRESSION_GET_ARTIFACT: String = "get_artifact"\r
index 24514db..e25b3ee 100644 (file)
@@ -50,6 +50,7 @@ object BluePrintTypes {
             BluePrintConstants.MODEL_TYPE_DATA_TYPE_DYNAMIC\r
     )\r
 \r
+    @Deprecated("This has to move to Relationship Types Model Drive")\r
     @JvmStatic\r
     val validRelationShipDerivedFroms: MutableList<String> = arrayListOf(\r
             BluePrintConstants.MODEL_TYPE_RELATIONSHIPS_ROOT,\r
@@ -60,6 +61,28 @@ object BluePrintTypes {
             BluePrintConstants.MODEL_TYPE_RELATIONSHIPS_ROUTES_TO\r
     )\r
 \r
+    @Deprecated("This has to move to Capability Types Model Drive")\r
+    @JvmStatic\r
+    val validCapabilityTypes: MutableList<String> = arrayListOf(\r
+            BluePrintConstants.MODEL_TYPE_CAPABILITIES_ROOT,\r
+            BluePrintConstants.MODEL_TYPE_CAPABILITY_TYPE_NODE,\r
+            BluePrintConstants.MODEL_TYPE_CAPABILITY_TYPE_COMPUTE,\r
+            BluePrintConstants.MODEL_TYPE_CAPABILITY_TYPE_NETWORK,\r
+            BluePrintConstants.MODEL_TYPE_CAPABILITY_TYPE_STORAGE,\r
+            BluePrintConstants.MODEL_TYPE_CAPABILITY_TYPE_ENDPOINT,\r
+            BluePrintConstants.MODEL_TYPE_CAPABILITY_TYPE_ENDPOINT_PUBLIC,\r
+            BluePrintConstants.MODEL_TYPE_CAPABILITY_TYPE_ENDPOINT_ADMIN,\r
+            BluePrintConstants.MODEL_TYPE_CAPABILITY_TYPE_ENDPOINT_DATABASE,\r
+            BluePrintConstants.MODEL_TYPE_CAPABILITY_TYPE_ATTACHMENT,\r
+            BluePrintConstants.MODEL_TYPE_CAPABILITY_TYPE_OPERATION_SYSTEM,\r
+            BluePrintConstants.MODEL_TYPE_CAPABILITY_TYPE_BINDABLE,\r
+            BluePrintConstants.MODEL_TYPE_CAPABILITY_TYPE_CONTENT,\r
+            BluePrintConstants.MODEL_TYPE_CAPABILITY_TYPE_MAPPING,\r
+            BluePrintConstants.MODEL_TYPE_CAPABILITY_TYPE_NETCONF,\r
+            BluePrintConstants.MODEL_TYPE_CAPABILITY_TYPE_SSH,\r
+            BluePrintConstants.MODEL_TYPE_CAPABILITY_TYPE_SFTP\r
+    )\r
+\r
     @JvmStatic\r
     fun validModelTypes(): List<String> {\r
         val validTypes: MutableList<String> = arrayListOf()\r
index ef8bbf2..70f3c55 100644 (file)
@@ -309,7 +309,7 @@ A capability definition defines a named, typed set of data that can be associate
 class CapabilityDefinition {\r
     @get:JsonIgnore\r
     var id: String? = null\r
-    var type: String? = null\r
+    lateinit var type: String\r
     var description: String? = null\r
     var properties: MutableMap<String, PropertyDefinition>? = null\r
     @get:JsonProperty("valid_source_types")\r
index 8c00e0a..3bea59f 100644 (file)
@@ -143,6 +143,7 @@ open class BluePrintValidatorDefaultService : BluePrintValidatorService {
         }\r
 \r
         nodeType.properties?.let { validatePropertyDefinitions(nodeType.properties!!) }\r
+        nodeType.capabilities?.let { validateCapabilityDefinitions(nodeTypeName, nodeType) }\r
         nodeType.requirements?.let { validateRequirementDefinitions(nodeTypeName, nodeType) }\r
         nodeType.interfaces?.let { validateInterfaceDefinitions(nodeType.interfaces!!) }\r
         paths.removeAt(paths.lastIndex)\r
@@ -431,6 +432,30 @@ open class BluePrintValidatorDefaultService : BluePrintValidatorService {
 \r
     }\r
 \r
+    @Throws(BluePrintException::class)\r
+    open fun validateCapabilityDefinitions(nodeTypeName: String, nodeType: NodeType) {\r
+        val capabilities = nodeType.capabilities\r
+        paths.add("capabilities")\r
+        capabilities?.forEach { capabilityName, capabilityDefinition ->\r
+            paths.add(capabilityName)\r
+\r
+            validateCapabilityDefinition(nodeTypeName, nodeType, capabilityName, capabilityDefinition)\r
+\r
+            paths.removeAt(paths.lastIndex)\r
+        }\r
+        paths.removeAt(paths.lastIndex)\r
+    }\r
+\r
+    @Throws(BluePrintException::class)\r
+    open fun validateCapabilityDefinition(nodeTypeName: String, nodeType: NodeType, capabilityName: String,\r
+                                          capabilityDefinition: CapabilityDefinition) {\r
+        val capabilityType = capabilityDefinition.type\r
+        check(BluePrintTypes.validCapabilityTypes.contains(capabilityType)) {\r
+            throw BluePrintException(format("Failed to get CapabilityType({}) for NodeType({})",\r
+                    capabilityType, nodeTypeName))\r
+        }\r
+    }\r
+\r
     @Throws(BluePrintException::class)\r
     open fun validateRequirementDefinitions(nodeName: String, nodeType: NodeType) {\r
         paths.add("requirements")\r
index be9bbfc..af99d75 100644 (file)
@@ -12,7 +12,7 @@
        },\r
        "capabilities": {\r
                "content": {\r
-                       "type": "tosca.capability.Content",\r
+                       "type": "tosca.capabilities.Content",\r
                        "properties": {\r
                                "content": {\r
                                        "required": true,\r
@@ -21,7 +21,7 @@
                        }\r
                },\r
                "mapping": {\r
-                       "type": "tosca.capability.Mapping",\r
+                       "type": "tosca.capabilities.Mapping",\r
                        "properties": {\r
                                "mapping": {\r
                                        "required": false,\r
index a9d16ed..57667de 100644 (file)
        "capabilities": {
                "dg-node": {
                        "type": "tosca.capabilities.Node"
-               },
-               "content": {
-                       "type": "tosca.capability.Content",
-                       "properties": {
-                               "type": {
-                                       "required": false,
-                                       "type": "string",
-                                       "default": "json"
-                               },
-                               "content": {
-                                       "required": true,
-                                       "type": "string"
-                               }
-                       }
                }
        },
        "requirements": {
index 6794b3c..e59c34b 100644 (file)
        "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
index 22a4d81..ca703a7 100644 (file)
        "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": false,\r
-                                       "type": "string"\r
-                               }\r
-                       }\r
                }\r
        },\r
        "requirements": {\r
index 7c01faa..9cce82a 100644 (file)
        "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": false,\r
-                                       "type": "string"\r
-                               }\r
-                       }\r
                }\r
        },\r
        "requirements": {\r
index 54573ba..246f177 100644 (file)
@@ -3,7 +3,7 @@
        "version": "1.0.0",\r
        "capabilities": {\r
                "netconf": {\r
-                       "type": "tosca.capability.Netconf",\r
+                       "type": "tosca.capabilities.Netconf",\r
                        "properties": {\r
                                "login-key": {\r
                                        "required": true,\r
index 724dfc4..5fe2d25 100644 (file)
       "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": false,\r
-              "type": "string"\r
-            }\r
-          }\r
         }\r
       },\r
       "requirements": {\r
       },\r
       "capabilities": {\r
         "content": {\r
-          "type": "tosca.capability.Content",\r
+          "type": "tosca.capabilities.Content",\r
           "properties": {\r
             "content": {\r
               "required": true,\r
           }\r
         },\r
         "mapping": {\r
-          "type": "tosca.capability.Mapping",\r
+          "type": "tosca.capabilities.Mapping",\r
           "properties": {\r
             "mapping": {\r
               "required": false,\r
       "version": "1.0.0",\r
       "capabilities": {\r
         "netconf": {\r
-          "type": "tosca.capability.Netconf",\r
+          "type": "tosca.capabilities.Netconf",\r
           "properties": {\r
             "profile-name": {\r
               "required": true,\r
           }\r
         },\r
         "ssh": {\r
-          "type": "tosca.capability.Ssh",\r
+          "type": "tosca.capabilities.Ssh",\r
           "properties": {\r
             "profile-name": {\r
               "required": true,\r
           }\r
         },\r
         "sftp": {\r
-          "type": "tosca.capability.Sftp",\r
+          "type": "tosca.capabilities.Sftp",\r
           "properties": {\r
             "profile-name": {\r
               "required": true,\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
index 14f724e..8b1c790 100644 (file)
                        "version": "1.0.0",\r
                        "capabilities": {\r
                                "netconf": {\r
-                                       "type": "tosca.capability.Netconf",\r
+                                       "type": "tosca.capabilities.Netconf",\r
                                        "properties": {\r
                                                "password": {\r
                                                        "required": false,\r
                                        }\r
                                },\r
                                "ssh": {\r
-                                       "type": "tosca.capability.Ssh",\r
+                                       "type": "tosca.capabilities.Ssh",\r
                                        "properties": {\r
                                                "password": {\r
                                                        "required": false,\r
                                        }\r
                                },\r
                                "sftp": {\r
-                                       "type": "tosca.capability.Sftp",\r
+                                       "type": "tosca.capabilities.Sftp",\r
                                        "properties": {\r
                                                "password": {\r
                                                        "required": false,\r
                                        "type": "tosca.capabilities.Node"\r
                                },\r
                                "content": {\r
-                                       "type": "tosca.capability.Content",\r
+                                       "type": "tosca.capabilities.Content",\r
                                        "properties": {\r
                                                "type": {\r
                                                        "required": false,\r
                                        "type": "tosca.capabilities.Node"\r
                                },\r
                                "content": {\r
-                                       "type": "tosca.capability.Content",\r
+                                       "type": "tosca.capabilities.Content",\r
                                        "properties": {\r
                                                "type": {\r
                                                        "required": false,\r
                        },\r
                        "capabilities": {\r
                                "content": {\r
-                                       "type": "tosca.capability.Content",\r
+                                       "type": "tosca.capabilities.Content",\r
                                        "properties": {\r
                                                "content": {\r
                                                        "required": true,\r
                                        }\r
                                },\r
                                "mapping": {\r
-                                       "type": "tosca.capability.Mapping",\r
+                                       "type": "tosca.capabilities.Mapping",\r
                                        "properties": {\r
                                                "mapping": {\r
                                                        "required": false,\r
index 155dc72..d5d3f66 100644 (file)
           }\r
         },\r
         "capabilities": {\r
-          "dg-node": {},\r
-          "content": {\r
-            "properties": {\r
-              "type": "json"\r
-            }\r
-          }\r
+          "dg-node": {}\r
         },\r
         "interfaces": {\r
           "CONFIG": {\r
           }\r
         },\r
         "capabilities": {\r
-          "dg-node": {},\r
-          "content": {\r
-            "properties": {\r
-              "type": "json"\r
-            }\r
-          }\r
+          "dg-node": {}\r
         },\r
         "interfaces": {\r
           "CONFIG": {\r
index 9f8af1a..b6898d8 100644 (file)
       "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" : false,\r
-              "type" : "string"\r
-            }\r
-          }\r
         }\r
       },\r
       "requirements" : {\r
       },\r
       "capabilities" : {\r
         "content" : {\r
-          "type" : "tosca.capability.Content",\r
+          "type" : "tosca.capabilities.Content",\r
           "properties" : {\r
             "content" : {\r
               "required" : true,\r
           }\r
         },\r
         "mapping" : {\r
-          "type" : "tosca.capability.Mapping",\r
+          "type" : "tosca.capabilities.Mapping",\r
           "properties" : {\r
             "mapping" : {\r
               "required" : false,\r
       "version" : "1.0.0",\r
       "capabilities" : {\r
         "netconf" : {\r
-          "type" : "tosca.capability.Netconf",\r
+          "type" : "tosca.capabilities.Netconf",\r
           "properties" : {\r
             "login-key" : {\r
               "required" : true,\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
           "is-start-flow" : false\r
         },\r
         "capabilities" : {\r
-          "dg-node" : { },\r
-          "content" : {\r
-            "properties" : {\r
-              "type" : "json"\r
-            }\r
-          }\r
+          "dg-node" : { }\r
         },\r
         "requirements" : {\r
           "component-dependency" : {\r
           "is-start-flow" : false\r
         },\r
         "capabilities" : {\r
-          "dg-node" : { },\r
-          "content" : {\r
-            "properties" : {\r
-              "type" : "json"\r
-            }\r
-          }\r
+          "dg-node" : { }\r
         },\r
         "requirements" : {\r
           "component-dependency" : {\r