Implement resolve NodeTemplate Capability property
authorMuthuramalingam, Brinda Santh <bs2796@att.com>
Thu, 17 Jan 2019 01:17:24 +0000 (20:17 -0500)
committerMuthuramalingam, Brinda Santh <bs2796@att.com>
Thu, 17 Jan 2019 01:17:24 +0000 (20:17 -0500)
Change-Id: I2e1de34d5c2465f1f59eeab044f1883e2d1d4ff6
Issue-ID: CCSDK-959
Signed-off-by: Muthuramalingam, Brinda Santh <bs2796@att.com>
components/core/src/main/kotlin/org/onap/ccsdk/apps/controllerblueprints/core/service/BluePrintRuntimeService.kt
components/core/src/test/kotlin/org/onap/ccsdk/apps/controllerblueprints/core/service/BluePrintRuntimeServiceTest.kt

index bd19ae4..6031865 100644 (file)
@@ -62,20 +62,20 @@ interface BluePrintRuntimeService<T> {
 \r
     fun setBluePrintError(bluePrintError: BluePrintError)\r
 \r
-    /*\r
-      Get the Node Type Definition for the Node Template, Then iterate Node Type Properties and resolve the expressing\r
-   */\r
-    fun resolveNodeTemplateProperties(nodeTemplateName: String): MutableMap<String, JsonNode>\r
+    fun resolveNodeTemplatePropertyAssignments(nodeTemplateName: String,\r
+                                               propertyDefinitions: MutableMap<String, PropertyDefinition>,\r
+                                               propertyAssignments: MutableMap<String, JsonNode>): MutableMap<String, JsonNode>\r
 \r
-    fun resolveNodeTemplateCapabilityProperties(nodeTemplateName: String, capability: String): MutableMap<String,\r
-            JsonNode>\r
+    fun resolveNodeTemplateProperties(nodeTemplateName: String): MutableMap<String, JsonNode>\r
 \r
-    fun resolveNodeTemplateRequirementProperties(nodeTemplateName: String, requirementName: String): MutableMap<String,\r
+    fun resolveNodeTemplateCapabilityProperties(nodeTemplateName: String, capabilityName: String): MutableMap<String,\r
             JsonNode>\r
 \r
-    fun resolveNodeTemplateInterfaceOperationInputs(nodeTemplateName: String, interfaceName: String, operationName: String): MutableMap<String, JsonNode>\r
+    fun resolveNodeTemplateInterfaceOperationInputs(nodeTemplateName: String, interfaceName: String,\r
+                                                    operationName: String): MutableMap<String, JsonNode>\r
 \r
-    fun resolveNodeTemplateInterfaceOperationOutputs(nodeTemplateName: String, interfaceName: String, operationName: String): MutableMap<String, JsonNode>\r
+    fun resolveNodeTemplateInterfaceOperationOutputs(nodeTemplateName: String, interfaceName: String,\r
+                                                     operationName: String): MutableMap<String, JsonNode>\r
 \r
     fun resolveNodeTemplateArtifact(nodeTemplateName: String, artifactName: String): String\r
 \r
@@ -89,24 +89,24 @@ interface BluePrintRuntimeService<T> {
 \r
     fun setNodeTemplateAttributeValue(nodeTemplateName: String, attributeName: String, value: JsonNode)\r
 \r
-    fun setNodeTemplateOperationPropertyValue(nodeTemplateName: String, interfaceName: String, operationName: String, propertyName: String, value: JsonNode)\r
+    fun setNodeTemplateOperationPropertyValue(nodeTemplateName: String, interfaceName: String,\r
+                                              operationName: String, propertyName: String, value: JsonNode)\r
 \r
-    fun setNodeTemplateOperationInputValue(nodeTemplateName: String, interfaceName: String, operationName: String, propertyName: String, value: JsonNode)\r
+    fun setNodeTemplateOperationInputValue(nodeTemplateName: String, interfaceName: String,\r
+                                           operationName: String, propertyName: String, value: JsonNode)\r
 \r
-    fun setNodeTemplateOperationOutputValue(nodeTemplateName: String, interfaceName: String, operationName: String, propertyName: String, value: JsonNode)\r
+    fun setNodeTemplateOperationOutputValue(nodeTemplateName: String, interfaceName: String,\r
+                                            operationName: String, propertyName: String, value: JsonNode)\r
 \r
     fun getInputValue(propertyName: String): JsonNode\r
 \r
-    fun getNodeTemplateOperationOutputValue(nodeTemplateName: String, interfaceName: String, operationName: String, propertyName: String): JsonNode\r
+    fun getNodeTemplateOperationOutputValue(nodeTemplateName: String, interfaceName: String,\r
+                                            operationName: String, propertyName: String): JsonNode\r
 \r
     fun getNodeTemplatePropertyValue(nodeTemplateName: String, propertyName: String): JsonNode?\r
 \r
     fun getNodeTemplateAttributeValue(nodeTemplateName: String, attributeName: String): JsonNode?\r
 \r
-    fun getNodeTemplateRequirementPropertyValue(nodeTemplateName: String, requirementName: String, propertyName: String): JsonNode?\r
-\r
-    fun getNodeTemplateCapabilityPropertyValue(nodeTemplateName: String, capabilityName: String, propertyName: String): JsonNode?\r
-\r
     fun assignInputs(jsonNode: JsonNode)\r
 \r
     fun assignWorkflowInputs(workflowName: String, jsonNode: JsonNode)\r
@@ -190,22 +190,17 @@ open class DefaultBluePrintRuntimeService(private var id: String, private var bl
         this.bluePrintError = bluePrintError\r
     }\r
 \r
-    /*\r
-                Get the Node Type Definition for the Node Template, Then iterate Node Type Properties and resolve the expressing\r
-             */\r
-    override fun resolveNodeTemplateProperties(nodeTemplateName: String): MutableMap<String, JsonNode> {\r
-        log.info("resolveNodeTemplatePropertyValues for node template ({})", nodeTemplateName)\r
-        val propertyAssignmentValue: MutableMap<String, JsonNode> = hashMapOf()\r
+    /**\r
+     * Resolve any property assignments for the node\r
+     */\r
+    override fun resolveNodeTemplatePropertyAssignments(nodeTemplateName: String,\r
+                                                        propertyDefinitions: MutableMap<String, PropertyDefinition>,\r
+                                                        propertyAssignments: MutableMap<String, JsonNode>)\r
+            : MutableMap<String, JsonNode> {\r
 \r
-        val nodeTemplate: NodeTemplate = bluePrintContext.nodeTemplateByName(nodeTemplateName)\r
-\r
-        val propertyAssignments: MutableMap<String, JsonNode> = nodeTemplate.properties!!\r
-\r
-        // Get the Node Type Definitions\r
-        val nodeTypeProperties: MutableMap<String, PropertyDefinition> = bluePrintContext.nodeTypeChainedProperties(nodeTemplate.type)!!\r
+        val propertyAssignmentValue: MutableMap<String, JsonNode> = hashMapOf()\r
 \r
-        // Iterate Node Type Properties\r
-        nodeTypeProperties.forEach { nodeTypePropertyName, nodeTypeProperty ->\r
+        propertyDefinitions.forEach { nodeTypePropertyName, nodeTypeProperty ->\r
             // Get the Express or Value for the Node Template\r
             val propertyAssignment: JsonNode? = propertyAssignments[nodeTypePropertyName]\r
 \r
@@ -213,38 +208,61 @@ open class DefaultBluePrintRuntimeService(private var id: String, private var bl
             if (propertyAssignment != null) {\r
                 // Resolve the Expressing\r
                 val propertyAssignmentExpression = PropertyAssignmentService(this)\r
-                resolvedValue = propertyAssignmentExpression.resolveAssignmentExpression(nodeTemplateName, nodeTypePropertyName, propertyAssignment)\r
+                resolvedValue = propertyAssignmentExpression.resolveAssignmentExpression(nodeTemplateName,\r
+                        nodeTypePropertyName, propertyAssignment)\r
             } else {\r
                 // Assign default value to the Operation\r
-                nodeTypeProperty.defaultValue?.let { defaultValue ->\r
-                    resolvedValue = defaultValue\r
+                nodeTypeProperty.defaultValue?.let {\r
+                    resolvedValue = JacksonUtils.jsonNodeFromObject(nodeTypeProperty.defaultValue!!)\r
                 }\r
             }\r
             // Set for Return of method\r
             propertyAssignmentValue[nodeTypePropertyName] = resolvedValue\r
         }\r
-        log.info("resolved property definition for node template ({}), values ({})", nodeTemplateName, propertyAssignmentValue)\r
         return propertyAssignmentValue\r
     }\r
 \r
+    override fun resolveNodeTemplateProperties(nodeTemplateName: String): MutableMap<String, JsonNode> {\r
+        log.info("resolveNodeTemplatePropertyValues for node template ({})", nodeTemplateName)\r
+\r
+        val nodeTemplate: NodeTemplate = bluePrintContext.nodeTemplateByName(nodeTemplateName)\r
+\r
+        val propertyAssignments: MutableMap<String, JsonNode> = nodeTemplate.properties!!\r
+\r
+        // Get the Node Type Definitions\r
+        val nodeTypePropertieDefinitions: MutableMap<String, PropertyDefinition> = bluePrintContext\r
+                .nodeTypeChainedProperties(nodeTemplate.type)!!\r
+\r
+        /**\r
+         * Resolve the NodeTemplate Property Assignment Values.\r
+         */\r
+        return resolveNodeTemplatePropertyAssignments(nodeTemplateName, nodeTypePropertieDefinitions,\r
+                propertyAssignments)\r
+    }\r
+\r
     override fun resolveNodeTemplateCapabilityProperties(nodeTemplateName: String, capabilityName: String):\r
             MutableMap<String, JsonNode> {\r
         log.info("resolveNodeTemplateCapabilityProperties for node template($nodeTemplateName) capability " +\r
                 "($capabilityName)")\r
-        TODO("not implemented") //To change body of created functions use File | Settings | File Templates.\r
-    }\r
+        val nodeTemplate: NodeTemplate = bluePrintContext.nodeTemplateByName(nodeTemplateName)\r
+\r
+        val propertyAssignments = nodeTemplate.capabilities?.get(capabilityName)?.properties ?: hashMapOf()\r
 \r
-    override fun resolveNodeTemplateRequirementProperties(nodeTemplateName: String, requirementName: String): MutableMap<String, JsonNode> {\r
-        log.info("resolveNodeTemplateRequirementProperties for node template($nodeTemplateName) requirement ($requirementName)")\r
-        TODO("not implemented") //To change body of created functions use File | Settings | File Templates.\r
+        val propertyDefinitions = bluePrintContext.nodeTemplateNodeType(nodeTemplateName)\r
+                .capabilities?.get(capabilityName)?.properties ?: hashMapOf()\r
+\r
+        /**\r
+         * Resolve the Capability Property Assignment Values.\r
+         */\r
+        return resolveNodeTemplatePropertyAssignments(nodeTemplateName, propertyDefinitions,\r
+                propertyAssignments)\r
     }\r
 \r
     override fun resolveNodeTemplateInterfaceOperationInputs(nodeTemplateName: String,\r
-                                                             interfaceName: String, operationName: String): MutableMap<String, JsonNode> {\r
-        log.info("resolveNodeTemplateInterfaceOperationInputs for node template ({}),interface name ({}), " +\r
-                "operationName({})", nodeTemplateName, interfaceName, operationName)\r
-\r
-        val propertyAssignmentValue: MutableMap<String, JsonNode> = hashMapOf()\r
+                                                             interfaceName: String,\r
+                                                             operationName: String): MutableMap<String, JsonNode> {\r
+        log.info("resolveNodeTemplateInterfaceOperationInputs for node template ($nodeTemplateName),interface name " +\r
+                "($interfaceName), operationName($operationName)")\r
 \r
         val propertyAssignments: MutableMap<String, JsonNode> =\r
                 bluePrintContext.nodeTemplateInterfaceOperationInputs(nodeTemplateName, interfaceName, operationName)\r
@@ -256,40 +274,22 @@ open class DefaultBluePrintRuntimeService(private var id: String, private var bl
                 bluePrintContext.nodeTypeInterfaceOperationInputs(nodeTypeName, interfaceName, operationName)\r
                         ?: hashMapOf()\r
 \r
-        log.info("input definition for node template ({}), values ({})", nodeTemplateName, propertyAssignments)\r
+        log.info("input definition for node template ($nodeTemplateName), values ($propertyAssignments)")\r
 \r
-        // Iterate Node Type Properties\r
-        nodeTypeInterfaceOperationInputs.forEach { nodeTypePropertyName, nodeTypeProperty ->\r
-            // Get the Express or Value for the Node Template\r
-            val propertyAssignment: JsonNode? = propertyAssignments[nodeTypePropertyName]\r
+        /**\r
+         * Resolve the Property Input Assignment Values.\r
+         */\r
+        return resolveNodeTemplatePropertyAssignments(nodeTemplateName, nodeTypeInterfaceOperationInputs,\r
+                propertyAssignments)\r
 \r
-            var resolvedValue: JsonNode = NullNode.getInstance()\r
-            if (propertyAssignment != null) {\r
-                // Resolve the Expressing\r
-                val propertyAssignmentExpression = PropertyAssignmentService(this)\r
-                resolvedValue = propertyAssignmentExpression.resolveAssignmentExpression(nodeTemplateName, nodeTypePropertyName, propertyAssignment)\r
-            } else {\r
-                // Assign default value to the Operation\r
-                nodeTypeProperty.defaultValue?.let {\r
-                    resolvedValue = JacksonUtils.jsonNodeFromObject(nodeTypeProperty.defaultValue!!)\r
-                }\r
-            }\r
-            // Set for Return of method\r
-            propertyAssignmentValue[nodeTypePropertyName] = resolvedValue\r
-        }\r
-        log.trace("resolved input assignments for node template ({}), values ({})", nodeTemplateName,\r
-                propertyAssignmentValue)\r
-\r
-        return propertyAssignmentValue\r
     }\r
 \r
 \r
     override fun resolveNodeTemplateInterfaceOperationOutputs(nodeTemplateName: String,\r
-                                                              interfaceName: String, operationName: String): MutableMap<String, JsonNode> {\r
-        log.info("resolveNodeTemplateInterfaceOperationOutputs for node template ({}),interface name ({}), " +\r
-                "operationName({})", nodeTemplateName, interfaceName, operationName)\r
-\r
-        val propertyAssignmentValue: MutableMap<String, JsonNode> = hashMapOf()\r
+                                                              interfaceName: String,\r
+                                                              operationName: String): MutableMap<String, JsonNode> {\r
+        log.info("resolveNodeTemplateInterfaceOperationOutputs for node template ($nodeTemplateName),interface name " +\r
+                "($interfaceName), operationName($operationName)")\r
 \r
         val propertyAssignments: MutableMap<String, JsonNode> =\r
                 bluePrintContext.nodeTemplateInterfaceOperationOutputs(nodeTemplateName, interfaceName, operationName)\r
@@ -300,30 +300,15 @@ open class DefaultBluePrintRuntimeService(private var id: String, private var bl
         val nodeTypeInterfaceOperationOutputs: MutableMap<String, PropertyDefinition> =\r
                 bluePrintContext.nodeTypeInterfaceOperationOutputs(nodeTypeName, interfaceName, operationName)\r
                         ?: hashMapOf()\r
-\r
-        // Iterate Node Type Properties\r
-        nodeTypeInterfaceOperationOutputs.forEach { nodeTypePropertyName, nodeTypeProperty ->\r
-\r
-            // Get the Express or Value for the Node Template\r
-            val propertyAssignment: JsonNode? = propertyAssignments[nodeTypePropertyName]\r
-\r
-            var resolvedValue: JsonNode = NullNode.getInstance()\r
-            if (propertyAssignment != null) {\r
-                // Resolve the Expressing\r
-                val propertyAssignmentExpression = PropertyAssignmentService(this)\r
-                resolvedValue = propertyAssignmentExpression.resolveAssignmentExpression(nodeTemplateName, nodeTypePropertyName, propertyAssignment)\r
-            } else {\r
-                // Assign default value to the Operation\r
-                nodeTypeProperty.defaultValue?.let {\r
-                    resolvedValue = JacksonUtils.jsonNodeFromObject(nodeTypeProperty.defaultValue!!)\r
-                }\r
-            }\r
-            // Set for Return of method\r
-            propertyAssignmentValue[nodeTypePropertyName] = resolvedValue\r
-\r
-            // Store  operation output values into context\r
-            setNodeTemplateOperationOutputValue(nodeTemplateName, interfaceName, operationName, nodeTypePropertyName, resolvedValue)\r
-            log.trace("resolved output assignments for node template ({}), property name ({}), value ({})", nodeTemplateName, nodeTypePropertyName, resolvedValue)\r
+        /**\r
+         * Resolve the Property Output Assignment Values.\r
+         */\r
+        val propertyAssignmentValue = resolveNodeTemplatePropertyAssignments(nodeTemplateName,\r
+                nodeTypeInterfaceOperationOutputs, propertyAssignments)\r
+\r
+        // Store  operation output values into context\r
+        propertyAssignmentValue.forEach { key, value ->\r
+            setNodeTemplateOperationOutputValue(nodeTemplateName, interfaceName, operationName, key, value)\r
         }\r
         return propertyAssignmentValue\r
     }\r
@@ -338,12 +323,11 @@ open class DefaultBluePrintRuntimeService(private var id: String, private var bl
         val nodeTemplate = bluePrintContext.nodeTemplateByName(nodeTemplateName)\r
 \r
         return nodeTemplate.artifacts?.get(artifactName)\r
-                ?: throw BluePrintProcessorException(String.format("failed to get artifat definition {} from the node template"\r
-                        , artifactName))\r
+                ?: throw BluePrintProcessorException("failed to get artifat definition($artifactName) from the node " +\r
+                        "template")\r
 \r
     }\r
 \r
-\r
     override fun setInputValue(propertyName: String, propertyDefinition: PropertyDefinition, value: JsonNode) {\r
         val path = StringBuilder(BluePrintConstants.PATH_INPUTS)\r
                 .append(BluePrintConstants.PATH_DIVIDER).append(propertyName).toString()\r
@@ -351,8 +335,10 @@ open class DefaultBluePrintRuntimeService(private var id: String, private var bl
         put(path, value)\r
     }\r
 \r
-    override fun setWorkflowInputValue(workflowName: String, propertyName: String, propertyDefinition: PropertyDefinition, value: JsonNode) {\r
-        val path: String = StringBuilder(BluePrintConstants.PATH_NODE_WORKFLOWS).append(BluePrintConstants.PATH_DIVIDER).append(workflowName)\r
+    override fun setWorkflowInputValue(workflowName: String, propertyName: String,\r
+                                       propertyDefinition: PropertyDefinition, value: JsonNode) {\r
+        val path: String = StringBuilder(BluePrintConstants.PATH_NODE_WORKFLOWS)\r
+                .append(BluePrintConstants.PATH_DIVIDER).append(workflowName)\r
                 .append(BluePrintConstants.PATH_DIVIDER).append(BluePrintConstants.PATH_INPUTS)\r
                 .append(BluePrintConstants.PATH_DIVIDER).append(BluePrintConstants.PATH_PROPERTIES)\r
                 .append(BluePrintConstants.PATH_DIVIDER).append(propertyName).toString()\r
@@ -361,7 +347,8 @@ open class DefaultBluePrintRuntimeService(private var id: String, private var bl
 \r
     override fun setNodeTemplatePropertyValue(nodeTemplateName: String, propertyName: String, value: JsonNode) {\r
 \r
-        val path: String = StringBuilder(BluePrintConstants.PATH_NODE_TEMPLATES).append(BluePrintConstants.PATH_DIVIDER).append(nodeTemplateName)\r
+        val path: String = StringBuilder(BluePrintConstants.PATH_NODE_TEMPLATES)\r
+                .append(BluePrintConstants.PATH_DIVIDER).append(nodeTemplateName)\r
                 .append(BluePrintConstants.PATH_DIVIDER).append(BluePrintConstants.PATH_PROPERTIES)\r
                 .append(BluePrintConstants.PATH_DIVIDER).append(propertyName).toString()\r
         put(path, value)\r
@@ -369,7 +356,8 @@ open class DefaultBluePrintRuntimeService(private var id: String, private var bl
 \r
     override fun setNodeTemplateAttributeValue(nodeTemplateName: String, attributeName: String, value: JsonNode) {\r
 \r
-        val path: String = StringBuilder(BluePrintConstants.PATH_NODE_TEMPLATES).append(BluePrintConstants.PATH_DIVIDER).append(nodeTemplateName)\r
+        val path: String = StringBuilder(BluePrintConstants.PATH_NODE_TEMPLATES)\r
+                .append(BluePrintConstants.PATH_DIVIDER).append(nodeTemplateName)\r
                 .append(BluePrintConstants.PATH_DIVIDER).append(BluePrintConstants.PATH_ATTRIBUTES)\r
                 .append(BluePrintConstants.PATH_DIVIDER).append(attributeName).toString()\r
         put(path, value)\r
@@ -377,31 +365,42 @@ open class DefaultBluePrintRuntimeService(private var id: String, private var bl
 \r
     override fun setNodeTemplateOperationPropertyValue(nodeTemplateName: String, interfaceName: String, operationName: String, propertyName: String,\r
                                                        value: JsonNode) {\r
-        val path: String = StringBuilder(BluePrintConstants.PATH_NODE_TEMPLATES).append(BluePrintConstants.PATH_DIVIDER).append(nodeTemplateName)\r
-                .append(BluePrintConstants.PATH_DIVIDER).append(BluePrintConstants.PATH_INTERFACES).append(BluePrintConstants.PATH_DIVIDER).append(interfaceName)\r
-                .append(BluePrintConstants.PATH_DIVIDER).append(BluePrintConstants.PATH_OPERATIONS).append(BluePrintConstants.PATH_DIVIDER).append(operationName)\r
+        val path: String = StringBuilder(BluePrintConstants.PATH_NODE_TEMPLATES)\r
+                .append(BluePrintConstants.PATH_DIVIDER).append(nodeTemplateName)\r
+                .append(BluePrintConstants.PATH_DIVIDER).append(BluePrintConstants.PATH_INTERFACES)\r
+                .append(BluePrintConstants.PATH_DIVIDER).append(interfaceName)\r
+                .append(BluePrintConstants.PATH_DIVIDER).append(BluePrintConstants.PATH_OPERATIONS)\r
+                .append(BluePrintConstants.PATH_DIVIDER).append(operationName)\r
                 .append(BluePrintConstants.PATH_DIVIDER).append(BluePrintConstants.PATH_PROPERTIES)\r
                 .append(BluePrintConstants.PATH_DIVIDER).append(propertyName).toString()\r
         log.trace("setting operation property path ({}), values ({})", path, value)\r
         put(path, value)\r
     }\r
 \r
-    override fun setNodeTemplateOperationInputValue(nodeTemplateName: String, interfaceName: String, operationName: String, propertyName: String,\r
+    override fun setNodeTemplateOperationInputValue(nodeTemplateName: String, interfaceName: String,\r
+                                                    operationName: String, propertyName: String,\r
                                                     value: JsonNode) {\r
-        val path: String = StringBuilder(BluePrintConstants.PATH_NODE_TEMPLATES).append(BluePrintConstants.PATH_DIVIDER).append(nodeTemplateName)\r
-                .append(BluePrintConstants.PATH_DIVIDER).append(BluePrintConstants.PATH_INTERFACES).append(BluePrintConstants.PATH_DIVIDER).append(interfaceName)\r
-                .append(BluePrintConstants.PATH_DIVIDER).append(BluePrintConstants.PATH_OPERATIONS).append(BluePrintConstants.PATH_DIVIDER).append(operationName)\r
+        val path: String = StringBuilder(BluePrintConstants.PATH_NODE_TEMPLATES)\r
+                .append(BluePrintConstants.PATH_DIVIDER).append(nodeTemplateName)\r
+                .append(BluePrintConstants.PATH_DIVIDER).append(BluePrintConstants.PATH_INTERFACES)\r
+                .append(BluePrintConstants.PATH_DIVIDER).append(interfaceName)\r
+                .append(BluePrintConstants.PATH_DIVIDER).append(BluePrintConstants.PATH_OPERATIONS)\r
+                .append(BluePrintConstants.PATH_DIVIDER).append(operationName)\r
                 .append(BluePrintConstants.PATH_DIVIDER).append(BluePrintConstants.PATH_INPUTS)\r
                 .append(BluePrintConstants.PATH_DIVIDER).append(BluePrintConstants.PATH_PROPERTIES)\r
                 .append(BluePrintConstants.PATH_DIVIDER).append(propertyName).toString()\r
         put(path, value)\r
     }\r
 \r
-    override fun setNodeTemplateOperationOutputValue(nodeTemplateName: String, interfaceName: String, operationName: String, propertyName: String,\r
+    override fun setNodeTemplateOperationOutputValue(nodeTemplateName: String, interfaceName: String,\r
+                                                     operationName: String, propertyName: String,\r
                                                      value: JsonNode) {\r
-        val path: String = StringBuilder(BluePrintConstants.PATH_NODE_TEMPLATES).append(BluePrintConstants.PATH_DIVIDER).append(nodeTemplateName)\r
-                .append(BluePrintConstants.PATH_DIVIDER).append(BluePrintConstants.PATH_INTERFACES).append(BluePrintConstants.PATH_DIVIDER).append(interfaceName)\r
-                .append(BluePrintConstants.PATH_DIVIDER).append(BluePrintConstants.PATH_OPERATIONS).append(BluePrintConstants.PATH_DIVIDER).append(operationName)\r
+        val path: String = StringBuilder(BluePrintConstants.PATH_NODE_TEMPLATES)\r
+                .append(BluePrintConstants.PATH_DIVIDER).append(nodeTemplateName)\r
+                .append(BluePrintConstants.PATH_DIVIDER).append(BluePrintConstants.PATH_INTERFACES)\r
+                .append(BluePrintConstants.PATH_DIVIDER).append(interfaceName)\r
+                .append(BluePrintConstants.PATH_DIVIDER).append(BluePrintConstants.PATH_OPERATIONS)\r
+                .append(BluePrintConstants.PATH_DIVIDER).append(operationName)\r
                 .append(BluePrintConstants.PATH_DIVIDER).append(BluePrintConstants.PATH_OUTPUTS)\r
                 .append(BluePrintConstants.PATH_DIVIDER).append(BluePrintConstants.PATH_PROPERTIES)\r
                 .append(BluePrintConstants.PATH_DIVIDER).append(propertyName).toString()\r
@@ -415,47 +414,36 @@ open class DefaultBluePrintRuntimeService(private var id: String, private var bl
         return getJsonNode(path)\r
     }\r
 \r
-    override fun getNodeTemplateOperationOutputValue(nodeTemplateName: String, interfaceName: String, operationName: String, propertyName: String): JsonNode {\r
-        val path: String = StringBuilder(BluePrintConstants.PATH_NODE_TEMPLATES).append(BluePrintConstants.PATH_DIVIDER).append(nodeTemplateName)\r
-                .append(BluePrintConstants.PATH_DIVIDER).append(BluePrintConstants.PATH_INTERFACES).append(BluePrintConstants.PATH_DIVIDER).append(interfaceName)\r
-                .append(BluePrintConstants.PATH_DIVIDER).append(BluePrintConstants.PATH_OPERATIONS).append(BluePrintConstants.PATH_DIVIDER).append(operationName)\r
-                .append(BluePrintConstants.PATH_DIVIDER).append(BluePrintConstants.PATH_OUTPUTS).append(BluePrintConstants.PATH_DIVIDER).append(BluePrintConstants.PATH_PROPERTIES)\r
+    override fun getNodeTemplateOperationOutputValue(nodeTemplateName: String, interfaceName: String,\r
+                                                     operationName: String, propertyName: String): JsonNode {\r
+        val path: String = StringBuilder(BluePrintConstants.PATH_NODE_TEMPLATES)\r
+                .append(BluePrintConstants.PATH_DIVIDER).append(nodeTemplateName)\r
+                .append(BluePrintConstants.PATH_DIVIDER).append(BluePrintConstants.PATH_INTERFACES)\r
+                .append(BluePrintConstants.PATH_DIVIDER).append(interfaceName)\r
+                .append(BluePrintConstants.PATH_DIVIDER).append(BluePrintConstants.PATH_OPERATIONS)\r
+                .append(BluePrintConstants.PATH_DIVIDER).append(operationName)\r
+                .append(BluePrintConstants.PATH_DIVIDER).append(BluePrintConstants.PATH_OUTPUTS)\r
+                .append(BluePrintConstants.PATH_DIVIDER).append(BluePrintConstants.PATH_PROPERTIES)\r
                 .append(BluePrintConstants.PATH_DIVIDER).append(propertyName).toString()\r
         return getJsonNode(path)\r
     }\r
 \r
     override fun getNodeTemplatePropertyValue(nodeTemplateName: String, propertyName: String): JsonNode {\r
-        val path: String = StringBuilder(BluePrintConstants.PATH_NODE_TEMPLATES).append(BluePrintConstants.PATH_DIVIDER).append(nodeTemplateName)\r
+        val path: String = StringBuilder(BluePrintConstants.PATH_NODE_TEMPLATES)\r
+                .append(BluePrintConstants.PATH_DIVIDER).append(nodeTemplateName)\r
                 .append(BluePrintConstants.PATH_DIVIDER).append(BluePrintConstants.PATH_PROPERTIES)\r
                 .append(BluePrintConstants.PATH_DIVIDER).append(propertyName).toString()\r
         return getJsonNode(path)\r
     }\r
 \r
     override fun getNodeTemplateAttributeValue(nodeTemplateName: String, attributeName: String): JsonNode {\r
-        val path: String = StringBuilder(BluePrintConstants.PATH_NODE_TEMPLATES).append(BluePrintConstants.PATH_DIVIDER).append(nodeTemplateName)\r
+        val path: String = StringBuilder(BluePrintConstants.PATH_NODE_TEMPLATES)\r
+                .append(BluePrintConstants.PATH_DIVIDER).append(nodeTemplateName)\r
                 .append(BluePrintConstants.PATH_DIVIDER).append(BluePrintConstants.PATH_ATTRIBUTES)\r
                 .append(BluePrintConstants.PATH_DIVIDER).append(attributeName).toString()\r
         return getJsonNode(path)\r
     }\r
 \r
-    override fun getNodeTemplateRequirementPropertyValue(nodeTemplateName: String, requirementName: String, propertyName:\r
-    String): JsonNode {\r
-        val path: String = StringBuilder(BluePrintConstants.PATH_NODE_TEMPLATES).append(BluePrintConstants.PATH_DIVIDER).append(nodeTemplateName)\r
-                .append(BluePrintConstants.PATH_DIVIDER).append(BluePrintConstants.PATH_REQUIREMENTS).append(requirementName)\r
-                .append(BluePrintConstants.PATH_DIVIDER).append(BluePrintConstants.PATH_PROPERTIES)\r
-                .append(BluePrintConstants.PATH_DIVIDER).append(propertyName).toString()\r
-        return getJsonNode(path)\r
-    }\r
-\r
-    override fun getNodeTemplateCapabilityPropertyValue(nodeTemplateName: String, capabilityName: String, propertyName:\r
-    String): JsonNode {\r
-        val path: String = StringBuilder(BluePrintConstants.PATH_NODE_TEMPLATES).append(BluePrintConstants.PATH_DIVIDER).append(nodeTemplateName)\r
-                .append(BluePrintConstants.PATH_DIVIDER).append(BluePrintConstants.PATH_CAPABILITIES).append(capabilityName)\r
-                .append(BluePrintConstants.PATH_DIVIDER).append(BluePrintConstants.PATH_PROPERTIES)\r
-                .append(BluePrintConstants.PATH_DIVIDER).append(propertyName).toString()\r
-        return getJsonNode(path)\r
-    }\r
-\r
     override fun assignInputs(jsonNode: JsonNode) {\r
         log.info("assignInputs from input JSON ({})", jsonNode.toString())\r
         bluePrintContext.inputs?.forEach { propertyName, property ->\r
@@ -493,7 +481,8 @@ open class DefaultBluePrintRuntimeService(private var id: String, private var bl
     override fun getJsonForNodeTemplateAttributeProperties(nodeTemplateName: String, keys: List<String>): JsonNode {\r
 \r
         val jsonNode: ObjectNode = jacksonObjectMapper().createObjectNode()\r
-        val path: String = StringBuilder(BluePrintConstants.PATH_NODE_TEMPLATES).append(BluePrintConstants.PATH_DIVIDER).append(nodeTemplateName)\r
+        val path: String = StringBuilder(BluePrintConstants.PATH_NODE_TEMPLATES)\r
+                .append(BluePrintConstants.PATH_DIVIDER).append(nodeTemplateName)\r
                 .append(BluePrintConstants.PATH_DIVIDER).append(BluePrintConstants.PATH_ATTRIBUTES)\r
                 .append(BluePrintConstants.PATH_DIVIDER).toString()\r
         store.keys.filter {\r
index c01b14b..02148f0 100644 (file)
@@ -39,7 +39,7 @@ class BluePrintRuntimeServiceTest {
     private val log: EELFLogger = EELFManager.getInstance().getLogger(this::class.toString())\r
 \r
     @Test\r
-    fun testResolveNodeTemplateProperties() {\r
+    fun `test Resolve NodeTemplate Properties`() {\r
         log.info("************************ testResolveNodeTemplateProperties **********************")\r
 \r
         val bluePrintRuntimeService = getBluePrintRuntimeService()\r
@@ -49,25 +49,31 @@ class BluePrintRuntimeServiceTest {
         val inputNode: JsonNode = JacksonUtils.jsonNodeFromFile(inputDataPath)\r
         bluePrintRuntimeService.assignInputs(inputNode)\r
 \r
-        val propContext: MutableMap<String, JsonNode> = bluePrintRuntimeService.resolveNodeTemplateProperties("activate-process")\r
+        val propContext: MutableMap<String, JsonNode> = bluePrintRuntimeService\r
+                .resolveNodeTemplateProperties("activate-process")\r
 \r
         assertNotNull(propContext, "Failed to populate interface property values")\r
     }\r
 \r
     @Test\r
-    fun testResolveNodeTemplateCapabilityProperties() {\r
+    fun `test resolve NodeTemplate Capability Properties`() {\r
         log.info("************************ testResolveNodeTemplateRequirementProperties **********************")\r
-        //TODO\r
-    }\r
+        val bluePrintRuntimeService = getBluePrintRuntimeService()\r
 \r
-    @Test\r
-    fun testResolveNodeTemplateRequirementProperties() {\r
-        log.info("************************ testResolveNodeTemplateRequirementProperties **********************")\r
-        //TODO\r
+        val executionContext = bluePrintRuntimeService.getExecutionContext()\r
+\r
+        BluePrintRuntimeUtils.assignInputsFromClassPathFile(bluePrintRuntimeService.bluePrintContext(),\r
+                "data/default-context.json", executionContext)\r
+\r
+        val capProperties = bluePrintRuntimeService.resolveNodeTemplateCapabilityProperties("sample-netconf-device",\r
+                "netconf")\r
+        assertNotNull(capProperties, "Failed to populate capability property values")\r
+        assertEquals(capProperties["target-ip-address"], JacksonUtils.jsonNodeFromObject("localhost"), "Failed to populate parameter target-ip-address")\r
+        assertEquals(capProperties["port-number"], JacksonUtils.jsonNodeFromObject(830), "Failed to populate parameter port-number")\r
     }\r
 \r
     @Test\r
-    fun testResolveNodeTemplateInterfaceOperationInputs() {\r
+    fun `test Resolve NodeTemplate Interface Operation Inputs`() {\r
         log.info("************************ testResolveNodeTemplateInterfaceOperationInputs **********************")\r
 \r
         val bluePrintRuntimeService = getBluePrintRuntimeService()\r
@@ -77,16 +83,17 @@ class BluePrintRuntimeServiceTest {
         BluePrintRuntimeUtils.assignInputsFromClassPathFile(bluePrintRuntimeService.bluePrintContext(),\r
                 "data/default-context.json", executionContext)\r
 \r
-        val inContext: MutableMap<String, JsonNode> = bluePrintRuntimeService.resolveNodeTemplateInterfaceOperationInputs("resource-assignment",\r
-                "ResourceAssignmentComponent", "process")\r
+        val inContext: MutableMap<String, JsonNode> = bluePrintRuntimeService\r
+                .resolveNodeTemplateInterfaceOperationInputs("resource-assignment",\r
+                        "ResourceAssignmentComponent", "process")\r
 \r
         assertNotNull(inContext, "Failed to populate interface input property values")\r
         assertEquals(inContext["action-name"], JacksonUtils.jsonNodeFromObject("sample-action"), "Failed to populate parameter action-name")\r
         assertEquals(inContext["request-id"], JacksonUtils.jsonNodeFromObject("12345"), "Failed to populate parameter action-name")\r
-      }\r
+    }\r
 \r
     @Test\r
-    fun testResolveNodeTemplateInterfaceOperationOutputs() {\r
+    fun `test Resolve NodeTemplate Interface Operation Outputs`() {\r
         log.info("************************ testResolveNodeTemplateInterfaceOperationOutputs **********************")\r
 \r
         val bluePrintRuntimeService = getBluePrintRuntimeService()\r
@@ -107,7 +114,7 @@ class BluePrintRuntimeServiceTest {
     }\r
 \r
     @Test\r
-    fun testNodeTemplateContextProperty() {\r
+    fun `test NodeTemplate Context Property`() {\r
         log.info("************************ testNodeTemplateContextProperty **********************")\r
         val bluePrintRuntimeService = getBluePrintRuntimeService()\r
 \r