puppet_agent_mgr 0.0.2 → 0.0.3
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.
@@ -56,14 +56,16 @@ module PuppetAgentMgr
|
|
56
56
|
true
|
57
57
|
end
|
58
58
|
|
59
|
-
def create_common_puppet_cli(noop, tags, environment, server)
|
59
|
+
def create_common_puppet_cli(noop=nil, tags=[], environment=nil, server=nil, splay=nil, splaylimit=nil)
|
60
60
|
opts = []
|
61
|
+
tags = [tags].flatten.compact
|
61
62
|
|
62
63
|
(host, port) = server.to_s.split(":")
|
63
64
|
|
64
65
|
raise("Invalid hostname '%s' specified" % host) if host && !(host =~ /\A(([a-zA-Z]|[a-zA-Z][a-zA-Z0-9\-]*[a-zA-Z0-9])\.)*([A-Za-z]|[A-Za-z][A-Za-z0-9\-]*[A-Za-z0-9])\Z/)
|
65
66
|
raise("Invalid master port '%s' specified" % port) if port && !(port =~ /\A\d+\Z/)
|
66
67
|
raise("Invalid environment '%s' specified" % environment) if environment && !validate_name(environment)
|
68
|
+
raise("Invalid splaylimit '%s' specified" % splaylimit) if splaylimit && !splaylimit.is_a?(Fixnum)
|
67
69
|
|
68
70
|
unless tags.empty?
|
69
71
|
[tags].flatten.each do |tag|
|
@@ -75,6 +77,9 @@ module PuppetAgentMgr
|
|
75
77
|
opts << "--tags %s" % tags.join(",") if !tags.empty?
|
76
78
|
end
|
77
79
|
|
80
|
+
opts << "--splay" if splay == true
|
81
|
+
opts << "--no-splay" if splay == false
|
82
|
+
opts << "--splaylimit %s" % splaylimit if splaylimit
|
78
83
|
opts << "--noop" if noop
|
79
84
|
opts << "--environment %s" % environment if environment
|
80
85
|
opts << "--server %s" % host if host
|
@@ -91,11 +96,13 @@ module PuppetAgentMgr
|
|
91
96
|
# :tags - an array of tags to limit the run to
|
92
97
|
# :environment - the environment to run
|
93
98
|
# :server - the puppet master to use, can be some.host or some.host:port
|
99
|
+
# :splay - enables or disables splay based on true/false
|
100
|
+
# :splaylimit - set the maximum splay time
|
94
101
|
#
|
95
102
|
# else a single background run will be attempted but this will fail if a idling
|
96
103
|
# daemon is present and :signal_daemon was false
|
97
104
|
def runonce!(options={})
|
98
|
-
valid_options = [:noop, :signal_daemon, :foreground_run, :tags, :environment, :server]
|
105
|
+
valid_options = [:noop, :signal_daemon, :foreground_run, :tags, :environment, :server, :splay, :splaylimit]
|
99
106
|
|
100
107
|
options.keys.each do |opt|
|
101
108
|
raise("Unknown option %s specified" % opt) unless valid_options.include?(opt)
|
@@ -104,6 +111,8 @@ module PuppetAgentMgr
|
|
104
111
|
raise "Puppet is currently applying a catalog, cannot run now" if applying?
|
105
112
|
raise "Puppet is disabled, cannot run now" if disabled?
|
106
113
|
|
114
|
+
splay = options.fetch(:splay, nil)
|
115
|
+
splaylimit = options.fetch(:splaylimit, nil)
|
107
116
|
noop = options.fetch(:noop, false)
|
108
117
|
signal_daemon = options.fetch(:signal_daemon, true)
|
109
118
|
foreground_run = options.fetch(:foreground_run, false)
|
@@ -111,7 +120,7 @@ module PuppetAgentMgr
|
|
111
120
|
tags = [ options[:tags] ].flatten.compact
|
112
121
|
server = options[:server]
|
113
122
|
|
114
|
-
clioptions = create_common_puppet_cli(noop, tags, environment, server)
|
123
|
+
clioptions = create_common_puppet_cli(noop, tags, environment, server, splay, splaylimit)
|
115
124
|
|
116
125
|
if idling? && signal_daemon && !clioptions.empty?
|
117
126
|
raise "Cannot specify any custom puppet options when the daemon is running"
|
@@ -10,6 +10,14 @@ module PuppetAgentMgr::V3
|
|
10
10
|
|
11
11
|
include PuppetAgentMgr::Common
|
12
12
|
|
13
|
+
def initialize
|
14
|
+
# there has to be a better way...
|
15
|
+
require 'puppet/util/run_mode'
|
16
|
+
Puppet.settings.preferred_run_mode = :agent
|
17
|
+
run_mode = Puppet::Util::RunMode[ Puppet.settings.preferred_run_mode ]
|
18
|
+
Puppet.settings.initialize_app_defaults(Puppet::Settings.app_defaults_for_run_mode(run_mode))
|
19
|
+
end
|
20
|
+
|
13
21
|
# enables the puppet agent, it can now start applying catalogs again
|
14
22
|
def enable!
|
15
23
|
raise "Already enabled" if enabled?
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: puppet_agent_mgr
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 25
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 0
|
9
|
-
-
|
10
|
-
version: 0.0.
|
9
|
+
- 3
|
10
|
+
version: 0.0.3
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- R.I.Pienaar
|