foreman_monitoring 3.0.0 → 3.1.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: bba72edc0a48bb00f5818a0662ef643ea892cef4f457b474fd35332471bf1751
4
- data.tar.gz: b62364ba84ac51878993cd2d6d7be654cfb10aa2c2a565b2ec71f6dc38f933a1
3
+ metadata.gz: b8c19621c4296a6cc5d051522ee0176ef3a4726f24bc73eda2c1182c812939c5
4
+ data.tar.gz: 1691af6f9079acd23c0f826b6052605d99eff64346c127a5b50a2fbac4e38344
5
5
  SHA512:
6
- metadata.gz: d1d0834a1dc76d2009dc1bd1bbd35c0fbcfc166e1b1206c87a3ba1fd7d8543c693d22550cd899129b41d9dcbf76d0a379ab7c0ef6a7d83e2ffa1960c0b8ec3a2
7
- data.tar.gz: 8715c42a9d55a3f491a860373c74dcda03351be2752a14e2dc798781f1ab807b55ff332822ead436637b1d479702920cbe9c19b6b30bff4844418acbe3d8611f
6
+ metadata.gz: 57746ee94c93571b9e8fa14050f2ff1358d265fa710908175fa26b9baa799c5597d31ef2b8a71c3d31b9a57c6c6e4e46fc7377700d1a4f686e1db2a18835f54c
7
+ data.tar.gz: 14c121e8aaf4c486e1fdd74ce09747578658cc8f8d7c5c9e471d897ea55fe27d8e5c5a3068c87373988af09d6b96bfee113fb90428680abed618eca0c825ebbd
data/README.md CHANGED
@@ -37,6 +37,7 @@ touch ~foreman/tmp/restart.txt
37
37
  | >= 2.0 | ~> 2.0 |
38
38
  | >= 2.2 | ~> 2.1 |
39
39
  | >= 3.0 | ~> 3.0 |
40
+ | >= 3.6 | ~> 3.1 |
40
41
 
41
42
  # Usage
42
43
 
@@ -10,6 +10,7 @@ module Api
10
10
  before_action :find_host, :only => [:create]
11
11
 
12
12
  api :POST, '/downtime', N_('Schedule host downtime')
13
+ param :all_services, [true, false], :desc => N_('Set downtime for all services'), :required => false
13
14
  param :duration, :number, :desc => N_('Downtime duration (seconds)'), :required => false
14
15
  param :reason, String, :desc => N_('Downtime reason'), :required => false
15
16
 
@@ -18,6 +19,7 @@ module Api
18
19
  options = {
19
20
  :comment => downtime_params[:reason] || _('Host requested downtime')
20
21
  }
22
+ options[:all_services] = downtime_params[:all_services] if downtime_params.key? :all_services
21
23
  if downtime_params.key? :duration
22
24
  options[:start_time] = Time.now.to_i
23
25
  options[:end_time] = Time.now.to_i + downtime_params[:duration].to_i
@@ -35,7 +37,7 @@ module Api
35
37
  private
36
38
 
37
39
  def downtime_params
38
- params.permit(:duration, :reason)
40
+ params.permit(:all_services, :duration, :reason)
39
41
  end
40
42
 
41
43
  def find_host
@@ -3,7 +3,7 @@
3
3
  module ProxyAPI
4
4
  class Monitoring < ProxyAPI::Resource
5
5
  def initialize(args)
6
- @url = args[:url] + '/monitoring'
6
+ @url = "#{args[:url]}/monitoring"
7
7
  super args
8
8
  end
9
9
 
@@ -30,7 +30,6 @@ class MonitoringResult < ApplicationRecord
30
30
  end
31
31
 
32
32
  created = MonitoringResult.where(:host => host, :service => result[:service]).first_or_create
33
- # rubocop:disable Rails/Date
34
33
  if created.timestamp.blank? || updates[:timestamp].blank? || (created.timestamp.to_time - updates[:timestamp].to_time) < 2
35
34
  created.update(updates)
36
35
 
