...
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 |
---|
server | System Jira | columns | key,summary,type,created,updated,due,assignee,reporter,priority,status,resolution |
---|
serverId | 4733707d-2057-3a0f-ae5e-4fd8aff50176 |
---|
key | REQPOLICY-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 Jira Legacy |
---|
server | System Jira |
---|
columns | key,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 |
---|
server | System Jira |
---|
serverId | 4733707d-2057-3a0f-ae5e-4fd8aff50176 |
---|
key | POLICY-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 |
---|
server | System Jira |
---|
serverId | 4733707d-2057-3a0f-ae5e-4fd8aff50176 |
---|
key | POLICY-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.
Jira Legacy |
---|
server | System Jira |
---|
serverId | 4733707d-2057-3a0f-ae5e-4fd8aff50176 |
---|
key | POLICY-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 |
---|
server | System Jira |
---|
columns | key,summary,type,created,updated,due,assignee,reporter,priority,status,resolution |
---|
serverId | 4733707d-2057-3a0f-ae5e-4fd8aff50176 |
---|
key | REQ-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
Jira Legacy |
---|
server | System Jira |
---|
columns | key,summary,type,created,updated,due,assignee,reporter,priority,status,resolution |
---|
serverId | 4733707d-2057-3a0f-ae5e-4fd8aff50176 |
---|
key | REQ-9 |
---|
|
- Enhances the validation of TOSCA Policy Types and provides tools to Policy Designers.
Liam Fallon...
Code Block |
---|
language | js |
---|
title | Operational Policy Type |
---|
linenumbers | true |
---|
|
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
Jira Legacy |
---|
server | System Jira |
---|
serverId | 4733707d-2057-3a0f-ae5e-4fd8aff50176 |
---|
key | POLICY-2087 |
---|
|
- Started in Dublin as dark code, finishing the support for this new actor to be fully available for Control Loop Operational PoliciesConsolidation of Policy Health Check - China Ericsson Team
Jira Legacy |
---|
server | System Jira |
---|
serverId | 4733707d-2057-3a0f-ae5e-4fd8aff50176 |
---|
key | POLICY-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 |
---|
server | System Jira |
---|
serverId | 4733707d-2057-3a0f-ae5e-4fd8aff50176 |
---|
key | POLICY-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 |
---|
server | System Jira |
---|
serverId | 4733707d-2057-3a0f-ae5e-4fd8aff50176 |
---|
key | POLICY-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