The current API for creating and subsequently retrieving decisions surrounding DCAE mS configuration policies has many problems and limitations. We are capturing these limitations here so that they can be addressed in Dublin for the new Policy Lifecycle API.
1 Casablanca TCA DCAE mS Policy Model Schema
Code Block |
---|
language | yml |
---|
title | Casablanca DCAE mS Policy Model (filename=tca_policy_model_casablanca.yml) |
---|
|
tosca_definitions_version: tosca_simple_yaml_1_0_0
data_types:
policy.data.metricsPerEventName:
properties:
controlLoopSchemaType:
type: string
description: Specifies Control Loop Schema Type for the event Name e.g. VNF, VM
constraints:
- valid_values:
- VM
- VNF
eventName:
type: string
description: Event name to which thresholds need to be applied
policyName:
type: string
description: TCA Policy Scope Name
policyScope:
type: string
description: TCA Policy Scope
policyVersion:
type: string
description: TCA Policy Scope Version
thresholds:
type: list
description: Thresholds associated with eventName
entry_schema:
type: policy.data.thresholds
policy.data.tca_policy:
properties:
domain:
type: string
description: Domain name to which TCA needs to be applied
constraints:
- equal: measurementsForVfScaling
metricsPerEventName:
type: list
description: Contains eventName and threshold details that need to be applied to given eventName
entry_schema:
type: policy.data.metricsPerEventName
policy.data.thresholds:
properties:
closedLoopControlName:
type: string
description: Closed Loop Control Name associated with the threshold
closedLoopEventStatus:
type: string
description: Closed Loop Event Status of the threshold
constraints:
- valid_values:
- ONSET
- ABATED
direction:
type: string
description: Direction of the threshold
constraints:
- valid_values:
- LESS
- LESS_OR_EQUAL
- GREATER
- GREATER_OR_EQUAL
- EQUAL
fieldPath:
type: string
description: Json field Path as per CEF message which needs to be analyzed for TCA
severity:
type: string
description: Threshold Event Severity
constraints:
- valid_values:
- CRITICAL
- MAJOR
- MINOR
- WARNING
- NORMAL
thresholdValue:
type: integer
description: Threshold value for the field Path inside CEF message
version:
type: string
description: Version number associated with the threshold
node_types:
policy.nodes.Root:
derived_from: tosca.nodes.Root
properties:
policyDescription:
required: false
type: string
policyName:
required: true
type: string
policyScope:
required: true
type: string
policyVersion:
required: true
type: string
policy.nodes.tca:
derived_from: policy.nodes.Root
properties:
tca_policy:
type: map
description: TCA Policy JSON
entry_schema:
type: policy.data.tca_policy |
Let's say this file was saved as tca_policy_model_casablanca.yml
Based on the model schema, one would expect to be able to generate a TCA mS policy in YAML:
...
Code Block |
---|
language | yml |
---|
title | Expected Policy to be Created by CLAMP |
---|
linenumbers | true |
---|
|
tosca_definitions_version: tosca_simple_yaml_1_0_0
imports:
-
tca_policy_model_dublin.yml
policies:
-
onap.vfirewall.tca:
type: onap.policy.monitoring.cdap.tca.hi.lo.app
properties:
domain: measurementsForVfScaling
metricsPerEventName:
-
eventName: vLoadBalancer
controlLoopSchemaType: VNF
policyScope: "resource=vLoadBalancer;type=configuration"
policyName: "onap.vfirewall.tca" # Do we need a name? The unique node name should be enough?
policyVersion: "v0.0.1" # This field should be removed as Policy Create/Update API will return the version
thresholds:
-
closedLoopControlName: "CL-LBAL-LOW-TRAFFIC-SIG-FB480F95-A453-6F24-B767-FD703241AB1A"
closedLoopEventStatus: ONSET
version: "1.0.2"
fieldPath: "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedBroadcastPacketsAccumulated"
thresholdValue: 500
direction: LESS_OR_EQUAL
severity: MAJOR
-
closedLoopControlName: "CL-LBAL-LOW-TRAFFIC-SIG-0C5920A6-B564-8035-C878-0E814352BC2B"
closedLoopEventStatus: ONSET
version: "1.0.2"
fieldPath: "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedBroadcastPacketsAccumulated"
thresholdValue: 5000
direction: GREATER_OR_EQUAL
severity: CRITICAL
|
code |