@@ -41,7 +40,6 @@ class MonitoringResult < ApplicationRecord
41
40
  else
42
41
  logger.debug "Skipping monitoring result import for #{host} as it is older than what we have."
43
42
  end
44
- # rubocop:enable Rails/Date
45
43
  end
46
44
  # rubocop:enable Metrics/AbcSize
47
45
 
data/config/routes.rb CHANGED
@@ -12,7 +12,7 @@ Rails.application.routes.draw do
12
12
  end
13
13
 
14
14
  scope '/monitoring' do
15
- constraints(:id => %r{[^\/]+}) do
15
+ constraints(:id => %r{[^/]+}) do
16
16
  resources :hosts, :only => [] do
17
17
  member do
18
18
  put 'downtime'
@@ -2,14 +2,10 @@
2
2
 
3
3
  class RenameDowntimeHostPermission < ActiveRecord::Migration[5.2]
4
4
  def up
5
- # rubocop:disable Rails/SkipsModelValidations
6
5
  Permission.where(name: 'manage_host_downtimes').update_all(name: 'manage_downtime_hosts') if table_exists?(:permissions)
7
- # rubocop:enable Rails/SkipsModelValidations
8
6
  end
9
7
 
10
8
  def down
11
- # rubocop:disable Rails/SkipsModelValidations
12
9
  Permission.where(name: 'manage_downtime_hosts').update_all(name: 'manage_host_downtimes') if table_exists?(:permissions)
13
- # rubocop:enable Rails/SkipsModelValidations
14
10
  end
15
11
  end
@@ -2,8 +2,6 @@
2
2
 
3
3
  class FixMonitoringSettingsCategoryToDsl < ActiveRecord::Migration[6.0]
4
4
  def up
5
- # rubocop:disable Rails/SkipsModelValidations
6
- Setting.where(category: 'Setting::Monitoring').update_all(category: 'Setting')
7
- # rubocop:enable Rails/SkipsModelValidations
5
+ Setting.where(category: 'Setting::Monitoring').update_all(category: 'Setting') if column_exists?(:settings, :category)
8
6
  end
9
7
  end
@@ -86,14 +86,12 @@ module ForemanMonitoring
86
86
  end
87
87
 
88
88
  config.to_prepare do
89
- begin
90
- ::Host::Managed.prepend(ForemanMonitoring::HostExtensions)
91
- ::Hostgroup.include(ForemanMonitoring::HostgroupExtensions)
92
- ::HostsHelper.prepend(ForemanMonitoring::HostsHelperExt)
93
- ::HostsController.prepend(ForemanMonitoring::HostsControllerExtensions)
94
- rescue StandardError => e
95
- Rails.logger.warn "ForemanMonitoring: skipping engine hook (#{e})"
96
- end
89
+ ::Host::Managed.prepend(ForemanMonitoring::HostExtensions)
90
+ ::Hostgroup.include(ForemanMonitoring::HostgroupExtensions)
91
+ ::HostsHelper.prepend(ForemanMonitoring::HostsHelperExt)
92
+ ::HostsController.prepend(ForemanMonitoring::HostsControllerExtensions)
93
+ rescue StandardError => e
94
+ Rails.logger.warn "ForemanMonitoring: skipping engine hook (#{e})"
97
95
  end
98
96
 
99
97
  initializer 'foreman_monitoring.register_gettext', after: :load_config_initializers do |_app|
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module ForemanMonitoring
4
- VERSION = '3.0.0'
4
+ VERSION = '3.1.0'
5
5
  end
@@ -34,6 +34,26 @@ class Api::V2::DowntimeControllerTest < ActionController::TestCase
34
34
  end
35
35
  end
36
36
 
