diff options
author | Singal, Kapil (ks220y) <ks220y@att.com> | 2019-09-24 15:10:41 -0400 |
---|---|---|
committer | Singal, Kapil (ks220y) <ks220y@att.com> | 2019-09-24 15:10:41 -0400 |
commit | 054b1d80f19d27fb8766bf70339ec5b7a351ac2e (patch) | |
tree | bb3c51a1abe05d3e4dc5c9da3df9d3164afb1019 /ms/blueprintsprocessor/modules | |
parent | e0e2aa06217ea5299e720e97f4275197551b3e68 (diff) |
AbstractComponentFunction Payload API
Adding new API's in AbstractComponentFunction to pull payload
Issue-ID: CCSDK-1752
Signed-off-by: Singal, Kapil (ks220y) <ks220y@att.com>
Change-Id: I6db5ea12d24765d3775c6c81d7cbbefcd1708ca1
Diffstat (limited to 'ms/blueprintsprocessor/modules')
3 files changed, 39 insertions, 7 deletions
diff --git a/ms/blueprintsprocessor/modules/services/execution-service/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/services/execution/AbstractComponentFunction.kt b/ms/blueprintsprocessor/modules/services/execution-service/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/services/execution/AbstractComponentFunction.kt index 8759338b7..5163a93ac 100644 --- a/ms/blueprintsprocessor/modules/services/execution-service/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/services/execution/AbstractComponentFunction.kt +++ b/ms/blueprintsprocessor/modules/services/execution-service/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/services/execution/AbstractComponentFunction.kt @@ -154,6 +154,26 @@ abstract class AbstractComponentFunction : BlueprintFunctionNode<ExecutionServic bluePrintRuntimeService.getBluePrintError().addError(error) } + /** + * Get Execution Input Payload data + */ + fun requestPayload(): JsonNode? { + return executionServiceInput.payload + } + + /** + * Get Execution Input payload action property with [expression] + * ex: requestPayloadActionProperty("data") will look for path "payload/<action-name>-request/data" + */ + fun requestPayloadActionProperty(expression: String?): JsonNode? { + val requestExpression = if (expression.isNullOrBlank()) { + "$operationName-request" + } else { + "$operationName-request.$expression" + } + return executionServiceInput.payload.jsonPathParse(".$requestExpression") + } + fun artifactContent(artifactName: String): String { return bluePrintRuntimeService.resolveNodeTemplateArtifact(nodeTemplateName, artifactName) } 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 07be8c809..16e4e611b 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 @@ -70,9 +70,6 @@ class AbstractComponentFunctionTest { every { blueprintContext.rootPath } returns normalizedPathName("target") } - /** - * Tests the abstract component functionality. - */ @Test fun testAbstractComponent() { runBlocking { @@ -95,9 +92,18 @@ class AbstractComponentFunctionTest { } } - /** - * Tests the abstract script component functionality. - */ + @Test + fun testComponentFunctionPayload() { + val sampleComponent = SampleComponent() + sampleComponent.operationName = "sample-action" + sampleComponent.executionServiceInput = JacksonUtils.readValueFromClassPathFile( + "payload/requests/sample-execution-request.json", ExecutionServiceInput::class.java)!! + val payload = sampleComponent.requestPayload() + assertNotNull(payload, "failed to get payload") + val data = sampleComponent.requestPayloadActionProperty("data")?.first() + assertNotNull(data, "failed to get payload request action data") + } + @Test fun testAbstractScriptComponent() { runBlocking { @@ -190,5 +196,6 @@ class AbstractComponentFunctionTest { val componentScriptExecutor = BluePrintTypes.nodeTypeComponentScriptExecutor() assertNotNull(componentScriptExecutor.interfaces, "failed to get interface operations") } + } diff --git a/ms/blueprintsprocessor/modules/services/execution-service/src/test/resources/payload/requests/sample-execution-request.json b/ms/blueprintsprocessor/modules/services/execution-service/src/test/resources/payload/requests/sample-execution-request.json index 27eec8275..c9b8ed2a7 100644 --- a/ms/blueprintsprocessor/modules/services/execution-service/src/test/resources/payload/requests/sample-execution-request.json +++ b/ms/blueprintsprocessor/modules/services/execution-service/src/test/resources/payload/requests/sample-execution-request.json @@ -16,5 +16,10 @@ "timestamp": "2012-04-23T18:25:43.511Z" }, "payload": { + "sample-action-request": { + "data": { + "prop": "value" + } + } } -} +}
\ No newline at end of file |