This page contains a proposal for the design of the Control Loop Policy Types in order to address the problems not solved in the Dublin release.
Guard Policy Type
description Policy Types for control loops to take a baby step approach from Dublin to Frankfurt retaining a close resemblance to Dublin legacy policy types.
1. Guard Policy Type
1.1 The base schema is defined as below:
Code Block |
---|
language | yml |
---|
title | Base Policy type definition for onap.policies.controlloop.Guard |
---|
linenumbers | true |
---|
collapse | true |
---|
|
tosca_definitions_version: tosca_simple_yaml_1_0_0
policy_types:
- onap.policies.controlloop.Guard:
derived_from: tosca.policies.Root
version: 1.0.0
description: Guard Policies for Control Loop Operational Policies
|
1.2 onap.policies.controlloop.guard.FrequencyLimiter Policy Type
Code Block |
---|
language | yml |
---|
title | Policy Typefor Frequency Limiter Guard Policy |
---|
linenumbers | true |
---|
collapse | true |
---|
|
tosca_definitions_version: tosca_simple_yaml_1_0_0
policy_types:
- onap.policies.controlloop.Guard:
derived_from: tosca.policies.Root
version: 1.0.0
description: Guard Policies for Control Loop Operational Policies
- onap.policies.controlloop.guard.FrequencyLimiter:
derived_from: onap.policies.controlloop.Guard
version: 1.0.0
description: Supports limiting the frequency of actions being taken by a Actor.
properties:
frequency_policy:
type: map
description:
entry_schema:
type: onap.datatypes.guard.FrequencyLimiter
data_types:
- onap.datatypes.guard.FrequencyLimiter:
derived_from: tosca.datatypes.Root
properties:
actor:
type: string
description: Specifies the Actor
required: true
recipe:
type: string
description: Specified the Recipe
required: true
time_window:
type: scalar-unit.time
description: The time window to count the actions against.
required: true
limit:
type: integer
description: The limit
required: true
constraints:
- greater_than: 0
time_range:
type: tosca.datatypes.TimeInterval
description: An optional range of time during the day the frequency is valid for.
required: false
controlLoopName:
type: string
description: An optional specific control loop to apply this guard to.
required: false
target:
type: string
description: An optional specific VNF to apply this guard to.
required: false
|
1.3 onap.policies.controlloop.guard.Blacklist Policy Type
Code Block |
---|
language | yml |
---|
title | Policy Type for Blacklist Guard Policies |
---|
linenumbers | true |
---|
collapse | true |
---|
|
tosca_definitions_version: tosca_simple_yaml_1_0_0
policy_types:
- onap.policies.controlloop.Guard:
derived_from: tosca.policies.Root
version: 1.0.0
description: Guard Policies for Control Loop Operational Policies
- onap.policies.controlloop.guard.Blacklist:
derived_from: onap.policies.controlloop.Guard
version: 1.0.0
description: Supports blacklist of VNF's from performing control loop actions on.
properties:
blacklist_policy:
type: map
description:
entry_schema:
type: onap.datatypes.guard.Blacklist
data_types:
- onap.datatypes.guard.Blacklist:
derived_from: tosca.datatypes.Root
properties:
actor:
type: string
description: Specifies the Actor
required: true
recipe:
type: string
description: Specified the Recipe
required: true
time_range:
type: tosca.datatypes.TimeInterval
description: An optional range of time during the day the blacklist is valid for.
required: false
controlLoopName:
type: string
description: An optional specific control loop to apply this guard to.
required: false
blacklist:
type: list
description: List of VNF's
required: true
|
1.4 onap.policies.controlloop.guard.MinMax Policy Type
Code Block |
---|
language | yml |
---|
title | Policy Type for Min/Max VF Module Policies |
---|
linenumbers | true |
---|
collapse | true |
---|
|
policy_types:
- onap.policies.controlloop.Guard:
derived_from: tosca.policies.Root
version: 1.0.0
description: Guard Policies for Control Loop Operational Policies
- onap.policies.controlloop.guard.MinMax:
derived_from: onap.policies.controlloop.Guard
version: 1.0.0
description: Supports Min/Max number of VF Modules
properties:
minmax_policy:
type: map
description:
entry_schema:
type: onap.datatypes.guard.MinMax
data_types:
- onap.datatypes.guard.MinMax:
derived_from: tosca.datatypes.Root
properties:
actor:
type: string
description: Specifies the Actor
required: true
recipe:
type: string
description: Specified the Recipe
required: true
time_range:
type: tosca.datatypes.TimeInterval
description: An optional range of time during the day the Min/Max limit is valid for.
required: false
controlLoopName:
type: string
description: An optional specific control loop to apply this guard to.
required: false
min_vf_module_instances:
type: integer
required: true
description: The minimum instances of this VF-Module
max_vf_module_instances:
type: integer
required: false
description: The maximum instances of this VF-Module
|
...
2.0 Operational Policy Type
Code Block |
---|
language | yml |
---|
title | Base Policy type definition for onap.policies.controlloop.Operational |
---|
collapse | true |
---|
|
tosca_definitions_version: tosca_simple_yaml_1_0_0
policytopology_typestemplate:
onap.policies.controlloop.Operational:
policies:
-
operational.scaleout:
derived_from type: toscaonap.policies.controlloop.RootOperational
version: 1.0.0
description: Operational Policy for Control Loops
|
Coming soon!!!
Base Policy Type with Common Data Type
Code Block |
---|
language | js |
---|
title | Example of Common Datatype |
---|
linenumbers | true |
---|
|
tosca_definitions_version: tosca_simple_yaml_1_0_0
policy_types:
-
onap.policies.controlloop.Root:
derived_from: tosca.policies.Root
version: 1.0.0
description: Root policy type for all Control Loop Policies
properties:
common:
metadata:
typepolicy-id: mapoperational.scaleout
properties:
required: true
controlLoop:
descriptionversion: Common Header2.0.0
entry_schema:controlLoopName: ControlLoop-vDNS-6f37f56d-a87d-4b85-b6a9-cc953cf779b3
trigger_policy: unique-policy-id-1-scale-up
type: onap.datatypes.controlloop.Common
data_types:
-
timeout: 1200
onap.datatypes.controlloop.Common:
derived_fromabatement: tosca.datatypes.Rootfalse
version: 1.0.0policies:
description: |
- id: unique-policy-id-1-scale-up
This common data type captures commonname: dataCreate thata is
new VF Module
shared between all thedescription:
policies for a Control Loop
propertiesactor: SO
controlLoopName recipe:
VF Module Create
typetarget: string
requiredtype: trueVNF
payload:
description: The unique ID identifying the control loop
requestParameters: '{"usePreload":true,"userParams":[]}'
filters:
type: mapconfigurationParameters: '[{"ip-addr":"$.vf-module-topology.vf-module-parameters.param[9]","oam-ip-addr":"$.vf-module-topology.vf-module-parameters.param[16]","enabled":"$.vf-module-topology.vf-module-parameters.param[23]"}]'
requiredretry: false
0
description: A map of service, vnf, pnf filters for thetimeout: policy1200
success: entry_schema:final_success
failure: final_failure
type: onap.datatypes.controlloop.Filter
-
onap.datatypes.controlloop.Filter:failure_timeout: final_failure_timeout
derived_from: tosca.datatypes.Root
failure_retries: final_failure_retries
version: 1.0.0
properties:
failure_exception: final_failure_exception
# TODO
failure_guard: final_failure_guard
|