Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Frankfurt release targets the completion of the work started in Dublin to re-build the Policy Framework infrastructure. The new capabilities were to complete missing functionality that was previously in the legacy components, or was targeted to be part of the platform and was not able to be finished in Dublin:

...

Consolidation of Policy Health Check - China Ericsson Team

Jira Legacy
serverSystem Jiracolumnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
serverId4733707d-2057-3a0f-ae5e-4fd8aff50176
keyREQPOLICY-252025
 - When policies are deployed/undeployed (eg new version or removal), then some ONAP components need more immediate notification. Notably, DCAE microservices need to respond quickly to policy changes. James Hahn

Policy Validation Liam Fallon

Jira LegacyserverSystem Jiracolumnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolutionPer Integration team, one single health check requested that gives status for the whole of Policy Framework components.

  • New API implemented in PAP : /policy/pap/v1/pdps/healthcheck

Example API result:

Code Block
{
    "pdps": {
        "xacml": [
            {
                "instanceId": "CN-00000994",
                "pdpState": "ACTIVE",
                "healthy": "HEALTHY"
            }
        ],
        "drools": [
            {
                "instanceId": "CN-00000994",
                "pdpState": "ACTIVE",
                "healthy": "HEALTHY"
            }
        ],
        "apex": [
            {
                "instanceId": "CN-00000994",
                "pdpState": "ACTIVE",
                "healthy": "HEALTHY"
            }
        ]
    },
    "healthy": true,
    "api": {
        "name": "Policy API",
        "url": "http://policy-api:6969/policy/api/v1/healthcheck",
        "healthy": true,
        "code": 200,
        "message": "alive"
    },
    "distribution": {
        "name": "Policy SSD",
        "url": "http://policy-distribution:6969/healthcheck",
        "healthy": true,
        "code": 200,
        "message": "alive"
    },
    "pap": {
        "name": "Policy PAP",
        "url": "http://policy-pap:6969/policy/pap/v1/healthcheck",
        "healthy": true,
        "code": 200,
        "message": "alive"
    }
}


PDP Statistics - China Ericsson Team

Jira Legacy
serverSystem Jira
serverId4733707d-2057-3a0f-ae5e-4fd8aff50176
keyPOLICY-2025
 - The same epic also covers the work for collecting various statistics of registered PDP engines and storing them in the Policy DB.

  • Policy models and related provider classes created for storing PDP Statistics in DB.
  • REST API created in PAP to fetch the PDP Statistics saved in Policy DB.
  • PdpStatus heartbeat messages from apex-pdp has been updated to include current statistics in every interval. Xacml-pdp & drools-pdp will be updated shortly.
  • PAP handlers has been updated to collect & store the statistics coming in heartbeat messages to Policy DB.

PDP Monitoring GUI - China Ericsson Team

Jira Legacy
serverSystem Jira
serverId4733707d-2057-3a0f-ae5e-4fd8aff50176
keyPOLICY-1751
 - This epic covers the work to create a GUI that polls the PDP statistics from PAP for monitoring PDP engines. This is currently work in progress.

A new UI is being developed to show

  • the list of PDP engines registered with PAP
  • the statistics of an individual PDP engine.
  • the cumulative statistics of a group of PDP engines.
  • the cumulative statistics of all PDP engines for a particular domain.

Integration of CDS As an Actor Former user (Deleted) Rashmi Pujar

Jira Legacy
serverSystem Jira
serverId4733707d-2057-3a0f-ae5e-4fd8aff50176
keyPOLICY-2087
 - Started in Dublin as dark code, finishing the support for this new actor to be fully available for Control Loop Operational Policies


Policy Update Notifications James Hahn

Jira Legacy
serverSystem Jira
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
serverId4733707d-2057-3a0f-ae5e-4fd8aff50176
keyREQ-25
 - When policies are deployed/undeployed (eg new version or removal), then some ONAP components need more immediate notification. Notably, DCAE microservices need to respond quickly to policy changes. James Hahn


Policy Validation Liam Fallon

Jira Legacy
serverSystem Jira
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
serverId4733707d-2057-3a0f-ae5e-4fd8aff50176
keyREQ-9
 - Enhances the validation of TOSCA Policy Types and provides tools to Policy Designers. Liam Fallon

...

