From e094a16a873d9bba6f4b50998a0fbdcee5cda8a5 Mon Sep 17 00:00:00 2001 From: Brinda Santh Date: Wed, 10 Jul 2019 10:40:30 -0400 Subject: Refractor duplicate cli script function Change-Id: Ida75e839668eeeabd4577629f2bc6ec3240d7734 Issue-ID: CCSDK-1428 Signed-off-by: Brinda Santh --- .../kotlin/internal/scripts/InternalSimpleCli.kt | 82 ++++++++++++++++++++++ .../functions/cli/executor/ComponentCliExecutor.kt | 28 -------- .../main/kotlin/scripts/InternalSimpleCli.cba.kts | 80 --------------------- .../cli/executor/ComponentCliExecutorTest.kt | 12 ++-- .../src/test/resources/logback-test.xml | 1 + 5 files changed, 89 insertions(+), 114 deletions(-) create mode 100644 ms/blueprintsprocessor/functions/cli-executor/src/main/kotlin/internal/scripts/InternalSimpleCli.kt delete mode 100644 ms/blueprintsprocessor/functions/cli-executor/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/functions/cli/executor/ComponentCliExecutor.kt delete mode 100644 ms/blueprintsprocessor/functions/cli-executor/src/main/kotlin/scripts/InternalSimpleCli.cba.kts (limited to 'ms/blueprintsprocessor') diff --git a/ms/blueprintsprocessor/functions/cli-executor/src/main/kotlin/internal/scripts/InternalSimpleCli.kt b/ms/blueprintsprocessor/functions/cli-executor/src/main/kotlin/internal/scripts/InternalSimpleCli.kt new file mode 100644 index 000000000..4c1d92ae6 --- /dev/null +++ b/ms/blueprintsprocessor/functions/cli-executor/src/main/kotlin/internal/scripts/InternalSimpleCli.kt @@ -0,0 +1,82 @@ +/* + * 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. + */ + +@file:Suppress("unused") + +package internal.scripts + +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.blueprintsprocessor.ssh.sshClientService +import org.onap.ccsdk.cds.controllerblueprints.core.asJsonPrimitive +import org.onap.ccsdk.cds.controllerblueprints.core.service.BluePrintDependencyService +import org.slf4j.LoggerFactory + +open class TestCliScriptFunction : AbstractScriptComponentFunction() { + + private val log = LoggerFactory.getLogger(TestCliScriptFunction::class.java)!! + + override fun getName(): String { + return "TestCliScriptFunction" + } + + override suspend fun processNB(executionRequest: ExecutionServiceInput) { + log.info("Executing process ...") + } + + override suspend fun recoverNB(runtimeException: RuntimeException, executionRequest: ExecutionServiceInput) { + log.info("Executing Recovery") + } +} + + +open class Check : AbstractScriptComponentFunction() { + + private val log = LoggerFactory.getLogger(AbstractScriptComponentFunction::class.java)!! + + override fun getName(): String { + return "Check" + } + + override suspend fun processNB(executionRequest: ExecutionServiceInput) { + // Get the Device Information from the DSL Model + val deviceInformation = bluePrintRuntimeService.resolveDSLExpression("device-properties") + + // Get the Client Service + val sshClientService = BluePrintDependencyService.sshClientService(deviceInformation) + + sshClientService.startSessionNB() + + // Read Commands + val commands = readLinesFromArtifact("command-template") + + // Execute multiple Commands + val responseLog = sshClientService.executeCommandsNB(commands, 5000) + + // Close Session + sshClientService.closeSessionNB() + + // Set the Response Data + setAttribute(ComponentScriptExecutor.RESPONSE_DATA, responseLog.asJsonPrimitive()) + + log.info("Executing process") + } + + override suspend fun recoverNB(runtimeException: RuntimeException, executionRequest: ExecutionServiceInput) { + log.info("Executing Recovery") + } +} diff --git a/ms/blueprintsprocessor/functions/cli-executor/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/functions/cli/executor/ComponentCliExecutor.kt b/ms/blueprintsprocessor/functions/cli-executor/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/functions/cli/executor/ComponentCliExecutor.kt deleted file mode 100644 index e1d8825ba..000000000 --- a/ms/blueprintsprocessor/functions/cli-executor/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/functions/cli/executor/ComponentCliExecutor.kt +++ /dev/null @@ -1,28 +0,0 @@ -/* - * 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 org.onap.ccsdk.cds.blueprintsprocessor.functions.cli.executor - -import org.onap.ccsdk.cds.blueprintsprocessor.services.execution.ComponentFunctionScriptingService -import org.onap.ccsdk.cds.blueprintsprocessor.services.execution.ComponentScriptExecutor -import org.springframework.beans.factory.config.ConfigurableBeanFactory -import org.springframework.context.annotation.Scope -import org.springframework.stereotype.Component - -@Component("component-cli-executor") -@Scope(value = ConfigurableBeanFactory.SCOPE_PROTOTYPE) -open class ComponentCliExecutor(private var componentFunctionScriptingService: ComponentFunctionScriptingService) - : ComponentScriptExecutor(componentFunctionScriptingService) \ No newline at end of file diff --git a/ms/blueprintsprocessor/functions/cli-executor/src/main/kotlin/scripts/InternalSimpleCli.cba.kts b/ms/blueprintsprocessor/functions/cli-executor/src/main/kotlin/scripts/InternalSimpleCli.cba.kts deleted file mode 100644 index e62374747..000000000 --- a/ms/blueprintsprocessor/functions/cli-executor/src/main/kotlin/scripts/InternalSimpleCli.cba.kts +++ /dev/null @@ -1,80 +0,0 @@ -/* - * 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. - */ - -@file:Suppress("unused") - -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.blueprintsprocessor.ssh.sshClientService -import org.onap.ccsdk.cds.controllerblueprints.core.asJsonPrimitive -import org.onap.ccsdk.cds.controllerblueprints.core.service.BluePrintDependencyService -import org.slf4j.LoggerFactory - -open class TestCliScriptFunction : AbstractScriptComponentFunction() { - - private val log = LoggerFactory.getLogger(TestCliScriptFunction::class.java.canonicalName)!! - - override fun getName(): String { - return "SimpleCliConfigure" - } - - override suspend fun processNB(executionRequest: ExecutionServiceInput) { - log.info("Executing process ...") - } - - override suspend fun recoverNB(runtimeException: RuntimeException, executionRequest: ExecutionServiceInput) { - log.info("Executing Recovery") - } -} - - -open class Check : AbstractScriptComponentFunction() { - - private val log = LoggerFactory.getLogger(AbstractScriptComponentFunction::class.java)!! - - override fun getName(): String { - return "Check" - } - - override suspend fun processNB(executionRequest: ExecutionServiceInput) { - // Get the Device Information from the DSL Model - val deviceInformation = bluePrintRuntimeService.resolveDSLExpression("device-properties") - - // Get the Client Service - val sshClientService = BluePrintDependencyService.sshClientService(deviceInformation) - - sshClientService.startSessionNB() - - // Read Commands - val commands = readLinesFromArtifact("command-template") - - // Execute multiple Commands - val responseLog = sshClientService.executeCommandsNB(commands, 5000) - - // Close Session - sshClientService.closeSessionNB() - - // Set the Response Data - setAttribute(ComponentScriptExecutor.RESPONSE_DATA, responseLog.asJsonPrimitive()) - - log.info("Executing process") - } - - override suspend fun recoverNB(runtimeException: RuntimeException, executionRequest: ExecutionServiceInput) { - log.info("Executing Recovery") - } -} diff --git a/ms/blueprintsprocessor/functions/cli-executor/src/test/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/functions/cli/executor/ComponentCliExecutorTest.kt b/ms/blueprintsprocessor/functions/cli-executor/src/test/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/functions/cli/executor/ComponentCliExecutorTest.kt index 658092f0a..0c538d4e7 100644 --- a/ms/blueprintsprocessor/functions/cli-executor/src/test/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/functions/cli/executor/ComponentCliExecutorTest.kt +++ b/ms/blueprintsprocessor/functions/cli-executor/src/test/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/functions/cli/executor/ComponentCliExecutorTest.kt @@ -56,12 +56,12 @@ import kotlin.test.assertNotNull class ComponentCliExecutorTest { @Autowired - lateinit var componentCliExecutor: ComponentCliExecutor + lateinit var componentScriptExecutor: ComponentScriptExecutor @Test fun `test CLI Component Instance`() { runBlocking { - assertNotNull(componentCliExecutor, "failed to get ComponentCliExecutor instance") + assertNotNull(componentScriptExecutor, "failed to get ComponentCliExecutor instance") val executionServiceInput = ExecutionServiceInput().apply { commonHeader = CommonHeader().apply { requestId = "1234" @@ -72,8 +72,8 @@ class ComponentCliExecutorTest { payload = JacksonUtils.jsonNode("{}") as ObjectNode } val bluePrintRuntime = mockk("1234") - componentCliExecutor.bluePrintRuntimeService = bluePrintRuntime - componentCliExecutor.stepName = "sample-step" + componentScriptExecutor.bluePrintRuntimeService = bluePrintRuntime + componentScriptExecutor.stepName = "sample-step" val operationInputs = hashMapOf() operationInputs[BluePrintConstants.PROPERTY_CURRENT_NODE_TEMPLATE] = "activate-cli".asJsonPrimitive() @@ -81,7 +81,7 @@ class ComponentCliExecutorTest { operationInputs[BluePrintConstants.PROPERTY_CURRENT_OPERATION] = "operationName".asJsonPrimitive() operationInputs[ComponentScriptExecutor.SCRIPT_TYPE] = BluePrintConstants.SCRIPT_INTERNAL.asJsonPrimitive() operationInputs[ComponentScriptExecutor.SCRIPT_CLASS_REFERENCE] = - "InternalSimpleCli_cba\$TestCliScriptFunction".asJsonPrimitive() + "internal.scripts.TestCliScriptFunction".asJsonPrimitive() val stepInputData = StepData().apply { name = "activate-cli" @@ -102,7 +102,7 @@ class ComponentCliExecutorTest { "interfaceName", "operationName") } returns operationOutputs - componentCliExecutor.applyNB(executionServiceInput) + componentScriptExecutor.applyNB(executionServiceInput) } } } \ No newline at end of file diff --git a/ms/blueprintsprocessor/functions/cli-executor/src/test/resources/logback-test.xml b/ms/blueprintsprocessor/functions/cli-executor/src/test/resources/logback-test.xml index 626b8f911..688a533be 100644 --- a/ms/blueprintsprocessor/functions/cli-executor/src/test/resources/logback-test.xml +++ b/ms/blueprintsprocessor/functions/cli-executor/src/test/resources/logback-test.xml @@ -27,6 +27,7 @@ + -- cgit 1.2.3-korg