foreman_monitoring 0.1.1 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (44) hide show
  1. checksums.yaml +5 -5
  2. data/README.md +14 -7
  3. data/Rakefile +0 -0
  4. data/app/controllers/api/v2/downtime_controller.rb +63 -0
  5. data/app/controllers/api/v2/monitoring_results_controller.rb +5 -4
  6. data/app/controllers/concerns/foreman_monitoring/find_host_by_client_cert.rb +59 -0
  7. data/app/controllers/concerns/foreman_monitoring/hosts_controller_extensions.rb +7 -5
  8. data/app/helpers/concerns/foreman_monitoring/hosts_helper_ext.rb +11 -13
  9. data/app/lib/proxy_api/monitoring.rb +9 -6
  10. data/app/models/concerns/foreman_monitoring/host_extensions.rb +6 -3
  11. data/app/models/concerns/foreman_monitoring/hostgroup_extensions.rb +7 -3
  12. data/app/models/concerns/orchestration/monitoring.rb +22 -15
  13. data/app/models/host_status/monitoring_status.rb +7 -4
  14. data/app/models/monitoring_result.rb +13 -6
  15. data/app/models/setting/monitoring.rb +4 -2
  16. data/app/overrides/add_host_monitoring_result_tab.rb +8 -6
  17. data/app/overrides/add_host_multiple_power_set_downtime_checkbox.rb +5 -3
  18. data/app/overrides/add_host_set_downtime_modal.rb +4 -2
  19. data/app/services/monitoring.rb +3 -0
  20. data/app/views/hosts/_downtime_fields.html.erb +2 -2
  21. data/app/views/monitoring_results/_host_tab_pane.html.erb +2 -2
  22. data/config/routes.rb +3 -0
  23. data/db/migrate/20160817135723_create_monitoring_results.rb +5 -1
  24. data/db/migrate/20161220201510_add_monitoring_proxy_id_to_host_and_hostgroup.rb +3 -1
  25. data/db/migrate/201910180900_rename_downtime_host_permission.rb +15 -0
  26. data/db/seeds.d/60-monitoring_proxy_feature.rb +2 -0
  27. data/lib/foreman_monitoring.rb +2 -0
  28. data/lib/foreman_monitoring/engine.rb +32 -28
  29. data/lib/foreman_monitoring/version.rb +3 -1
  30. data/lib/tasks/foreman_monitoring_tasks.rake +5 -5
  31. data/locale/gemspec.rb +2 -0
  32. data/test/controllers/api/v2/downtime_controller_test.rb +73 -0
  33. data/test/factories/feature.rb +4 -2
  34. data/test/factories/host.rb +6 -4
  35. data/test/factories/monitoring_results.rb +9 -7
  36. data/test/factories/smart_proxy.rb +3 -1
  37. data/test/functional/hosts_controller_test.rb +65 -52
  38. data/test/lib/proxy_api/monitoring_test.rb +16 -14
  39. data/test/test_plugin_helper.rb +5 -3
  40. data/test/unit/host_status/monitoring_status_test.rb +18 -16
  41. data/test/unit/host_test.rb +6 -4
  42. data/test/unit/monitoring_result_test.rb +75 -0
  43. data/test/unit/monitoring_test.rb +5 -3
  44. metadata +68 -20
@@ -1,15 +1,17 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'test_plugin_helper'
2
4
 
3
5
  class HostTest < ActiveSupport::TestCase
4
6
  setup do
5
- User.current = FactoryGirl.build(:user, :admin)
7
+ User.current = FactoryBot.build(:user, :admin)
6
8
  setup_settings
7
9
  disable_orchestration
8
10
  disable_monitoring_orchestration
9
11
  end
10
12
 
11
13
  context 'downtime handling' do
12
- let(:host) { FactoryGirl.create(:host, :managed) }
14
+ let(:host) { FactoryBot.create(:host, :managed) }
13
15
 
14
16
  test 'it should set a downtime when build status changes' do
15
17
  host.expects(:downtime_host).once
@@ -22,7 +24,7 @@ class HostTest < ActiveSupport::TestCase
22
24
  end
23
25
 
24
26
  context 'a host with monitoring orchestration' do
25
- let(:host) { FactoryGirl.build(:host, :managed, :with_monitoring) }
27
+ let(:host) { FactoryBot.build(:host, :managed, :with_monitoring) }
26
28
 
27
29
  context 'with create/delete actions' do
28
30
  setup do
