diff options
Diffstat (limited to 'cba/retrieve-resolution')
10 files changed, 459 insertions, 0 deletions
diff --git a/cba/retrieve-resolution/Definitions/retrieve-resolution.json b/cba/retrieve-resolution/Definitions/retrieve-resolution.json new file mode 100644 index 0000000..87fcdd9 --- /dev/null +++ b/cba/retrieve-resolution/Definitions/retrieve-resolution.json @@ -0,0 +1,120 @@ +{ + "metadata": { + "template_author": "Selffish", + "author-email": "test@bell.ca", + "template_name": "RT-retrieve-resolution", + "template_version": "1.0.0", + "template_tags": "Bell, CBA, test" + }, + "dsl_definitions": { + "retrieve-resolution-properties": { + "resolution-key": { + "get_input": "resolution-key" + }, + "artifact-name": { + "get_input": "artifact-name" + } + } + }, + "topology_template": { + "workflows": { + "retrieve-resolution": { + "steps": { + "resolve": { + "description": "Resolve", + "target": "resource-resolution", + "on_success": [ + "retrieve" + ] + }, + "retrieve": { + "description": "retrieve", + "target": "retrieve-resolution" + } + }, + "inputs": { + "resolution-key": { + "required": true, + "type": "string" + }, + "artifact-name": { + "required": true, + "type": "string" + }, + "template-prefix": { + "required": true, + "type": "list", + "entry_schema": { + "type": "string" + } + } + }, + "outputs": { + "retrieved-values": { + "type": "list", + "entry_schema": { + "type": "string" + }, + "value": { + "get_attribute": [ + "retrieve-resolution", + "response-data" + ] + } + } + } + } + }, + "node_templates": { + "resource-resolution": { + "type": "component-resource-resolution", + "interfaces": { + "ResourceResolutionComponent": { + "operations": { + "process": { + "inputs": { + "artifact-prefix-names": { + "get_input": "template-prefix" + }, + "store-result": true, + "resolution-key": { + "get_input": "resolution-key" + } + } + } + } + } + }, + "artifacts": { + "helloworld-velocity-template": { + "type": "artifact-template-velocity", + "file": "Templates/hello-world-template.vtl" + }, + "helloworld-velocity-mapping": { + "type": "artifact-mapping-resource", + "file": "Templates/hello-world-velocity-mapping.json" + } + } + }, + "retrieve-resolution": { + "type": "component-script-executor", + "interfaces": { + "ComponentScriptExecutor": { + "operations": { + "process": { + "implementation": { + "primary": "component-script" + }, + "inputs": { + "script-type": "kotlin", + "script-class-reference": "cba.cds.RT.RetrieveResolution", + "dynamic-properties": "*retrieve-resolution-properties" + } + } + } + } + } + } + } + } +} diff --git a/cba/retrieve-resolution/Scripts/kotlin/ResolvProperties.kt b/cba/retrieve-resolution/Scripts/kotlin/ResolvProperties.kt new file mode 100644 index 0000000..dff4761 --- /dev/null +++ b/cba/retrieve-resolution/Scripts/kotlin/ResolvProperties.kt @@ -0,0 +1,64 @@ +/* + * Copyright © 2020 Bell Canada. + * + * 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.cds.RT + +import org.onap.ccsdk.cds.blueprintsprocessor.functions.resource.resolution.processor.ResourceAssignmentProcessor +import org.onap.ccsdk.cds.blueprintsprocessor.functions.resource.resolution.utils.ResourceAssignmentUtils +import org.onap.ccsdk.cds.controllerblueprints.core.BluePrintProcessorException +import org.onap.ccsdk.cds.controllerblueprints.resource.dict.ResourceAssignment +import org.slf4j.LoggerFactory + +open class ResolvPropertiesKt() : ResourceAssignmentProcessor() { + + private val log = LoggerFactory.getLogger(ResolvPropertiesKt::class.java)!! + + override fun getName(): String { + return "ResolvPropertiesKt" + } + + override suspend fun processNB(resourceAssignment: ResourceAssignment) { + + var retValue = "undefined" + val resourceAssignmentNames = listOf<String>("j_kotlin","v_kotlin") + + try { + if(resourceAssignment.name == "from_suspend_function") { + retValue = getResolvedValue(resourceAssignment) + } + if(resourceAssignmentNames.contains(resourceAssignment.name)) { + retValue = "ok" + } + ResourceAssignmentUtils.setResourceDataValue(resourceAssignment, raRuntimeService, retValue) + + } catch (e: Exception) { + log.error(e.message, e) + ResourceAssignmentUtils.setResourceDataValue(resourceAssignment, raRuntimeService, "ERROR") + + throw BluePrintProcessorException("Failed in template key ($resourceAssignment) assignments, cause: ${e.message}", e) + } + } + + /* + * CCSDK-2150 : https://jira.onap.org/browse/CCSDK-2150 + */ + suspend fun getResolvedValue(resourceAssignment: ResourceAssignment): String { + return "ok" + } + + override suspend fun recoverNB(runtimeException: RuntimeException, resourceAssignment: ResourceAssignment) { + raRuntimeService.getBluePrintError().addError("Failed in ResolvPropertiesKt-ResourceAssignmentProcessor : ${runtimeException.message}") + } +} diff --git a/cba/retrieve-resolution/Scripts/kotlin/ResolvProperties1.kt b/cba/retrieve-resolution/Scripts/kotlin/ResolvProperties1.kt new file mode 100644 index 0000000..d960f20 --- /dev/null +++ b/cba/retrieve-resolution/Scripts/kotlin/ResolvProperties1.kt @@ -0,0 +1,36 @@ +/* + * Copyright © 2020 Bell Canada. + * + * 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.cds.RT + +import org.onap.ccsdk.cds.blueprintsprocessor.functions.resource.resolution.processor.ResourceAssignmentProcessor +import org.onap.ccsdk.cds.blueprintsprocessor.functions.resource.resolution.utils.ResourceAssignmentUtils +import org.onap.ccsdk.cds.controllerblueprints.core.BluePrintProcessorException +import org.onap.ccsdk.cds.controllerblueprints.resource.dict.ResourceAssignment + +open class ResolvProperties1Kt() : ResourceAssignmentProcessor() { + + override fun getName(): String { + return "ResolvProperties1Kt" + } + + override suspend fun processNB(resourceAssignment: ResourceAssignment) { + ResourceAssignmentUtils.setResourceDataValue(resourceAssignment, raRuntimeService, "val1") + } + + override suspend fun recoverNB(runtimeException: RuntimeException, resourceAssignment: ResourceAssignment) { + raRuntimeService.getBluePrintError().addError("Failed in ResolvPropertiesKt-ResourceAssignmentProcessor : ${runtimeException.message}") + } +} diff --git a/cba/retrieve-resolution/Scripts/kotlin/ResolvProperties2.kt b/cba/retrieve-resolution/Scripts/kotlin/ResolvProperties2.kt new file mode 100644 index 0000000..4bf7944 --- /dev/null +++ b/cba/retrieve-resolution/Scripts/kotlin/ResolvProperties2.kt @@ -0,0 +1,36 @@ +/* + * Copyright © 2020 Bell Canada. + * + * 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.cds.RT + +import org.onap.ccsdk.cds.blueprintsprocessor.functions.resource.resolution.processor.ResourceAssignmentProcessor +import org.onap.ccsdk.cds.blueprintsprocessor.functions.resource.resolution.utils.ResourceAssignmentUtils +import org.onap.ccsdk.cds.controllerblueprints.core.BluePrintProcessorException +import org.onap.ccsdk.cds.controllerblueprints.resource.dict.ResourceAssignment + +open class ResolvProperties2Kt() : ResourceAssignmentProcessor() { + + override fun getName(): String { + return "ResolvProperties2Kt" + } + + override suspend fun processNB(resourceAssignment: ResourceAssignment) { + ResourceAssignmentUtils.setResourceDataValue(resourceAssignment, raRuntimeService, "val2") + } + + override suspend fun recoverNB(runtimeException: RuntimeException, resourceAssignment: ResourceAssignment) { + raRuntimeService.getBluePrintError().addError("Failed in ResolvPropertiesKt-ResourceAssignmentProcessor : ${runtimeException.message}") + } +} diff --git a/cba/retrieve-resolution/Scripts/kotlin/ResolvProperties3.kt b/cba/retrieve-resolution/Scripts/kotlin/ResolvProperties3.kt new file mode 100644 index 0000000..f8de27b --- /dev/null +++ b/cba/retrieve-resolution/Scripts/kotlin/ResolvProperties3.kt @@ -0,0 +1,35 @@ +/* + * Copyright © 2020 Bell Canada. + * + * 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.cds.RT + +import org.onap.ccsdk.cds.blueprintsprocessor.functions.resource.resolution.processor.ResourceAssignmentProcessor +import org.onap.ccsdk.cds.blueprintsprocessor.functions.resource.resolution.utils.ResourceAssignmentUtils +import org.onap.ccsdk.cds.controllerblueprints.core.BluePrintProcessorException +import org.onap.ccsdk.cds.controllerblueprints.resource.dict.ResourceAssignment + +open class ResolvProperties3Kt() : ResourceAssignmentProcessor() { + + override fun getName(): String { + return "ResolvProperties3Kt" + } + override suspend fun processNB(resourceAssignment: ResourceAssignment) { + ResourceAssignmentUtils.setResourceDataValue(resourceAssignment, raRuntimeService, "val3") + } + + override suspend fun recoverNB(runtimeException: RuntimeException, resourceAssignment: ResourceAssignment) { + raRuntimeService.getBluePrintError().addError("Failed in ResolvPropertiesKt-ResourceAssignmentProcessor : ${runtimeException.message}") + } +} diff --git a/cba/retrieve-resolution/Scripts/kotlin/ResolvProperties4.kt b/cba/retrieve-resolution/Scripts/kotlin/ResolvProperties4.kt new file mode 100644 index 0000000..37e4d0b --- /dev/null +++ b/cba/retrieve-resolution/Scripts/kotlin/ResolvProperties4.kt @@ -0,0 +1,38 @@ +/* + * Copyright © 2020 Bell Canada. + * + * 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.cds.RT + +import org.onap.ccsdk.cds.blueprintsprocessor.functions.resource.resolution.processor.ResourceAssignmentProcessor +import org.onap.ccsdk.cds.blueprintsprocessor.functions.resource.resolution.utils.ResourceAssignmentUtils +import org.onap.ccsdk.cds.controllerblueprints.core.BluePrintProcessorException +import org.onap.ccsdk.cds.controllerblueprints.resource.dict.ResourceAssignment +import kotlinx.coroutines.delay + +open class ResolvProperties4Kt() : ResourceAssignmentProcessor() { + + override fun getName(): String { + return "ResolvProperties4Kt" + } + + override suspend fun processNB(resourceAssignment: ResourceAssignment) { + delay(1000) + ResourceAssignmentUtils.setResourceDataValue(resourceAssignment, raRuntimeService, "val4") + } + + override suspend fun recoverNB(runtimeException: RuntimeException, resourceAssignment: ResourceAssignment) { + raRuntimeService.getBluePrintError().addError("Failed in ResolvPropertiesKt-ResourceAssignmentProcessor : ${runtimeException.message}") + } +} diff --git a/cba/retrieve-resolution/Scripts/kotlin/RetrieveResolution.kt b/cba/retrieve-resolution/Scripts/kotlin/RetrieveResolution.kt new file mode 100644 index 0000000..c223498 --- /dev/null +++ b/cba/retrieve-resolution/Scripts/kotlin/RetrieveResolution.kt @@ -0,0 +1,63 @@ +/* + * Copyright © 2020 Bell Canada. + * + * 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.cds.RT + +import org.onap.ccsdk.cds.blueprintsprocessor.core.api.data.ExecutionServiceInput +import org.onap.ccsdk.cds.blueprintsprocessor.functions.resource.resolution.db.ResourceResolution +import org.onap.ccsdk.cds.blueprintsprocessor.functions.resource.resolution.storedContentFromResolvedArtifactNB +import org.onap.ccsdk.cds.blueprintsprocessor.functions.resource.resolution.storedResourceResolutionsNB +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.asJsonType +import org.slf4j.LoggerFactory + +open class RetrieveResolution : AbstractScriptComponentFunction() { + + private val log = LoggerFactory.getLogger(RetrieveResolution::class.java)!! + private val OCCURENCE: Int = 1 + + override suspend fun processNB(executionRequest: ExecutionServiceInput) { + + /* + * Here resolution-key comes as part of retrieve-resolution request payload. + */ + val resolution_key = getDynamicProperties("resolution-key").asText() + log.info("Got the resolution_key: $resolution_key from RetrieveResolution") + + /* + * Here artifact_name comes as part of retrieve-resolution request payload. + */ + val artifact_name = getDynamicProperties("artifact-name").asText() + log.info("Got the artifact_name: $artifact_name from RetrieveResolution") + + val output: List<ResourceResolution> = storedResourceResolutionsNB(resolution_key, artifact_name, OCCURENCE) + val sortedValueOutput = output.sortedBy { it.value }.map { it -> it.value } + + val result = storedContentFromResolvedArtifactNB(resolution_key, artifact_name) + val returnVal = mutableMapOf( + "resolved-template" to result.asJsonType(), + "retrieved-resolution" to mutableListOf(sortedValueOutput).asJsonType() + ).asJsonType() + + log.info("Return Val: \n$returnVal\n") + // Return the response. + setAttribute(ComponentScriptExecutor.ATTRIBUTE_RESPONSE_DATA, returnVal) + } + + override suspend fun recoverNB(runtimeException: RuntimeException, executionRequest: ExecutionServiceInput) { + log.info("Executing Recovery") + } +} diff --git a/cba/retrieve-resolution/TOSCA-Metadata/TOSCA.meta b/cba/retrieve-resolution/TOSCA-Metadata/TOSCA.meta new file mode 100644 index 0000000..03f9368 --- /dev/null +++ b/cba/retrieve-resolution/TOSCA-Metadata/TOSCA.meta @@ -0,0 +1,8 @@ +TOSCA-Meta-File-Version: 1.0.0 +CSAR-Version: 1.0 +Created-By: Selffish +Entry-Definitions: Definitions/retrieve-resolution.json +Template-Tags: test, regression +Template-Name: RT-retrieve-resolution +Template-Version: 1.0.0 +Template-Type: DEFAULT
\ No newline at end of file diff --git a/cba/retrieve-resolution/Templates/hello-world-template.vtl b/cba/retrieve-resolution/Templates/hello-world-template.vtl new file mode 100644 index 0000000..38f1c5f --- /dev/null +++ b/cba/retrieve-resolution/Templates/hello-world-template.vtl @@ -0,0 +1,7 @@ +{ + "input": "${v_input}", + "kotlin1": "${v_kotlin1}", + "kotlin2": "${v_kotlin2}", + "kotlin3": "${v_kotlin3}", + "kotlin4": "${v_kotlin4}" +} diff --git a/cba/retrieve-resolution/Templates/hello-world-velocity-mapping.json b/cba/retrieve-resolution/Templates/hello-world-velocity-mapping.json new file mode 100644 index 0000000..93c4704 --- /dev/null +++ b/cba/retrieve-resolution/Templates/hello-world-velocity-mapping.json @@ -0,0 +1,52 @@ +[ + { + "name": "v_input", + "input-param": true, + "property": { + "type": "string" + }, + "dictionary-name": "input-source", + "dictionary-source": "input", + "dependencies": [] + }, + { + "name": "v_kotlin1", + "input-param": true, + "property": { + "type": "string" + }, + "dictionary-name": "kotlin-script-1", + "dictionary-source": "capability", + "dependencies": [] + }, + { + "name": "v_kotlin2", + "input-param": true, + "property": { + "type": "string" + }, + "dictionary-name": "kotlin-script-2", + "dictionary-source": "capability", + "dependencies": [] + }, + { + "name": "v_kotlin3", + "input-param": true, + "property": { + "type": "string" + }, + "dictionary-name": "kotlin-script-3", + "dictionary-source": "capability", + "dependencies": [] + }, + { + "name": "v_kotlin4", + "input-param": true, + "property": { + "type": "string" + }, + "dictionary-name": "kotlin-script-4", + "dictionary-source": "capability", + "dependencies": [] + } +] |