diff options
author | Alexis de Talhouët <adetalhouet89@gmail.com> | 2019-02-22 17:24:22 -0500 |
---|---|---|
committer | Alexis de Talhouët <adetalhouet89@gmail.com> | 2019-02-22 22:24:55 +0000 |
commit | 9be9c232d6b8f710e1ded6c5cd3b10b858c792b5 (patch) | |
tree | c259943a46bf54501a7fb3960eb5821a232f3b97 | |
parent | 0e55292ee2c21a40658b0f30f75ed2f88f6f055e (diff) |
Provide correct output to #process request
Change-Id: I7e5ceb6fc46b8b8e6289db9b4efe2f27e3f9ce91
Issue-ID: CCSDK-947
Signed-off-by: Alexis de Talhouët <adetalhouet89@gmail.com>
3 files changed, 16 insertions, 8 deletions
diff --git a/ms/blueprintsprocessor/modules/inbounds/selfservice-api/src/main/kotlin/org/onap/ccsdk/apps/blueprintsprocessor/selfservice/api/ExecutionServiceHandler.kt b/ms/blueprintsprocessor/modules/inbounds/selfservice-api/src/main/kotlin/org/onap/ccsdk/apps/blueprintsprocessor/selfservice/api/ExecutionServiceHandler.kt index 262c33f9f..4447dd4bf 100644 --- a/ms/blueprintsprocessor/modules/inbounds/selfservice-api/src/main/kotlin/org/onap/ccsdk/apps/blueprintsprocessor/selfservice/api/ExecutionServiceHandler.kt +++ b/ms/blueprintsprocessor/modules/inbounds/selfservice-api/src/main/kotlin/org/onap/ccsdk/apps/blueprintsprocessor/selfservice/api/ExecutionServiceHandler.kt @@ -16,6 +16,7 @@ package org.onap.ccsdk.apps.blueprintsprocessor.selfservice.api +import com.fasterxml.jackson.databind.node.JsonNodeFactory import com.google.protobuf.Struct import io.grpc.stub.StreamObserver import kotlinx.coroutines.Dispatchers @@ -66,19 +67,19 @@ class ExecutionServiceHandler(private val bluePrintCoreConfiguration: BluePrintC executionServiceInput.actionIdentifiers.mode == ACTION_MODE_ASYNC -> { GlobalScope.launch(Dispatchers.Default) { val executionServiceOutput = doProcess(executionServiceInput) - responseObserver.onNext(executionServiceOutput.toProto(inputPayload)) + responseObserver.onNext(executionServiceOutput.toProto()) responseObserver.onCompleted() } - responseObserver.onNext(response(executionServiceInput).toProto(inputPayload)) + responseObserver.onNext(response(executionServiceInput).toProto()) } executionServiceInput.actionIdentifiers.mode == ACTION_MODE_SYNC -> { val executionServiceOutput = doProcess(executionServiceInput) - responseObserver.onNext(executionServiceOutput.toProto(inputPayload)) + responseObserver.onNext(executionServiceOutput.toProto()) responseObserver.onCompleted() } else -> responseObserver.onNext(response(executionServiceInput, "Failed to process request, 'actionIdentifiers.mode' not specified. Valid value are: 'sync' or 'async'.", - true).toProto(inputPayload)); + true).toProto()); } } @@ -108,7 +109,7 @@ class ExecutionServiceHandler(private val bluePrintCoreConfiguration: BluePrintC val executionServiceOutput = ExecutionServiceOutput() executionServiceOutput.commonHeader = executionServiceInput.commonHeader executionServiceOutput.actionIdentifiers = executionServiceInput.actionIdentifiers - executionServiceOutput.payload = executionServiceInput.payload + executionServiceOutput.payload = JsonNodeFactory.instance.objectNode() val status = Status() status.errorMessage = errorMessage diff --git a/ms/blueprintsprocessor/modules/inbounds/selfservice-api/src/main/kotlin/org/onap/ccsdk/apps/blueprintsprocessor/selfservice/api/utils/BluePrintMappings.kt b/ms/blueprintsprocessor/modules/inbounds/selfservice-api/src/main/kotlin/org/onap/ccsdk/apps/blueprintsprocessor/selfservice/api/utils/BluePrintMappings.kt index c8ce1c30c..b261c41b0 100644 --- a/ms/blueprintsprocessor/modules/inbounds/selfservice-api/src/main/kotlin/org/onap/ccsdk/apps/blueprintsprocessor/selfservice/api/utils/BluePrintMappings.kt +++ b/ms/blueprintsprocessor/modules/inbounds/selfservice-api/src/main/kotlin/org/onap/ccsdk/apps/blueprintsprocessor/selfservice/api/utils/BluePrintMappings.kt @@ -20,10 +20,12 @@ import com.fasterxml.jackson.databind.node.ObjectNode import com.google.common.base.Strings import com.google.protobuf.Struct import com.google.protobuf.Value +import com.google.protobuf.util.JsonFormat import org.onap.ccsdk.apps.controllerblueprints.common.api.ActionIdentifiers import org.onap.ccsdk.apps.controllerblueprints.common.api.CommonHeader import org.onap.ccsdk.apps.controllerblueprints.common.api.Flag import org.onap.ccsdk.apps.controllerblueprints.common.api.Status +import org.onap.ccsdk.apps.controllerblueprints.core.utils.JacksonUtils import org.onap.ccsdk.apps.controllerblueprints.processing.api.ExecutionServiceInput import org.onap.ccsdk.apps.controllerblueprints.processing.api.ExecutionServiceOutput import java.text.SimpleDateFormat @@ -158,11 +160,13 @@ fun ExecutionServiceInput.toJava(): org.onap.ccsdk.apps.blueprintsprocessor.core // EXECUTION OUPUT -fun org.onap.ccsdk.apps.blueprintsprocessor.core.api.data.ExecutionServiceOutput.toProto(payload: Struct): ExecutionServiceOutput { +fun org.onap.ccsdk.apps.blueprintsprocessor.core.api.data.ExecutionServiceOutput.toProto(): ExecutionServiceOutput { val executionServiceOuput = ExecutionServiceOutput.newBuilder() executionServiceOuput.actionIdentifiers = this.actionIdentifiers.toProto() executionServiceOuput.commonHeader = this.commonHeader.toProto() executionServiceOuput.status = this.status.toProto() - executionServiceOuput.payload = payload + val struct = Struct.newBuilder() + JsonFormat.parser().merge(JacksonUtils.getJson(this.payload), struct) + executionServiceOuput.payload = struct.build() return executionServiceOuput.build() }
\ No newline at end of file diff --git a/ms/blueprintsprocessor/modules/services/execution-service/src/main/kotlin/org/onap/ccsdk/apps/blueprintsprocessor/services/execution/AbstractComponentFunction.kt b/ms/blueprintsprocessor/modules/services/execution-service/src/main/kotlin/org/onap/ccsdk/apps/blueprintsprocessor/services/execution/AbstractComponentFunction.kt index 930dc074e..7086ebbce 100644 --- a/ms/blueprintsprocessor/modules/services/execution-service/src/main/kotlin/org/onap/ccsdk/apps/blueprintsprocessor/services/execution/AbstractComponentFunction.kt +++ b/ms/blueprintsprocessor/modules/services/execution-service/src/main/kotlin/org/onap/ccsdk/apps/blueprintsprocessor/services/execution/AbstractComponentFunction.kt @@ -29,6 +29,7 @@ import org.onap.ccsdk.apps.controllerblueprints.core.asJsonNode import org.onap.ccsdk.apps.controllerblueprints.core.getAsString
import org.onap.ccsdk.apps.controllerblueprints.core.interfaces.BlueprintFunctionNode
import org.onap.ccsdk.apps.controllerblueprints.core.service.BluePrintRuntimeService
+import org.onap.ccsdk.apps.controllerblueprints.core.utils.JacksonUtils
import org.slf4j.LoggerFactory
/**
@@ -100,7 +101,7 @@ abstract class AbstractComponentFunction : BlueprintFunctionNode<ExecutionServic log.info("Preparing Response...")
executionServiceOutput.commonHeader = executionServiceInput.commonHeader
executionServiceOutput.actionIdentifiers = executionServiceInput.actionIdentifiers
- executionServiceOutput.payload = executionServiceInput.payload
+
// Resolve the Output Expression
val stepOutputs = bluePrintRuntimeService
@@ -108,6 +109,8 @@ abstract class AbstractComponentFunction : BlueprintFunctionNode<ExecutionServic bluePrintRuntimeService.put("$stepName-step-outputs", stepOutputs.asJsonNode())
+ executionServiceOutput.payload = JacksonUtils.objectNodeFromObject(stepOutputs)
+
// Populate Status
val status = Status()
status.eventType = "EVENT-COMPONENT-EXECUTED"
|