@@ -125,7 +127,7 @@ class HostTest < ActiveSupport::TestCase
125
127
  end
126
128
 
127
129
  context 'a host without monitoring' do
128
- let(:host) { FactoryGirl.build(:host, :managed) }
130
+ let(:host) { FactoryBot.build(:host, :managed) }
129
131
 
130
132
  test 'should not queue any monitoring actions' do
131
133
  assert_valid host
@@ -0,0 +1,75 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'test_plugin_helper'
4
+
5
+ class MonitoringResultTest < ActiveSupport::TestCase
6
+ setup do
7
+ User.current = FactoryBot.build(:user, :admin)
8
+ setup_settings
9
+ disable_orchestration
10
+ disable_monitoring_orchestration
11
+ end
12
+
13
+ context '#import' do
14
+ let(:host) { FactoryBot.create(:host, :managed, :with_monitoring) }
15
+
16
+ let(:initial) do
17
+ {
18
+ host: host.name,
19
+ service: 'cpu metrics',
20
+ timestamp: 1_516_365_380.8834700584,
21
+ result: 1,
22
+ acknowledged: true
23
+ }
24
+ end
25
+
26
+ let(:acknowledegment_cleared) do
27
+ {
28
+ host: host.name,
29
+ service: 'cpu metrics',
30
+ timestamp: 1_516_365_971.2455039024,
31
+ acknowledged: false
32
+ }
33
+ end
34
+
35
+ let(:state_change) do
36
+ {
37
+ host: host.name,
38
+ service: 'cpu metrics',
39
+ timestamp: 1_516_365_971.2461779118,
40
+ result: 0
41
+ }
42
+ end
43
+
44
+ test 'imports a monitoring result' do
45
+ MonitoringResult.import(initial)
46
+ imported = host.monitoring_results.last
47
+ assert_equal true, imported.acknowledged?
48
+ end
49
+
50
+ test 'handles ack and state change in correct order' do
51
+ MonitoringResult.import(initial)
52
+ MonitoringResult.import(acknowledegment_cleared)
53
+ MonitoringResult.import(state_change)
54
+ imported = host.monitoring_results.last
55
+ assert_equal :ok, imported.status
56
+ assert_equal false, imported.acknowledged?
57
+ end
58
+
59
+ test 'handles ack and state change in reverse order' do
60
+ MonitoringResult.import(initial)
61
+ MonitoringResult.import(state_change)
62
+ MonitoringResult.import(acknowledegment_cleared)
63
+ imported = host.monitoring_results.last
64
+ assert_equal :ok, imported.status
65
+ assert_equal false, imported.acknowledged?
66
+ end
67
+
68
+ test 'ignores old data' do
69
+ MonitoringResult.import(state_change)
70
+ MonitoringResult.import(initial)
71
+ imported = host.monitoring_results.last
72
+ assert_equal false, imported.acknowledged?
73
+ end
74
+ end
75
+ end
@@ -1,14 +1,16 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'test_plugin_helper'
2
4
 
3
5
  class MonitoringTest < ActiveSupport::TestCase
4
6
  setup do
5
- User.current = FactoryGirl.build(:user, :admin)
7
+ User.current = FactoryBot.build(:user, :admin)
6
8
  setup_settings
7
9
  disable_monitoring_orchestration
8
10
  end
9
11
 
10
- let(:monitoring_proxy) { FactoryGirl.create(:smart_proxy, :monitoring) }
11
- let(:host) { FactoryGirl.create(:host, :managed, :with_monitoring, :monitoring_proxy => monitoring_proxy) }
12
+ let(:monitoring_proxy) { FactoryBot.create(:smart_proxy, :monitoring) }
13
+ let(:host) { FactoryBot.create(:host, :managed, :with_monitoring, :monitoring_proxy => monitoring_proxy) }
12
14
  let(:monitoring) { Monitoring.new(:monitoring_proxy => monitoring_proxy) }
13
15
 
14
16
  test '#set_downtime_host should call proxy api' do
metadata CHANGED
@@ -1,31 +1,73 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: foreman_monitoring
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 2.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Timo Goebel
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-10-24 00:00:00.000000000 Z
11
+ date: 2020-08-11 00:00:00.000000000 Z
12
12
  dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: rdoc
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
13
27
  - !ruby/object:Gem::Dependency
14
28
  name: rubocop
15
29
  requirement: !ruby/object:Gem::Requirement
16
30
  requirements:
