aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjhh <jorge.hernandez-herrero@att.com>2022-08-17 18:47:56 -0500
committerjhh <jorge.hernandez-herrero@att.com>2022-08-17 18:56:32 -0500
commit6a75c3cd6b96a8ceef4ba02cf13832f88a15e352 (patch)
treebcc34f4bca45a2e24e89de7cbd138fecd51d6c11
parentb4901aecfc3d55103b195378fa86a8fca674706d (diff)
Added onap.policies.monitoring.tcagen2 version 2.0.0
Issue-ID: POLICY-4317 Signed-off-by: jhh <jorge.hernandez-herrero@att.com> Change-Id: I34158cd21777b6127fd4a306b73fa3446e302c99 Signed-off-by: jhh <jorge.hernandez-herrero@att.com>
-rw-r--r--models-examples/src/main/resources/policies/vFirewall.policy.monitoring.input.tosca.v2.json186
-rw-r--r--models-examples/src/main/resources/policies/vFirewall.policy.monitoring.input.tosca.v2.yaml149
-rw-r--r--models-examples/src/main/resources/policytypes/onap.policies.monitoring.tcagen2.v2.yaml162
-rw-r--r--models-tosca/src/test/java/org/onap/policy/models/tosca/simple/serialization/MonitoringPolicySerializationTest.java46
-rw-r--r--models-tosca/src/test/java/org/onap/policy/models/tosca/simple/serialization/MonitoringPolicyTypeSerializationTest.java49
5 files changed, 566 insertions, 26 deletions
diff --git a/models-examples/src/main/resources/policies/vFirewall.policy.monitoring.input.tosca.v2.json b/models-examples/src/main/resources/policies/vFirewall.policy.monitoring.input.tosca.v2.json
new file mode 100644
index 000000000..790fa33ff
--- /dev/null
+++ b/models-examples/src/main/resources/policies/vFirewall.policy.monitoring.input.tosca.v2.json
@@ -0,0 +1,186 @@
+{
+ "tosca_definitions_version": "tosca_simple_yaml_1_1_0",
+ "topology_template": {
+ "policies": [
+ {
+ "onap.vfirewall.tca": {
+ "type": "onap.policies.monitoring.tcagen2",
+ "type_version": "2.0.0",
+ "version": "2.0.0",
+ "name": "onap.vfirewall.tca",
+ "metadata": {
+ "policy-id": "onap.vfirewall.tca"
+ },
+ "properties": {
+ "tca.policy": [
+ {
+ "domain": "measurementsForVfScaling",
+ "metricsPerEventName": [
+ {
+ "eventName": "Mfvs_eNodeB_RANKPI",
+ "controlLoopSchemaType": "VNF",
+ "policyScope": "resource=vFirewall;type=configuration",
+ "policyName": "configuration.dcae.microservice.tca.xml",
+ "policyVersion": "v0.0.1",
+ "thresholds": [
+ {
+ "closedLoopControlName": "CL-FRWL-LOW-TRAFFIC-SIG-d925ed73-8231-4d02-9545-db4e101f88f8",
+ "closedLoopEventStatus": "ONSET",
+ "version": "1.0.2",
+ "fieldPath": "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedBroadcastPacketsAccumulated",
+ "thresholdValue": 4000,
+ "direction": "LESS_OR_EQUAL",
+ "severity": "MAJOR"
+ },
+ {
+ "closedLoopControlName": "CL-FRWL-HIGH-TRAFFIC-SIG-EA36FE84-9342-5E13-A656-EC5F21309A09",
+ "closedLoopEventStatus": "ONSET",
+ "version": "1.0.2",
+ "fieldPath": "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedBroadcastPacketsAccumulated",
+ "thresholdValue": 20000,
+ "direction": "GREATER_OR_EQUAL",
+ "severity": "CRITICAL"
+ },
+ {
+ "closedLoopControlName": "CL-FRWL-HIGH-TRAFFIC-SIG-EA36FE84-9342-5E13-A656-EC5F21309A09",
+ "closedLoopEventStatus": "ABATED",
+ "version": "1.0.2",
+ "fieldPath": "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedBroadcastPacketsAccumulated",
+ "thresholdValue": 0,
+ "direction": "EQUAL",
+ "severity": "CRITICAL"
+ }
+ ]
+ },
+ {
+ "eventName": "vLoadBalancer",
+ "controlLoopSchemaType": "VNF",
+ "policyScope": "resource=vLoadBalancer;type=configuration",
+ "policyName": "configuration.dcae.microservice.tca.xml",
+ "policyVersion": "v0.0.1",
+ "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"
+ }
+ ]
+ },
+ {
+ "eventName": "virtualVMEventName",
+ "controlLoopSchemaType": "VM",
+ "policyScope": "resource=virtualVM;type=configuration",
+ "policyName": "configuration.dcae.microservice.tca.xml",
+ "policyVersion": "v0.0.1",
+ "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"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "domain": "measurement",
+ "metricsPerEventName": [
+ {
+ "eventName": "vFirewallBroadcastPackets",
+ "controlLoopSchemaType": "VM",
+ "policyScope": "DCAE",
+ "policyName": "DCAE.Config_tca-hi-lo",
+ "policyVersion": "v0.0.1",
+ "thresholds": [
+ {
+ "closedLoopControlName": "ControlLoop-vFirewall-d0a1dfc6-94f5-4fd4-a5b5-4630b438850a",
+ "version": "1.0.2",
+ "fieldPath": "$.event.measurementFields.nicPerformanceArray[*].receivedTotalPacketsDelta",
+ "thresholdValue": 300,
+ "direction": "LESS_OR_EQUAL",
+ "severity": "MAJOR",
+ "closedLoopEventStatus": "ABATED"
+ },
+ {
+ "closedLoopControlName": "ControlLoop-vFirewall-d0a1dfc6-94f5-4fd4-a5b5-4630b438850a",
+ "version": "1.0.2",
+ "fieldPath": "$.event.measurementFields.nicPerformanceArray[*].receivedTotalPacketsDelta",
+ "thresholdValue": 700,
+ "direction": "GREATER_OR_EQUAL",
+ "severity": "CRITICAL",
+ "closedLoopEventStatus": "ONSET"
+ }
+ ]
+ },
+ {
+ "eventName": "vLoadBalancer",
+ "controlLoopSchemaType": "VM",
+ "policyScope": "DCAE",
+ "policyName": "DCAE.Config_tca-hi-lo",
+ "policyVersion": "v0.0.1",
+ "thresholds": [
+ {
+ "closedLoopControlName": "ControlLoop-vDNS-6f37f56d-a87d-4b85-b6a9-cc953cf779b3",
+ "version": "1.0.2",
+ "fieldPath": "$.event.measurementFields.nicPerformanceArray[*].receivedTotalPacketsDelta",
+ "thresholdValue": 300,
+ "direction": "GREATER_OR_EQUAL",
+ "severity": "CRITICAL",
+ "closedLoopEventStatus": "ONSET"
+ }
+ ]
+ },
+ {
+ "eventName": "Measurement_vGMUX",
+ "controlLoopSchemaType": "VNF",
+ "policyScope": "DCAE",
+ "policyName": "DCAE.Config_tca-hi-lo",
+ "policyVersion": "v0.0.1",
+ "thresholds": [
+ {
+ "closedLoopControlName": "ControlLoop-vCPE-48f0c2c3-a172-4192-9ae3-052274181b6e",
+ "version": "1.0.2",
+ "fieldPath": "$.event.measurementFields.additionalMeasurements[*].arrayOfFields[0].value",
+ "thresholdValue": 0,
+ "direction": "EQUAL",
+ "severity": "MAJOR",
+ "closedLoopEventStatus": "ABATED"
+ },
+ {
+ "closedLoopControlName": "ControlLoop-vCPE-48f0c2c3-a172-4192-9ae3-052274181b6e",
+ "version": "1.0.2",
+ "fieldPath": "$.event.measurementFields.additionalMeasurements[*].arrayOfFields[0].value",
+ "thresholdValue": 0,
+ "direction": "GREATER",
+ "severity": "CRITICAL",
+ "closedLoopEventStatus": "ONSET"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ }
+ }
+ ]
+ }
+}
+
diff --git a/models-examples/src/main/resources/policies/vFirewall.policy.monitoring.input.tosca.v2.yaml b/models-examples/src/main/resources/policies/vFirewall.policy.monitoring.input.tosca.v2.yaml
new file mode 100644
index 000000000..3a2aef164
--- /dev/null
+++ b/models-examples/src/main/resources/policies/vFirewall.policy.monitoring.input.tosca.v2.yaml
@@ -0,0 +1,149 @@
+tosca_definitions_version: tosca_simple_yaml_1_1_0
+topology_template:
+ policies:
+ - onap.vfirewall.tca:
+ type: onap.policies.monitoring.tcagen2
+ type_version: 2.0.0
+ version: 2.0.0
+ name: onap.vfirewall.tca
+ metadata:
+ policy-id: onap.vfirewall.tca
+ properties:
+ tca.policy:
+ - domain: measurementsForVfScaling
+ metricsPerEventName:
+ - eventName: Mfvs_eNodeB_RANKPI
+ controlLoopSchemaType: VNF
+ policyScope: resource=vFirewall;type=configuration
+ policyName: configuration.dcae.microservice.tca.xml
+ policyVersion: v0.0.1
+ thresholds:
+ - closedLoopControlName: >-
+ CL-FRWL-LOW-TRAFFIC-SIG-d925ed73-8231-4d02-9545-db4e101f88f8
+ closedLoopEventStatus: ONSET
+ version: 1.0.2
+ fieldPath: >-
+ $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedBroadcastPacketsAccumulated
+ thresholdValue: 4000
+ direction: LESS_OR_EQUAL
+ severity: MAJOR
+ - closedLoopControlName: >-
+ CL-FRWL-HIGH-TRAFFIC-SIG-EA36FE84-9342-5E13-A656-EC5F21309A09
+ closedLoopEventStatus: ONSET
+ version: 1.0.2
+ fieldPath: >-
+ $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedBroadcastPacketsAccumulated
+ thresholdValue: 20000
+ direction: GREATER_OR_EQUAL
+ severity: CRITICAL
+ - closedLoopControlName: >-
+ CL-FRWL-HIGH-TRAFFIC-SIG-EA36FE84-9342-5E13-A656-EC5F21309A09
+ closedLoopEventStatus: ABATED
+ version: 1.0.2
+ fieldPath: >-
+ $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedBroadcastPacketsAccumulated
+ thresholdValue: 0
+ direction: EQUAL
+ severity: CRITICAL
+ - eventName: vLoadBalancer
+ controlLoopSchemaType: VNF
+ policyScope: resource=vLoadBalancer;type=configuration
+ policyName: configuration.dcae.microservice.tca.xml
+ policyVersion: v0.0.1
+ 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
+ - eventName: virtualVMEventName
+ controlLoopSchemaType: VM
+ policyScope: resource=virtualVM;type=configuration
+ policyName: configuration.dcae.microservice.tca.xml
+ policyVersion: v0.0.1
+ 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
+ - domain: measurement
+ metricsPerEventName:
+ - eventName: vFirewallBroadcastPackets
+ controlLoopSchemaType: VM
+ policyScope: DCAE
+ policyName: DCAE.Config_tca-hi-lo
+ policyVersion: v0.0.1
+ thresholds:
+ - closedLoopControlName: >-
+ ControlLoop-vFirewall-d0a1dfc6-94f5-4fd4-a5b5-4630b438850a
+ version: 1.0.2
+ fieldPath: >-
+ $.event.measurementFields.nicPerformanceArray[*].receivedTotalPacketsDelta
+ thresholdValue: 300
+ direction: LESS_OR_EQUAL
+ severity: MAJOR
+ closedLoopEventStatus: ABATED
+ - closedLoopControlName: >-
+ ControlLoop-vFirewall-d0a1dfc6-94f5-4fd4-a5b5-4630b438850a
+ version: 1.0.2
+ fieldPath: >-
+ $.event.measurementFields.nicPerformanceArray[*].receivedTotalPacketsDelta
+ thresholdValue: 700
+ direction: GREATER_OR_EQUAL
+ severity: CRITICAL
+ closedLoopEventStatus: ONSET
+ - eventName: vLoadBalancer
+ controlLoopSchemaType: VM
+ policyScope: DCAE
+ policyName: DCAE.Config_tca-hi-lo
+ policyVersion: v0.0.1
+ thresholds:
+ - closedLoopControlName: ControlLoop-vDNS-6f37f56d-a87d-4b85-b6a9-cc953cf779b3
+ version: 1.0.2
+ fieldPath: >-
+ $.event.measurementFields.nicPerformanceArray[*].receivedTotalPacketsDelta
+ thresholdValue: 300
+ direction: GREATER_OR_EQUAL
+ severity: CRITICAL
+ closedLoopEventStatus: ONSET
+ - eventName: Measurement_vGMUX
+ controlLoopSchemaType: VNF
+ policyScope: DCAE
+ policyName: DCAE.Config_tca-hi-lo
+ policyVersion: v0.0.1
+ thresholds:
+ - closedLoopControlName: ControlLoop-vCPE-48f0c2c3-a172-4192-9ae3-052274181b6e
+ version: 1.0.2
+ fieldPath: >-
+ $.event.measurementFields.additionalMeasurements[*].arrayOfFields[0].value
+ thresholdValue: 0
+ direction: EQUAL
+ severity: MAJOR
+ closedLoopEventStatus: ABATED
+ - closedLoopControlName: ControlLoop-vCPE-48f0c2c3-a172-4192-9ae3-052274181b6e
+ version: 1.0.2
+ fieldPath: >-
+ $.event.measurementFields.additionalMeasurements[*].arrayOfFields[0].value
+ thresholdValue: 0
+ direction: GREATER
+ severity: CRITICAL
+ closedLoopEventStatus: ONSET
+
diff --git a/models-examples/src/main/resources/policytypes/onap.policies.monitoring.tcagen2.v2.yaml b/models-examples/src/main/resources/policytypes/onap.policies.monitoring.tcagen2.v2.yaml
new file mode 100644
index 000000000..34f31f741
--- /dev/null
+++ b/models-examples/src/main/resources/policytypes/onap.policies.monitoring.tcagen2.v2.yaml
@@ -0,0 +1,162 @@
+tosca_definitions_version: tosca_simple_yaml_1_1_0
+policy_types:
+ onap.policies.Monitoring:
+ derived_from: tosca.policies.Root
+ version: 1.0.0
+ name: onap.policies.Monitoring
+ description: a base policy type for all policies that govern monitoring provisioning
+ onap.policies.monitoring.tcagen2:
+ derived_from: onap.policies.Monitoring
+ version: 2.0.0
+ name: onap.policies.monitoring.tcagen2
+ properties:
+ tca.policy:
+ type: list
+ description: TCA Policy JSON
+ required: true
+ entry_schema:
+ type: onap.datatypes.monitoring.tca_policy
+data_types:
+ onap.datatypes.monitoring.metricsPerEventName:
+ derived_from: tosca.datatypes.Root
+ properties:
+ controlLoopSchemaType:
+ type: string
+ required: true
+ description: Specifies Control Loop Schema Type for the event Name e.g. VNF, VM
+ constraints:
+ - valid_values:
+ - VM
+ - VNF
+ eventName:
+ type: string
+ required: true
+ description: Event name to which thresholds need to be applied
+ policyName:
+ type: string
+ required: true
+ description: TCA Policy Scope Name
+ policyScope:
+ type: string
+ required: true
+ description: TCA Policy Scope
+ policyVersion:
+ type: string
+ required: true
+ description: TCA Policy Scope Version
+ thresholds:
+ type: list
+ required: true
+ description: Thresholds associated with eventName
+ entry_schema:
+ type: onap.datatypes.monitoring.thresholds
+ onap.datatypes.monitoring.tca_policy:
+ derived_from: tosca.datatypes.Root
+ properties:
+ domain:
+ type: string
+ required: true
+ description: Domain name to which TCA needs to be applied
+ default: measurementsForVfScaling
+ constraints:
+ - equal: measurementsForVfScaling
+ metricsPerEventName:
+ type: list
+ required: true
+ description: Contains eventName and threshold details that need to be applied to given eventName
+ entry_schema:
+ type: onap.datatypes.monitoring.metricsPerEventName
+ onap.datatypes.monitoring.thresholds:
+ derived_from: tosca.datatypes.Root
+ properties:
+ closedLoopControlName:
+ type: string
+ required: true
+ description: Closed Loop Control Name associated with the threshold
+ closedLoopEventStatus:
+ type: string
+ required: true
+ description: Closed Loop Event Status of the threshold
+ constraints:
+ - valid_values:
+ - ONSET
+ - ABATED
+ direction:
+ type: string
+ required: true
+ description: Direction of the threshold
+ constraints:
+ - valid_values:
+ - LESS
+ - LESS_OR_EQUAL
+ - GREATER
+ - GREATER_OR_EQUAL
+ - EQUAL
+ fieldPath:
+ type: string
+ required: true
+ description: Json field Path as per CEF message which needs to be analyzed for TCA
+ constraints:
+ - valid_values:
+ - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedTotalPacketsDelta
+ - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedOctetsDelta
+ - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedUnicastPacketsDelta
+ - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedMulticastPacketsDelta
+ - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedBroadcastPacketsDelta
+ - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedDiscardedPacketsDelta
+ - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedErrorPacketsDelta
+ - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedTotalPacketsAccumulated
+ - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedOctetsAccumulated
+ - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedUnicastPacketsAccumulated
+ - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedMulticastPacketsAccumulated
+ - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedBroadcastPacketsAccumulated
+ - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedDiscardedPacketsAccumulated
+ - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedErrorPacketsAccumulated
+ - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedTotalPacketsDelta
+ - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedOctetsDelta
+ - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedUnicastPacketsDelta
+ - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedMulticastPacketsDelta
+ - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedBroadcastPacketsDelta
+ - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedDiscardedPacketsDelta
+ - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedErrorPacketsDelta
+ - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedTotalPacketsAccumulated
+ - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedOctetsAccumulated
+ - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedUnicastPacketsAccumulated
+ - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedMulticastPacketsAccumulated
+ - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedBroadcastPacketsAccumulated
+ - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedDiscardedPacketsAccumulated
+ - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedErrorPacketsAccumulated
+ - $.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuIdle
+ - $.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuUsageInterrupt
+ - $.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuUsageNice
+ - $.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuUsageSoftIrq
+ - $.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuUsageSteal
+ - $.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuUsageSystem
+ - $.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuWait
+ - $.event.measurementsForVfScalingFields.cpuUsageArray[*].percentUsage
+ - $.event.measurementsForVfScalingFields.meanRequestLatency
+ - $.event.measurementsForVfScalingFields.memoryUsageArray[*].memoryBuffered
+ - $.event.measurementsForVfScalingFields.memoryUsageArray[*].memoryCached
+ - $.event.measurementsForVfScalingFields.memoryUsageArray[*].memoryConfigured
+ - $.event.measurementsForVfScalingFields.memoryUsageArray[*].memoryFree
+ - $.event.measurementsForVfScalingFields.memoryUsageArray[*].memoryUsed
+ - $.event.measurementsForVfScalingFields.additionalMeasurements[*].arrayOfFields[0].value
+ severity:
+ type: string
+ required: true
+ description: Threshold Event Severity
+ constraints:
+ - valid_values:
+ - CRITICAL
+ - MAJOR
+ - MINOR
+ - WARNING
+ - NORMAL
+ thresholdValue:
+ type: integer
+ required: true
+ description: Threshold value for the field Path inside CEF message
+ version:
+ type: string
+ required: true
+ description: Version number associated with the threshold
diff --git a/models-tosca/src/test/java/org/onap/policy/models/tosca/simple/serialization/MonitoringPolicySerializationTest.java b/models-tosca/src/test/java/org/onap/policy/models/tosca/simple/serialization/MonitoringPolicySerializationTest.java
index 98ced3b41..4e491fde3 100644
--- a/models-tosca/src/test/java/org/onap/policy/models/tosca/simple/serialization/MonitoringPolicySerializationTest.java
+++ b/models-tosca/src/test/java/org/onap/policy/models/tosca/simple/serialization/MonitoringPolicySerializationTest.java
@@ -1,7 +1,7 @@
/*-
* ============LICENSE_START=======================================================
* Copyright (C) 2019-2020 Nordix Foundation.
- * Copyright (C) 2019-2020 AT&T Intellectual Property. All rights reserved.
+ * Copyright (C) 2019-2020,2022 AT&T Intellectual Property. All rights reserved.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -79,6 +79,7 @@ public class MonitoringPolicySerializationTest {
private static final String METADATA = "metadata";
private static final String VERSION_100 = "1.0.0";
+ private static final String VERSION_200 = "2.0.0";
private static final Logger LOGGER = LoggerFactory.getLogger(MonitoringPolicySerializationTest.class);
@@ -88,9 +89,11 @@ public class MonitoringPolicySerializationTest {
private static final String VDNS_MON_INPUT_YAML = "policies/vDNS.policy.monitoring.input.tosca.yaml";
private static final String VFW_MON_INPUT_JSON = "policies/vFirewall.policy.monitoring.input.tosca.json";
private static final String VFW_MON_INPUT_YAML = "policies/vFirewall.policy.monitoring.input.tosca.yaml";
+ private static final String VFW_MON_INPUT_V2_JSON = "policies/vFirewall.policy.monitoring.input.tosca.v2.json";
+ private static final String VFW_MON_INPUT_V2_YAML = "policies/vFirewall.policy.monitoring.input.tosca.v2.yaml";
- private StandardCoder standardCoder = new StandardCoder();
- private YamlJsonTranslator yamlJsonTranslator = new YamlJsonTranslator();
+ private final StandardCoder standardCoder = new StandardCoder();
+ private final YamlJsonTranslator yamlJsonTranslator = new YamlJsonTranslator();
@Test
public void testDeserialization() throws Exception {
@@ -122,9 +125,11 @@ public class MonitoringPolicySerializationTest {
serviceTemplateFromJson = deserializeMonitoringInputJson(VFW_MON_INPUT_JSON);
mergedServiceTemplate =
ToscaServiceTemplateUtils.addFragment(policyTypeServiceTemplate, serviceTemplateFromJson);
- verifyVfwMonitoringInputDeserialization(mergedServiceTemplate);
+ verifyVfwMonitoringInputDeserialization(mergedServiceTemplate, VERSION_100);
serviceTemplateFromYaml = deserializeMonitoringInputYaml(VFW_MON_INPUT_YAML);
assertEquals(0, serviceTemplateFromJson.compareTo(serviceTemplateFromYaml));
+
+ testDeserializationMonitoringV2();
}
@Test
@@ -143,13 +148,34 @@ public class MonitoringPolicySerializationTest {
// vFirewall
serviceTemplate = deserializeMonitoringInputJson(VFW_MON_INPUT_JSON);
serializedServiceTemplate = serializeMonitoringServiceTemplate(serviceTemplate);
- verifyVfwMonitoringOutputserialization(serializedServiceTemplate);
+ verifyVfwMonitoringOutputserialization(serializedServiceTemplate, VERSION_100);
+ // vFirewall v2
+ serviceTemplate = deserializeMonitoringInputJson(VFW_MON_INPUT_V2_JSON);
+ serializedServiceTemplate = serializeMonitoringServiceTemplate(serviceTemplate);
+ verifyVfwMonitoringOutputserialization(serializedServiceTemplate, VERSION_200);
}).as("No exception should be thrown").doesNotThrowAnyException();
}
- private JpaToscaServiceTemplate deserializeMonitoringInputJson(String resourcePath) throws Exception {
+ private void testDeserializationMonitoringV2() throws Exception {
+ String policyTypeInputJson =
+ ResourceUtils.getResourceAsString("policytypes/onap.policies.monitoring.tcagen2.v2.yaml");
+ ToscaServiceTemplate plainPolicyTypes =
+ yamlJsonTranslator.fromYaml(policyTypeInputJson, ToscaServiceTemplate.class);
+
+ JpaToscaServiceTemplate policyTypeServiceTemplate = new JpaToscaServiceTemplate();
+ policyTypeServiceTemplate.fromAuthorative(plainPolicyTypes);
+ JpaToscaServiceTemplate serviceTemplateFromJson = deserializeMonitoringInputJson(VFW_MON_INPUT_V2_JSON);
+ JpaToscaServiceTemplate mergedServiceTemplate =
+ ToscaServiceTemplateUtils.addFragment(policyTypeServiceTemplate, serviceTemplateFromJson);
+ verifyVfwMonitoringInputDeserialization(mergedServiceTemplate, VERSION_200);
+
+ JpaToscaServiceTemplate serviceTemplateFromYaml = deserializeMonitoringInputYaml(VFW_MON_INPUT_V2_YAML);
+ assertEquals(0, serviceTemplateFromJson.compareTo(serviceTemplateFromYaml));
+ }
+
+ private JpaToscaServiceTemplate deserializeMonitoringInputJson(String resourcePath) throws Exception {
String policyJson = ResourceUtils.getResourceAsString(resourcePath);
ToscaServiceTemplate serviceTemplate = standardCoder.decode(policyJson, ToscaServiceTemplate.class);
JpaToscaServiceTemplate jpaToscaServiceTemplate = new JpaToscaServiceTemplate();
@@ -238,7 +264,7 @@ public class MonitoringPolicySerializationTest {
assertNotNull(policyVal.getProperties().values().iterator().next());
}
- private void verifyVfwMonitoringInputDeserialization(JpaToscaServiceTemplate serviceTemplate) {
+ private void verifyVfwMonitoringInputDeserialization(JpaToscaServiceTemplate serviceTemplate, String version) {
// Sanity check the entire structure
assertNotNull(serviceTemplate);
@@ -254,7 +280,7 @@ public class MonitoringPolicySerializationTest {
// Check policies
assertEquals(1, policiesConceptMap.size());
assertEquals(POLICY3, policiesConceptMap.keySet().iterator().next().getName());
- assertEquals("onap.vfirewall.tca:1.0.0",
+ assertEquals("onap.vfirewall.tca:" + version,
serviceTemplate.getTopologyTemplate().getPolicies().get(POLICY3).getId());
JpaToscaPolicy policyVal = policiesConceptMap.values().iterator().next();
@@ -304,7 +330,7 @@ public class MonitoringPolicySerializationTest {
assertNotNull(properties.get(TCA_POLICY));
}
- private void verifyVfwMonitoringOutputserialization(String serializedServiceTemplate) {
+ private void verifyVfwMonitoringOutputserialization(String serializedServiceTemplate, String version) {
JsonObject serviceTemplateJsonObject = JsonParser.parseString(serializedServiceTemplate).getAsJsonObject();
assertEquals(YAML_VERSION, serviceTemplateJsonObject.get(DEFINITION_VERSION).getAsString());
@@ -315,7 +341,7 @@ public class MonitoringPolicySerializationTest {
assertNotNull(policy.get(POLICY3));
JsonObject policyVal = policy.get(POLICY3).getAsJsonObject();
assertEquals(TYPE1, policyVal.get("type").getAsString());
- assertEquals(VERSION_100, policyVal.get(VERSION).getAsString());
+ assertEquals(version, policyVal.get(VERSION).getAsString());
assertEquals(POLICY3, policyVal.get(METADATA).getAsJsonObject().get(POLICY_ID).getAsString());
JsonObject properties = policyVal.get(PROPERTIES2).getAsJsonObject();
assertNotNull(properties.get(TCA_POLICY));
diff --git a/models-tosca/src/test/java/org/onap/policy/models/tosca/simple/serialization/MonitoringPolicyTypeSerializationTest.java b/models-tosca/src/test/java/org/onap/policy/models/tosca/simple/serialization/MonitoringPolicyTypeSerializationTest.java
index 7135da0bf..64027b976 100644
--- a/models-tosca/src/test/java/org/onap/policy/models/tosca/simple/serialization/MonitoringPolicyTypeSerializationTest.java
+++ b/models-tosca/src/test/java/org/onap/policy/models/tosca/simple/serialization/MonitoringPolicyTypeSerializationTest.java
@@ -1,7 +1,7 @@
/*-
* ============LICENSE_START=======================================================
* Copyright (C) 2019-2020 Nordix Foundation.
- * Copyright (C) 2019-2020 AT&T Intellectual Property. All rights reserved.
+ * Copyright (C) 2019-2020,2022 AT&T Intellectual Property. All rights reserved.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -62,17 +62,20 @@ public class MonitoringPolicyTypeSerializationTest {
private static final String THRESHOLDS = "onap.datatypes.monitoring.thresholds";
- private static final String TCA = "onap.datatypes.monitoring.tca_policy";
+ private static final String TCA_V1 = "onap.datatypes.monitoring.tca_policy";
+ private static final String TCA_V2 = "list";
private static final String METRICS = "onap.datatypes.monitoring.metricsPerEventName";
- private static final String VERSION_100 = "1.0.0";
-
private static final String VERSION_000 = "0.0.0";
+ private static final String VERSION_100 = "1.0.0";
+ private static final String VERSION_200 = "2.0.0";
private static final Logger LOGGER = LoggerFactory.getLogger(MonitoringPolicyTypeSerializationTest.class);
private static final String MONITORING_TCA_YAML = "policytypes/onap.policies.monitoring.tcagen2.yaml";
+ private static final String MONITORING_TCA_V2_YAML = "policytypes/onap.policies.monitoring.tcagen2.v2.yaml";
+
private static final String MONITORING_COLLECTORS_YAML =
"policytypes/onap.policies.monitoring.dcaegen2.collectors.datafile.datafile-app-server.yaml";
@@ -85,9 +88,13 @@ public class MonitoringPolicyTypeSerializationTest {
@Test
public void testDeserialization() throws Exception {
- // TCA
+ // TCA v1
JpaToscaServiceTemplate serviceTemplateFromYaml = deserializeMonitoringInputYaml(MONITORING_TCA_YAML);
- verifyTcaInputDeserialization(serviceTemplateFromYaml);
+ verifyTcaInputDeserialization(serviceTemplateFromYaml, VERSION_100, TCA_V1);
+
+ // TCA v2
+ serviceTemplateFromYaml = deserializeMonitoringInputYaml(MONITORING_TCA_V2_YAML);
+ verifyTcaInputDeserialization(serviceTemplateFromYaml, VERSION_200, TCA_V2);
// Collector
serviceTemplateFromYaml = deserializeMonitoringInputYaml(MONITORING_COLLECTORS_YAML);
@@ -96,7 +103,7 @@ public class MonitoringPolicyTypeSerializationTest {
@Test
public void testSerialization() throws Exception {
- // TCA
+ // TCA v1
JpaToscaServiceTemplate tcaServiceTemplateFromYaml = deserializeMonitoringInputYaml(MONITORING_TCA_YAML);
String serializedServiceTemplateTca = serializeMonitoringServiceTemplate(tcaServiceTemplateFromYaml);
@@ -108,6 +115,18 @@ public class MonitoringPolicyTypeSerializationTest {
String serializedServiceTemplateTcaOut = serializeMonitoringServiceTemplate(serviceTemplateFromJsonTca);
assertEquals(serializedServiceTemplateTca, serializedServiceTemplateTcaOut);
+ // TCA v2
+ tcaServiceTemplateFromYaml = deserializeMonitoringInputYaml(MONITORING_TCA_V2_YAML);
+ serializedServiceTemplateTca = serializeMonitoringServiceTemplate(tcaServiceTemplateFromYaml);
+
+ toscaServiceTemplateFromJsonTca =
+ coder.decode(serializedServiceTemplateTca, ToscaServiceTemplate.class);
+
+ serviceTemplateFromJsonTca = new JpaToscaServiceTemplate();
+ serviceTemplateFromJsonTca.fromAuthorative(toscaServiceTemplateFromJsonTca);
+ serializedServiceTemplateTcaOut = serializeMonitoringServiceTemplate(serviceTemplateFromJsonTca);
+ assertEquals(serializedServiceTemplateTca, serializedServiceTemplateTcaOut);
+
// Collector
JpaToscaServiceTemplate collectorServiceTemplateFromYaml =
deserializeMonitoringInputYaml(MONITORING_COLLECTORS_YAML);
@@ -123,7 +142,6 @@ public class MonitoringPolicyTypeSerializationTest {
}
private JpaToscaServiceTemplate deserializeMonitoringInputYaml(String resourcePath) throws Exception {
-
Yaml yaml = new Yaml();
String policyTypeYaml = ResourceUtils.getResourceAsString(resourcePath);
Object yamlObject = yaml.load(policyTypeYaml);
@@ -135,7 +153,7 @@ public class MonitoringPolicyTypeSerializationTest {
return jpaToscaServiceTemplate;
}
- private void verifyTcaInputDeserialization(JpaToscaServiceTemplate serviceTemplate) {
+ private void verifyTcaInputDeserialization(JpaToscaServiceTemplate serviceTemplate, String version, String tca) {
// Sanity check the entire structure
assertNotNull(serviceTemplate);
@@ -159,15 +177,15 @@ public class MonitoringPolicyTypeSerializationTest {
Entry<PfConceptKey, JpaToscaPolicyType> secondPolicyType = policyTypesIter.next();
assertEquals("onap.policies.monitoring.tcagen2", secondPolicyType.getKey().getName());
- assertEquals(VERSION_100, secondPolicyType.getKey().getVersion());
+ assertEquals(version, secondPolicyType.getKey().getVersion());
assertEquals(MONITORING, secondPolicyType.getValue().getDerivedFrom().getName());
assertEquals(1, secondPolicyType.getValue().getProperties().size());
JpaToscaProperty property = secondPolicyType.getValue().getProperties().values().iterator().next();
assertEquals("onap.policies.monitoring.tcagen2", property.getKey().getParentKeyName());
- assertEquals(VERSION_100, property.getKey().getParentKeyVersion());
+ assertEquals(version, property.getKey().getParentKeyVersion());
assertEquals("tca.policy", property.getKey().getLocalName());
- assertEquals(TCA, property.getType().getName());
+ assertEquals(tca, property.getType().getName());
assertEquals("TCA Policy JSON", property.getDescription());
// Check data_types
@@ -235,7 +253,7 @@ public class MonitoringPolicyTypeSerializationTest {
assertEquals(THRESHOLDS, firstDataTypeSixthProperty.getEntrySchema().getType().getName());
Entry<PfConceptKey, JpaToscaDataType> secondDataType = dataTypesIter.next();
- assertEquals(TCA, secondDataType.getKey().getName());
+ assertEquals(TCA_V1, secondDataType.getKey().getName());
JpaToscaDataType secondDataTypeVal = secondDataType.getValue();
assertEquals(DATATYPE_ROOT, secondDataTypeVal.getDerivedFrom().getName());
assertEquals(VERSION_000, secondDataTypeVal.getDerivedFrom().getVersion());
@@ -243,7 +261,7 @@ public class MonitoringPolicyTypeSerializationTest {
Iterator<JpaToscaProperty> secondDataTypePropertiesIter = secondDataTypeVal.getProperties().values().iterator();
JpaToscaProperty secondDataTypeFirstProperty = secondDataTypePropertiesIter.next();
- assertEquals(TCA, secondDataTypeFirstProperty.getKey().getParentKeyName());
+ assertEquals(TCA_V1, secondDataTypeFirstProperty.getKey().getParentKeyName());
assertEquals("domain", secondDataTypeFirstProperty.getKey().getLocalName());
assertEquals(STRING_TEXT, secondDataTypeFirstProperty.getType().getName());
assertTrue(secondDataTypeFirstProperty.isRequired());
@@ -256,7 +274,7 @@ public class MonitoringPolicyTypeSerializationTest {
.getCompareTo());
JpaToscaProperty secondDataTypeSecondProperty = secondDataTypePropertiesIter.next();
- assertEquals(TCA, secondDataTypeSecondProperty.getKey().getParentKeyName());
+ assertEquals(TCA_V1, secondDataTypeSecondProperty.getKey().getParentKeyName());
assertEquals("metricsPerEventName", secondDataTypeSecondProperty.getKey().getLocalName());
assertEquals("list", secondDataTypeSecondProperty.getType().getName());
assertTrue(secondDataTypeSecondProperty.isRequired());
@@ -338,7 +356,6 @@ public class MonitoringPolicyTypeSerializationTest {
assertEquals(5,
((JpaToscaConstraintValidValues) (thirdDataTypeFifthProperty.getConstraints().iterator().next()))
.getValidValues().size());
- ;
JpaToscaProperty thirdDataTypeSixthProperty = thirdDataTypePropertiesIter.next();
assertEquals(THRESHOLDS, thirdDataTypeSixthProperty.getKey().getParentKeyName());