Commit 40fe7ad2 authored by Waleed Akbar's avatar Waleed Akbar
Browse files

feat: Updates in Policy for Pluggable Demo

- Add support for generating failure notifications in policy actions
parent 737c0343
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -1443,6 +1443,8 @@ public class Serializer {
                return PolicyAction.PolicyRuleActionEnum.POLICY_RULE_ACTION_CALL_SERVICE_RPC;
            case POLICY_RULE_ACTION_RECALCULATE_PATH:
                return PolicyAction.PolicyRuleActionEnum.POLICY_RULE_ACTION_RECALCULATE_PATH;
            case POLICY_RULE_ACTION_GENERATE_FAILURE_NOTIFICATION:
                return PolicyAction.PolicyRuleActionEnum.POLICY_RULE_ACTION_GENERATE_FAILURE_NOTIFICATION;
            default:
                return PolicyAction.PolicyRuleActionEnum.UNRECOGNIZED;
        }
@@ -1461,6 +1463,8 @@ public class Serializer {
                return PolicyRuleActionEnum.POLICY_RULE_ACTION_CALL_SERVICE_RPC;
            case POLICY_RULE_ACTION_RECALCULATE_PATH:
                return PolicyRuleActionEnum.POLICY_RULE_ACTION_RECALCULATE_PATH;
            case POLICY_RULE_ACTION_GENERATE_FAILURE_NOTIFICATION:
                return PolicyRuleActionEnum.POLICY_RULE_ACTION_GENERATE_FAILURE_NOTIFICATION;
            case POLICYRULE_ACTION_NO_ACTION:
            case UNRECOGNIZED:
            default:
+13 −0
Original line number Diff line number Diff line
@@ -177,6 +177,13 @@ public class CommonPolicyServiceImpl {
                    callUpdateServiceRpc(policyRuleService, policyRuleAction);
                    break;
                }
            case POLICY_RULE_ACTION_GENERATE_FAILURE_NOTIFICATION:
                {
                    LOGGER.infof(
                            "Policy for KPI %s with action: Generate Failure Notification", policyRuleKpiId);
                    // TODO: ADD YOUR ACTION CALL HERE: publish notification to Kafka, expose via NBI
                    break;
                }
            default:
                {
                    applied = false;
@@ -222,6 +229,12 @@ public class CommonPolicyServiceImpl {
                    callRecalculatePathRPC(policyRuleService, policyRuleAction);
                    break;
                }
            case POLICY_RULE_ACTION_GENERATE_FAILURE_NOTIFICATION:
                {
                    LOGGER.infof("Policy with action: Generate Failure Notification");
                    // TODO: Phase 7 — publish notification to Kafka, expose via NBI
                    break;
                }
            default:
                {
                    applied = false;
+7 −5
Original line number Diff line number Diff line
@@ -281,9 +281,11 @@ public class PolicyServiceImpl implements PolicyService {
                .removePolicyRule(policyRuleId)
                .subscribe()
                .with(
                        x -> LOGGER.infof(
                        x ->
                                LOGGER.infof(
                                        "Deleted Policy with ID %s from context", policyRuleBasic.getPolicyRuleId()),
                        failure -> LOGGER.errorf(
                        failure ->
                                LOGGER.errorf(
                                        "Failed to delete Policy with ID %s: %s",
                                        policyRuleBasic.getPolicyRuleId(), failure.getMessage()));

+2 −1
Original line number Diff line number Diff line
@@ -22,5 +22,6 @@ public enum PolicyRuleActionEnum {
    POLICY_RULE_ACTION_ADD_SERVICE_CONFIGRULE,
    POLICY_RULE_ACTION_ADD_SERVICE_CONSTRAINT,
    POLICY_RULE_ACTION_CALL_SERVICE_RPC,
    POLICY_RULE_ACTION_RECALCULATE_PATH
    POLICY_RULE_ACTION_RECALCULATE_PATH,
    POLICY_RULE_ACTION_GENERATE_FAILURE_NOTIFICATION
}