hawkular-client 2.7.0 → 2.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.travis.yml +19 -2
- data/.travis/wait_for_services.rb +23 -0
- data/CHANGES.rdoc +11 -0
- data/docker-compose.yml +15 -0
- data/lib/hawkular/alerts/alerts_api.rb +24 -0
- data/lib/hawkular/base_client.rb +7 -0
- data/lib/hawkular/inventory/entities.rb +3 -0
- data/lib/hawkular/metrics/metric_api.rb +38 -3
- data/lib/hawkular/metrics/metrics_client.rb +3 -0
- data/lib/hawkular/metrics/tenant_api.rb +2 -2
- data/lib/hawkular/version.rb +1 -1
- data/spec/integration/alert-resources/alerts-test-data.json +40 -0
- data/spec/integration/alert-resources/events-test-data.json +78 -0
- data/spec/integration/alert-resources/triggers-test-data.json +66 -0
- data/spec/integration/alerts_spec.rb +192 -83
- data/spec/integration/hello-world-definitions.json +1 -2
- data/spec/integration/inventory_spec.rb +18 -5
- data/spec/integration/metric_spec.rb +201 -40
- data/spec/integration/operations_spec.rb +45 -1
- data/spec/spec_helper.rb +25 -6
- data/spec/vcr_cassettes/Alert/Alerts/Templates/Should_acknowledge_an_alert.yml +205 -0
- data/spec/vcr_cassettes/Alert/Alerts/Templates/Should_fetch_single_alert.yml +108 -0
- data/spec/vcr_cassettes/Alert/Alerts/Templates/Should_list_alerts.yml +59 -0
- data/spec/vcr_cassettes/Alert/Alerts/Templates/Should_list_alerts_for_trigger.yml +58 -0
- data/spec/vcr_cassettes/Alert/Alerts/{Should_list_alerts_for_unknown_trigger.yml → Templates/Should_list_alerts_for_unknown_trigger.yml} +13 -9
- data/spec/vcr_cassettes/Alert/Alerts/Templates/Should_list_open_alerts.yml +59 -0
- data/spec/vcr_cassettes/Alert/Alerts/Templates/Should_resolve_an_alert.yml +207 -0
- data/spec/vcr_cassettes/Alert/Alerts/Templates/setup.yml +255 -0
- data/spec/vcr_cassettes/Alert/Alerts/Templates/setup_cleanup.yml +302 -0
- data/spec/vcr_cassettes/Alert/EndToEnd/Templates/Should_create_and_fire_a_trigger.yml +527 -0
- data/spec/vcr_cassettes/{Metrics/NonSecure/metrics_0_16_0/Templates/Gauge_metrics/Should_return_periods.yml → Alert/Events/Templates/Should_create_an_event.yml} +22 -18
- data/spec/vcr_cassettes/{Metrics/NonSecure/metrics_0_16_0/Templates/Availability_metrics/Should_push_metric_data_to_non-existing_Availability.yml → Alert/Events/Templates/Should_delete_an_event.yml} +28 -24
- data/spec/vcr_cassettes/Alert/Events/Templates/Should_list_events.yml +91 -0
- data/spec/vcr_cassettes/Alert/Events/Templates/Should_list_events_using_criteria.yml +60 -0
- data/spec/vcr_cassettes/Alert/Events/{Should_not_list_events_using_criteria.yml → Templates/Should_not_list_events_using_criteria.yml} +14 -13
- data/spec/vcr_cassettes/Alert/Events/Templates/setup.yml +615 -0
- data/spec/vcr_cassettes/Alert/Events/Templates/setup_cleanup.yml +567 -0
- data/spec/vcr_cassettes/Alert/Groups/{Should_operate_a_complex_group_trigger.yml → Templates/Should_operate_a_complex_group_trigger.yml} +508 -352
- data/spec/vcr_cassettes/{Alerts → Alert/Templates}/Should_return_the_version.yml +10 -8
- data/spec/vcr_cassettes/Alert/Triggers/Templates/Should_List_Triggers.yml +55 -0
- data/spec/vcr_cassettes/Alert/Triggers/Templates/Should_List_Triggers_for_ID.yml +56 -0
- data/spec/vcr_cassettes/Alert/Triggers/Templates/Should_List_Triggers_for_Tag.yml +56 -0
- data/spec/vcr_cassettes/Alert/Triggers/Templates/Should_List_Triggers_for_Tags.yml +56 -0
- data/spec/vcr_cassettes/Alert/Triggers/Templates/Should_bulk_load_triggers.yml +243 -0
- data/spec/vcr_cassettes/Alert/Triggers/{Should_create_a_basic_trigger_with_action.yml → Templates/Should_create_a_basic_trigger_with_action.yml} +107 -76
- data/spec/vcr_cassettes/Alert/Triggers/{Should_create_a_firing_ALL_ANY_trigger.yml → Templates/Should_create_a_firing_ALL_ANY_trigger.yml} +81 -61
- data/spec/vcr_cassettes/{Metrics/NonSecure/metrics_0_16_0/Templates/Counter_metrics/Should_push_metric_data_to_non-existing_counter.yml → Alert/Triggers/Templates/Should_create_an_action.yml} +32 -30
- data/spec/vcr_cassettes/{Metrics/Secure/metrics_0_16_0/Templates/Availability_metrics/Should_push_metric_data_to_non-existing_Availability.yml → Alert/Triggers/Templates/Should_get_a_single_Trigger_with_conditions.yml} +29 -29
- data/spec/vcr_cassettes/Alert/Triggers/Templates/Should_get_a_single_metric_Trigger.yml +50 -0
- data/spec/vcr_cassettes/Alert/Triggers/{Should_get_the_action_definitions.yml → Templates/Should_get_the_action_definitions.yml} +46 -73
- data/spec/vcr_cassettes/Alert/Triggers/{Should_not_create_an_action_for_unknown_plugin.yml → Templates/Should_not_create_an_action_for_unknown_plugin.yml} +12 -8
- data/spec/vcr_cassettes/{Metrics/NonSecure/metrics_0_16_0/Templates/Availability_metrics/Should_create_Availability_definition_using_MetricDefinition_parameter.yml → Alert/Triggers/Templates/Should_not_create_an_action_for_unknown_properties.yml} +27 -26
- data/spec/vcr_cassettes/Alert/Triggers/Templates/setup.yml +52 -0
- data/spec/vcr_cassettes/{Metrics/NonSecure/metrics_0_16_0/Templates/Mixed_metrics/Should_send_mixed_metric_request_of_a_single_type.yml → Alert/Triggers/Templates/setup_cleanup.yml} +51 -51
- data/spec/vcr_cassettes/Inventory/NonSecure/inventory_0_17/Templates/Should_list_metrics_of_given_metric_type.yml +29 -25
- data/spec/vcr_cassettes/Metrics/NonSecure/ID_with_special_characters/Templates/Get_metric_definition_by_id.yml +3 -3
- data/spec/vcr_cassettes/Metrics/NonSecure/ID_with_special_characters/Templates/Retrieve_metric_rate_points.yml +5 -5
- data/spec/vcr_cassettes/Metrics/NonSecure/ID_with_special_characters/Templates/Should_create_Availability_definition.yml +4 -4
- data/spec/vcr_cassettes/Metrics/NonSecure/ID_with_special_characters/Templates/Should_create_Counter_definition.yml +4 -4
- data/spec/vcr_cassettes/Metrics/NonSecure/ID_with_special_characters/Templates/Should_create_gauge_definition.yml +4 -4
- data/spec/vcr_cassettes/Metrics/NonSecure/ID_with_special_characters/Templates/Should_push_metric_data_to_existing_gauge.yml +4 -4
- data/spec/vcr_cassettes/Metrics/NonSecure/ID_with_special_characters/Templates/Should_update_tags_for_Availability_definition.yml +6 -6
- data/spec/vcr_cassettes/Metrics/NonSecure/ID_with_special_characters/Templates/Should_update_tags_for_gauge_definition.yml +8 -8
- data/spec/vcr_cassettes/Metrics/NonSecure/ID_with_special_characters/Templates/setup_client.yml +44 -0
- data/spec/vcr_cassettes/Metrics/NonSecure/{metrics_0_16_0/Templates/Counter_metrics/Should_get_metrics_with_limit_and_order.yml → metrics_services/Templates/All_Tags_for_metrics/Should_fetch_all_metric_tags_for_metrics_definitions.yml} +159 -53
- data/spec/vcr_cassettes/Metrics/NonSecure/metrics_services/Templates/Availability_metrics/Should_group_contiguous_values.yml +47 -6
- data/spec/vcr_cassettes/Metrics/NonSecure/metrics_services/Templates/Availability_metrics/Should_push_metric_data_to_non-existing_Availability.yml +12 -12
- data/spec/vcr_cassettes/Metrics/NonSecure/metrics_services/Templates/Availability_metrics/setup_client.yml +44 -0
- data/spec/vcr_cassettes/Metrics/NonSecure/metrics_services/Templates/Counter_metrics/Should_get_metrics_as_bucketed_results.yml +17 -17
- data/spec/vcr_cassettes/Metrics/NonSecure/metrics_services/Templates/Counter_metrics/Should_get_metrics_with_limit_and_order.yml +23 -23
- data/spec/vcr_cassettes/Metrics/NonSecure/metrics_services/Templates/Counter_metrics/Should_push_metric_data_to_existing_counter.yml +19 -19
- data/spec/vcr_cassettes/Metrics/NonSecure/metrics_services/Templates/Counter_metrics/Should_push_metric_data_to_non-existing_counter.yml +12 -12
- data/spec/vcr_cassettes/Metrics/NonSecure/metrics_services/Templates/Counter_metrics/setup_client.yml +44 -0
- data/spec/vcr_cassettes/Metrics/NonSecure/metrics_services/Templates/Gauge_metrics/Should_push_metric_data_to_existing_gauge.yml +19 -19
- data/spec/vcr_cassettes/Metrics/NonSecure/metrics_services/Templates/Gauge_metrics/Should_push_metric_data_to_non-existing_gauge.yml +12 -12
- data/spec/vcr_cassettes/Metrics/NonSecure/metrics_services/Templates/Gauge_metrics/Should_return_periods.yml +5 -5
- data/spec/vcr_cassettes/Metrics/NonSecure/metrics_services/Templates/Gauge_metrics/Should_return_platform_memory.yml +151 -5
- data/spec/vcr_cassettes/Metrics/NonSecure/metrics_services/Templates/Gauge_metrics/Should_return_platform_memory_def.yml +152 -6
- data/spec/vcr_cassettes/Metrics/NonSecure/metrics_services/Templates/Gauge_metrics/setup_client.yml +44 -0
- data/spec/vcr_cassettes/Metrics/NonSecure/metrics_services/Templates/Mixed_metrics/Should_fetch_rate_stats_for_mixed_metric.yml +33 -33
- data/spec/vcr_cassettes/Metrics/NonSecure/metrics_services/Templates/Mixed_metrics/Should_fetch_stats_for_mixed_metric.yml +31 -32
- data/spec/vcr_cassettes/Metrics/NonSecure/metrics_services/Templates/Mixed_metrics/Should_requests_raw_data_for_multiple_metrics.yml +108 -20
- data/spec/vcr_cassettes/Metrics/NonSecure/metrics_services/Templates/Mixed_metrics/Should_send_mixed_metric_request.yml +26 -26
- data/spec/vcr_cassettes/Metrics/NonSecure/metrics_services/Templates/Mixed_metrics/Should_send_mixed_metric_request_of_a_single_type.yml +27 -27
- data/spec/vcr_cassettes/Metrics/NonSecure/{metrics_0_16_0/Templates/Status/Should_return_the_version.yml → metrics_services/Templates/Mixed_metrics/setup_client.yml} +3 -3
- data/spec/vcr_cassettes/Metrics/NonSecure/metrics_services/Templates/No_Tenant/Should_fail.yml +43 -4
- data/spec/vcr_cassettes/Metrics/NonSecure/metrics_services/Templates/Status/Should_return_the_version.yml +44 -3
- data/spec/vcr_cassettes/Metrics/NonSecure/{metrics_0_16_0/Templates/Gauge_metrics/Should_create_gauge_definition_using_Hash.yml → metrics_services/Templates/String_metrics/Should_create_string_definition_using_Hash.yml} +9 -9
- data/spec/vcr_cassettes/Metrics/NonSecure/{metrics_0_16_0/Templates/Gauge_metrics/Should_create_gauge_definition_using_MetricDefinition.yml → metrics_services/Templates/String_metrics/Should_create_string_definition_using_MetricDefinition.yml} +9 -9
- data/spec/vcr_cassettes/Metrics/NonSecure/{metrics_0_16_0/Templates/Gauge_metrics/Should_push_metric_data_to_existing_gauge.yml → metrics_services/Templates/String_metrics/Should_push_metric_data_to_existing_string.yml} +27 -27
- data/spec/vcr_cassettes/Metrics/NonSecure/{metrics_0_16_0/Templates/Gauge_metrics/Should_push_metric_data_to_non-existing_gauge.yml → metrics_services/Templates/String_metrics/Should_push_metric_data_to_non-existing_string.yml} +15 -15
- data/spec/vcr_cassettes/Metrics/NonSecure/metrics_services/Templates/String_metrics/setup_client.yml +44 -0
- data/spec/vcr_cassettes/Metrics/NonSecure/metrics_services/Templates/Tags_Metrics/setup_client.yml +44 -0
- data/spec/vcr_cassettes/Metrics/NonSecure/metrics_services/Templates/Tenants/Should_create_and_return_tenant.yml +10 -6
- data/spec/vcr_cassettes/Metrics/{Secure/metrics_0_16_0/Templates/Status/Should_return_the_version.yml → NonSecure/metrics_services/Templates/Tenants/setup_client.yml} +5 -5
- data/spec/vcr_cassettes/Metrics/NonSecure/metrics_services/Templates/setup_client.yml +44 -0
- data/spec/vcr_cassettes/Metrics/Secure/metrics_services/Templates/Mixed_metrics/Should_requests_raw_data_for_multiple_metrics.yml +80 -33
- data/spec/vcr_cassettes/Operation/NonSecure/Operation/Add_XA_datasource_should_be_doable.json +23 -0
- data/spec/vcr_cassettes/Operation/NonSecure/Operation/{Add_datasource_should_be_doable.json → Add_non-XA_datasource_should_be_doable.json} +0 -0
- metadata +111 -156
- data/spec/vcr_cassettes/Alert/Alerts/Should_acknowledge_an_alert.yml +0 -183
- data/spec/vcr_cassettes/Alert/Alerts/Should_fetch_single_alert.yml +0 -69
- data/spec/vcr_cassettes/Alert/Alerts/Should_list_alerts.yml +0 -85
- data/spec/vcr_cassettes/Alert/Alerts/Should_list_alerts_for_trigger.yml +0 -142
- data/spec/vcr_cassettes/Alert/Alerts/Should_resolve_an_alert.yml +0 -181
- data/spec/vcr_cassettes/Alert/Alerts/Should_resolve_an_alert2.yml +0 -49
- data/spec/vcr_cassettes/Alert/EndToEnd/Should_create_and_fire_a_trigger.yml +0 -1187
- data/spec/vcr_cassettes/Alert/Events/Should_create_an_event.yml +0 -50
- data/spec/vcr_cassettes/Alert/Events/Should_list_events.yml +0 -101
- data/spec/vcr_cassettes/Alert/Events/Should_list_events_using_criteria.yml +0 -79
- data/spec/vcr_cassettes/Alert/Triggers/Should_List_Triggers.yml +0 -62
- data/spec/vcr_cassettes/Alert/Triggers/Should_List_Triggers_for_ID.yml +0 -55
- data/spec/vcr_cassettes/Alert/Triggers/Should_List_Triggers_for_Tag.yml +0 -68
- data/spec/vcr_cassettes/Alert/Triggers/Should_List_Triggers_for_Tags.yml +0 -68
- data/spec/vcr_cassettes/Alert/Triggers/Should_bulk_load_triggers.yml +0 -225
- data/spec/vcr_cassettes/Alert/Triggers/Should_create_an_action.yml +0 -134
- data/spec/vcr_cassettes/Alert/Triggers/Should_create_an_action_for_webhooks.yml +0 -220
- data/spec/vcr_cassettes/Alert/Triggers/Should_get_a_single_Trigger_with_conditions.yml +0 -138
- data/spec/vcr_cassettes/Alert/Triggers/Should_get_a_single_metric_Trigger.yml +0 -50
- data/spec/vcr_cassettes/Alert/Triggers/Should_not_create_an_action_for_unknown_properties.yml +0 -134
- data/spec/vcr_cassettes/Metrics/NonSecure/metrics_0_16_0/Templates/Availability_metrics/Should_create_and_return_Availability_using_Hash_parameter.yml +0 -99
- data/spec/vcr_cassettes/Metrics/NonSecure/metrics_0_16_0/Templates/Availability_metrics/Should_group_contiguous_values.yml +0 -97
- data/spec/vcr_cassettes/Metrics/NonSecure/metrics_0_16_0/Templates/Availability_metrics/Should_update_tags_for_Availability_definition.yml +0 -240
- data/spec/vcr_cassettes/Metrics/NonSecure/metrics_0_16_0/Templates/Counter_metrics/Should_create_and_return_counter_using_Hash_parameter.yml +0 -99
- data/spec/vcr_cassettes/Metrics/NonSecure/metrics_0_16_0/Templates/Counter_metrics/Should_create_counter_definition_using_MetricDefinition_parameter.yml +0 -99
- data/spec/vcr_cassettes/Metrics/NonSecure/metrics_0_16_0/Templates/Counter_metrics/Should_get_metrics_as_bucketed_results.yml +0 -240
- data/spec/vcr_cassettes/Metrics/NonSecure/metrics_0_16_0/Templates/Counter_metrics/Should_push_metric_data_to_existing_counter.yml +0 -281
- data/spec/vcr_cassettes/Metrics/NonSecure/metrics_0_16_0/Templates/Gauge_metrics/Should_update_tags_for_gauge_definition.yml +0 -240
- data/spec/vcr_cassettes/Metrics/NonSecure/metrics_0_16_0/Templates/Mixed_metrics/Should_requests_raw_data_for_multiple_metrics.yml +0 -326
- data/spec/vcr_cassettes/Metrics/NonSecure/metrics_0_16_0/Templates/Mixed_metrics/Should_send_mixed_metric_request.yml +0 -314
- data/spec/vcr_cassettes/Metrics/NonSecure/metrics_0_16_0/Templates/No_Tenant/Should_fail.yml +0 -50
- data/spec/vcr_cassettes/Metrics/NonSecure/metrics_0_16_0/Templates/Simple/Should_be_Cool.yml +0 -48
- data/spec/vcr_cassettes/Metrics/NonSecure/metrics_0_16_0/Templates/Tenants/Should_create_and_return_tenant.yml +0 -99
- data/spec/vcr_cassettes/Metrics/Secure/metrics_0_16_0/Templates/Availability_metrics/Should_create_Availability_definition_using_MetricDefinition_parameter.yml +0 -99
- data/spec/vcr_cassettes/Metrics/Secure/metrics_0_16_0/Templates/Availability_metrics/Should_create_and_return_Availability_using_Hash_parameter.yml +0 -99
- data/spec/vcr_cassettes/Metrics/Secure/metrics_0_16_0/Templates/Availability_metrics/Should_group_contiguous_values.yml +0 -97
- data/spec/vcr_cassettes/Metrics/Secure/metrics_0_16_0/Templates/Availability_metrics/Should_update_tags_for_Availability_definition.yml +0 -240
- data/spec/vcr_cassettes/Metrics/Secure/metrics_0_16_0/Templates/Counter_metrics/Should_create_and_return_counter_using_Hash_parameter.yml +0 -99
- data/spec/vcr_cassettes/Metrics/Secure/metrics_0_16_0/Templates/Counter_metrics/Should_create_counter_definition_using_MetricDefinition_parameter.yml +0 -99
- data/spec/vcr_cassettes/Metrics/Secure/metrics_0_16_0/Templates/Counter_metrics/Should_get_metrics_as_bucketed_results.yml +0 -240
- data/spec/vcr_cassettes/Metrics/Secure/metrics_0_16_0/Templates/Counter_metrics/Should_get_metrics_with_limit_and_order.yml +0 -328
- data/spec/vcr_cassettes/Metrics/Secure/metrics_0_16_0/Templates/Counter_metrics/Should_push_metric_data_to_existing_counter.yml +0 -281
- data/spec/vcr_cassettes/Metrics/Secure/metrics_0_16_0/Templates/Counter_metrics/Should_push_metric_data_to_non-existing_counter.yml +0 -144
- data/spec/vcr_cassettes/Metrics/Secure/metrics_0_16_0/Templates/Gauge_metrics/Should_create_gauge_definition_using_Hash.yml +0 -99
- data/spec/vcr_cassettes/Metrics/Secure/metrics_0_16_0/Templates/Gauge_metrics/Should_create_gauge_definition_using_MetricDefinition.yml +0 -99
- data/spec/vcr_cassettes/Metrics/Secure/metrics_0_16_0/Templates/Gauge_metrics/Should_push_metric_data_to_existing_gauge.yml +0 -281
- data/spec/vcr_cassettes/Metrics/Secure/metrics_0_16_0/Templates/Gauge_metrics/Should_push_metric_data_to_non-existing_gauge.yml +0 -144
- data/spec/vcr_cassettes/Metrics/Secure/metrics_0_16_0/Templates/Gauge_metrics/Should_return_periods.yml +0 -97
- data/spec/vcr_cassettes/Metrics/Secure/metrics_0_16_0/Templates/Gauge_metrics/Should_update_tags_for_gauge_definition.yml +0 -240
- data/spec/vcr_cassettes/Metrics/Secure/metrics_0_16_0/Templates/Mixed_metrics/Should_requests_raw_data_for_multiple_metrics.yml +0 -326
- data/spec/vcr_cassettes/Metrics/Secure/metrics_0_16_0/Templates/Mixed_metrics/Should_send_mixed_metric_request.yml +0 -314
- data/spec/vcr_cassettes/Metrics/Secure/metrics_0_16_0/Templates/Mixed_metrics/Should_send_mixed_metric_request_of_a_single_type.yml +0 -285
- data/spec/vcr_cassettes/Metrics/Secure/metrics_0_16_0/Templates/No_Tenant/Should_fail.yml +0 -50
- data/spec/vcr_cassettes/Metrics/Secure/metrics_0_16_0/Templates/Simple/Should_be_Cool.yml +0 -48
- data/spec/vcr_cassettes/Metrics/Secure/metrics_0_16_0/Templates/Tenants/Should_create_and_return_tenant.yml +0 -99
|
@@ -6,7 +6,38 @@ module Hawkular::Alerts::RSpec
|
|
|
6
6
|
creds = { username: 'jdoe', password: 'password' }
|
|
7
7
|
options = { tenant: 'hawkular' }
|
|
8
8
|
|
|
9
|
-
describe 'Alert/Triggers'
|
|
9
|
+
describe 'Alert/Triggers' do
|
|
10
|
+
before(:all) do
|
|
11
|
+
# Setup for testing
|
|
12
|
+
record('Alert/Triggers', credentials, 'setup') do
|
|
13
|
+
@client = Hawkular::Alerts::AlertsClient.new(ALERTS_BASE, credentials, options)
|
|
14
|
+
json = IO.read('spec/integration/alert-resources/triggers-test-data.json')
|
|
15
|
+
trigger_hash = JSON.parse(json)
|
|
16
|
+
@client.bulk_import_triggers trigger_hash
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
after(:all) do
|
|
21
|
+
# cleanup test values
|
|
22
|
+
record('Alert/Triggers', credentials, 'setup_cleanup') do
|
|
23
|
+
@client = Hawkular::Alerts::AlertsClient.new(ALERTS_BASE, credentials, options)
|
|
24
|
+
json = IO.read('spec/integration/alert-resources/triggers-test-data.json')
|
|
25
|
+
trigger_hash = JSON.parse(json)
|
|
26
|
+
trigger_hash['triggers'].each do |trigger|
|
|
27
|
+
@client.delete_trigger trigger['trigger']['id']
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
let(:cassette_name) do |example|
|
|
33
|
+
description = example.description
|
|
34
|
+
description
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
around(:each) do |example|
|
|
38
|
+
record('Alert/Triggers', credentials, cassette_name, example: example)
|
|
39
|
+
end
|
|
40
|
+
|
|
10
41
|
before(:each) do
|
|
11
42
|
@client = Hawkular::Alerts::AlertsClient.new(ALERTS_BASE, creds, options)
|
|
12
43
|
end
|
|
@@ -14,38 +45,37 @@ module Hawkular::Alerts::RSpec
|
|
|
14
45
|
it 'Should List Triggers' do
|
|
15
46
|
triggers = @client.list_triggers
|
|
16
47
|
|
|
17
|
-
expect(triggers.size).to be(
|
|
48
|
+
expect(triggers.size).to be(6)
|
|
18
49
|
end
|
|
19
50
|
|
|
20
51
|
it 'Should List Triggers for Tag' do
|
|
21
52
|
triggers = @client.list_triggers [],
|
|
22
|
-
['resourceId|
|
|
53
|
+
['resourceId|my-resource01']
|
|
23
54
|
|
|
24
|
-
expect(triggers.size).to be(
|
|
55
|
+
expect(triggers.size).to be(4)
|
|
25
56
|
end
|
|
26
57
|
|
|
27
58
|
it 'Should List Triggers for Tags' do
|
|
28
59
|
triggers = @client.list_triggers [],
|
|
29
|
-
|
|
30
|
-
'app|MyShop']
|
|
60
|
+
%w(resourceId|my-resource01 app|MyShop)
|
|
31
61
|
|
|
32
|
-
expect(triggers.size).to be(
|
|
62
|
+
expect(triggers.size).to be(5)
|
|
33
63
|
end
|
|
34
64
|
|
|
35
65
|
it 'Should List Triggers for ID' do
|
|
36
|
-
triggers = @client.list_triggers ['
|
|
66
|
+
triggers = @client.list_triggers ['my-trigger-05']
|
|
37
67
|
|
|
38
68
|
expect(triggers.size).to be(1)
|
|
39
69
|
end
|
|
40
70
|
|
|
41
71
|
it 'Should get a single metric Trigger' do
|
|
42
|
-
trigger = @client.get_single_trigger('
|
|
72
|
+
trigger = @client.get_single_trigger('my-trigger-01')
|
|
43
73
|
|
|
44
74
|
expect(trigger).not_to be_nil
|
|
45
75
|
end
|
|
46
76
|
|
|
47
77
|
it 'Should get a single Trigger with conditions' do
|
|
48
|
-
trigger = @client.get_single_trigger '
|
|
78
|
+
trigger = @client.get_single_trigger 'my-trigger-01', true
|
|
49
79
|
|
|
50
80
|
expect(trigger).not_to be_nil
|
|
51
81
|
expect(trigger.conditions.size).to be(1)
|
|
@@ -67,7 +97,7 @@ module Hawkular::Alerts::RSpec
|
|
|
67
97
|
end
|
|
68
98
|
|
|
69
99
|
it 'Should create a basic trigger with action' do
|
|
70
|
-
@client.create_action :email, 'send-via-email', '
|
|
100
|
+
@client.create_action :email, 'send-via-email', 'to' => 'joe@acme.org'
|
|
71
101
|
|
|
72
102
|
# Create the trigger
|
|
73
103
|
t = Hawkular::Alerts::Trigger.new({})
|
|
@@ -108,7 +138,7 @@ module Hawkular::Alerts::RSpec
|
|
|
108
138
|
# I am not interested
|
|
109
139
|
end
|
|
110
140
|
begin
|
|
111
|
-
@client.delete_action(a.
|
|
141
|
+
@client.delete_action(a.action_plugin, a.action_id)
|
|
112
142
|
rescue
|
|
113
143
|
# I am not interested
|
|
114
144
|
end
|
|
@@ -157,7 +187,7 @@ module Hawkular::Alerts::RSpec
|
|
|
157
187
|
|
|
158
188
|
it 'Should get the action definitions' do
|
|
159
189
|
ret = @client.get_action_definition
|
|
160
|
-
expect(ret.size).to be
|
|
190
|
+
expect(ret.size).to be > 0
|
|
161
191
|
expect(ret.key? 'email').to be_truthy
|
|
162
192
|
|
|
163
193
|
ret = @client.get_action_definition 'email'
|
|
@@ -169,7 +199,7 @@ module Hawkular::Alerts::RSpec
|
|
|
169
199
|
end
|
|
170
200
|
|
|
171
201
|
it 'Should create an action' do
|
|
172
|
-
@client.create_action 'email', 'my-id1', '
|
|
202
|
+
@client.create_action 'email', 'my-id1', 'to' => 'joe@acme.org'
|
|
173
203
|
@client.delete_action 'email', 'my-id1'
|
|
174
204
|
end
|
|
175
205
|
|
|
@@ -182,31 +212,22 @@ module Hawkular::Alerts::RSpec
|
|
|
182
212
|
end
|
|
183
213
|
|
|
184
214
|
it 'Should not create an action for unknown properties' do
|
|
185
|
-
|
|
215
|
+
expect do
|
|
186
216
|
@client.create_action :email, 'my-id3', foo: 'bar'
|
|
187
|
-
|
|
188
|
-
@client.delete_action :email, 'my-id3'
|
|
189
|
-
end
|
|
217
|
+
end.to raise_error(Hawkular::BaseClient::HawkularException)
|
|
190
218
|
end
|
|
219
|
+
end
|
|
191
220
|
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
@client.create_action 'webhook', 'my-id1',
|
|
198
|
-
webhook_props
|
|
199
|
-
ret = @client.get_action 'webhook', 'my-id1'
|
|
200
|
-
expect(ret.action_plugin).to eq('webhook')
|
|
201
|
-
expect(ret.action_id).to eq('my-id1')
|
|
221
|
+
describe 'Alert/Groups' do
|
|
222
|
+
let(:cassette_name) do |example|
|
|
223
|
+
description = example.description
|
|
224
|
+
description
|
|
225
|
+
end
|
|
202
226
|
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
end
|
|
227
|
+
around(:each) do |example|
|
|
228
|
+
record('Alert/Groups', credentials, cassette_name, example: example)
|
|
206
229
|
end
|
|
207
|
-
end
|
|
208
230
|
|
|
209
|
-
describe 'Alert/Groups', vcr: { decode_compressed_response: true } do
|
|
210
231
|
before(:each) do
|
|
211
232
|
@client = Hawkular::Alerts::AlertsClient.new(ALERTS_BASE, creds, options)
|
|
212
233
|
end
|
|
@@ -389,12 +410,64 @@ module Hawkular::Alerts::RSpec
|
|
|
389
410
|
end
|
|
390
411
|
end
|
|
391
412
|
|
|
392
|
-
describe 'Alert/Alerts'
|
|
413
|
+
describe 'Alert/Alerts' do
|
|
414
|
+
before(:all) do
|
|
415
|
+
# Setup for testing
|
|
416
|
+
record('Alert/Alerts', credentials, 'setup') do
|
|
417
|
+
@client = Hawkular::Alerts::AlertsClient.new(ALERTS_BASE, credentials, options)
|
|
418
|
+
json = IO.read('spec/integration/alert-resources/alerts-test-data.json')
|
|
419
|
+
trigger_hash = JSON.parse(json)
|
|
420
|
+
@client.bulk_import_triggers trigger_hash
|
|
421
|
+
current_open_alert_count = @client.list_alerts('statuses' => 'OPEN')
|
|
422
|
+
@client.http_post('data', [{ id: 'data-x', timestamp: Time.new.to_i, value: 4 }])
|
|
423
|
+
wait_while do
|
|
424
|
+
current_open_alert_count == @client.list_alerts('statuses' => 'OPEN')
|
|
425
|
+
end
|
|
426
|
+
end
|
|
427
|
+
end
|
|
428
|
+
|
|
429
|
+
after(:all) do
|
|
430
|
+
# cleanup test values
|
|
431
|
+
record('Alert/Alerts', credentials, 'setup_cleanup') do
|
|
432
|
+
@client = Hawkular::Alerts::AlertsClient.new(ALERTS_BASE, credentials, options)
|
|
433
|
+
json = IO.read('spec/integration/alert-resources/alerts-test-data.json')
|
|
434
|
+
trigger_hash = JSON.parse(json)
|
|
435
|
+
trigger_hash['triggers'].each do |trigger|
|
|
436
|
+
@client.list_alerts('triggerIds' => [trigger['trigger']['id']]).each do |alert|
|
|
437
|
+
@client.http_delete(alert.id)
|
|
438
|
+
end
|
|
439
|
+
@client.delete_trigger trigger['trigger']['id']
|
|
440
|
+
end
|
|
441
|
+
end
|
|
442
|
+
end
|
|
443
|
+
|
|
444
|
+
let(:cassette_name) do |example|
|
|
445
|
+
description = example.description
|
|
446
|
+
description
|
|
447
|
+
end
|
|
448
|
+
|
|
449
|
+
around(:each) do |example|
|
|
450
|
+
record('Alert/Alerts', credentials, cassette_name, example: example)
|
|
451
|
+
end
|
|
452
|
+
|
|
453
|
+
before(:each) do
|
|
454
|
+
@client = Hawkular::Alerts::AlertsClient.new(ALERTS_BASE, creds, options)
|
|
455
|
+
end
|
|
456
|
+
|
|
393
457
|
it 'Should list alerts' do
|
|
394
458
|
client = Hawkular::Alerts::AlertsClient.new(ALERTS_BASE, creds, options)
|
|
395
459
|
|
|
396
460
|
alerts = client.list_alerts
|
|
397
461
|
|
|
462
|
+
expect(alerts).to_not be_nil
|
|
463
|
+
expect(alerts.size).to be >= 2
|
|
464
|
+
end
|
|
465
|
+
|
|
466
|
+
it 'Should list open alerts' do
|
|
467
|
+
client = Hawkular::Alerts::AlertsClient.new(ALERTS_BASE, creds, options)
|
|
468
|
+
|
|
469
|
+
alerts = client.list_alerts('statuses' => 'OPEN')
|
|
470
|
+
|
|
398
471
|
expect(alerts).to_not be_nil
|
|
399
472
|
expect(alerts.size).to be(2)
|
|
400
473
|
end
|
|
@@ -402,7 +475,7 @@ module Hawkular::Alerts::RSpec
|
|
|
402
475
|
it 'Should list alerts for trigger' do
|
|
403
476
|
client = Hawkular::Alerts::AlertsClient.new(ALERTS_BASE, creds, options)
|
|
404
477
|
|
|
405
|
-
alerts = client.get_alerts_for_trigger '
|
|
478
|
+
alerts = client.get_alerts_for_trigger 'hello-world-trigger'
|
|
406
479
|
|
|
407
480
|
expect(alerts).to_not be_nil
|
|
408
481
|
expect(alerts.size).to be(1)
|
|
@@ -420,18 +493,18 @@ module Hawkular::Alerts::RSpec
|
|
|
420
493
|
it 'Should fetch single alert' do
|
|
421
494
|
client = Hawkular::Alerts::AlertsClient.new(ALERTS_BASE, creds, options)
|
|
422
495
|
|
|
423
|
-
|
|
424
|
-
|
|
496
|
+
alert_id = client.list_alerts('statuses' => 'OPEN').first.id
|
|
497
|
+
|
|
498
|
+
alert = client.get_single_alert(alert_id)
|
|
425
499
|
|
|
426
500
|
expect(alert).to_not be_nil
|
|
427
|
-
expect(alert.
|
|
428
|
-
.to eql('28026b36-8fe4-4332-84c8-524e173a68bf-snert~Local_jvm_garba-1446977734134')
|
|
501
|
+
expect(alert.id).to eql(alert_id)
|
|
429
502
|
end
|
|
430
503
|
|
|
431
504
|
it 'Should resolve an alert' do
|
|
432
505
|
client = Hawkular::Alerts::AlertsClient.new(ALERTS_BASE, creds, options)
|
|
433
506
|
|
|
434
|
-
alert_id = '
|
|
507
|
+
alert_id = client.list_alerts('statuses' => 'OPEN').first.id
|
|
435
508
|
alert = client.get_single_alert alert_id
|
|
436
509
|
|
|
437
510
|
expect(alert.status).to eql('OPEN')
|
|
@@ -454,7 +527,7 @@ module Hawkular::Alerts::RSpec
|
|
|
454
527
|
it 'Should acknowledge an alert' do
|
|
455
528
|
client = Hawkular::Alerts::AlertsClient.new(ALERTS_BASE, creds, options)
|
|
456
529
|
|
|
457
|
-
alert_id = '
|
|
530
|
+
alert_id = client.list_alerts('statuses' => 'OPEN').first.id
|
|
458
531
|
client.get_single_alert alert_id
|
|
459
532
|
|
|
460
533
|
client.acknowledge_alert(alert_id, 'Heiko', 'Hello Ruby World :-)')
|
|
@@ -464,7 +537,16 @@ module Hawkular::Alerts::RSpec
|
|
|
464
537
|
end
|
|
465
538
|
end
|
|
466
539
|
|
|
467
|
-
describe '
|
|
540
|
+
describe 'Alert' do
|
|
541
|
+
let(:cassette_name) do |example|
|
|
542
|
+
description = example.description
|
|
543
|
+
description
|
|
544
|
+
end
|
|
545
|
+
|
|
546
|
+
around(:each) do |example|
|
|
547
|
+
record('Alert', credentials, cassette_name, example: example)
|
|
548
|
+
end
|
|
549
|
+
|
|
468
550
|
before(:each) do
|
|
469
551
|
@client = Hawkular::Alerts::AlertsClient.new(ALERTS_BASE, creds)
|
|
470
552
|
end
|
|
@@ -475,11 +557,38 @@ module Hawkular::Alerts::RSpec
|
|
|
475
557
|
end
|
|
476
558
|
end
|
|
477
559
|
|
|
478
|
-
describe 'Alert/Events'
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
560
|
+
describe 'Alert/Events' do
|
|
561
|
+
before(:all) do
|
|
562
|
+
# Setup for testing
|
|
563
|
+
record('Alert/Events', credentials, 'setup') do
|
|
564
|
+
@client = Hawkular::Alerts::AlertsClient.new(ALERTS_BASE, credentials, options)
|
|
565
|
+
json = IO.read('spec/integration/alert-resources/events-test-data.json')
|
|
566
|
+
hash = JSON.parse(json)
|
|
567
|
+
hash['events'].each do |event|
|
|
568
|
+
@client.create_event event['id'], event['category'], event['text'], event['extras']
|
|
569
|
+
end
|
|
570
|
+
end
|
|
571
|
+
end
|
|
572
|
+
|
|
573
|
+
after(:all) do
|
|
574
|
+
# cleanup test values
|
|
575
|
+
record('Alert/Events', credentials, 'setup_cleanup') do
|
|
576
|
+
@client = Hawkular::Alerts::AlertsClient.new(ALERTS_BASE, credentials, options)
|
|
577
|
+
json = IO.read('spec/integration/alert-resources/events-test-data.json')
|
|
578
|
+
hash = JSON.parse(json)
|
|
579
|
+
hash['events'].each do |event|
|
|
580
|
+
@client.delete_event event['id']
|
|
581
|
+
end
|
|
582
|
+
end
|
|
583
|
+
end
|
|
584
|
+
|
|
585
|
+
let(:cassette_name) do |example|
|
|
586
|
+
description = example.description
|
|
587
|
+
description
|
|
588
|
+
end
|
|
589
|
+
|
|
590
|
+
around(:each) do |example|
|
|
591
|
+
record('Alert/Events', credentials, cassette_name, example: example)
|
|
483
592
|
end
|
|
484
593
|
|
|
485
594
|
it 'Should list events' do
|
|
@@ -488,20 +597,16 @@ module Hawkular::Alerts::RSpec
|
|
|
488
597
|
events = client.list_events('thin' => true)
|
|
489
598
|
|
|
490
599
|
expect(events).to_not be_nil
|
|
491
|
-
expect(events.size).to be
|
|
600
|
+
expect(events.size).to be >= 12
|
|
492
601
|
end
|
|
493
602
|
|
|
494
603
|
it 'Should list events using criteria' do
|
|
495
|
-
now = Time.new.to_i
|
|
496
|
-
start_time = (now - 7_200) * 1000
|
|
497
|
-
end_time = now * 1000
|
|
498
|
-
|
|
499
604
|
client = Hawkular::Alerts::AlertsClient.new(ALERTS_BASE, creds, options)
|
|
500
605
|
|
|
501
|
-
events = client.list_events('
|
|
606
|
+
events = client.list_events('categories' => %w(my-category-01 my-category-02))
|
|
502
607
|
|
|
503
608
|
expect(events).to_not be_nil
|
|
504
|
-
expect(events.size).to be(
|
|
609
|
+
expect(events.size).to be(4)
|
|
505
610
|
end
|
|
506
611
|
|
|
507
612
|
it 'Should not list events using criteria' do
|
|
@@ -515,10 +620,8 @@ module Hawkular::Alerts::RSpec
|
|
|
515
620
|
|
|
516
621
|
it 'Should create an event' do
|
|
517
622
|
the_id = "test-event@#{Time.new.to_i}"
|
|
518
|
-
VCR.
|
|
519
|
-
|
|
520
|
-
decode_compressed_response: true
|
|
521
|
-
) do
|
|
623
|
+
VCR.eject_cassette
|
|
624
|
+
record('Alert/Events', credentials.merge(id: the_id), cassette_name) do
|
|
522
625
|
client = Hawkular::Alerts::AlertsClient.new(ALERTS_BASE, creds, options)
|
|
523
626
|
|
|
524
627
|
the_event = client.create_event(the_id, 'MyCategory', 'Li la lu',
|
|
@@ -527,11 +630,37 @@ module Hawkular::Alerts::RSpec
|
|
|
527
630
|
|
|
528
631
|
expect(the_event['id']).to eql(the_id)
|
|
529
632
|
expect(the_event['category']).to eql('MyCategory')
|
|
633
|
+
|
|
634
|
+
client.delete_event the_id
|
|
635
|
+
end
|
|
636
|
+
end
|
|
637
|
+
|
|
638
|
+
it 'Should delete an event' do
|
|
639
|
+
the_id = "test-event@#{Time.new.to_i}"
|
|
640
|
+
VCR.eject_cassette
|
|
641
|
+
record('Alert/Events', credentials.merge(id: the_id), cassette_name) do
|
|
642
|
+
client = Hawkular::Alerts::AlertsClient.new(ALERTS_BASE, creds, options)
|
|
643
|
+
client.create_event(the_id, 'MyCategory', 'Li la lu',
|
|
644
|
+
context: { message: 'This is a test' },
|
|
645
|
+
tags: { tag_name: 'tag-value' })
|
|
646
|
+
|
|
647
|
+
client.delete_event the_id
|
|
648
|
+
the_event = client.list_events('thin' => true, 'eventIds' => [the_id]).first
|
|
649
|
+
expect(the_event).to be_nil
|
|
530
650
|
end
|
|
531
651
|
end
|
|
532
652
|
end
|
|
533
653
|
|
|
534
|
-
describe 'Alert/EndToEnd'
|
|
654
|
+
describe 'Alert/EndToEnd' do
|
|
655
|
+
let(:cassette_name) do |example|
|
|
656
|
+
description = example.description
|
|
657
|
+
description
|
|
658
|
+
end
|
|
659
|
+
|
|
660
|
+
around(:each) do |example|
|
|
661
|
+
record('Alert/EndToEnd', credentials, cassette_name, example: example)
|
|
662
|
+
end
|
|
663
|
+
|
|
535
664
|
before(:each) do
|
|
536
665
|
@client = Hawkular::Alerts::AlertsClient.new(ALERTS_BASE, creds, options)
|
|
537
666
|
end
|
|
@@ -548,17 +677,6 @@ module Hawkular::Alerts::RSpec
|
|
|
548
677
|
email_props
|
|
549
678
|
end
|
|
550
679
|
|
|
551
|
-
webhook_props = { url: 'http://172.31.7.177/',
|
|
552
|
-
method: 'POST' }
|
|
553
|
-
begin
|
|
554
|
-
@client.create_action 'webhook', 'send-via-webhook',
|
|
555
|
-
webhook_props
|
|
556
|
-
rescue
|
|
557
|
-
@client.delete_action 'webhook', 'send-via-webhook'
|
|
558
|
-
@client.create_action 'webhook', 'send-via-webhook',
|
|
559
|
-
webhook_props
|
|
560
|
-
end
|
|
561
|
-
|
|
562
680
|
# Create the trigger
|
|
563
681
|
t = Hawkular::Alerts::Trigger.new({})
|
|
564
682
|
t.enabled = true
|
|
@@ -581,12 +699,6 @@ module Hawkular::Alerts::RSpec
|
|
|
581
699
|
a.action_id = 'send-via-email'
|
|
582
700
|
t.actions.push a
|
|
583
701
|
|
|
584
|
-
# Reference an action definition for webhook
|
|
585
|
-
a = Hawkular::Alerts::Trigger::Action.new({})
|
|
586
|
-
a.action_plugin = 'webhook'
|
|
587
|
-
a.action_id = 'send-via-webhook'
|
|
588
|
-
t.actions.push a
|
|
589
|
-
|
|
590
702
|
begin
|
|
591
703
|
ft = @client.create_trigger t, [c], nil
|
|
592
704
|
|
|
@@ -610,8 +722,10 @@ module Hawkular::Alerts::RSpec
|
|
|
610
722
|
|
|
611
723
|
metric_client.push_data(gauges: data)
|
|
612
724
|
|
|
613
|
-
# wait
|
|
614
|
-
|
|
725
|
+
# wait for the alert engine to work if we are live
|
|
726
|
+
wait_while do
|
|
727
|
+
@client.get_alerts_for_trigger('my-cool-email-trigger').nil?
|
|
728
|
+
end
|
|
615
729
|
|
|
616
730
|
# see if alert has fired
|
|
617
731
|
alerts = @client.get_alerts_for_trigger 'my-cool-email-trigger'
|
|
@@ -625,11 +739,6 @@ module Hawkular::Alerts::RSpec
|
|
|
625
739
|
rescue
|
|
626
740
|
# I am not interested
|
|
627
741
|
end
|
|
628
|
-
begin
|
|
629
|
-
@client.delete_action('webhook', 'send-via-webhook')
|
|
630
|
-
rescue
|
|
631
|
-
# I am not interested
|
|
632
|
-
end
|
|
633
742
|
begin
|
|
634
743
|
@client.delete_action('email', 'send-via-email')
|
|
635
744
|
rescue
|