From eed244a5964b26d35bb8db3acb19311d781f8a58 Mon Sep 17 00:00:00 2001 From: Steve Siani Date: Thu, 12 Sep 2019 15:38:23 -0400 Subject: Add wrapper function for Cli and Netconf executor Issue-ID: CCSDK-1707 Signed-off-by: Steve Siani Change-Id: I2c29d0135b8252cd21ed3d139516ac637c846927 (cherry picked from commit 1d7e5f7f80281823cbfc4a2e2ea9833c6412de8c) --- components/scripts/python/ccsdk_netconf/common.py | 37 ++++++++++++++++++++++ .../scripts/python/ccsdk_netconf/netconfclient.py | 3 -- .../kotlin/internal/scripts/InternalSimpleCli.kt | 9 +++--- .../cli/executor/CliExecutorExtensions.kt | 13 ++++++++ 4 files changed, 55 insertions(+), 7 deletions(-) diff --git a/components/scripts/python/ccsdk_netconf/common.py b/components/scripts/python/ccsdk_netconf/common.py index 66c7a98b5..457d46019 100644 --- a/components/scripts/python/ccsdk_netconf/common.py +++ b/components/scripts/python/ccsdk_netconf/common.py @@ -12,6 +12,7 @@ # 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. +from netconf_constant import * from org.onap.ccsdk.cds.blueprintsprocessor.functions.resource.resolution import ResourceResolutionExtensionsKt @@ -21,9 +22,45 @@ class ResolutionHelper: self.component_function = component_function def resolve_and_generate_message_from_template_prefix(self, artifact_prefix): + """Get the template resolved in the current workflow execution by the artifact prefix + + :param artifact_prefix: + :return: template + """ return ResourceResolutionExtensionsKt.contentFromResolvedArtifact(self.component_function, artifact_prefix) def retrieve_resolved_template_from_database(self, key, artifact_template): + """Get the template resolved and stored with resolution-key and matching with the artifact name + + :param key: + :param artifact_template: + :return: + """ return ResourceResolutionExtensionsKt.storedContentFromResolvedArtifact(self.component_function, key, artifact_template) + def set_execution_attribute_response_data(self, response_data): + """For the current node execution, set the attribute value of response-data + + :param response_data: + :return: + """ + self.component_function.setAttribute(ATTRIBUTE_RESPONSE_DATA, response_data) + + def get_node_template_attribute(self, node_template_name, attribute_key): + """get attribute value for a specific node template of the current workflow + + :param node_template_name: + :param attribute_key: + :return: JsonNode + """ + self.component_function.getNodeTemplateAttribute(node_template_name, attribute_key) + + def get_input_value(self, key): + """Get input value of the current node template execution + + :param key: + :return: JsonNode + """ + self.component_function.bluePrintRuntimeService.getInputValue(key) + diff --git a/components/scripts/python/ccsdk_netconf/netconfclient.py b/components/scripts/python/ccsdk_netconf/netconfclient.py index 74ac7e3bc..2d4829363 100644 --- a/components/scripts/python/ccsdk_netconf/netconfclient.py +++ b/components/scripts/python/ccsdk_netconf/netconfclient.py @@ -63,6 +63,3 @@ class NetconfClient: def get(self, filter_content): device_response = self.netconf_rpc_client.get(filter_content) return device_response - - def set_execution_attribute_response_data(self, response_data): - self.component_function.setAttribute(ATTRIBUTE_RESPONSE_DATA, response_data) 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 index cf27cc2de..15365e176 100644 --- 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 @@ -19,11 +19,12 @@ package internal.scripts import org.onap.ccsdk.cds.blueprintsprocessor.core.api.data.ExecutionServiceInput +import org.onap.ccsdk.cds.blueprintsprocessor.functions.cli.executor.cliDeviceInfo +import org.onap.ccsdk.cds.blueprintsprocessor.functions.cli.executor.getSshClientService 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() { @@ -54,10 +55,10 @@ open class Check : AbstractScriptComponentFunction() { override suspend fun processNB(executionRequest: ExecutionServiceInput) { // Get the Device Information from the DSL Model - val deviceInformation = bluePrintRuntimeService.resolveDSLExpression("device-properties") + val deviceInformation = cliDeviceInfo("device-properties") // Get the Client Service - val sshClientService = BluePrintDependencyService.sshClientService(deviceInformation) + val sshClientService = getSshClientService(deviceInformation) sshClientService.startSessionNB() diff --git a/ms/blueprintsprocessor/functions/cli-executor/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/functions/cli/executor/CliExecutorExtensions.kt b/ms/blueprintsprocessor/functions/cli-executor/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/functions/cli/executor/CliExecutorExtensions.kt index bc9b7103c..ad95759a9 100644 --- a/ms/blueprintsprocessor/functions/cli-executor/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/functions/cli/executor/CliExecutorExtensions.kt +++ b/ms/blueprintsprocessor/functions/cli-executor/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/functions/cli/executor/CliExecutorExtensions.kt @@ -17,7 +17,20 @@ package org.onap.ccsdk.cds.blueprintsprocessor.functions.cli.executor +import com.fasterxml.jackson.databind.JsonNode +import org.onap.ccsdk.cds.blueprintsprocessor.services.execution.AbstractComponentFunction +import org.onap.ccsdk.cds.blueprintsprocessor.ssh.service.BlueprintSshClientService +import org.onap.ccsdk.cds.blueprintsprocessor.ssh.sshClientService +import org.onap.ccsdk.cds.controllerblueprints.core.service.BluePrintDependencyService + /** * Register the CLI module exposed dependency */ +fun AbstractComponentFunction.cliDeviceInfo(requirementName: String): JsonNode { + return bluePrintRuntimeService.resolveDSLExpression(requirementName) +} + +fun AbstractComponentFunction.getSshClientService(cliDeviceInfo: JsonNode): BlueprintSshClientService { + return BluePrintDependencyService.sshClientService(cliDeviceInfo) +} -- cgit 1.2.3-korg