foreman_expire_hosts 7.0.0 → 7.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.rubocop.yml +3 -3
- data/.rubocop_todo.yml +9 -0
- data/app/helpers/concerns/foreman_expire_hosts/hosts_helper_extensions.rb +0 -6
- data/app/services/foreman_expire_hosts/action/base.rb +3 -1
- data/app/services/foreman_expire_hosts/action/delete_expired_hosts.rb +1 -0
- data/app/services/foreman_expire_hosts/action/stop_expired_hosts.rb +1 -1
- data/app/services/foreman_expire_hosts/notification/base.rb +4 -1
- data/app/views/hosts/_expired_on_field.html.erb +2 -2
- data/extra/foreman_expire_hosts.cron +8 -0
- data/foreman_expire_hosts.gemspec +7 -4
- data/lib/foreman_expire_hosts/engine.rb +8 -4
- data/lib/foreman_expire_hosts/version.rb +1 -1
- metadata +16 -14
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 44247c83269ff2759c38b6c8ea6821f2b65bdf2558c4703eb4a89f6ccaa7ab83
|
4
|
+
data.tar.gz: 110282faa293e518d45dca6661137039ea0e8eaa9a5cd038ee7b19536b8715fe
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e55938b35afdd0ad71696a0a6ed21b8f489934223edd98aac29820d6fce255a372a1372907b3ff489e70205b367e6569eaa7fbf40c6c3251294bd55d746eddc6
|
7
|
+
data.tar.gz: 61dcac4a506ba4bf9379ce3270286636f0913c46c96c2bb8691b2b98db05494d1fdb1890daade056fa497198d22266482499c49ebdfc2c1f4bf375feace4f8ca
|
data/.rubocop.yml
CHANGED
@@ -34,9 +34,6 @@ Naming/FileName:
|
|
34
34
|
Style/WordArray:
|
35
35
|
Enabled: false
|
36
36
|
|
37
|
-
Style/BracesAroundHashParameters:
|
38
|
-
Enabled: false
|
39
|
-
|
40
37
|
Style/RescueModifier:
|
41
38
|
Enabled: false
|
42
39
|
|
@@ -75,3 +72,6 @@ Rails/SkipsModelValidations:
|
|
75
72
|
|
76
73
|
Metrics:
|
77
74
|
Enabled: false
|
75
|
+
|
76
|
+
Layout/LineLength:
|
77
|
+
Enabled: false
|
data/.rubocop_todo.yml
CHANGED
@@ -5,3 +5,12 @@
|
|
5
5
|
# one by one as the offenses are removed from the code base.
|
6
6
|
# Note that changes in the inspected code, or installation of new
|
7
7
|
# versions of RuboCop, may require this file to be generated again.
|
8
|
+
|
9
|
+
Style/HashEachMethods:
|
10
|
+
Enabled: false
|
11
|
+
|
12
|
+
Style/HashTransformKeys:
|
13
|
+
Enabled: false
|
14
|
+
|
15
|
+
Style/HashTransformValues:
|
16
|
+
Enabled: false
|
@@ -23,12 +23,6 @@ module ForemanExpireHosts
|
|
23
23
|
distance_of_time_in_words(to_time, Time.current, options)
|
24
24
|
end
|
25
25
|
|
26
|
-
def input_group_addon(content, options = {})
|
27
|
-
content_tag :span, class: 'input-group-addon' do
|
28
|
-
content_tag :span, content, options
|
29
|
-
end
|
30
|
-
end
|
31
|
-
|
32
26
|
def datepicker_f(form, attr, options = {}, html_options = {})
|
33
27
|
field(form, attr, options) do
|
34
28
|
addClass options, 'form-control'
|
@@ -23,8 +23,10 @@ module ForemanExpireHosts
|
|
23
23
|
next if result.nil?
|
24
24
|
|
25
25
|
if result
|
26
|
+
logger.info "Action #{self.class.name} for host #{host.name} was successful."
|
26
27
|
self.successful_hosts << host
|
27
28
|
else
|
29
|
+
logger.info "Action #{self.class.name} for host #{host.name} failed."
|
28
30
|
self.failed_hosts << host
|
29
31
|
end
|
30
32
|
end
|
@@ -56,7 +58,7 @@ module ForemanExpireHosts
|
|
56
58
|
}
|
57
59
|
end
|
58
60
|
|
59
|
-
delegate :logger, :to => :
|
61
|
+
delegate :logger, :to => :ForemanExpireHosts
|
60
62
|
end
|
61
63
|
end
|
62
64
|
end
|
@@ -13,7 +13,7 @@ module ForemanExpireHosts
|
|
13
13
|
return false unless host.supports_power?
|
14
14
|
return unless host.power.ready?
|
15
15
|
|
16
|
-
logger.info "Powering down expired host in grace period #{host}"
|
16
|
+
logger.info "Powering down expired host in grace period #{host}."
|
17
17
|
host.power.stop
|
18
18
|
rescue StandardError
|
19
19
|
false
|
@@ -28,6 +28,8 @@ module ForemanExpireHosts
|
|
28
28
|
def deliver_mail_notification(recipient, hosts)
|
29
29
|
return true if hosts.empty?
|
30
30
|
|
31
|
+
logger.info "Deliving mail notification '#{humanized_name}' for hosts #{hosts.to_sentence} to #{recipient}."
|
32
|
+
|
31
33
|
build_mail_notification(recipient, hosts).deliver_now
|
32
34
|
rescue SocketError, Net::SMTPError => e
|
33
35
|
message = _('Failed to deliver %{notification_name} for Hosts %{hosts}') % {
|
@@ -39,11 +41,12 @@ module ForemanExpireHosts
|
|
39
41
|
|
40
42
|
def deliver_ui_notifications
|
41
43
|
all_hosts.each do |host|
|
44
|
+
logger.info "Deliving UI notification '#{humanized_name}' for host '#{host}'."
|
42
45
|
build_ui_notification(host).deliver!
|
43
46
|
end
|
44
47
|
end
|
45
48
|
|
46
|
-
delegate :logger, :to => :
|
49
|
+
delegate :logger, :to => :ForemanExpireHosts
|
47
50
|
|
48
51
|
def humanized_name
|
49
52
|
_('Notification')
|
@@ -7,7 +7,7 @@
|
|
7
7
|
:start_year => Date.today.year,
|
8
8
|
:help_block => ('<span class="pficon-warning-triangle-o"></span> '.html_safe + _('You are not allowed to change the expiry date of this host.') unless @host.can_modify_expiry_date?),
|
9
9
|
:disabled => !@host.can_modify_expiry_date?,
|
10
|
-
:help_inline => popover('Auto Expiry', _('
|
11
|
-
_('
|
10
|
+
:help_inline => popover('Auto Expiry', _('Expired hosts will be deleted automatically after the grace period has passed.') + '<br>'.html_safe +
|
11
|
+
_('If you do not want this host to expire and do not want it to be deleted automatically, do not specify an expiry date.'))
|
12
12
|
}
|
13
13
|
%>
|
@@ -0,0 +1,8 @@
|
|
1
|
+
SHELL=/bin/sh
|
2
|
+
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
|
3
|
+
|
4
|
+
RAILS_ENV=production
|
5
|
+
FOREMAN_HOME=/usr/share/foreman
|
6
|
+
|
7
|
+
# Send out notifications about expired hosts
|
8
|
+
45 7 * * * foreman /usr/sbin/foreman-rake expired_hosts:deliver_notifications >>/var/log/foreman/expired_hosts.log 2>&1
|
@@ -10,7 +10,10 @@ Gem::Specification.new do |s|
|
|
10
10
|
s.authors = ['Nagarjuna Rachaneni', 'Timo Goebel']
|
11
11
|
s.email = ['nn.nagarjuna@gmail.com', 'mail@timogoebel.name']
|
12
12
|
s.summary = 'Foreman plugin for limiting host lifetime'
|
13
|
-
s.description =
|
13
|
+
s.description = <<-DESC
|
14
|
+
A Foreman plugin that allows hosts to expire at a configurable date.
|
15
|
+
Hosts will be shut down and automatically deleted after a grace period.
|
16
|
+
DESC
|
14
17
|
s.homepage = 'https://github.com/theforeman/foreman_expire_hosts'
|
15
18
|
s.licenses = ['GPL-3.0']
|
16
19
|
|
@@ -23,7 +26,7 @@ Gem::Specification.new do |s|
|
|
23
26
|
s.add_dependency 'deface'
|
24
27
|
|
25
28
|
s.add_development_dependency 'rdoc'
|
26
|
-
s.add_development_dependency 'rubocop', '0.
|
27
|
-
s.add_development_dependency 'rubocop-performance'
|
28
|
-
s.add_development_dependency 'rubocop-rails', '~> 2.
|
29
|
+
s.add_development_dependency 'rubocop', '~> 0.80.0'
|
30
|
+
s.add_development_dependency 'rubocop-performance', '~> 1.5.2'
|
31
|
+
s.add_development_dependency 'rubocop-rails', '~> 2.4.2'
|
29
32
|
end
|
@@ -53,10 +53,10 @@ module ForemanExpireHosts
|
|
53
53
|
|
54
54
|
config.to_prepare do
|
55
55
|
begin
|
56
|
-
Host::Managed.include ForemanExpireHosts::HostExt
|
57
|
-
HostsHelper.include ForemanExpireHosts::HostsHelperExtensions
|
58
|
-
HostsController.prepend ForemanExpireHosts::HostControllerExtensions
|
59
|
-
AuditsHelper.include ForemanExpireHosts::AuditsHelperExtensions
|
56
|
+
::Host::Managed.include ForemanExpireHosts::HostExt
|
57
|
+
::HostsHelper.include ForemanExpireHosts::HostsHelperExtensions
|
58
|
+
::HostsController.prepend ForemanExpireHosts::HostControllerExtensions
|
59
|
+
::AuditsHelper.include ForemanExpireHosts::AuditsHelperExtensions
|
60
60
|
::Api::V2::HostsController.include ForemanExpireHosts::Api::V2::HostsControllerExtensions
|
61
61
|
rescue StandardError => e
|
62
62
|
Rails.logger.warn "ForemanExpireHosts: skipping engine hook (#{e})"
|
@@ -69,4 +69,8 @@ module ForemanExpireHosts
|
|
69
69
|
end
|
70
70
|
end
|
71
71
|
end
|
72
|
+
|
73
|
+
def self.logger
|
74
|
+
Foreman::Logging.logger('foreman_expire_hosts')
|
75
|
+
end
|
72
76
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: foreman_expire_hosts
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 7.0.
|
4
|
+
version: 7.0.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Nagarjuna Rachaneni
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2020-03-16 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: deface
|
@@ -43,46 +43,47 @@ dependencies:
|
|
43
43
|
name: rubocop
|
44
44
|
requirement: !ruby/object:Gem::Requirement
|
45
45
|
requirements:
|
46
|
-
- -
|
46
|
+
- - "~>"
|
47
47
|
- !ruby/object:Gem::Version
|
48
|
-
version: 0.
|
48
|
+
version: 0.80.0
|
49
49
|
type: :development
|
50
50
|
prerelease: false
|
51
51
|
version_requirements: !ruby/object:Gem::Requirement
|
52
52
|
requirements:
|
53
|
-
- -
|
53
|
+
- - "~>"
|
54
54
|
- !ruby/object:Gem::Version
|
55
|
-
version: 0.
|
55
|
+
version: 0.80.0
|
56
56
|
- !ruby/object:Gem::Dependency
|
57
57
|
name: rubocop-performance
|
58
58
|
requirement: !ruby/object:Gem::Requirement
|
59
59
|
requirements:
|
60
|
-
- - "
|
60
|
+
- - "~>"
|
61
61
|
- !ruby/object:Gem::Version
|
62
|
-
version:
|
62
|
+
version: 1.5.2
|
63
63
|
type: :development
|
64
64
|
prerelease: false
|
65
65
|
version_requirements: !ruby/object:Gem::Requirement
|
66
66
|
requirements:
|
67
|
-
- - "
|
67
|
+
- - "~>"
|
68
68
|
- !ruby/object:Gem::Version
|
69
|
-
version:
|
69
|
+
version: 1.5.2
|
70
70
|
- !ruby/object:Gem::Dependency
|
71
71
|
name: rubocop-rails
|
72
72
|
requirement: !ruby/object:Gem::Requirement
|
73
73
|
requirements:
|
74
74
|
- - "~>"
|
75
75
|
- !ruby/object:Gem::Version
|
76
|
-
version: 2.
|
76
|
+
version: 2.4.2
|
77
77
|
type: :development
|
78
78
|
prerelease: false
|
79
79
|
version_requirements: !ruby/object:Gem::Requirement
|
80
80
|
requirements:
|
81
81
|
- - "~>"
|
82
82
|
- !ruby/object:Gem::Version
|
83
|
-
version: 2.
|
84
|
-
description:
|
85
|
-
|
83
|
+
version: 2.4.2
|
84
|
+
description: |
|
85
|
+
A Foreman plugin that allows hosts to expire at a configurable date.
|
86
|
+
Hosts will be shut down and automatically deleted after a grace period.
|
86
87
|
email:
|
87
88
|
- nn.nagarjuna@gmail.com
|
88
89
|
- mail@timogoebel.name
|
@@ -138,6 +139,7 @@ files:
|
|
138
139
|
- config/routes.rb
|
139
140
|
- db/migrate/20150427101516_add_expiry_on_to_hosts.rb
|
140
141
|
- db/seeds.d/80_expire_hosts_ui_notification.rb
|
142
|
+
- extra/foreman_expire_hosts.cron
|
141
143
|
- foreman_expire_hosts.gemspec
|
142
144
|
- lib/expire_hosts_notifications.rb
|
143
145
|
- lib/foreman_expire_hosts.rb
|