From 632899642b6a1d1489a0b96932c9c38863a53a26 Mon Sep 17 00:00:00 2001 From: Rashmi Pujar Date: Sat, 22 Jan 2022 00:37:28 -0500 Subject: Add TOSCA policy status header field to APEX event create CLI In order to expose the processing status of a TOSCA policy to APEX-PDP, a new header field for APEX concept "event" has been introduced to track this within an APEX policy implementation. This field will be leveraged to extract the TOSCA policy execution metrics. Note, that the field is marked as optional for backward compatibility. Unit tests have been augmented to test for the field wherever applicable and the default empty value is retained for the others. "example-grpc" module has been updated to include this field. Exposing the TOSCA policy execution metrics is outside the scope of this patch since the current changes are already very large owing to the atomic nature of the change introduced. Issue-ID: POLICY-3845 Signed-off-by: Rashmi Pujar Change-Id: Ief6d70f9abcfc8414e10aa51a27815ee9028e4c8 --- .../resources/examples/events/APEXgRPC/CDSResponseStatusEvent.json | 3 ++- .../src/main/resources/examples/events/APEXgRPC/LogEvent.json | 3 ++- .../examples-grpc/src/main/resources/policy/APEXgRPCPolicy.apex | 7 ++++--- .../org/onap/policy/apex/examples/grpc/TestApexGrpcExample.java | 7 ++++--- 4 files changed, 12 insertions(+), 8 deletions(-) (limited to 'examples/examples-grpc') diff --git a/examples/examples-grpc/src/main/resources/examples/events/APEXgRPC/CDSResponseStatusEvent.json b/examples/examples-grpc/src/main/resources/examples/events/APEXgRPC/CDSResponseStatusEvent.json index 938983362..d616ac12e 100644 --- a/examples/examples-grpc/src/main/resources/examples/events/APEXgRPC/CDSResponseStatusEvent.json +++ b/examples/examples-grpc/src/main/resources/examples/events/APEXgRPC/CDSResponseStatusEvent.json @@ -4,10 +4,11 @@ "nameSpace": "org.onap.policy.apex.onap.pmcontrol", "source": "APEX", "target": "DCAE", + "toscaPolicyState": "EXIT_SUCCESS", "status": { "subscriptionName": "testPolicyB", "nfName": "pnf300", "changeType": "CREATE", "message": "success" } -} +} \ No newline at end of file diff --git a/examples/examples-grpc/src/main/resources/examples/events/APEXgRPC/LogEvent.json b/examples/examples-grpc/src/main/resources/examples/events/APEXgRPC/LogEvent.json index e227b6699..6fd90771f 100644 --- a/examples/examples-grpc/src/main/resources/examples/events/APEXgRPC/LogEvent.json +++ b/examples/examples-grpc/src/main/resources/examples/events/APEXgRPC/LogEvent.json @@ -4,6 +4,7 @@ "nameSpace": "org.onap.policy.apex.onap.pmcontrol", "source": "APEX", "target": "DCAE", + "toscaPolicyState": "", "final_status": "FINAL_SUCCESS", "message": "Operation successfully completed." -} +} \ No newline at end of file diff --git a/examples/examples-grpc/src/main/resources/policy/APEXgRPCPolicy.apex b/examples/examples-grpc/src/main/resources/policy/APEXgRPCPolicy.apex index 636c74b80..34d590dcf 100644 --- a/examples/examples-grpc/src/main/resources/policy/APEXgRPCPolicy.apex +++ b/examples/examples-grpc/src/main/resources/policy/APEXgRPCPolicy.apex @@ -1,7 +1,7 @@ #------------------------------------------------------------------------------- # ============LICENSE_START======================================================= # Copyright (C) 2020 Nordix Foundation. -# Modifications Copyright (C) 2021 Bell Canada. All rights reserved. +# Modifications Copyright (C) 2021-2022 Bell Canada. All rights reserved. # ================================================================================ # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -75,7 +75,8 @@ LE album create name=PMSubscriptionAlbum scope=policy writable=true schemaName=PMSubscriptionType -event create name=testPolicyB version=0.0.1 nameSpace=org.onap.policy.apex.onap.pmcontrol source=DCAE target=APEX +# Incoming event +event create name=testPolicyB version=0.0.1 nameSpace=org.onap.policy.apex.onap.pmcontrol source=DCAE target=APEX toscaPolicyState=ENTRY event parameter create name=testPolicyB parName=nfName schemaName=SimpleStringType event parameter create name=testPolicyB parName=policyName schemaName=SimpleStringType event parameter create name=testPolicyB parName=changeType schemaName=SimpleStringType @@ -109,7 +110,7 @@ event parameter create name=CDSResponseEvent parName=actionIdentifiers schemaNam event parameter create name=CDSResponseEvent parName=status schemaName=CDSResponseStatusType event parameter create name=CDSResponseEvent parName=payload schemaName=CDSResponsePayloadType -event create name=CDSResponseStatusEvent nameSpace=org.onap.policy.apex.onap.pmcontrol source=APEX target=DCAE +event create name=CDSResponseStatusEvent nameSpace=org.onap.policy.apex.onap.pmcontrol source=APEX target=DCAE toscaPolicyState=EXIT_SUCCESS event parameter create name=CDSResponseStatusEvent parName=status schemaName=SubscriptionStatusType event create name=LogEvent nameSpace=org.onap.policy.apex.onap.pmcontrol source=APEX target=DCAE diff --git a/examples/examples-grpc/src/test/java/org/onap/policy/apex/examples/grpc/TestApexGrpcExample.java b/examples/examples-grpc/src/test/java/org/onap/policy/apex/examples/grpc/TestApexGrpcExample.java index a197432ba..f5a51a7fe 100644 --- a/examples/examples-grpc/src/test/java/org/onap/policy/apex/examples/grpc/TestApexGrpcExample.java +++ b/examples/examples-grpc/src/test/java/org/onap/policy/apex/examples/grpc/TestApexGrpcExample.java @@ -1,7 +1,7 @@ /*- * ============LICENSE_START======================================================= * Copyright (C) 2020 Nordix Foundation. - * Modifications Copyright (C) 2020-2021 Bell Canada. All rights reserved. + * Modifications Copyright (C) 2020-2022 Bell Canada. All rights reserved. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -91,6 +91,7 @@ public class TestApexGrpcExample { Files.readString(Paths.get("src/main/resources/examples/events/APEXgRPC/CDSResponseStatusEvent.json")) .replaceAll("\r", ""); // Both LogEvent and CDSResponseStatusEvent are generated from the final state in the policy - assertThat(responseEntity).contains(expectedStatusEvent + expectedLoggedOutputEvent); + assertThat(responseEntity).contains(expectedStatusEvent); + assertThat(responseEntity).contains(expectedLoggedOutputEvent); } -} +} \ No newline at end of file -- cgit 1.2.3-korg