Add sample test dsl type cba
[ccsdk/cds.git] / components / model-catalog / blueprint-model / test-blueprint / resource-audit / Scripts / kotlin / cba / resource / audit / ResourceAuditDefinitions.kt
diff --git a/components/model-catalog/blueprint-model/test-blueprint/resource-audit/Scripts/kotlin/cba/resource/audit/ResourceAuditDefinitions.kt b/components/model-catalog/blueprint-model/test-blueprint/resource-audit/Scripts/kotlin/cba/resource/audit/ResourceAuditDefinitions.kt
new file mode 100644 (file)
index 0000000..61783d6
--- /dev/null
@@ -0,0 +1,83 @@
+/*
+ *  Copyright © 2019 IBM.
+ *
+ *  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 cba.resource.audit
+
+import org.onap.ccsdk.cds.blueprintsprocessor.services.execution.ComponentScriptExecutor
+import org.onap.ccsdk.cds.blueprintsprocessor.services.execution.nodeTemplateComponentScriptExecutor
+import org.onap.ccsdk.cds.blueprintsprocessor.services.execution.nodeTypeComponentScriptExecutor
+import org.onap.ccsdk.cds.controllerblueprints.core.BluePrintConstants
+import org.onap.ccsdk.cds.controllerblueprints.core.BluePrintTypes
+import org.onap.ccsdk.cds.controllerblueprints.core.data.ServiceTemplate
+import org.onap.ccsdk.cds.controllerblueprints.core.dsl.getAttribute
+import org.onap.ccsdk.cds.controllerblueprints.core.dsl.getNodeTemplateAttribute
+import org.onap.ccsdk.cds.controllerblueprints.core.dsl.nodeTypeComponent
+import org.onap.ccsdk.cds.controllerblueprints.core.dsl.serviceTemplate
+import org.onap.ccsdk.cds.controllerblueprints.core.interfaces.AbstractBluePrintDefinitions
+
+class ResourceAuditDefinitions : AbstractBluePrintDefinitions() {
+    override fun serviceTemplate(): ServiceTemplate {
+        return defaultServiceTemplate()
+    }
+}
+
+fun ResourceAuditDefinitions.defaultServiceTemplate() =
+        serviceTemplate(name = "resource-audit",
+                version = "1.0.0",
+                author = "Brinda Santh Muthuramalingam",
+                tags = "brinda, tosca") {
+
+            topologyTemplate {
+
+                workflow(id = "config-collect", description = "Collect the configuration for Device") {
+                    inputs {
+                        property(id = "device-id", type = BluePrintConstants.DATA_TYPE_STRING, required = true, description = "")
+                        property(id = "sources", type = BluePrintConstants.DATA_TYPE_LIST, required = true, description = "") {
+                            entrySchema(BluePrintConstants.DATA_TYPE_STRING)
+                        }
+                    }
+                    outputs {
+                        property(id = "response-data", required = true, type = BluePrintConstants.DATA_TYPE_STRING, description = "") {
+                            value(getNodeTemplateAttribute(nodeTemplateId = "config-collector",
+                                    attributeId = ComponentScriptExecutor.ATTRIBUTE_RESPONSE_DATA))
+                        }
+                        property(id = "status", required = true, type = BluePrintConstants.DATA_TYPE_STRING, description = "") {
+                            value(BluePrintConstants.STATUS_SUCCESS)
+                        }
+                    }
+                    step(id = "config-collector", target = "config-collector", description = "Collect the Configuration")
+                }
+
+                val configCollectorComponent = BluePrintTypes.nodeTemplateComponentScriptExecutor(
+                        id = "config-collector", description = "Config collector component") {
+
+                    definedOperation(description = "Config Collector Operation") {
+                        inputs {
+                            type(BluePrintConstants.SCRIPT_KOTLIN)
+                            scriptClassReference("cba.resource.audit.functions.ConfigCollector")
+                        }
+                        outputs {
+                            status(getAttribute(ComponentScriptExecutor.ATTRIBUTE_STATUS))
+                            responseData(getAttribute(ComponentScriptExecutor.ATTRIBUTE_RESPONSE_DATA))
+                        }
+                    }
+                }
+                nodeTemplate(configCollectorComponent)
+            }
+
+            nodeType(BluePrintTypes.nodeTypeComponent())
+            nodeType(BluePrintTypes.nodeTypeComponentScriptExecutor())
+        }
\ No newline at end of file