Code Block
languagejs
titleOperational Policy Type
linenumberstrue
tosca_definitions_version: tosca_simple_yaml_1_0_0
policy_types:
    onap.policies.controlloop.operational.Common:
        derived_from: tosca.policies.Root
        version: 1.0.0
        description: Operational Policy for Control Loop execution
        properties:
            id:
                type: String
                description: The unique control loop id.
                required: true
            timeout:
                type: Integer
                description: |
                    Overall timeout for executing all the operations. This timeout should equal or exceed the total
                    timeout for each operation listed.
                required: true
            abatement:
                type: Boolean
                description: Whether an abatement event message will be expected for the control loop from DCAE.
                required: true
                default: false
            trigger:
                type: String
                description: Initial operation to execute upon receiving an Onset event message for the Control Loop.
                required: true
            operations:
                type: List
                description: List of operations to be performed when Control Loop is triggered.
    event message for the Control Loop.
                required: true
            requiredoperations:
true                 entry_schematype: List
                   typedescription: onap.datatype.controlloop.Operation

    onap.policies.controlloop.operational.common.Apex:
   List of operations to be performed when Control Loop is triggered.
    derived_from: onap.policies.controlloop.operational.Common            type_version: 1.0.0required: true
             version: 1.0.0  entry_schema:
      description: Operational policies for Apex PDP         properties:type: onap.datatype.controlloop.Operation

    onap.policies.controlloop.operational.common.DroolsApex:
        derived_from: onap.policies.controlloop.operational.Common
        type_version: 1.0.0
        version: 1.0.0
        description: Operational policies for DroolsApex PDP
        properties:

    onap.policies.controlloop.operational.common.Drools:
      controllerName:      derived_from: onap.policies.controlloop.operational.Common
        type_version: 1.0.0
type: String       version: 1.0.0
        description: DroolsOperational controllerpolicies propertiesfor Drools PDP
        properties:
     required: false 
data_types:     # TBD if this is neededcontrollerName:
       onap.datatype.controlloop.operation.Failure:         derived_fromtype: tosca.datatypes.Root
  String
     description: Captures information of an operational failure performed for control loop  description: Drools controller properties
   properties:             messagesrequired: false

data_types:
    # TBD if this is needed
    type: Stringonap.datatype.controlloop.operation.Failure:
        derived_from: tosca.datatypes.Root
        description: errorCaptures messageinformation of an operational failure performed for control loop
        requiredproperties:
true             categorymessages:
                type: String
                description: |error message
                   The category the error occurred in. Whether this is a general error from the actor, or the operationrequired: true
            category:
                type: String
     timed out, retries were exhausted in trying to execute the operation, adescription: guard|
policy prevented the                  The category the operationerror fromoccurred occuring,in. orWhether anthis exceptionis ina thegeneral systemerror causedfrom the actor, failure.or the operation
              constraints:      timed out, retries were exhausted in trying to execute the operation, - valid_values: [error, timeout, retries, guard, exception]a guard policy prevented the
       onap.datatype.controlloop.Target:         derived_from: tosca.datatypes.Root   operation from occuring, or an exception description:in Definitionthe forsystem acaused entitythe infailure.
A&AI to perform a control loop operation on         propertiesconstraints:
            targetType:     - valid_values: [error, timeout, retries, guard, exception]

    type: Stringonap.datatype.controlloop.Target:
        derived_from: tosca.datatypes.Root
        description: CategoryDefinition for thea targetentity typein A&AI to perform a control loop operation on
        requiredproperties:
true                 constraintstargetType:
                - valid_values: [VNF, VM, VFMODULE, PNF]type: String
                entityIdsdescription: Category for the target type
            type: Map   required: true
            description: |   constraints:
                - Map of values that identify the resource. If none are provided, it is assumed that the
 valid_values: [VNF, VM, VFMODULE, PNF]
            entityIds:
                type: Map
entity that generated the ONSET event will be the target.       description: |
        required: false      onap.datatype.controlloop.Actor:     Map of values that identify derived_from: tosca.datatypes.Root
        description: An actor/operation/target definitionthe resource. If none are provided, it is assumed that the
              properties:      entity that generated the ONSET event will actor:be the target.
              type: String required: false

    onap.datatype.controlloop.Actor:
        descriptionderived_from: Thetosca.datatypes.Root
actor performing the operation.     description: An actor/operation/target definition
        requiredproperties:
true             operationactor:
                type: String
                description: The actor operationperforming the actor is performingoperation.
                required: true
            targetoperation:
                type: String
                description: The resourceoperation the operationactor should be performed onis performing.
                required: true
            target:
   metadata:             type: String
      clamp_possible_values: <string:see clamp project for syntax>     description: The resource the operation should be performed payload:on.
                typerequired: Maptrue
                descriptionmetadata:
