Add remote python executor DSL properties 66/92466/2
authorBrinda Santh <brindasanth@in.ibm.com>
Thu, 1 Aug 2019 13:12:04 +0000 (09:12 -0400)
committerDan Timoney <dtimoney@att.com>
Thu, 1 Aug 2019 17:24:53 +0000 (17:24 +0000)
Change-Id: I7888ac302da2a51ca34c531b7553d04af13786ac
Issue-ID: CCSDK-1380
Signed-off-by: Brinda Santh <brindasanth@in.ibm.com>
components/model-catalog/definition-type/starter-type/node_type/component-remote-python-executor.json
ms/blueprintsprocessor/functions/python-executor/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/functions/python/executor/ComponentRemotePythonExecutor.kt
ms/blueprintsprocessor/functions/python-executor/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/functions/python/executor/ComponentRemotePythonExecutorDSL.kt [new file with mode: 0644]
ms/blueprintsprocessor/functions/python-executor/src/test/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/functions/python/executor/ComponentRemotePythonExecutorDSLTest.kt [new file with mode: 0644]
ms/blueprintsprocessor/functions/resource-resolution/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/functions/resource/resolution/ResourceResolutionComponentDSL.kt
ms/blueprintsprocessor/functions/resource-resolution/src/test/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/functions/resource/resolution/ResourceResolutionComponentDSLTest.kt
ms/blueprintsprocessor/modules/services/execution-service/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/services/execution/ComponentScriptExecutorDSL.kt
ms/blueprintsprocessor/modules/services/execution-service/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/services/execution/RemoteScriptExecutionService.kt
ms/controllerblueprints/modules/blueprint-core/src/main/kotlin/org/onap/ccsdk/cds/controllerblueprints/core/dsl/BluePrintTemplateDSLBuilder.kt

index caab5f7..1c80113 100644 (file)
       "entry_schema": {
         "type": "string"
       }
