foreman_expire_hosts 7.0.0 → 7.0.1
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/.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
|