diff --git a/ceilometer/tests/integration/gabbi/gabbits-live/aodh-gnocchi-threshold-alarm.yaml b/ceilometer/tests/integration/gabbi/gabbits-live/aodh-gnocchi-threshold-alarm.yaml new file mode 100644 index 0000000000..a598c2f974 --- /dev/null +++ b/ceilometer/tests/integration/gabbi/gabbits-live/aodh-gnocchi-threshold-alarm.yaml @@ -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 +