+    },
+    "response-data": {
+      "required": false,
+      "type": "json"
     }
   },
   "capabilities": {
index 0f35e63..2a227eb 100644 (file)
@@ -48,6 +48,7 @@ open class ComponentRemotePythonExecutor(private val remoteScriptExecutionServic
 
         const val ATTRIBUTE_PREPARE_ENV_LOG = "prepare-environment-logs"
         const val ATTRIBUTE_EXEC_CMD_LOG = "execute-command-logs"
+        const val ATTRIBUTE_RESPONSE_DATA = "response-data"
     }
 
     override suspend fun processNB(executionRequest: ExecutionServiceInput) {
diff --git a/ms/blueprintsprocessor/functions/python-executor/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/functions/python/executor/ComponentRemotePythonExecutorDSL.kt b/ms/blueprintsprocessor/functions/python-executor/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/functions/python/executor/ComponentRemotePythonExecutorDSL.kt
new file mode 100644 (file)
index 0000000..fee8749
--- /dev/null
@@ -0,0 +1,163 @@
+/*
+ *  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.python.executor
+
+import com.fasterxml.jackson.databind.JsonNode
+import com.fasterxml.jackson.databind.node.ArrayNode
+import org.onap.ccsdk.cds.controllerblueprints.core.BluePrintConstants
+import org.onap.ccsdk.cds.controllerblueprints.core.BluePrintTypes
+import org.onap.ccsdk.cds.controllerblueprints.core.asJsonPrimitive
+import org.onap.ccsdk.cds.controllerblueprints.core.asJsonType
+import org.onap.ccsdk.cds.controllerblueprints.core.data.DataType
+import org.onap.ccsdk.cds.controllerblueprints.core.data.NodeTemplate
+import org.onap.ccsdk.cds.controllerblueprints.core.data.NodeType
+import org.onap.ccsdk.cds.controllerblueprints.core.dsl.AbstractNodeTemplateImplBuilder
+import org.onap.ccsdk.cds.controllerblueprints.core.dsl.PropertiesAssignmentBuilder
+import org.onap.ccsdk.cds.controllerblueprints.core.dsl.dataType
+import org.onap.ccsdk.cds.controllerblueprints.core.dsl.nodeType
+import org.onap.ccsdk.cds.controllerblueprints.core.utils.JacksonUtils
+
+/** Component Extensions **/
+fun BluePrintTypes.nodeTypeComponentRemotePythonExecutor(): NodeType {
+    return nodeType(id = "component-remote-python-executor", version = BluePrintConstants.DEFAULT_VERSION_NUMBER,
+            derivedFrom = BluePrintConstants.MODEL_TYPE_NODE_COMPONENT,
+            description = "This is Remote Python Execution Component.") {
+
+        attribute(ComponentRemotePythonExecutor.ATTRIBUTE_PREPARE_ENV_LOG, BluePrintConstants.DATA_TYPE_STRING,
+                false)
+        attribute(ComponentRemotePythonExecutor.ATTRIBUTE_EXEC_CMD_LOG, BluePrintConstants.DATA_TYPE_LIST,
+                false) {
+            entrySchema(BluePrintConstants.DATA_TYPE_STRING)
+        }
+        attribute(ComponentRemotePythonExecutor.ATTRIBUTE_RESPONSE_DATA, BluePrintConstants.DATA_TYPE_JSON,
+                false)
+
+        operation("ComponentRemotePythonExecutor", "ComponentRemotePythonExecutor Operation") {
+            inputs {
+                property(ComponentRemotePythonExecutor.INPUT_ENDPOINT_SELECTOR, BluePrintConstants.DATA_TYPE_STRING,
+                        false, "Remote Container or Server selector name.") {
+                    defaultValue(ComponentRemotePythonExecutor.DEFAULT_SELECTOR)
+                }
+                property(ComponentRemotePythonExecutor.INPUT_DYNAMIC_PROPERTIES, BluePrintConstants.DATA_TYPE_JSON,
+                        false, "Dynamic Json Content or DSL Json reference.")
+
+                property(ComponentRemotePythonExecutor.INPUT_ARGUMENT_PROPERTIES, BluePrintConstants.DATA_TYPE_JSON,
+                        false, "Argument Json Content or DSL Json reference.")
+
+                property(ComponentRemotePythonExecutor.INPUT_COMMAND, BluePrintConstants.DATA_TYPE_STRING,
+                        true, "Command to execute.")
+
+                property(ComponentRemotePythonExecutor.INPUT_PACKAGES, BluePrintConstants.DATA_TYPE_LIST,
+                        false, "Packages to install based on type.") {
+                    entrySchema("dt-system-packages")
+                }
+            }
+        }
+    }
+}
+
+fun BluePrintTypes.dataTypeDtSystemPackages(): DataType {
+    return dataType(id = "dt-system-packages", version = BluePrintConstants.DEFAULT_VERSION_NUMBER,
+            derivedFrom = BluePrintConstants.MODEL_TYPE_DATATYPES_ROOT,
+            description = "This represent System Package Data Type") {
+        property("type", BluePrintConstants.DATA_TYPE_LIST, true, "") {
+            constrain {
+                entrySchema(BluePrintConstants.DATA_TYPE_STRING)
+                validValues(arrayListOf("ansible_galaxy".asJsonPrimitive(), "pip".asJsonPrimitive()))
+            }
+        }
+        property("package", BluePrintConstants.DATA_TYPE_LIST, true, "") {
+            entrySchema(BluePrintConstants.DATA_TYPE_STRING)
+        }
+    }
+}
+
+/** Component Builder */
+fun BluePrintTypes.nodeTemplateComponentRemotePythonExecutor(id: String,
+                                                             description: String,
+                                                             block: ComponentRemotePythonExecutorNodeTemplateImplBuilder.() -> Unit)
+        : NodeTemplate {
+    return ComponentRemotePythonExecutorNodeTemplateImplBuilder(id, description).apply(block).build()
+}
+
+class ComponentRemotePythonExecutorNodeTemplateImplBuilder(id: String, description: String) :
+        AbstractNodeTemplateImplBuilder<ComponentRemotePythonExecutorInputAssignmentBuilder,
+                ComponentRemotePythonExecutorOutputAssignmentBuilder>(id, "component-remote-python-executor",
+                "ComponentRemotePythonExecutor", description)
+
+class DtSystemPackageDataTypeBuilder : PropertiesAssignmentBuilder() {
+
+    fun type(type: String) = type(type.asJsonPrimitive())
+
+    fun type(type: JsonNode) {
+        property("type", type)
+    }
+
+    fun packages(packages: String) = packages(packages.asJsonType())
+
+    fun packages(packages: List<String>) = packages(packages.asJsonType())
+
+    fun packages(packages: JsonNode) {
+        property("package", packages)
+    }
+}
+
+class ComponentRemotePythonExecutorInputAssignmentBuilder : PropertiesAssignmentBuilder() {
+
+    private var packageList: ArrayNode? = null
+
+    fun endpointSelector(endpointSelector: String) = endpointSelector(endpointSelector.asJsonPrimitive())
+
+    fun endpointSelector(endpointSelector: JsonNode) {
+        property(ComponentRemotePythonExecutor.INPUT_ENDPOINT_SELECTOR, endpointSelector)
+    }
+
+    fun dynamicProperties(dynamicProperties: String) = dynamicProperties(dynamicProperties.asJsonType())
+
+    fun dynamicProperties(dynamicProperties: JsonNode) {
+        property(ComponentRemotePythonExecutor.INPUT_DYNAMIC_PROPERTIES, dynamicProperties)
+    }
+
+    fun argumentProperties(argumentProperties: String) = argumentProperties(argumentProperties.asJsonType())
+
+    fun argumentProperties(argumentProperties: JsonNode) {
+        property(ComponentRemotePythonExecutor.INPUT_ARGUMENT_PROPERTIES, argumentProperties)
+    }
+
+    fun command(command: String) = command(command.asJsonPrimitive())
+
+    fun command(command: JsonNode) {
+        property(ComponentRemotePythonExecutor.INPUT_COMMAND, command)
+    }
+
+    fun packages(block: DtSystemPackageDataTypeBuilder.() -> Unit) {
+        if (packageList == null)
+            packageList = JacksonUtils.objectMapper.createArrayNode()
+        val dtSysyemPackagePropertyAssignments = DtSystemPackageDataTypeBuilder().apply(block).build()
+        packageList!!.add(dtSysyemPackagePropertyAssignments.asJsonType())
+    }
+
+    override fun build(): MutableMap<String, JsonNode> {
+        val propertyAssignments = super.build()
+        if (packageList != null) {
+            propertyAssignments[ComponentRemotePythonExecutor.INPUT_PACKAGES] = packageList!!
+        }
+        return propertyAssignments
+    }
+}
+
+class ComponentRemotePythonExecutorOutputAssignmentBuilder : PropertiesAssignmentBuilder()
\ No newline at end of file
diff --git a/ms/blueprintsprocessor/functions/python-executor/src/test/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/functions/python/executor/ComponentRemotePythonExecutorDSLTest.kt b/ms/blueprintsprocessor/functions/python-executor/src/test/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/functions/python/executor/ComponentRemotePythonExecutorDSLTest.kt
new file mode 100644 (file)
index 0000000..5c4b590
--- /dev/null
@@ -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 org.onap.ccsdk.cds.blueprintsprocessor.functions.python.executor
+
+import org.junit.Test
+import org.onap.ccsdk.cds.controllerblueprints.core.BluePrintTypes
+import kotlin.test.assertNotNull
+
+class ComponentRemotePythonExecutorDSLTest {
+
+    @Test
+    fun testNodeTypeComponentRemotePythonExecutor() {
+        val nodeType = BluePrintTypes.nodeTypeComponentRemotePythonExecutor()
+        //println(nodeType.asJsonString(true))
+        assertNotNull(nodeType, "failed to generate nodeTypeComponentRemotePythonExecutor")
+    }
+
+    @Test
+    fun testNodeTemplateComponentRemotePythonExecutor() {
+        val nodeTemplate = BluePrintTypes.nodeTemplateComponentRemotePythonExecutor("test-nodetemplate",
+                "test nodetemplate") {
+            operation("test operation") {
+                inputs {
+                    endpointSelector("remote-container")
+                    command("python sample.py")
+                    dynamicProperties("""{
+                        "prop1" : "1234",
+                        "prop2" : true,
+                        "prop3" : 23
+                    }""".trimIndent())
+                    argumentProperties("""["one", "two"]""")
+                    packages {
+                        type("pip")
+                        packages(arrayListOf("ncclient", "lxml"))
+                    }
+                }
+            }
+        }
+        //println(nodeTemplate.asJsonString(true))
+        assertNotNull(nodeTemplate, "failed to generate nodeTemplateComponentRemotePythonExecutor")
+    }
+}
\ No newline at end of file
index c71541e..a44750d 100644 (file)
@@ -94,65 +94,49 @@ class ComponentResourceResolutionNodeTemplateImplBuilder(id: String, description
 
 class ComponentResourceResolutionInputAssignmentBuilder : PropertiesAssignmentBuilder() {
 
-    fun requestId(requestId: String) {
-        requestId(requestId.asJsonPrimitive())
-    }
+    fun requestId(requestId: String) = requestId(requestId.asJsonPrimitive())
 
     fun requestId(requestId: JsonNode) {
         property(ResourceResolutionComponent.INPUT_REQUEST_ID, requestId)
     }
 
-    fun resourceId(resourceId: String) {
-        resourceId(resourceId.asJsonPrimitive())
-    }
+    fun resourceId(resourceId: String) = resourceId(resourceId.asJsonPrimitive())
 
     fun resourceId(resourceId: JsonNode) {
         property(ResourceResolutionComponent.INPUT_RESOURCE_ID, resourceId)
     }
 
-    fun actionName(actionName: String) {
-        actionName(actionName.asJsonPrimitive())
-    }
+    fun actionName(actionName: String) = actionName(actionName.asJsonPrimitive())
 
     fun actionName(actionName: JsonNode) {
         property(ResourceResolutionComponent.INPUT_ACTION_NAME, actionName)
     }
 
-    fun resolutionKey(resolutionKey: String) {
-        resolutionKey(resolutionKey.asJsonPrimitive())
-    }
+    fun resolutionKey(resolutionKey: String) = resolutionKey(resolutionKey.asJsonPrimitive())
 
     fun resolutionKey(resolutionKey: JsonNode) {
         property(ResourceResolutionComponent.INPUT_RESOLUTION_KEY, resolutionKey)
     }
 
-    fun dynamicProperty(dynamicProperty: String) {
-        dynamicProperty(dynamicProperty.asJsonType())
-    }
+    fun dynamicProperties(dynamicProperties: String) = dynamicProperties(dynamicProperties.asJsonType())
 
-    fun dynamicProperty(dynamicProperty: JsonNode) {
-        property(ResourceResolutionComponent.INPUT_DYNAMIC_PROPERTIES, dynamicProperty)
+    fun dynamicProperties(dynamicProperties: JsonNode) {
+        property(ResourceResolutionComponent.INPUT_DYNAMIC_PROPERTIES, dynamicProperties)
     }
 
-    fun occurrence(occurrence: Int) {
-        occurrence(occurrence.asJsonPrimitive())
-    }
+    fun occurrence(occurrence: Int) = occurrence(occurrence.asJsonPrimitive())
 
     fun occurrence(resolutionKey: JsonNode) {
         property(ResourceResolutionComponent.INPUT_OCCURRENCE, resolutionKey)
     }
 
-    fun storeResult(storeResult: Boolean) {
-        storeResult(storeResult.asJsonPrimitive())
-    }
+    fun storeResult(storeResult: Boolean) = storeResult(storeResult.asJsonPrimitive())
 
     fun storeResult(storeResult: JsonNode) {
         property(ResourceResolutionComponent.INPUT_STORE_RESULT, storeResult)
     }
 
-    fun resourceType(resourceType: String) {
-        resourceType(resourceType.asJsonPrimitive())
-    }
+    fun resourceType(resourceType: String) = resourceType(resourceType.asJsonPrimitive())
 
     fun resourceType(resourceType: JsonNode) {
         property(ResourceResolutionComponent.INPUT_RESOURCE_TYPE, resourceType)
@@ -171,17 +155,13 @@ class ComponentResourceResolutionInputAssignmentBuilder : PropertiesAssignmentBu
 
 class ComponentResourceResolutionOutputAssignmentBuilder : PropertiesAssignmentBuilder() {
 
-    fun status(status: String) {
-        status(status.asJsonPrimitive())
-    }
+    fun status(status: String) = status(status.asJsonPrimitive())
 
     fun status(status: JsonNode) {
         property(ResourceResolutionComponent.OUTPUT_STATUS, status)
     }
 
-    fun resourceAssignmentParams(resourceAssignmentParams: String) {
-        resourceAssignmentParams(resourceAssignmentParams.asJsonType())
-    }
+    fun resourceAssignmentParams(resourceAssignmentParams: String) = resourceAssignmentParams(resourceAssignmentParams.asJsonType())
 
     fun resourceAssignmentParams(resourceAssignmentParams: JsonNode) {
         property(ResourceResolutionComponent.OUTPUT_RESOURCE_ASSIGNMENT_PARAMS, resourceAssignmentParams)
index 16052ae..d056678 100644 (file)
@@ -42,7 +42,7 @@ class ResourceResolutionComponentDSLTest {
                     resourceType("vnf")
                     storeResult(false)
                     artifactPrefixNames(arrayListOf("template1", "template2"))
-                    dynamicProperty("""{
+                    dynamicProperties("""{
                         "prop1" : "1234",
                         "prop2" : true,
                         "prop3" : 23
index 1b905fa..de6a8bd 100644 (file)
@@ -78,44 +78,34 @@ class ComponentScriptExecutorNodeTemplateImplBuilder(id: String, description: St
 
 class ComponentScriptExecutorInputAssignmentBuilder : PropertiesAssignmentBuilder() {
 
-    fun type(type: String) {
-        type(type.asJsonPrimitive())
-    }
+    fun type(type: String) = type(type.asJsonPrimitive())
 
     fun type(type: JsonNode) {
         property(ComponentScriptExecutor.INPUT_SCRIPT_TYPE, type)
     }
 
-    fun scriptClassReference(scriptClassReference: String) {
-        scriptClassReference(scriptClassReference.asJsonPrimitive())
-    }
+    fun scriptClassReference(scriptClassReference: String) = scriptClassReference(scriptClassReference.asJsonPrimitive())
 
     fun scriptClassReference(scriptClassReference: JsonNode) {
         property(ComponentScriptExecutor.INPUT_SCRIPT_CLASS_REFERENCE, scriptClassReference)
     }
 
-    fun dynamicProperty(dynamicProperty: String) {
-        dynamicProperty(dynamicProperty.asJsonType())
-    }
+    fun dynamicProperties(dynamicProperties: String) = dynamicProperties(dynamicProperties.asJsonType())
 
-    fun dynamicProperty(dynamicProperty: JsonNode) {
-        property(ComponentScriptExecutor.INPUT_DYNAMIC_PROPERTIES, dynamicProperty)
+    fun dynamicProperties(dynamicProperties: JsonNode) {
+        property(ComponentScriptExecutor.INPUT_DYNAMIC_PROPERTIES, dynamicProperties)
     }
 }
 
 class ComponentScriptExecutorOutputAssignmentBuilder : PropertiesAssignmentBuilder() {
 
-    fun status(status: String) {
-        status(status.asJsonPrimitive())
-    }
+    fun status(status: String) = status(status.asJsonPrimitive())
 
     fun status(status: JsonNode) {
         property(ComponentScriptExecutor.OUTPUT_STATUS, status)
     }
 
-    fun responseData(responseData: String) {
-        responseData(responseData.asJsonType())
-    }
+    fun responseData(responseData: String) = responseData(responseData.asJsonType())
 
     fun responseData(responseData: JsonNode) {
         property(ComponentScriptExecutor.OUTPUT_RESPONSE_DATA, responseData)
index d4195ae..b0e3e47 100644 (file)
@@ -41,7 +41,7 @@ interface RemoteScriptExecutionService {
 
 @Service(ExecutionServiceConstant.SERVICE_GRPC_REMOTE_SCRIPT_EXECUTION)
 @ConditionalOnProperty(prefix = "blueprintprocessor.remoteScriptCommand", name = arrayOf("enabled"),
-    havingValue = "true", matchIfMissing = false)
+        havingValue = "true", matchIfMissing = false)
 @Scope(value = ConfigurableBeanFactory.SCOPE_PROTOTYPE)
 class GrpcRemoteScriptExecutionService(private val bluePrintGrpcLibPropertyService: BluePrintGrpcLibPropertyService)
     : RemoteScriptExecutionService {
@@ -74,11 +74,11 @@ class GrpcRemoteScriptExecutionService(private val bluePrintGrpcLibPropertyServi
         val grpResponse = commandExecutorServiceGrpc.prepareEnv(prepareEnvInput.asGrpcData())
 
         checkNotNull(grpResponse.status) {
-            "failed to get GRPC prepare env response status for requestId($prepareEnvInput.requestId)"
+            "failed to get GRPC prepare env response status for requestId(${prepareEnvInput.requestId})"
         }
 
         val remoteScriptExecutionOutput = grpResponse.asJavaData()
-        log.debug("Received prepare env response from command server for requestId($prepareEnvInput.requestId)")
+        log.debug("Received prepare env response from command server for requestId(${prepareEnvInput.requestId})")
 
         return remoteScriptExecutionOutput
     }
@@ -89,11 +89,11 @@ class GrpcRemoteScriptExecutionService(private val bluePrintGrpcLibPropertyServi
         val grpResponse = commandExecutorServiceGrpc.executeCommand(remoteExecutionInput.asGrpcData())
 
         checkNotNull(grpResponse.status) {
-            "failed to get GRPC response status for requestId($remoteExecutionInput.requestId)"
+            "failed to get GRPC response status for requestId(${remoteExecutionInput.requestId})"
         }
 
         val remoteScriptExecutionOutput = grpResponse.asJavaData()
-        log.debug("Received response from command server for requestId($remoteExecutionInput.requestId)")
+        log.debug("Received response from command server for requestId(${remoteExecutionInput.requestId})")
 
         return remoteScriptExecutionOutput
     }
@@ -115,33 +115,33 @@ class GrpcRemoteScriptExecutionService(private val bluePrintGrpcLibPropertyServi
         }
 
         return PrepareEnvInput.newBuilder()
-            .setIdentifiers(this.remoteIdentifier!!.asGrpcData())
-            .setRequestId(this.requestId)
-            .setCorrelationId(correlationId)
-            .setTimeOut(this.timeOut.toInt())
-            .addAllPackages(packageList)
-            .setProperties(this.properties.asGrpcData())
-            .build()
+                .setIdentifiers(this.remoteIdentifier!!.asGrpcData())
+                .setRequestId(this.requestId)
+                .setCorrelationId(correlationId)
+                .setTimeOut(this.timeOut.toInt())
+                .addAllPackages(packageList)
+                .setProperties(this.properties.asGrpcData())
+                .build()
     }
 
     fun RemoteScriptExecutionInput.asGrpcData(): ExecutionInput {
         val correlationId = this.correlationId ?: this.requestId
         return ExecutionInput.newBuilder()
-            .setRequestId(this.requestId)
-            .setCorrelationId(correlationId)
-            .setIdentifiers(this.remoteIdentifier!!.asGrpcData())
-            .setCommand(this.command)
-            .setTimeOut(this.timeOut.toInt())
-            .setProperties(this.properties.asGrpcData())
-            .setTimestamp(Timestamp.getDefaultInstance())
-            .build()
+                .setRequestId(this.requestId)
+                .setCorrelationId(correlationId)
+                .setIdentifiers(this.remoteIdentifier!!.asGrpcData())
+                .setCommand(this.command)
+                .setTimeOut(this.timeOut.toInt())
+                .setProperties(this.properties.asGrpcData())
+                .setTimestamp(Timestamp.getDefaultInstance())
+                .build()
     }
 
     fun RemoteIdentifier.asGrpcData(): Identifiers? {
         return Identifiers.newBuilder()
-            .setBlueprintName(this.blueprintName)
-            .setBlueprintVersion(this.blueprintVersion)
-            .build()
+                .setBlueprintName(this.blueprintName)
+                .setBlueprintVersion(this.blueprintVersion)
+                .build()
     }
 
     fun Map<String, JsonNode>.asGrpcData(): Struct {
@@ -152,9 +152,9 @@ class GrpcRemoteScriptExecutionService(private val bluePrintGrpcLibPropertyServi
 
     fun ExecutionOutput.asJavaData(): RemoteScriptExecutionOutput {
         return RemoteScriptExecutionOutput(
-            requestId = this.requestId,
-            response = this.responseList,
-            status = StatusType.valueOf(this.status.name)
+                requestId = this.requestId,
+                response = this.responseList,
+                status = StatusType.valueOf(this.status.name)
         )
     }