foreman_hooks 0.3.2 → 0.3.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/README.md +7 -8
- data/examples/hook_functions.sh +1 -1
- data/lib/foreman_hooks.rb +8 -5
- data/lib/foreman_hooks/engine.rb +3 -0
- metadata +7 -13
- data/.gitignore +0 -5
- data/.travis.yml +0 -6
- data/Gemfile +0 -15
- data/foreman_hooks.gemspec +0 -22
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: fc10f54a3ede56411fb9702eacd35b19a340a49f
|
4
|
+
data.tar.gz: 33853d25749e467ae70a156c1ef59980874f6c93
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 498e8466d6626c622351b7f0047f36e9ce8836caf9bdd04af6428c2b0e47782ffab6507bf44f66338310179565fd5c349d34ae8359fb7eb70860a5ba0a5fbe8c
|
7
|
+
data.tar.gz: 96e4a89cf183390aefe482250a29c9cf604f7ea26c57aa86d1496878e6a28dbee8733e5c1d19a41f7d84d3ec4a36dc1b47347bdd19a2b276964ddda467143574
|
data/README.md
CHANGED
@@ -10,7 +10,10 @@ Foreman object, all with shell scripts.
|
|
10
10
|
|
11
11
|
# Installation:
|
12
12
|
|
13
|
-
|
13
|
+
If you're using an RPM based installation, please use the packages provided in
|
14
|
+
the plugin repos at http://yum.theforeman.org/plugins.
|
15
|
+
|
16
|
+
For other setups, include in your `~foreman/bundler.d/foreman_hooks.rb`
|
14
17
|
|
15
18
|
gem 'foreman_hooks'
|
16
19
|
|
@@ -18,11 +21,7 @@ Or from git:
|
|
18
21
|
|
19
22
|
gem 'foreman_hooks', :git => "https://github.com/domcleal/foreman_hooks.git"
|
20
23
|
|
21
|
-
Regenerate Gemfile.lock:
|
22
|
-
|
23
|
-
cd ~foreman && sudo -u foreman bundle install
|
24
|
-
|
25
|
-
To upgrade to newest version of the plugin:
|
24
|
+
Regenerate Gemfile.lock or upgrade to the latest version of the plugin:
|
26
25
|
|
27
26
|
cd ~foreman && sudo -u foreman bundle update foreman_hooks
|
28
27
|
|
@@ -47,7 +46,7 @@ become `host/managed` instead.
|
|
47
46
|
Every object (or model in Rails terms) in Foreman can have hooks. Check
|
48
47
|
`~foreman/app/models` for the full list, but these are the interesting ones:
|
49
48
|
|
50
|
-
* `host` (or `host
|
49
|
+
* `host/managed` (or `host` in Foreman 1.1)
|
51
50
|
* `report`
|
52
51
|
|
53
52
|
## Orchestration events
|
@@ -98,7 +97,7 @@ to read this with jgrep is provided in `examples/hook_functions.sh` and
|
|
98
97
|
sourcing this utility script will be enough for most users. Otherwise, you
|
99
98
|
may want to ensure stdin is closed.
|
100
99
|
|
101
|
-
echo '{"host"
|
100
|
+
echo '{"host":{"name":"foo.example.com"}}' \
|
102
101
|
| ~foreman/config/hooks/host/create/50_register_system.sh \
|
103
102
|
create foo.example.com
|
104
103
|
|
data/examples/hook_functions.sh
CHANGED
@@ -15,7 +15,7 @@ HOOK_EVENT=$1
|
|
15
15
|
# to_s representation of the object, e.g. host's fqdn
|
16
16
|
HOOK_OBJECT=$2
|
17
17
|
|
18
|
-
HOOK_OBJECT_FILE=$(mktemp foreman_hooks.XXXXXXXXXX)
|
18
|
+
HOOK_OBJECT_FILE=$(mktemp -t foreman_hooks.XXXXXXXXXX)
|
19
19
|
trap "rm -f $HOOK_OBJECT_FILE" EXIT
|
20
20
|
cat > $HOOK_OBJECT_FILE
|
21
21
|
|
data/lib/foreman_hooks.rb
CHANGED
@@ -65,6 +65,13 @@ module ForemanHooks
|
|
65
65
|
filtered
|
66
66
|
end
|
67
67
|
|
68
|
+
def attach_hook(klass, events)
|
69
|
+
if events.keys.detect { |event| ['create', 'update', 'destroy'].include? event }
|
70
|
+
klass.send(:include, ForemanHooks::OrchestrationHook) unless klass.ancestors.include?(ForemanHooks::OrchestrationHook)
|
71
|
+
end
|
72
|
+
klass.send(:include, ForemanHooks::CallbackHooks) unless klass.ancestors.include?(ForemanHooks::CallbackHooks)
|
73
|
+
end
|
74
|
+
|
68
75
|
def logger; Rails.logger; end
|
69
76
|
end
|
70
77
|
end
|
@@ -74,11 +81,7 @@ module ActiveSupport::Dependencies
|
|
74
81
|
def load_missing_constant_with_hooks(from_mod, constant_name)
|
75
82
|
ret = load_missing_constant_without_hooks(from_mod, constant_name)
|
76
83
|
ForemanHooks.hooks.each do |klass,events|
|
77
|
-
|
78
|
-
if events.keys.detect { |event| ['create', 'update', 'destroy'].include? event }
|
79
|
-
ret.send(:include, ForemanHooks::OrchestrationHook) unless ret.ancestors.include?(ForemanHooks::OrchestrationHook)
|
80
|
-
end
|
81
|
-
ret.send(:include, ForemanHooks::CallbackHooks) unless ret.ancestors.include?(ForemanHooks::CallbackHooks)
|
84
|
+
ForemanHooks.attach_hook(ret, events) if ret.name == klass
|
82
85
|
end
|
83
86
|
ret
|
84
87
|
end
|
data/lib/foreman_hooks/engine.rb
CHANGED
metadata
CHANGED
@@ -1,15 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: foreman_hooks
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
5
|
-
prerelease:
|
4
|
+
version: 0.3.3
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Dominic Cleal
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date: 2013-
|
11
|
+
date: 2013-08-29 00:00:00.000000000 Z
|
13
12
|
dependencies: []
|
14
13
|
description: Plugin engine for Foreman that enables running custom hook scripts on
|
15
14
|
Foreman events
|
@@ -21,16 +20,12 @@ extra_rdoc_files:
|
|
21
20
|
- README.md
|
22
21
|
- TODO
|
23
22
|
files:
|
24
|
-
- .gitignore
|
25
|
-
- .travis.yml
|
26
|
-
- Gemfile
|
27
23
|
- LICENSE
|
28
24
|
- README.md
|
29
25
|
- Rakefile
|
30
26
|
- TODO
|
31
27
|
- examples/hook_functions.sh
|
32
28
|
- examples/log.sh
|
33
|
-
- foreman_hooks.gemspec
|
34
29
|
- lib/foreman_hooks.rb
|
35
30
|
- lib/foreman_hooks/callback_hooks.rb
|
36
31
|
- lib/foreman_hooks/engine.rb
|
@@ -41,26 +36,25 @@ files:
|
|
41
36
|
homepage: http://github.com/domcleal/foreman_hooks
|
42
37
|
licenses:
|
43
38
|
- GPL-3
|
39
|
+
metadata: {}
|
44
40
|
post_install_message:
|
45
41
|
rdoc_options: []
|
46
42
|
require_paths:
|
47
43
|
- lib
|
48
44
|
required_ruby_version: !ruby/object:Gem::Requirement
|
49
|
-
none: false
|
50
45
|
requirements:
|
51
|
-
- -
|
46
|
+
- - '>='
|
52
47
|
- !ruby/object:Gem::Version
|
53
48
|
version: '0'
|
54
49
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
55
|
-
none: false
|
56
50
|
requirements:
|
57
|
-
- -
|
51
|
+
- - '>='
|
58
52
|
- !ruby/object:Gem::Version
|
59
53
|
version: '0'
|
60
54
|
requirements: []
|
61
55
|
rubyforge_project:
|
62
|
-
rubygems_version:
|
56
|
+
rubygems_version: 2.0.6
|
63
57
|
signing_key:
|
64
|
-
specification_version:
|
58
|
+
specification_version: 4
|
65
59
|
summary: Run custom hook scripts on Foreman events
|
66
60
|
test_files: []
|
data/.gitignore
DELETED
data/.travis.yml
DELETED
data/Gemfile
DELETED
@@ -1,15 +0,0 @@
|
|
1
|
-
source "http://rubygems.org"
|
2
|
-
|
3
|
-
FOREMAN_GEMFILE=File.expand_path('../test/foreman_app/Gemfile', __FILE__)
|
4
|
-
unless File.exist?(FOREMAN_GEMFILE)
|
5
|
-
puts <<MESSAGE
|
6
|
-
Foreman source code is not present. To get the latest version, run:
|
7
|
-
|
8
|
-
rake test:foreman_prepare
|
9
|
-
|
10
|
-
and try again.
|
11
|
-
MESSAGE
|
12
|
-
|
13
|
-
else
|
14
|
-
self.instance_eval(Bundler.read_file(FOREMAN_GEMFILE))
|
15
|
-
end
|
data/foreman_hooks.gemspec
DELETED
@@ -1,22 +0,0 @@
|
|
1
|
-
Gem::Specification.new do |s|
|
2
|
-
s.name = "foreman_hooks"
|
3
|
-
|
4
|
-
s.version = "0.3.2"
|
5
|
-
s.date = "2013-05-30"
|
6
|
-
|
7
|
-
s.summary = "Run custom hook scripts on Foreman events"
|
8
|
-
s.description = "Plugin engine for Foreman that enables running custom hook scripts on Foreman events"
|
9
|
-
s.homepage = "http://github.com/domcleal/foreman_hooks"
|
10
|
-
s.licenses = ["GPL-3"]
|
11
|
-
s.require_paths = ["lib"]
|
12
|
-
|
13
|
-
s.authors = ["Dominic Cleal"]
|
14
|
-
s.email = "dcleal@redhat.com"
|
15
|
-
|
16
|
-
s.extra_rdoc_files = [
|
17
|
-
"LICENSE",
|
18
|
-
"README.md",
|
19
|
-
"TODO"
|
20
|
-
]
|
21
|
-
s.files = `git ls-files`.split("\n")
|
22
|
-
end
|