Implement Resource Resolution Services
authorMuthuramalingam, Brinda Santh(bs2796) <bs2796@att.com>
Mon, 10 Dec 2018 22:01:38 +0000 (17:01 -0500)
committerMuthuramalingam, Brinda Santh(bs2796) <bs2796@att.com>
Mon, 10 Dec 2018 22:01:38 +0000 (17:01 -0500)
Change-Id: Ia1cf57c9fa16cb943836e3a78d4d2c9776f0e32f
Issue-ID: CCSDK-724
Signed-off-by: Muthuramalingam, Brinda Santh(bs2796) <bs2796@att.com>
components/core/src/main/kotlin/org/onap/ccsdk/apps/controllerblueprints/core/utils/JacksonUtils.kt
components/model-catalog/blueprint-model/starter-blueprint/baseconfiguration/Definitions/activation-blueprint.json
components/model-catalog/blueprint-model/starter-blueprint/baseconfiguration/Definitions/baseconfig-mapping.json
components/model-catalog/blueprint-model/starter-blueprint/baseconfiguration/Definitions/node_types.json
components/model-catalog/blueprint-model/starter-blueprint/baseconfiguration/Definitions/resources_dictionary_types.json [new file with mode: 0644]
components/model-catalog/blueprint-model/starter-blueprint/baseconfiguration/Definitions/resources_dictionaty_types.json [deleted file]
components/model-catalog/definition-type/starter-type/node_type/component-resource-assignment.json
components/resource-dict/src/main/kotlin/org/onap/ccsdk/apps/controllerblueprints/resource/dict/ResourceAssignmentProcessor.kt [deleted file]

index f53f861..4021014 100644 (file)
@@ -121,6 +121,11 @@ object JacksonUtils {
         return objectMapper.writeValueAsString(any)\r
     }\r
 \r
