aboutsummaryrefslogtreecommitdiffstats
path: root/ms/blueprintsprocessor/modules/services/execution-service
diff options
context:
space:
mode:
authorBrinda Santh <bs2796@att.com>2019-11-19 14:23:44 -0500
committerBrinda Santh <bs2796@att.com>2019-12-11 12:54:25 -0500
commita30e1864fadad70c797ca1248a3c1272300a6e2b (patch)
tree65b2ae886a767f1d4dbe3578524d234529c7d710 /ms/blueprintsprocessor/modules/services/execution-service
parent32416f7624757c87260671d74124ea3e0a122331 (diff)
Separate jython implementation and dependencies.
Refactored cds python capabilities to python-executor function, so that it will easy to disable and deprecation This change is not jython depreciation, just separating out Issue-ID: CCSDK-1865 Signed-off-by: Brinda Santh <bs2796@att.com> Change-Id: I3727d72d7195c49d670c30a6fc4245f5a8599e3a
Diffstat (limited to 'ms/blueprintsprocessor/modules/services/execution-service')
-rw-r--r--ms/blueprintsprocessor/modules/services/execution-service/pom.xml4
-rw-r--r--ms/blueprintsprocessor/modules/services/execution-service/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/services/execution/scripts/BlueprintJythonService.kt118
-rw-r--r--ms/blueprintsprocessor/modules/services/execution-service/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/services/execution/scripts/BlueprintPythonHost.kt50
-rw-r--r--ms/blueprintsprocessor/modules/services/execution-service/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/services/execution/scripts/BlueprintPythonInterpreterProxy.kt47
-rw-r--r--ms/blueprintsprocessor/modules/services/execution-service/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/services/execution/scripts/PythonExecutorConfiguration.kt73
-rw-r--r--ms/blueprintsprocessor/modules/services/execution-service/src/test/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/services/execution/scripts/AbstractComponentFunctionTest.kt3
-rw-r--r--ms/blueprintsprocessor/modules/services/execution-service/src/test/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/services/execution/scripts/BlueprintJythonServiceTest.kt75
-rw-r--r--ms/blueprintsprocessor/modules/services/execution-service/src/test/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/services/execution/scripts/BlueprintPythonHostTest.kt63
-rw-r--r--ms/blueprintsprocessor/modules/services/execution-service/src/test/resources/PythonTestScript.py9
-rw-r--r--ms/blueprintsprocessor/modules/services/execution-service/src/test/resources/scripts/SamplePythonComponentNode.py14
10 files changed, 12 insertions, 444 deletions
diff --git a/ms/blueprintsprocessor/modules/services/execution-service/pom.xml b/ms/blueprintsprocessor/modules/services/execution-service/pom.xml
index 6ca0bbc04..4517a3f05 100644
--- a/ms/blueprintsprocessor/modules/services/execution-service/pom.xml
+++ b/ms/blueprintsprocessor/modules/services/execution-service/pom.xml
@@ -32,10 +32,6 @@
<dependencies>
<dependency>
- <groupId>org.python</groupId>
- <artifactId>jython-standalone</artifactId>
- </dependency>
- <dependency>
<groupId>org.onap.ccsdk.cds.blueprintsprocessor</groupId>
<artifactId>blueprint-core</artifactId>
</dependency>
diff --git a/ms/blueprintsprocessor/modules/services/execution-service/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/services/execution/scripts/BlueprintJythonService.kt b/ms/blueprintsprocessor/modules/services/execution-service/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/services/execution/scripts/BlueprintJythonService.kt
index dd4c0ec99..3b8c296e6 100644
--- a/ms/blueprintsprocessor/modules/services/execution-service/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/services/execution/scripts/BlueprintJythonService.kt
+++ b/ms/blueprintsprocessor/modules/services/execution-service/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/services/execution/scripts/BlueprintJythonService.kt
@@ -13,124 +13,28 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
+
package org.onap.ccsdk.cds.blueprintsprocessor.services.execution.scripts
-import com.fasterxml.jackson.databind.JsonNode
-import com.fasterxml.jackson.databind.node.ArrayNode
-import org.apache.commons.io.FilenameUtils
-import org.onap.ccsdk.cds.blueprintsprocessor.services.execution.AbstractComponentFunction
import org.onap.ccsdk.cds.controllerblueprints.core.BluePrintProcessorException
-import org.onap.ccsdk.cds.controllerblueprints.core.checkNotEmpty
-import org.onap.ccsdk.cds.controllerblueprints.core.data.OperationAssignment
import org.onap.ccsdk.cds.controllerblueprints.core.interfaces.BlueprintFunctionNode
import org.onap.ccsdk.cds.controllerblueprints.core.service.BluePrintContext
-import org.onap.ccsdk.cds.controllerblueprints.core.utils.JacksonUtils
-import org.slf4j.Logger
-import org.slf4j.LoggerFactory
-import org.springframework.context.ApplicationContext
import org.springframework.stereotype.Service
-import java.io.File
-
-@Service
-class BlueprintJythonService(
- val pythonExecutorProperty: PythonExecutorProperty,
- private val applicationContext: ApplicationContext
-) {
-
- val log: Logger = LoggerFactory.getLogger(BlueprintJythonService::class.java)
-
- inline fun <reified T> jythonInstance(
- blueprintContext: BluePrintContext,
- pythonClassName: String,
- content: String,
- dependencyInstanceNames: MutableMap<String, Any>?
- ): T {
-
- val blueprintBasePath: String = blueprintContext.rootPath
- val pythonPath: MutableList<String> = arrayListOf()
- pythonPath.add(blueprintBasePath)
- pythonPath.addAll(pythonExecutorProperty.modulePaths)
-
- val blueprintPythonConfigurations = BluePrintPython(pythonExecutorProperty.executionPath, pythonPath, arrayListOf())
-
- val blueprintPythonHost = BlueprintPythonHost(blueprintPythonConfigurations)
- val pyObject = blueprintPythonHost.getPythonComponent(content, pythonClassName, dependencyInstanceNames)
- log.info("Component Object {}", pyObject)
+// TODO("After Jython depreciation, this interface will be removed")
- return pyObject.__tojava__(T::class.java) as T
- }
+@Deprecated("CDS won's support Jython services")
+interface BlueprintJythonService {
fun jythonComponentInstance(bluePrintContext: BluePrintContext, scriptClassReference: String):
- BlueprintFunctionNode<*, *> {
-
- val pythonFileName = bluePrintContext.rootPath
- .plus(File.separator)
- .plus(scriptClassReference)
-
- val pythonClassName = FilenameUtils.getBaseName(pythonFileName)
- log.info("Getting Jython Script Class($pythonClassName)")
-
- val content: String = JacksonUtils.getContent(pythonFileName)
-
- val jythonInstances: MutableMap<String, Any> = hashMapOf()
- jythonInstances["log"] = LoggerFactory.getLogger(pythonClassName)
-
- return jythonInstance<BlueprintFunctionNode<*, *>>(
- bluePrintContext, pythonClassName,
- content, jythonInstances
- )
- }
-
- fun jythonComponentInstance(abstractComponentFunction: AbstractComponentFunction): AbstractComponentFunction {
-
- val bluePrintRuntimeService = abstractComponentFunction.bluePrintRuntimeService
- val bluePrintContext = bluePrintRuntimeService.bluePrintContext()
- val nodeTemplateName: String = abstractComponentFunction.nodeTemplateName
- val operationInputs: MutableMap<String, JsonNode> = abstractComponentFunction.operationInputs
-
- val operationAssignment: OperationAssignment = bluePrintContext
- .nodeTemplateInterfaceOperation(
- abstractComponentFunction.nodeTemplateName,
- abstractComponentFunction.interfaceName, abstractComponentFunction.operationName
- )
-
- val blueprintBasePath: String = bluePrintContext.rootPath
-
- val artifactName: String = operationAssignment.implementation?.primary
- ?: throw BluePrintProcessorException("missing primary field to get artifact name for node template ($nodeTemplateName)")
-
- val artifactDefinition = bluePrintRuntimeService.resolveNodeTemplateArtifactDefinition(nodeTemplateName, artifactName)
-
- val pythonFileName = artifactDefinition.file
- ?: throw BluePrintProcessorException("missing file name for node template ($nodeTemplateName)'s artifactName($artifactName)")
-
- val pythonClassName = FilenameUtils.getBaseName(pythonFileName)
- log.info("Getting Jython Script Class($pythonClassName)")
-
- val content: String? = bluePrintRuntimeService.resolveNodeTemplateArtifact(nodeTemplateName, artifactName)
-
- checkNotEmpty(content) { "artifact ($artifactName) content is empty" }
-
- val pythonPath: MutableList<String> = operationAssignment.implementation?.dependencies ?: arrayListOf()
- pythonPath.add(blueprintBasePath)
- pythonPath.addAll(pythonExecutorProperty.modulePaths)
-
- val jythonInstances: MutableMap<String, Any> = hashMapOf()
- jythonInstances["log"] = LoggerFactory.getLogger(nodeTemplateName)
-
- val instanceDependenciesNode: ArrayNode = operationInputs[PythonExecutorConstants.INPUT_INSTANCE_DEPENDENCIES] as? ArrayNode
- ?: throw BluePrintProcessorException("Failed to get property(${PythonExecutorConstants.INPUT_INSTANCE_DEPENDENCIES})")
-
- instanceDependenciesNode.forEach { instanceName ->
- jythonInstances[instanceName.textValue()] = applicationContext.getBean(instanceName.textValue())
- }
+ BlueprintFunctionNode<*, *>
+}
- val scriptComponentFunction = jythonInstance<AbstractComponentFunction>(
- bluePrintContext, pythonClassName,
- content!!, jythonInstances
- )
+@Service
+open class DeprecatedBlueprintJythonService : BlueprintJythonService {
- return scriptComponentFunction
+ override fun jythonComponentInstance(bluePrintContext: BluePrintContext, scriptClassReference: String):
+ BlueprintFunctionNode<*, *> {
+ throw BluePrintProcessorException("Include python-executor module for Jython support")
}
}
diff --git a/ms/blueprintsprocessor/modules/services/execution-service/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/services/execution/scripts/BlueprintPythonHost.kt b/ms/blueprintsprocessor/modules/services/execution-service/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/services/execution/scripts/BlueprintPythonHost.kt
deleted file mode 100644
index b348a9bef..000000000
--- a/ms/blueprintsprocessor/modules/services/execution-service/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/services/execution/scripts/BlueprintPythonHost.kt
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * Copyright © 2019 IBM, 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 org.onap.ccsdk.cds.blueprintsprocessor.services.execution.scripts
-
-import org.onap.ccsdk.cds.controllerblueprints.core.BluePrintProcessorException
-import org.python.core.PyObject
-import org.python.util.PythonInterpreter
-
-open class BlueprintPythonHost(private val bluePrintPython: BluePrintPython) {
- private val blueprintPythonInterpreterProxy: BlueprintPythonInterpreterProxy
-
- init {
- PythonInterpreter.initialize(System.getProperties(), bluePrintPython.props, bluePrintPython.argv.toTypedArray())
- blueprintPythonInterpreterProxy = BlueprintPythonInterpreterProxy(bluePrintPython)
- }
-
- /**
- * getPythonComponent Purpose: execute the python script and return the python interpreter object
- *
- * @param content String
- * @param interfaceName String
- * @param properties MutableMap<String, Any>
- * @return pyObject PyObject
- */
- fun getPythonComponent(content: String?, interfaceName: String, properties: MutableMap<String, Any>?): PyObject {
- bluePrintPython.content = content!!
- bluePrintPython.pythonClassName = interfaceName
- bluePrintPython.moduleName = "Blueprint Python Script [Class Name = $interfaceName]"
- try {
- return blueprintPythonInterpreterProxy.getPythonInstance(properties)
- } catch (e: Exception) {
- throw BluePrintProcessorException("Failed to execute Jython component $e", e)
- }
- }
-
- // TODO Check potential errors in python scripts
-}
diff --git a/ms/blueprintsprocessor/modules/services/execution-service/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/services/execution/scripts/BlueprintPythonInterpreterProxy.kt b/ms/blueprintsprocessor/modules/services/execution-service/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/services/execution/scripts/BlueprintPythonInterpreterProxy.kt
deleted file mode 100644
index 6f311bcd2..000000000
--- a/ms/blueprintsprocessor/modules/services/execution-service/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/services/execution/scripts/BlueprintPythonInterpreterProxy.kt
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- * Copyright © 2019 IBM, 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 org.onap.ccsdk.cds.blueprintsprocessor.services.execution.scripts
-
-import org.onap.ccsdk.cds.controllerblueprints.core.BluePrintProcessorException
-import org.python.core.PyObject
-import org.python.core.PySyntaxError
-import org.python.util.PythonInterpreter
-
-open class BlueprintPythonInterpreterProxy(private val bluePrintPython: BluePrintPython) : PythonInterpreter() {
-
- fun getPythonInstance(properties: MutableMap<String, Any>?): PyObject {
- properties?.forEach { (name, value) ->
- this.set(name, value)
- }
-
- this.exec("import sys")
-
- bluePrintPython.content.let {
- try {
- this.exec(bluePrintPython.content)
- } catch (e: PySyntaxError) {
- throw BluePrintProcessorException("Error executing Jython code! Python error: '$e'", e)
- }
- }
-
- val initCommand = bluePrintPython.pythonClassName.plus(" = ").plus(
- bluePrintPython.pythonClassName
- ).plus("()")
- this.exec(initCommand)
-
- return this.get(bluePrintPython.pythonClassName)
- }
-}
diff --git a/ms/blueprintsprocessor/modules/services/execution-service/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/services/execution/scripts/PythonExecutorConfiguration.kt b/ms/blueprintsprocessor/modules/services/execution-service/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/services/execution/scripts/PythonExecutorConfiguration.kt
deleted file mode 100644
index 0a220948d..000000000
--- a/ms/blueprintsprocessor/modules/services/execution-service/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/services/execution/scripts/PythonExecutorConfiguration.kt
+++ /dev/null
@@ -1,73 +0,0 @@
-/*
- * Copyright © 2017-2018 AT&T Intellectual Property.
- *
- * Modifications Copyright © 2019 IBM, 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 org.onap.ccsdk.cds.blueprintsprocessor.services.execution.scripts
-
-import org.springframework.beans.factory.annotation.Value
-import org.springframework.boot.context.properties.EnableConfigurationProperties
-import org.springframework.context.annotation.ComponentScan
-import org.springframework.context.annotation.Configuration
-import java.io.File
-import java.util.Properties
-
-@Configuration
-@ComponentScan
-@EnableConfigurationProperties
-open class PythonExecutorConfiguration
-
-@Configuration
-open class PythonExecutorProperty {
-
- @Value("\${blueprints.processor.functions.python.executor.executionPath}")
- lateinit var executionPath: String
- @Value("#{'\${blueprints.processor.functions.python.executor.modulePaths}'.split(',')}")
- lateinit var modulePaths: List<String>
-}
-
-class PythonExecutorConstants {
- companion object {
- const val INPUT_INSTANCE_DEPENDENCIES = "instance-dependencies"
- }
-}
-
-open class BluePrintPython(
- executablePath: String,
- blueprintPythonPlatform: MutableList<String>,
- val argv: MutableList<String>
-) {
-
- lateinit var moduleName: String
- lateinit var pythonClassName: String
- lateinit var content: String
- var props: Properties = Properties()
-
- init {
- // Build up the python.path
- val sb = StringBuilder()
- sb.append(System.getProperty("java.class.path"))
-
- for (p in blueprintPythonPlatform) {
- sb.append(File.pathSeparator).append(p)
- }
-
- props["python.import.site"] = "true"
- props.setProperty("python.path", sb.toString())
- props.setProperty("python.verbose", "error")
- props.setProperty("python.executable", executablePath)
- }
-}
diff --git a/ms/blueprintsprocessor/modules/services/execution-service/src/test/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/services/execution/scripts/AbstractComponentFunctionTest.kt b/ms/blueprintsprocessor/modules/services/execution-service/src/test/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/services/execution/scripts/AbstractComponentFunctionTest.kt
index e013fa889..3caa061e8 100644
--- a/ms/blueprintsprocessor/modules/services/execution-service/src/test/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/services/execution/scripts/AbstractComponentFunctionTest.kt
+++ b/ms/blueprintsprocessor/modules/services/execution-service/src/test/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/services/execution/scripts/AbstractComponentFunctionTest.kt
@@ -57,8 +57,7 @@ import kotlin.test.assertNotNull
@RunWith(SpringRunner::class)
@ContextConfiguration(
classes = [ComponentFunctionScriptingService::class,
- BluePrintScriptsServiceImpl::class, PythonExecutorProperty::class,
- BlueprintJythonService::class]
+ BluePrintScriptsServiceImpl::class, DeprecatedBlueprintJythonService::class]
)
class AbstractComponentFunctionTest {
diff --git a/ms/blueprintsprocessor/modules/services/execution-service/src/test/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/services/execution/scripts/BlueprintJythonServiceTest.kt b/ms/blueprintsprocessor/modules/services/execution-service/src/test/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/services/execution/scripts/BlueprintJythonServiceTest.kt
deleted file mode 100644
index a34794a85..000000000
--- a/ms/blueprintsprocessor/modules/services/execution-service/src/test/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/services/execution/scripts/BlueprintJythonServiceTest.kt
+++ /dev/null
@@ -1,75 +0,0 @@
-/*
- * Copyright © 2019 IBM, Bell Canada.
- * Modifications 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.services.execution.scripts
-
-import io.mockk.every
-import io.mockk.mockk
-import org.junit.Test
-import org.junit.runner.RunWith
-import org.onap.ccsdk.cds.blueprintsprocessor.services.execution.AbstractComponentFunction
-import org.onap.ccsdk.cds.controllerblueprints.core.normalizedPathName
-import org.onap.ccsdk.cds.controllerblueprints.core.service.BluePrintContext
-import org.onap.ccsdk.cds.controllerblueprints.core.utils.JacksonUtils
-import org.springframework.beans.factory.annotation.Autowired
-import org.springframework.test.context.ContextConfiguration
-import org.springframework.test.context.TestPropertySource
-import org.springframework.test.context.junit4.SpringRunner
-import kotlin.test.BeforeTest
-import kotlin.test.assertNotNull
-
-@RunWith(SpringRunner::class)
-@ContextConfiguration(classes = [BlueprintJythonService::class, PythonExecutorProperty::class])
-@TestPropertySource(
- properties =
- ["blueprints.processor.functions.python.executor.modulePaths=./../../../../../components/scripts/python/ccsdk_blueprints",
- "blueprints.processor.functions.python.executor.executionPath=./../../../../../components/scripts/python/ccsdk_blueprints"]
-)
-class BlueprintJythonServiceTest {
-
- lateinit var blueprintContext: BluePrintContext
- @Autowired
- private lateinit var blueprintJythonService: BlueprintJythonService
-
- @BeforeTest
- fun init() {
- blueprintContext = mockk<BluePrintContext>()
- every { blueprintContext.rootPath } returns normalizedPathName("target")
- }
-
- @Test
- fun testGetAbstractPythonPlugin() {
- val content = JacksonUtils.getClassPathFileContent("scripts/SamplePythonComponentNode.py")
- val dependencies: MutableMap<String, Any> = hashMapOf()
-
- val abstractPythonPlugin = blueprintJythonService
- .jythonInstance<AbstractComponentFunction>(
- blueprintContext, "SamplePythonComponentNode",
- content, dependencies
- )
-
- assertNotNull(abstractPythonPlugin, "failed to get python component")
- }
-
- @Test
- fun testGetAbstractJythonComponent() {
- val scriptInstance = "test-classes/scripts/SamplePythonComponentNode.py"
-
- val abstractJythonComponent = blueprintJythonService.jythonComponentInstance(blueprintContext, scriptInstance)
-
- assertNotNull(abstractJythonComponent, "failed to get Jython component")
- }
-}
diff --git a/ms/blueprintsprocessor/modules/services/execution-service/src/test/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/services/execution/scripts/BlueprintPythonHostTest.kt b/ms/blueprintsprocessor/modules/services/execution-service/src/test/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/services/execution/scripts/BlueprintPythonHostTest.kt
deleted file mode 100644
index 9a93abe0c..000000000
--- a/ms/blueprintsprocessor/modules/services/execution-service/src/test/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/services/execution/scripts/BlueprintPythonHostTest.kt
+++ /dev/null
@@ -1,63 +0,0 @@
-/*
- * Copyright © 2019 IBM, 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 org.onap.ccsdk.cds.blueprintsprocessor.services.execution.scripts
-
-import org.junit.Test
-import org.junit.runner.RunWith
-import org.onap.ccsdk.cds.controllerblueprints.core.utils.JacksonUtils
-import org.springframework.beans.factory.annotation.Autowired
-import org.springframework.test.context.ContextConfiguration
-import org.springframework.test.context.TestPropertySource
-import org.springframework.test.context.junit4.SpringRunner
-import kotlin.test.BeforeTest
-import kotlin.test.assertNotNull
-
-@RunWith(SpringRunner::class)
-@ContextConfiguration(classes = [BluePrintPython::class, PythonExecutorProperty::class, String::class])
-@TestPropertySource(
- properties =
- ["blueprints.processor.functions.python.executor.modulePaths=./../../../../../components/scripts/python/ccsdk_blueprints",
- "blueprints.processor.functions.python.executor.executionPath=./../../../../../components/scripts/python/ccsdk_blueprints"]
-)
-class BlueprintPythonHostTest {
-
- lateinit var blueprintPythonHost: BlueprintPythonHost
-
- @Autowired
- lateinit var pythonExecutorProperty: PythonExecutorProperty
-
- @BeforeTest
- fun init() {
- val blueprintBasePath = "./../../../../../components/model-catalog/blueprint-model/test-blueprint/baseconfiguration"
- val pythonPath: MutableList<String> = arrayListOf()
- pythonPath.add(blueprintBasePath)
- pythonPath.addAll(pythonExecutorProperty.modulePaths)
-
- blueprintPythonHost = BlueprintPythonHost(BluePrintPython(pythonExecutorProperty.executionPath, pythonPath, arrayListOf()))
- }
-
- @Test
- fun testGetPythonComponent() {
- val content = JacksonUtils.getContent("./src/test/resources/PythonTestScript.py")
-
- val pythonClassName = "PythonTestScript"
- val dependencies: MutableMap<String, Any> = hashMapOf()
-
- val pythonObject = blueprintPythonHost.getPythonComponent(content, pythonClassName, dependencies)
-
- assertNotNull(pythonObject, "failed to get python object")
- }
-}
diff --git a/ms/blueprintsprocessor/modules/services/execution-service/src/test/resources/PythonTestScript.py b/ms/blueprintsprocessor/modules/services/execution-service/src/test/resources/PythonTestScript.py
deleted file mode 100644
index 42b611b88..000000000
--- a/ms/blueprintsprocessor/modules/services/execution-service/src/test/resources/PythonTestScript.py
+++ /dev/null
@@ -1,9 +0,0 @@
-class PythonTestScript():
-
- def process(self, execution_request):
- print "Processing calling..." + PROPERTY_BLUEPRINT_BASE_PATH
- return None
-
- def recover(self, runtime_exception, execution_request):
- print "Recovering calling..." + PROPERTY_BLUEPRINT_BASE_PATH
- return None
diff --git a/ms/blueprintsprocessor/modules/services/execution-service/src/test/resources/scripts/SamplePythonComponentNode.py b/ms/blueprintsprocessor/modules/services/execution-service/src/test/resources/scripts/SamplePythonComponentNode.py
deleted file mode 100644
index f1b614a59..000000000
--- a/ms/blueprintsprocessor/modules/services/execution-service/src/test/resources/scripts/SamplePythonComponentNode.py
+++ /dev/null
@@ -1,14 +0,0 @@
-from abstract_blueprint_function import AbstractPythonComponentFunction
-from blueprint_constants import *
-
-
-class SamplePythonComponentNode(AbstractPythonComponentFunction):
-
- def process(self, execution_request):
- print "Processing calling..." + PROPERTY_BLUEPRINT_BASE_PATH
- return None
-
- def recover(self, runtime_exception, execution_request):
- print "Recovering calling..." + PROPERTY_BLUEPRINT_BASE_PATH
- return None
-