foreman_osc 0.0.2 → 0.1.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/app/models/concerns/foreman_osc/parameter_extensions.rb +55 -0
- data/lib/foreman_osc/engine.rb +13 -0
- data/lib/foreman_osc/version.rb +1 -1
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 78500a3fb33cf8393b20a90d8f398402243bc1d2
|
4
|
+
data.tar.gz: faf9f9f026132d39f520a63441e98baebf0adea4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 84bd79796497db336a81fe2f716077697e45e5ec348ec5bc72279d613f0a00abb969493a3fea988db68f5c852ee8774445db01d7e57ebaea1d564f1fdf21ea58
|
7
|
+
data.tar.gz: 0d742af97b67b241bb37b0318327fa7634286fa1e4b0fb7c85668f0e492aee08014b7801b0450abb26cc332270ebf8ac72b485c36e28a8a1ddda1d65803e0f43
|
@@ -0,0 +1,55 @@
|
|
1
|
+
module ForemanOsc
|
2
|
+
module ParameterExtensions
|
3
|
+
extend ActiveSupport::Concern
|
4
|
+
|
5
|
+
included do
|
6
|
+
after_update :sync_tftp, if: :tftp_parameter_updated?
|
7
|
+
after_create :sync_tftp, if: :tftp_parameter_created?
|
8
|
+
end
|
9
|
+
|
10
|
+
def tftp_parameters
|
11
|
+
[
|
12
|
+
'nfsroot_host',
|
13
|
+
'nfsroot_path',
|
14
|
+
'nfsroot_opts',
|
15
|
+
'nfsroot_kernel_version',
|
16
|
+
'nfsroot_kernel',
|
17
|
+
'nfsroot_initrd',
|
18
|
+
]
|
19
|
+
end
|
20
|
+
|
21
|
+
def sync_tftp
|
22
|
+
if self.class.name == 'GroupParameter'
|
23
|
+
hosts = self.hostgroup.hosts
|
24
|
+
if hosts.empty?
|
25
|
+
hosts = Host::Managed.authorized.where(hostgroup: self.hostgroup.child_ids)
|
26
|
+
end
|
27
|
+
elsif self.class.name == 'HostParameter'
|
28
|
+
hosts = [self.host]
|
29
|
+
else
|
30
|
+
Foreman::Logging.logger('foreman_osc/tftp_sync').error("Don't know how to handle #{self.class.name}")
|
31
|
+
end
|
32
|
+
|
33
|
+
hosts.each do |host|
|
34
|
+
Foreman::Logging.logger('foreman_osc/tftp_sync').info(host.name)
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
def tftp_parameter_updated?
|
39
|
+
if self.tftp_parameters.include?(self.name) && self.value_changed?
|
40
|
+
return true
|
41
|
+
else
|
42
|
+
return false
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
def tftp_parameter_created?
|
47
|
+
if self.tftp_parameters.include?(self.name)
|
48
|
+
return true
|
49
|
+
else
|
50
|
+
return false
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
54
|
+
end
|
55
|
+
end
|
data/lib/foreman_osc/engine.rb
CHANGED
@@ -2,10 +2,15 @@ require 'deface'
|
|
2
2
|
|
3
3
|
module ForemanOsc
|
4
4
|
class Engine < ::Rails::Engine
|
5
|
+
engine_name 'foreman_osc'
|
6
|
+
|
7
|
+
config.autoload_paths += Dir["#{config.root}/app/models/concerns"]
|
5
8
|
|
6
9
|
initializer 'foreman_osc.register_plugin', :before => :finisher_hook do |_app|
|
7
10
|
Foreman::Plugin.register :foreman_osc do
|
8
11
|
requires_foreman '>= 1.11'
|
12
|
+
|
13
|
+
logger :tftp_sync, :enabled => true
|
9
14
|
end
|
10
15
|
end
|
11
16
|
|
@@ -13,5 +18,13 @@ module ForemanOsc
|
|
13
18
|
load 'osc.rake'
|
14
19
|
end
|
15
20
|
|
21
|
+
config.to_prepare do
|
22
|
+
begin
|
23
|
+
Parameter.send(:include, ForemanOsc::ParameterExtensions)
|
24
|
+
rescue => e
|
25
|
+
Rails.logger.warn "ForemanOsc: skipping engine hook (#{e})"
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
16
29
|
end
|
17
30
|
end
|
data/lib/foreman_osc/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: foreman_osc
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 0.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Trey Dockendorf
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-11-
|
11
|
+
date: 2016-11-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: deface
|
@@ -59,6 +59,7 @@ executables: []
|
|
59
59
|
extensions: []
|
60
60
|
extra_rdoc_files: []
|
61
61
|
files:
|
62
|
+
- app/models/concerns/foreman_osc/parameter_extensions.rb
|
62
63
|
- lib/osc.rake
|
63
64
|
- lib/tasks/foreman_osc_tasks.rake
|
64
65
|
- lib/foreman_osc/engine.rb
|