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