Merge "Test suite for Aodh's gnocchi-resource-threshold alarm."
This commit is contained in:
commit
2d6873cb60
@ -0,0 +1,342 @@
|
|||||||
|
#
|
||||||
|
# Tests for gnocchi-threshold-alarm
|
||||||
|
#
|
||||||
|
# user_id : c8ecb587-d38c-426f-a58d-22b8d4a9a1d3
|
||||||
|
# project_id : 709f6ed6-bfb3-4649-b303-0019a7f6aef2
|
||||||
|
# alarm name : gabbi-gnocchi-threshold-resource-alarm
|
||||||
|
# resource_id : gabbi-mock-resource
|
||||||
|
# archive policy : gabbiliveceph
|
||||||
|
#
|
||||||
|
|
||||||
|
defaults:
|
||||||
|
request_headers:
|
||||||
|
x-auth-token: $ENVIRON['ADMIN_TOKEN']
|
||||||
|
|
||||||
|
tests:
|
||||||
|
#
|
||||||
|
# Setup gnocchi archive policy/resource type/resource/metrics
|
||||||
|
#
|
||||||
|
|
||||||
|
- name: SETUP. create archive policy gabbiliveceph
|
||||||
|
desc: create archve policy 'gabbiliveceph' for tests
|
||||||
|
POST: $ENVIRON['GNOCCHI_SERVICE_URL']/v1/archive_policy
|
||||||
|
status: 201
|
||||||
|
request_headers:
|
||||||
|
content-type: application/json
|
||||||
|
data:
|
||||||
|
name: gabbiliveceph
|
||||||
|
back_window: 0
|
||||||
|
definition:
|
||||||
|
- granularity: 1 second
|
||||||
|
points: 60
|
||||||
|
- granularity: 20 second
|
||||||
|
timespan: 1 minute
|
||||||
|
- points: 5
|
||||||
|
timespan: 5 minute
|
||||||
|
aggregation_methods:
|
||||||
|
- mean
|
||||||
|
- min
|
||||||
|
- max
|
||||||
|
response_json_paths:
|
||||||
|
$.name: gabbiliveceph
|
||||||
|
$.back_window: 0
|
||||||
|
$.aggregation_methods.`len`: 3
|
||||||
|
|
||||||
|
- name: create resource type ceph_account
|
||||||
|
desc: needed to create a resource
|
||||||
|
POST: $ENVIRON['GNOCCHI_SERVICE_URL']/v1/resource_type
|
||||||
|
status: 201 || 409
|
||||||
|
request_headers:
|
||||||
|
content-type: application/json
|
||||||
|
data:
|
||||||
|
name: ceph_account
|
||||||
|
|
||||||
|
- name: create resource of ceph_account type
|
||||||
|
POST: $ENVIRON['GNOCCHI_SERVICE_URL']/v1/resource/ceph_account
|
||||||
|
request_headers:
|
||||||
|
content-type: application/json
|
||||||
|
data:
|
||||||
|
id: gabbi-mock-resource
|
||||||
|
user_id: 27e342e4-4489-424f-a7e4-ba8ed9ad729c
|
||||||
|
project_id: d6d32769-c351-4758-b0a2-458fa1a065a3
|
||||||
|
metrics:
|
||||||
|
radosgw.objects:
|
||||||
|
archive_policy_name: gabbiliveceph
|
||||||
|
radosgw.objects.size:
|
||||||
|
archive_policy_name: gabbiliveceph
|
||||||
|
radosgw.objects.containers:
|
||||||
|
archive_policy_name: gabbiliveceph
|
||||||
|
radosgw.api.request:
|
||||||
|
archive_policy_name: gabbiliveceph
|
||||||
|
radosgw.containers.objects:
|
||||||
|
archive_policy_name: gabbiliveceph
|
||||||
|
radosgw.containers.objects.size:
|
||||||
|
archive_policy_name: gabbiliveceph
|
||||||
|
status: 201
|
||||||
|
response_json_paths:
|
||||||
|
$.user_id: 27e342e4-4489-424f-a7e4-ba8ed9ad729c
|
||||||
|
$.project_id: d6d32769-c351-4758-b0a2-458fa1a065a3
|
||||||
|
$.metrics.`len`: 6
|
||||||
|
|
||||||
|
#
|
||||||
|
# Actual tests
|
||||||
|
#
|
||||||
|
|
||||||
|
- name: search 'gabbi-gnocchi-threshold-resource-alarm' alarm doesnt exist
|
||||||
|
desc: search for alarm using user_id, project_id, alarm_name
|
||||||
|
GET: $ENVIRON['AODH_SERVICE_URL']/v2/alarms
|
||||||
|
query_parameters:
|
||||||
|
q.field:
|
||||||
|
- user_id
|
||||||
|
- project_id
|
||||||
|
- name
|
||||||
|
q.op:
|
||||||
|
- eq
|
||||||
|
- eq
|
||||||
|
- eq
|
||||||
|
q.value:
|
||||||
|
- c8ecb587-d38c-426f-a58d-22b8d4a9a1d3
|
||||||
|
- 709f6ed6-bfb3-4649-b303-0019a7f6aef2
|
||||||
|
- gabbi-gnocchi-threshold-resource-alarm
|
||||||
|
method: GET
|
||||||
|
response_json_paths:
|
||||||
|
$.`len`: 0
|
||||||
|
|
||||||
|
- name: fail to create alarm 'gabbi-gnocchi-threshold-resource-alarm'
|
||||||
|
desc: fails until resource exists in gnocchi
|
||||||
|
POST: $ENVIRON['AODH_SERVICE_URL']/v2/alarms
|
||||||
|
request_headers:
|
||||||
|
content-type: application/json
|
||||||
|
data:
|
||||||
|
alarm_actions:
|
||||||
|
- "http://site:8000/gnocchi-threshold-resource"
|
||||||
|
alarm_id: null
|
||||||
|
description: An gabbilive threshold based alarm
|
||||||
|
enabled: true
|
||||||
|
insufficient_data_actions:
|
||||||
|
- "http://site:8000/nodata-gnocchi-threshold-resource"
|
||||||
|
name: "gabbi-gnocchi-threshold-resource-alarm"
|
||||||
|
ok_actions:
|
||||||
|
- "http://site:8000/ok-gnocchi-threshold-resource"
|
||||||
|
project_id: 709f6ed6-bfb3-4649-b303-0019a7f6aef2
|
||||||
|
repeat_actions: false
|
||||||
|
severity: moderate
|
||||||
|
state: "insufficient data"
|
||||||
|
type: gnocchi_resources_threshold
|
||||||
|
gnocchi_resources_threshold_rule:
|
||||||
|
evaluation_periods: 3
|
||||||
|
metric: "radosgw.containers.objects"
|
||||||
|
resource_id: "fake-mock-up"
|
||||||
|
aggregation_method: "mean"
|
||||||
|
granularity: 60
|
||||||
|
threshold: 5.0
|
||||||
|
comparison_operator: "ge"
|
||||||
|
resource_type: ceph_account
|
||||||
|
user_id: c8ecb587-d38c-426f-a58d-22b8d4a9a1d3
|
||||||
|
status: 404
|
||||||
|
|
||||||
|
- name: create alarm 'gabbi-gnocchi-threshold-resource-alarm'
|
||||||
|
desc: create a threshold alarm gabbi-gnocchi-threshold-resource-alarm
|
||||||
|
POST: $ENVIRON['AODH_SERVICE_URL']/v2/alarms
|
||||||
|
request_headers:
|
||||||
|
content-type: application/json
|
||||||
|
data:
|
||||||
|
alarm_actions:
|
||||||
|
- "http://site:8000/gnocchi-threshold-resource"
|
||||||
|
alarm_id: null
|
||||||
|
description: An gabbilive threshold based alarm
|
||||||
|
enabled: true
|
||||||
|
insufficient_data_actions:
|
||||||
|
- "http://site:8000/nodata-gnocchi-threshold-resource"
|
||||||
|
name: "gabbi-gnocchi-threshold-resource-alarm"
|
||||||
|
ok_actions:
|
||||||
|
- "http://site:8000/ok-gnocchi-threshold-resource"
|
||||||
|
project_id: 709f6ed6-bfb3-4649-b303-0019a7f6aef2
|
||||||
|
repeat_actions: false
|
||||||
|
severity: moderate
|
||||||
|
state: "insufficient data"
|
||||||
|
type: gnocchi_resources_threshold
|
||||||
|
gnocchi_resources_threshold_rule:
|
||||||
|
evaluation_periods: 3
|
||||||
|
metric: "radosgw.objects.size"
|
||||||
|
resource_id: "gabbi-mock-resource"
|
||||||
|
aggregation_method: "mean"
|
||||||
|
granularity: 60
|
||||||
|
threshold: 5.0
|
||||||
|
comparison_operator: "ge"
|
||||||
|
resource_type: ceph_account
|
||||||
|
user_id: c8ecb587-d38c-426f-a58d-22b8d4a9a1d3
|
||||||
|
status: 201
|
||||||
|
response_json_paths:
|
||||||
|
$.name: gabbi-gnocchi-threshold-resource-alarm
|
||||||
|
$.type: gnocchi_resources_threshold
|
||||||
|
$.user_id: c8ecb587-d38c-426f-a58d-22b8d4a9a1d3
|
||||||
|
$.project_id: 709f6ed6-bfb3-4649-b303-0019a7f6aef2
|
||||||
|
$.severity: moderate
|
||||||
|
|
||||||
|
- name: retrieve history about 'gabbi-gnocchi-threshold-resource-alarm' creation
|
||||||
|
desc: get history about alarm creation
|
||||||
|
GET: $ENVIRON['AODH_SERVICE_URL']/v2/alarms/$RESPONSE['$.alarm_id']/history
|
||||||
|
request_headers:
|
||||||
|
content-type: application/json
|
||||||
|
poll:
|
||||||
|
count: 5
|
||||||
|
delay: 2
|
||||||
|
response_json_paths:
|
||||||
|
$.`len`: 1
|
||||||
|
$.[0].type: creation
|
||||||
|
$.[0].alarm_id: $RESPONSE['$.alarm_id']
|
||||||
|
|
||||||
|
- name: update severity for alarm 'gabbi-gnocchi-threshold-resource-alarm'
|
||||||
|
desc: update severity for alarm gabbi-gnocchi-threshold-resource-alarm
|
||||||
|
PUT: $ENVIRON['AODH_SERVICE_URL']/v2/alarms/$RESPONSE['$.[0].alarm_id']
|
||||||
|
status: 200
|
||||||
|
request_headers:
|
||||||
|
content-type: application/json
|
||||||
|
data:
|
||||||
|
alarm_actions:
|
||||||
|
- "http://site:8000/gnocchi-threshold-resource"
|
||||||
|
alarm_id: null
|
||||||
|
description: An gabbilive threshold based alarm
|
||||||
|
enabled: true
|
||||||
|
insufficient_data_actions:
|
||||||
|
- "http://site:8000/nodata-gnocchi-threshold-resource"
|
||||||
|
name: "gabbi-gnocchi-threshold-resource-alarm"
|
||||||
|
ok_actions:
|
||||||
|
- "http://site:8000/ok-gnocchi-threshold-resource"
|
||||||
|
project_id: 709f6ed6-bfb3-4649-b303-0019a7f6aef2
|
||||||
|
repeat_actions: false
|
||||||
|
severity: low
|
||||||
|
state: "insufficient data"
|
||||||
|
type: gnocchi_resources_threshold
|
||||||
|
gnocchi_resources_threshold_rule:
|
||||||
|
evaluation_periods: 3
|
||||||
|
metric: "radosgw.objects.size"
|
||||||
|
resource_id: "gabbi-mock-resource"
|
||||||
|
aggregation_method: "mean"
|
||||||
|
granularity: 60
|
||||||
|
threshold: 5.0
|
||||||
|
comparison_operator: "ge"
|
||||||
|
resource_type: ceph_account
|
||||||
|
user_id: c8ecb587-d38c-426f-a58d-22b8d4a9a1d3
|
||||||
|
response_json_paths:
|
||||||
|
$.name: gabbi-gnocchi-threshold-resource-alarm
|
||||||
|
$.type: gnocchi_resources_threshold
|
||||||
|
$.user_id: c8ecb587-d38c-426f-a58d-22b8d4a9a1d3
|
||||||
|
$.project_id: 709f6ed6-bfb3-4649-b303-0019a7f6aef2
|
||||||
|
$.severity: low
|
||||||
|
$.state: "insufficient data"
|
||||||
|
|
||||||
|
- name: retrieve history for 'gabbi-gnocchi-threshold-resource-alarm'
|
||||||
|
desc: get history for rule_change
|
||||||
|
GET: $ENVIRON['AODH_SERVICE_URL']/v2/alarms/$RESPONSE['$.alarm_id']/history
|
||||||
|
request_headers:
|
||||||
|
content-type: application/json
|
||||||
|
poll:
|
||||||
|
count: 5
|
||||||
|
delay: 2
|
||||||
|
response_json_paths:
|
||||||
|
$.`len`: 2
|
||||||
|
$.[0].type: rule change
|
||||||
|
$.[0].alarm_id: $RESPONSE['$.alarm_id']
|
||||||
|
$.[0].detail: '{"severity": "low"}'
|
||||||
|
|
||||||
|
- name: update alarm state for 'gabbi-gnocchi-threshold-resource-alarm'
|
||||||
|
desc: update state for alarm
|
||||||
|
PUT: $ENVIRON['AODH_SERVICE_URL']/v2/alarms/$RESPONSE['$.[0].alarm_id']/state
|
||||||
|
request_headers:
|
||||||
|
content-type: application/json
|
||||||
|
data: '"ok"'
|
||||||
|
status: 200
|
||||||
|
response_strings:
|
||||||
|
"ok"
|
||||||
|
|
||||||
|
- name: search 'gabbi-gnocchi-threshold-resource-alarm' alarm exist
|
||||||
|
desc: search for alarm using user_id, project_id, alarm_name
|
||||||
|
GET: $ENVIRON['AODH_SERVICE_URL']/v2/alarms
|
||||||
|
query_parameters:
|
||||||
|
q.field:
|
||||||
|
- user_id
|
||||||
|
- project_id
|
||||||
|
- name
|
||||||
|
q.op:
|
||||||
|
- eq
|
||||||
|
- eq
|
||||||
|
- eq
|
||||||
|
q.value:
|
||||||
|
- c8ecb587-d38c-426f-a58d-22b8d4a9a1d3
|
||||||
|
- 709f6ed6-bfb3-4649-b303-0019a7f6aef2
|
||||||
|
- gabbi-gnocchi-threshold-resource-alarm
|
||||||
|
poll:
|
||||||
|
count: 5
|
||||||
|
delay: 2
|
||||||
|
response_json_paths:
|
||||||
|
$.`len`: 1
|
||||||
|
|
||||||
|
- name: get info about 'gabbi-gnocchi-threshold-resource-alarm' alarm
|
||||||
|
desc: access alarm using its ID
|
||||||
|
GET: $ENVIRON['AODH_SERVICE_URL']/v2/alarms/$RESPONSE['$.[0].alarm_id']
|
||||||
|
response_json_paths:
|
||||||
|
$.alarm_id: $RESPONSE['$.[0].alarm_id']
|
||||||
|
$.alarm_actions: ["http://site:8000/gnocchi-threshold-resource"]
|
||||||
|
$.name: gabbi-gnocchi-threshold-resource-alarm
|
||||||
|
$.gnocchi_resources_threshold_rule.resource_id: "gabbi-mock-resource"
|
||||||
|
$.gnocchi_resources_threshold_rule.metric: "radosgw.objects.size"
|
||||||
|
$.gnocchi_resources_threshold_rule.resource_type: "ceph_account"
|
||||||
|
$.user_id: c8ecb587-d38c-426f-a58d-22b8d4a9a1d3
|
||||||
|
|
||||||
|
- name: get alarm state for 'gabbi-gnocchi-threshold-resource-alarm'
|
||||||
|
desc: get state for alarm
|
||||||
|
GET: $ENVIRON['AODH_SERVICE_URL']/v2/alarms/$RESPONSE['$.alarm_id']/state
|
||||||
|
request_headers:
|
||||||
|
content-type: application/json
|
||||||
|
status: 200
|
||||||
|
response_strings:
|
||||||
|
- "ok"
|
||||||
|
|
||||||
|
#
|
||||||
|
# Teardown
|
||||||
|
#
|
||||||
|
|
||||||
|
- name: CLEANUP. search 'gabbi-gnocchi-threshold-resource' alarm exist
|
||||||
|
desc: Find alarm id using user_id, project_id, alarm_name
|
||||||
|
GET: $ENVIRON['AODH_SERVICE_URL']/v2/alarms
|
||||||
|
query_parameters:
|
||||||
|
q.field:
|
||||||
|
- user_id
|
||||||
|
- project_id
|
||||||
|
- name
|
||||||
|
q.op:
|
||||||
|
- eq
|
||||||
|
- eq
|
||||||
|
- eq
|
||||||
|
q.value:
|
||||||
|
- c8ecb587-d38c-426f-a58d-22b8d4a9a1d3
|
||||||
|
- 709f6ed6-bfb3-4649-b303-0019a7f6aef2
|
||||||
|
- gabbi-gnocchi-threshold-resource-alarm
|
||||||
|
response_json_paths:
|
||||||
|
$.`len`: 1
|
||||||
|
|
||||||
|
- name: CLEANUP. delete threshold alarm 'gabbi-gnocchi-threshold-resource'
|
||||||
|
DELETE: $ENVIRON['AODH_SERVICE_URL']/v2/alarms/$RESPONSE['$.[0].alarm_id']
|
||||||
|
status: 204
|
||||||
|
|
||||||
|
- name: CLEANUP. Get resource by name 'gabbi-mock-resource'
|
||||||
|
desc: retrieve resource by gabbi-mock-resource to get its ID
|
||||||
|
GET: $ENVIRON['GNOCCHI_SERVICE_URL']/v1/resource/generic/gabbi-mock-resource
|
||||||
|
status: 200
|
||||||
|
|
||||||
|
- name: CLEANUP. delete test ceph_resource 'gabbi-mock-resource'
|
||||||
|
desc: delete ceph_account resource gabbi-mock-resource
|
||||||
|
DELETE: $ENVIRON['GNOCCHI_SERVICE_URL']/v1/resource/generic/$RESPONSE['$.id']
|
||||||
|
status: 204
|
||||||
|
|
||||||
|
- name: CLEANUP. delete resource type ceph_account
|
||||||
|
DELETE: $ENVIRON['GNOCCHI_SERVICE_URL']/v1/resource_type/ceph_account
|
||||||
|
status: 204
|
||||||
|
|
||||||
|
- name: CLEANUP. delete archive
|
||||||
|
DELETE: $ENVIRON['GNOCCHI_SERVICE_URL']/v1/archive_policy/gabbiliveceph
|
||||||
|
status: 204
|
||||||
|
xfail: True
|
||||||
|
|
Loading…
Reference in New Issue
Block a user