Name/value pairs of payload information passed by Policy to the actor          clamp_possible_values: <string:see clamp project for syntax>
 required: false          payload:
      entry_schema:          type: Map
         type: String      onap.datatype.controlloop.Operation:
        derived_from: tosca.datatypes.Rootdescription: Name/value pairs of payload information passed by Policy to the actor
          description: An operation supported by an actorrequired: false
       properties:         entry_schema:
   id:                 type: String

    onap.datatype.controlloop.Operation:
        derived_from: tosca.datatypes.Root
 description: Unique identifier for the operation  description: An operation supported by an actor
        requiredproperties:
true             descriptionid:
                type: String
                description: A user-friendly description of the intent Unique identifier for the operation
                required: falsetrue
            operationdescription:
                type: onap.datatype.controlloop.ActorString
                description: A Theuser-friendly definitiondescription of the operationintent tofor bethe performed.operation
                required: truefalse
            operation:
   metadata:             type: onap.datatype.controlloop.Actor
      clamp_possible_values: <string:see clamp project for syntax>     description: The definition of the operation to be timeout:performed.
                typerequired: Integertrue
                descriptionmetadata:
The amount of time for the actor to perform the operation.          clamp_possible_values: <string:see clamp project for  syntax>
required: true             retriestimeout:
                type: Integer
                description: The numberamount of time retriesfor the actor should attempt to perform the operation.
                required: true
                default: 0
            successretries:
                type: StringInteger
                description: PointsThe tonumber theof operation to invoke on success. A value of "final_success" indicates and endretries the actor should attempt to perform the operation.
                required: falsetrue
                default: final_success0
            failuresuccess:
                type: String
                description: Points to the operation to invoke on Actor operation failure success. A value of "final_success" indicates and end to the operation.
                required: false
                default: final_failuresuccess
            failure_timeout:
                type: String
                description: Points to the operation to invoke when the time out for theon Actor operation occursfailure.
                required: false
                default: final_failure_timeout
            failure_retriestimeout:
                type: String
                description: Points to the operation to invoke when the currenttime operationout hasfor exceededthe itsoperation max retriesoccurs.
                required: false
                default: final_failure_retriestimeout
            failure_exceptionretries:
                type: String
                description: Points to the operation to invoke when the current operation has causesexceeded its anmax exceptionretries.
                required: false
                default: final_failure_exceptionretries
            failure_guardexception:
                type: String
                description: Points to the operation to invoke when the current operation iscauses blocked due to guard policy enforcementan exception.
                required: false
                default: final_failure_exception
            failure_guard:
                type: String
                

Much discussion for this was done in the Control Loop sub committee meetings. As captured here: Control Loop Policy Type Design Proposal#1: Simple upgrade of legacy policy types to TOSCA

Integration of CDS As an Actor Former user (Deleted) Rashmi Pujar

Jira Legacy
serverSystem Jira
serverId4733707d-2057-3a0f-ae5e-4fd8aff50176
keyPOLICY-2087
 - Started in Dublin as dark code, finishing the support for this new actor to be fully available for Control Loop Operational Policies

Consolidation of Policy Health Check - China Ericsson Team

Jira Legacy
serverSystem Jira
serverId4733707d-2057-3a0f-ae5e-4fd8aff50176
keyPOLICY-2025
 - Per Integration team, one single health check requested that gives status for the whole of Policy Framework components. Added some enhancement for collection of statistics on how well the Policy components are executing.

PDP Statistics - China Ericsson Team

PDP Monitoring GUI - China Ericsson Team

Jira Legacy
serverSystem Jira
serverId4733707d-2057-3a0f-ae5e-4fd8aff50176
keyPOLICY-1751

...

description: Points to the operation to invoke when the current operation is blocked due to guard policy enforcement.
                required: false
                default: final_failure_guard     

Much discussion for this was done in the Control Loop sub committee meetings. As captured here: Control Loop Policy Type Design Proposal#1: Simple upgrade of legacy policy types to TOSCA

Policy API Enhancements Chenfei Gao

...

Jira Legacy
serverSystem Jira
serverId4733707d-2057-3a0f-ae5e-4fd8aff50176
keyPOLICY-2026
 - Clarified PAP ↔ communication of Policy Types, Health Status, PDP Group Details, Passive vs Active modes. Ram Krishna Verma

  • Mapping of kubernetes deployment to PDP Subgroup
  • Re-synch of PAP and PDP when the supported policy type changes
  • Change the PAP Group Deploy/Undeploy API to only create/update PdpGroups
  • Create new API to deploy/undeploy policies into PdpGroups
  • Handle derivation in PDP supported types