+    @JvmStatic\r
+    fun <T> getListFromJsonNode(node: JsonNode, valueType: Class<T>): List<T>? {\r
+        return getListFromJson(node.toString(), valueType)\r
+    }\r
+\r
     @JvmStatic\r
     fun <T> getListFromJson(content: String, valueType: Class<T>): List<T>? {\r
         val objectMapper = jacksonObjectMapper()\r
@@ -148,6 +153,13 @@ object JacksonUtils {
         return objectMapper.readValue(content, typeRef)\r
     }\r
 \r
+    @JvmStatic\r
+    fun <T> getMapFromFile(fileName: String, valueType: Class<T>): MutableMap<String, T>? {\r
+        val content: String = FileUtils.readFileToString(File(fileName), Charset.defaultCharset())\r
+                ?: throw BluePrintException(format("Failed to read json file : {}", fileName))\r
+        return getMapFromJson(content, valueType)\r
+    }\r
+\r
     @JvmStatic\r
     fun checkJsonNodeValueOfType(type: String, jsonNode: JsonNode): Boolean {\r
         if (BluePrintTypes.validPrimitiveTypes().contains(type)) {\r
index e5f0c9c..446932d 100644 (file)
                   "resource-id": {
                     "get_input": "hostname"
                   },
+                  "artifact-prefix-names": [
+                    "baseconfig"
+                  ],
                   "template-content": {
                     "get_artifact": [
                       "SELF",
index caee773..c457086 100644 (file)
@@ -1,3 +1,36 @@
-{
-  "assignments": "Sample Assignments"
-}
\ No newline at end of file
+[
+  {
+    "name": "service-instance-id",
+    "input-param": true,
+    "property": {
+      "type": "string"
+    },
+    "dictionary-name": "service-instance-id",
+    "dictionary-source": "input",
+    "dependencies": [
+    ]
+  },
+  {
+    "name": "vnf-id",
+    "input-param": true,
+    "property": {
+      "type": "string"
+    },
+    "dictionary-name": "vnf-id",
+    "dictionary-source": "input",
+    "dependencies": []
+  },
+  {
+    "name": "vnf_name",
+    "input-param": false,
+    "property": {
+      "type": "string"
+    },
+    "dictionary-name": "vnf_name",
+    "dictionary-source": "mdsal",
+    "dependencies": [
+      "service-instance-id",
+      "vnf-id"
+    ]
+  }
+]
index 2723510..6e8d839 100644 (file)
                   "required": true,
                   "type": "string"
                 },
+                "artifact-prefix-names": {
+                  "required": false,
+                  "description": "Template , Resource Assignment Artifact Prefix names",
+                  "type": "list",
+                  "entry_schema": {
+                    "type": "string"
+                  }
+                },
                 "template-content": {
                   "description": "Id used to pull the data content from the data base. Either template-data or resource-id should be present",
                   "required": true,
diff --git a/components/model-catalog/blueprint-model/starter-blueprint/baseconfiguration/Definitions/resources_dictionary_types.json b/components/model-catalog/blueprint-model/starter-blueprint/baseconfiguration/Definitions/resources_dictionary_types.json
new file mode 100644 (file)
index 0000000..557f6ef
--- /dev/null
@@ -0,0 +1,62 @@
+{
+  "service-instance-id": {
+    "name": "service-instance-id",
+    "tags": "service-instance-id, tosca.datatypes.Root, data_type",
+    "updated-by": "Singal, Kapil <ks220y@att.com>",
+    "property": {
+      "description": "To be provided",
+      "type": "string"
+    },
+    "sources": {
+      "input": {
+        "type": "source-input",
+        "properties": {}
+      }
+    }
+  },
+  "vnf-id": {
+    "name": "vnf-id",
+    "tags": "vnf-id",
+    "updated-by": "Singal, Kapil <ks220y@att.com>",
+    "property": {
+      "description": "vnf-id",
+      "type": "string"
+    },
+    "sources": {
+      "input": {
+        "type": "source-input",
+        "properties": {}
+      }
+    }
+  },
+  "vnf_name": {
+    "name": "vnf_name",
+    "tags": "vnf_name",
+    "updated-by": "Singal, Kapil <ks220y@att.com>",
+    "property": {
+      "description": "vnf_name",
+      "type": "string"
+    },
+    "sources": {
+      "mdsal": {
+        "type": "source-rest",
+        "properties": {
+          "type": "JSON",
+          "url-path": "config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/vnf_name",
+          "path": "/param/0/value",
+          "input-key-mapping": {
+            "service-instance-id": "service-instance-id",
+            "vnf-id": "vnf-id"
+          },
+          "output-key-mapping": {
+            "vnf_name": "value"
+          },
+          "key-dependencies": [
+            "service-instance-id",
+            "vnf-id"
+          ]
+        }
+      }
+    }
+  }
+}
\ No newline at end of file
diff --git a/components/model-catalog/blueprint-model/starter-blueprint/baseconfiguration/Definitions/resources_dictionaty_types.json b/components/model-catalog/blueprint-model/starter-blueprint/baseconfiguration/Definitions/resources_dictionaty_types.json
deleted file mode 100644 (file)
index 0e0dcd2..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-{
-
-}
\ No newline at end of file
index a29a875..51d70ed 100644 (file)
       "operations": {\r
         "process": {\r
           "inputs": {\r
-           "template-name": {\r
+            "template-name": {\r
               "description": "Service Template Name.",\r
               "required": true,\r
               "type": "string"\r
             },\r
-           "template-version": {\r
+            "template-version": {\r
               "description": "Service Template Version.",\r
               "required": true,\r
               "type": "string"\r
                 "type": "string"\r
               }\r
             },\r
+            "artifact-prefix-names": {\r
+              "required": false,\r
+              "description": "Template , Resource Assignment Artifact Prefix names",\r
+              "type": "list",\r
+              "entry_schema": {\r
+                "type": "string"\r
+              }\r
+            },\r
             "request-id": {\r
               "description": "Request Id, Unique Id for the request.",\r
               "required": true,\r
diff --git a/components/resource-dict/src/main/kotlin/org/onap/ccsdk/apps/controllerblueprints/resource/dict/ResourceAssignmentProcessor.kt b/components/resource-dict/src/main/kotlin/org/onap/ccsdk/apps/controllerblueprints/resource/dict/ResourceAssignmentProcessor.kt
deleted file mode 100644 (file)
index 327d50a..0000000
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- *  Copyright © 2018 IBM.
- *  Modifications Copyright © 2017-2018 AT&T Intellectual Property.
- *
- *  Licensed under the Apache License, Version 2.0 (the "License");
- *  you may not use this file except in compliance with the License.
- *  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing, software
- *  distributed under the License is distributed on an "AS IS" BASIS,
- *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *  See the License for the specific language governing permissions and
- *  limitations under the License.
- */
-
-package org.onap.ccsdk.apps.controllerblueprints.resource.dict
-
-import org.onap.ccsdk.apps.controllerblueprints.core.interfaces.BlueprintFunctionNode
-import org.onap.ccsdk.apps.controllerblueprints.core.service.BluePrintRuntimeService
-import org.slf4j.LoggerFactory
-
-abstract class ResourceAssignmentProcessor : BlueprintFunctionNode<ResourceAssignment, ResourceAssignment> {
-
-    private val log = LoggerFactory.getLogger(ResourceAssignmentProcessor::class.java)
-
-    private var bluePrintRuntimeService: BluePrintRuntimeService<*>? = null
-
-    open fun setBlueprintRuntimeService(bluePrintRuntimeService: BluePrintRuntimeService<*>) {
-        this.bluePrintRuntimeService = bluePrintRuntimeService
-    }
-
-    open fun getBlueprintRuntimeService(): BluePrintRuntimeService<*> {
-        return this.bluePrintRuntimeService!!
-    }
-
-    override fun prepareRequest(resourceAssignment: ResourceAssignment): ResourceAssignment {
-        log.info("prepareRequest...")
-        return resourceAssignment
-    }
-
-    override fun prepareResponse(): ResourceAssignment {
-        log.info("Preparing Response...")
-        return ResourceAssignment()
-    }
-
-    override fun apply(executionServiceInput: ResourceAssignment): ResourceAssignment {
-        prepareRequest(executionServiceInput)
-        process(executionServiceInput)
-        return prepareResponse()
-    }
-
-    override abstract fun process(executionRequest: ResourceAssignment)
-
-    override abstract fun recover(runtimeException: RuntimeException, executionRequest: ResourceAssignment)
-}
\ No newline at end of file