37
+ context '#create with all_services' do
38
+ test 'should create downtime without all_services value if none given' do
39
+ Host::Managed.any_instance.expects(:downtime_host).with { |params| !params.key? :all_services }
40
+ post :create
41
+ assert_response :success
42
+ end
43
+
44
+ test 'should create downtime with given all_services value' do
45
+ Host::Managed.any_instance.expects(:downtime_host).with { |params| params[:all_services] }
46
+ post :create, params: { all_services: true }
47
+ assert_response :success
48
+ end
49
+
50
+ test 'should create downtime with given all_services value even if false' do
51
+ Host::Managed.any_instance.expects(:downtime_host).with { |params| params[:all_services] == false }
52
+ post :create, params: { all_services: false }
53
+ assert_response :success
54
+ end
55
+ end
56
+
37
57
  context '#create with duration' do
38
58
  test 'should create downtime with given duration' do
39
59
  Host::Managed.any_instance.expects(:downtime_host).with { |params| params[:end_time] - params[:start_time] == 3600 }
@@ -61,7 +61,7 @@ class HostTest < ActiveSupport::TestCase
61
61
  ProxyAPI::Monitoring.any_instance.stubs(:query_host).returns(fake_host_query_result)
62
62
  assert_valid host
63
63
  tasks = host.queue.all.map(&:name)
64
- assert_equal [], tasks
64
+ assert_empty tasks
65
65
  end
66
66
 
67
67
  test 'should queue monitoring destroy' do
@@ -83,7 +83,7 @@ class HostTest < ActiveSupport::TestCase
83
83
  test 'should not queue monitoring create actions' do
84
84
  assert_valid host
85
85
  tasks = host.queue.all.map(&:name)
86
- assert_equal [], tasks
86
+ assert_empty tasks
87
87
  end
88
88
 
89
89
  test 'should queue monitoring downtime on host destroy' do
@@ -134,7 +134,7 @@ class HostTest < ActiveSupport::TestCase
134
134
  host.send(:queue_monitoring)
135
135
  host.send(:queue_monitoring_destroy)
136
136
  tasks = host.queue.all.map(&:name)
137
- assert_equal [], tasks
137
+ assert_empty tasks
138
138
  end
139
139
  end
140
140
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: foreman_monitoring
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.0.0
4
+ version: 3.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Timo Goebel
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-11-02 00:00:00.000000000 Z
11
+ date: 2024-05-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rdoc
@@ -24,62 +24,6 @@ dependencies:
24
24
  - - ">="
25
25
  - !ruby/object:Gem::Version
26
26
  version: '0'
27
- - !ruby/object:Gem::Dependency
28
- name: rubocop
29
- requirement: !ruby/object:Gem::Requirement
30
- requirements:
31
- - - "~>"
32
- - !ruby/object:Gem::Version
33
- version: 0.80.0
34
- type: :development
35
- prerelease: false
36
- version_requirements: !ruby/object:Gem::Requirement
37
- requirements:
38
- - - "~>"
39
- - !ruby/object:Gem::Version
40
- version: 0.80.0
41
- - !ruby/object:Gem::Dependency
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
71
- requirement: !ruby/object:Gem::Requirement
72
- requirements:
73
- - - ">="
74
- - !ruby/object:Gem::Version
75
- version: '0'
76
- type: :development
77
- prerelease: false
78
- version_requirements: !ruby/object:Gem::Requirement
79
- requirements:
80
- - - ">="
81
- - !ruby/object:Gem::Version
82
- version: '0'
83
27
  - !ruby/object:Gem::Dependency
84
28
  name: deface
85
29
  requirement: !ruby/object:Gem::Requirement
@@ -164,14 +108,17 @@ required_ruby_version: !ruby/object:Gem::Requirement
164
108
  requirements:
165
109
  - - ">="
166
110
  - !ruby/object:Gem::Version
167
- version: '0'
111
+ version: '2.7'
112
+ - - "<"
113
+ - !ruby/object:Gem::Version
114
+ version: '4'
168
115
  required_rubygems_version: !ruby/object:Gem::Requirement
169
116
  requirements:
170
117
  - - ">="
171
118
  - !ruby/object:Gem::Version
172
119
  version: '0'
173
120
  requirements: []
174
- rubygems_version: 3.2.33
121
+ rubygems_version: 3.5.9
175
122
  signing_key:
176
123
  specification_version: 4
177
124
  summary: Foreman plugin for monitoring system integration.