aboutsummaryrefslogtreecommitdiffstats
path: root/components/model-catalog/blueprint-model/test-blueprint/resource-audit/Scripts
diff options
context:
space:
mode:
Diffstat (limited to 'components/model-catalog/blueprint-model/test-blueprint/resource-audit/Scripts')
-rw-r--r--components/model-catalog/blueprint-model/test-blueprint/resource-audit/Scripts/kotlin/cba/resource/audit/DeviceResourceDefinitions.kt62
-rw-r--r--components/model-catalog/blueprint-model/test-blueprint/resource-audit/Scripts/kotlin/cba/resource/audit/ResourceAuditDefinitions.kt83
-rw-r--r--components/model-catalog/blueprint-model/test-blueprint/resource-audit/Scripts/kotlin/cba/resource/audit/functions/ResourceAuditFunctions.kt56
-rw-r--r--components/model-catalog/blueprint-model/test-blueprint/resource-audit/Scripts/kotlin/cba/resource/audit/processor/RAProcessor.kt36
4 files changed, 237 insertions, 0 deletions
diff --git a/components/model-catalog/blueprint-model/test-blueprint/resource-audit/Scripts/kotlin/cba/resource/audit/DeviceResourceDefinitions.kt b/components/model-catalog/blueprint-model/test-blueprint/resource-audit/Scripts/kotlin/cba/resource/audit/DeviceResourceDefinitions.kt
new file mode 100644
index 000000000..a0ca1676e
--- /dev/null
+++ b/components/model-catalog/blueprint-model/test-blueprint/resource-audit/Scripts/kotlin/cba/resource/audit/DeviceResourceDefinitions.kt
@@ -0,0 +1,62 @@
+/*
+ * 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.functions.resource.resolution.resourceDefinitions
+import org.onap.ccsdk.cds.controllerblueprints.core.BluePrintConstants
+import org.onap.ccsdk.cds.controllerblueprints.core.BluePrintTypes
+
+const val SOURCE_SDNO = "SDN-O"
+const val SOURCE_SDNC = "SDNC"
+const val SOURCE_AAI = "AAI"
+
+val deviceResourceDefinitions = BluePrintTypes.resourceDefinitions {
+ // Port Speed Definitions
+ resourceDefinition(name = "port-speed", description = "Port Speed") {
+ property(type = "string", required = true)
+ sources {
+ sourceCapability(id = SOURCE_SDNO, description = "SDN-O Source") {
+ definedProperties {
+ type(BluePrintConstants.SCRIPT_KOTLIN)
+ scriptClassReference("cba.resource.audit.processor.PortSpeedRAProcessor")
+ keyDependencies(arrayListOf("device-id"))
+ }
+ }
+ sourceDb(id = SOURCE_SDNC, description = "SDNC Controller") {
+ definedProperties {
+ endpointSelector("processor-db")
+ query("SELECT PORT_SPEED FROM XXXX WHERE DEVICE_ID = :device_id")
+ inputKeyMapping {
+ map("device_id", "\$device-id")
+ }
+ keyDependencies(arrayListOf("device-id"))
+ }
+ }
+ sourceRest(id = SOURCE_AAI, description = "AAI Source") {
+ definedProperties {
+ endpointSelector("aai")
+ urlPath("/vnf/\$device_id")
+ path(".\$port-speed")
+ inputKeyMapping {
+ map("device_id", "\$device-id")
+ }
+ keyDependencies(arrayListOf("device-id"))
+ }
+ }
+ }
+ }
+} \ No newline at end of file
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
index 000000000..61783d62f
--- /dev/null
+++ b/components/model-catalog/blueprint-model/test-blueprint/resource-audit/Scripts/kotlin/cba/resource/audit/ResourceAuditDefinitions.kt
@@ -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
diff --git a/components/model-catalog/blueprint-model/test-blueprint/resource-audit/Scripts/kotlin/cba/resource/audit/functions/ResourceAuditFunctions.kt b/components/model-catalog/blueprint-model/test-blueprint/resource-audit/Scripts/kotlin/cba/resource/audit/functions/ResourceAuditFunctions.kt
new file mode 100644
index 000000000..49d0c7348
--- /dev/null
+++ b/components/model-catalog/blueprint-model/test-blueprint/resource-audit/Scripts/kotlin/cba/resource/audit/functions/ResourceAuditFunctions.kt
@@ -0,0 +1,56 @@
+/*
+ * 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.functions
+
+import cba.resource.audit.deviceResourceDefinitions
+import org.onap.ccsdk.cds.blueprintsprocessor.core.api.data.ExecutionServiceInput
+import org.onap.ccsdk.cds.blueprintsprocessor.services.execution.AbstractScriptComponentFunction
+import org.onap.ccsdk.cds.blueprintsprocessor.services.execution.ComponentScriptExecutor
+import org.onap.ccsdk.cds.controllerblueprints.core.BluePrintConstants
+import org.onap.ccsdk.cds.controllerblueprints.core.asJsonPrimitive
+import org.onap.ccsdk.cds.controllerblueprints.core.jsonAsJsonType
+import org.onap.ccsdk.cds.controllerblueprints.core.logger
+
+class ConfigCollector : AbstractScriptComponentFunction() {
+
+ val log = logger(ConfigCollector::class)
+
+ override suspend fun processNB(executionRequest: ExecutionServiceInput) {
+
+ val deviceId = bluePrintRuntimeService.getInputValue("device-id").textValue()
+ val sources = bluePrintRuntimeService.getInputValue("sources")
+
+ log.info("Processing Config Collection for device($deviceId), for sources($sources)")
+ deviceResourceDefinitions.forEach { name, resourceDefinition ->
+ log.info("collecting for the property : $name")
+ resourceDefinition.sources.forEach { sourceName, source ->
+ log.info("collecting for the Source : $sourceName")
+ }
+ }
+
+ // Set the Attributes
+ setAttribute(ComponentScriptExecutor.ATTRIBUTE_STATUS, BluePrintConstants.STATUS_SUCCESS.asJsonPrimitive())
+ setAttribute(ComponentScriptExecutor.ATTRIBUTE_RESPONSE_DATA, """{
+ "port-speed" : "10MBS"
+ }""".trimIndent().jsonAsJsonType())
+
+ }
+
+ override suspend fun recoverNB(runtimeException: RuntimeException, executionRequest: ExecutionServiceInput) {
+
+ }
+} \ No newline at end of file
diff --git a/components/model-catalog/blueprint-model/test-blueprint/resource-audit/Scripts/kotlin/cba/resource/audit/processor/RAProcessor.kt b/components/model-catalog/blueprint-model/test-blueprint/resource-audit/Scripts/kotlin/cba/resource/audit/processor/RAProcessor.kt
new file mode 100644
index 000000000..660f5918b
--- /dev/null
+++ b/components/model-catalog/blueprint-model/test-blueprint/resource-audit/Scripts/kotlin/cba/resource/audit/processor/RAProcessor.kt
@@ -0,0 +1,36 @@
+/*
+ * 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.processor
+
+import org.onap.ccsdk.cds.blueprintsprocessor.functions.resource.resolution.processor.ResourceAssignmentProcessor
+import org.onap.ccsdk.cds.controllerblueprints.core.logger
+import org.onap.ccsdk.cds.controllerblueprints.resource.dict.ResourceAssignment
+
+class PortSpeedRAProcessor : ResourceAssignmentProcessor() {
+ val log = logger(PortSpeedRAProcessor::class)
+ override fun getName(): String {
+ return "PortSpeedRAProcessor"
+ }
+
+ override suspend fun processNB(executionRequest: ResourceAssignment) {
+ log.info("Executing Resource PortSpeedRAProcessor")
+ }
+
+ override suspend fun recoverNB(runtimeException: RuntimeException, executionRequest: ResourceAssignment) {
+ TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
+ }
+} \ No newline at end of file