17
- - - '='
31
+ - - "~>"
18
32
  - !ruby/object:Gem::Version
19
- version: 0.49.1
33
+ version: 0.80.0
20
34
  type: :development
21
35
  prerelease: false
22
36
  version_requirements: !ruby/object:Gem::Requirement
23
37
  requirements:
24
- - - '='
38
+ - - "~>"
25
39
  - !ruby/object:Gem::Version
26
- version: 0.49.1
40
+ version: 0.80.0
27
41
  - !ruby/object:Gem::Dependency
28
- name: rdoc
42
+ name: rubocop-minitest
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: rubocop-performance
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: rubocop-rails
29
71
  requirement: !ruby/object:Gem::Requirement
30
72
  requirements:
31
73
  - - ">="
@@ -62,7 +104,9 @@ files:
62
104
  - LICENSE
63
105
  - README.md
64
106
  - Rakefile
107
+ - app/controllers/api/v2/downtime_controller.rb
65
108
  - app/controllers/api/v2/monitoring_results_controller.rb
109
+ - app/controllers/concerns/foreman_monitoring/find_host_by_client_cert.rb
66
110
  - app/controllers/concerns/foreman_monitoring/hosts_controller_extensions.rb
67
111
  - app/helpers/concerns/foreman_monitoring/hosts_helper_ext.rb
68
112
  - app/lib/proxy_api/monitoring.rb
@@ -86,6 +130,7 @@ files:
86
130
  - config/routes.rb
87
131
  - db/migrate/20160817135723_create_monitoring_results.rb
88
132
  - db/migrate/20161220201510_add_monitoring_proxy_id_to_host_and_hostgroup.rb
133
+ - db/migrate/201910180900_rename_downtime_host_permission.rb
89
134
  - db/seeds.d/60-monitoring_proxy_feature.rb
90
135
  - lib/foreman_monitoring.rb
91
136
  - lib/foreman_monitoring/engine.rb
@@ -95,6 +140,7 @@ files:
95
140
  - locale/en/foreman_monitoring.po
96
141
  - locale/foreman_monitoring.pot
97
142
  - locale/gemspec.rb
143
+ - test/controllers/api/v2/downtime_controller_test.rb
98
144
  - test/factories/feature.rb
99
145
  - test/factories/host.rb
100
146
  - test/factories/monitoring_results.rb
@@ -104,12 +150,13 @@ files:
104
150
  - test/test_plugin_helper.rb
105
151
  - test/unit/host_status/monitoring_status_test.rb
106
152
  - test/unit/host_test.rb
153
+ - test/unit/monitoring_result_test.rb
107
154
  - test/unit/monitoring_test.rb
108
- homepage: http://www.github.com/theforeman/foreman_monitoring
155
+ homepage: https://github.com/theforeman/foreman_monitoring
109
156
  licenses:
110
- - GPLv3
157
+ - GPL-3.0
111
158
  metadata: {}
112
- post_install_message:
159
+ post_install_message:
113
160
  rdoc_options: []
114
161
  require_paths:
115
162
  - lib
@@ -124,19 +171,20 @@ required_rubygems_version: !ruby/object:Gem::Requirement
124
171
  - !ruby/object:Gem::Version
125
172
  version: '0'
126
173
  requirements: []
127
- rubyforge_project:
128
- rubygems_version: 2.6.12
129
- signing_key:
174
+ rubygems_version: 3.1.2
175
+ signing_key:
130
176
  specification_version: 4
131
177
  summary: Foreman plugin for monitoring system integration.
132
178
  test_files:
179
+ - test/unit/host_test.rb
180
+ - test/unit/monitoring_result_test.rb
181
+ - test/unit/host_status/monitoring_status_test.rb
182
+ - test/unit/monitoring_test.rb
183
+ - test/factories/smart_proxy.rb
184
+ - test/factories/monitoring_results.rb
133
185
  - test/factories/feature.rb
134
186
  - test/factories/host.rb
135
- - test/factories/monitoring_results.rb
136
- - test/factories/smart_proxy.rb
137
- - test/functional/hosts_controller_test.rb
138
187
  - test/lib/proxy_api/monitoring_test.rb
139
188
  - test/test_plugin_helper.rb
140
- - test/unit/host_status/monitoring_status_test.rb
141
- - test/unit/host_test.rb
142
- - test/unit/monitoring_test.rb
189
+ - test/controllers/api/v2/downtime_controller_test.rb
190
+ - test/functional/hosts_controller_test.rb