diff options
| author | Luke Kanies <luke@madstop.com> | 2009-02-06 17:27:44 -0600 |
|---|---|---|
| committer | Luke Kanies <luke@madstop.com> | 2009-02-06 18:08:43 -0600 |
| commit | 08a5d492dd3545366a2850d568d87aad0ba884e6 (patch) | |
| tree | d3e174eb3297ed1f0091b63809763c7f56cdfb00 /lib/puppet/network/handler | |
| parent | c7d178d04f324c010de1552083a954bb4b02217d (diff) | |
| download | puppet-08a5d492dd3545366a2850d568d87aad0ba884e6.tar.gz puppet-08a5d492dd3545366a2850d568d87aad0ba884e6.tar.xz puppet-08a5d492dd3545366a2850d568d87aad0ba884e6.zip | |
Adding an Agent::Runner class.
This will eventually be used by puppetrun, but
for now is just called by the old-school Runner handler.
Signed-off-by: Luke Kanies <luke@madstop.com>
Diffstat (limited to 'lib/puppet/network/handler')
| -rwxr-xr-x | lib/puppet/network/handler/runner.rb | 51 |
1 files changed, 9 insertions, 42 deletions
diff --git a/lib/puppet/network/handler/runner.rb b/lib/puppet/network/handler/runner.rb index c97e4791a..070cae114 100755 --- a/lib/puppet/network/handler/runner.rb +++ b/lib/puppet/network/handler/runner.rb @@ -1,3 +1,5 @@ +require 'puppet/agent/runner' + class Puppet::Network::Handler class MissingMasterError < RuntimeError; end # Cannot find the master client # A simple server for triggering a new run on a Puppet client. @@ -13,51 +15,16 @@ class Puppet::Network::Handler # Run the client configuration right now, optionally specifying # tags and whether to ignore schedules def run(tags = nil, ignoreschedules = false, fg = true, client = nil, clientip = nil) - # We need to retrieve the client - master = Puppet::Network::Client.client(:Master).instance - - unless master - raise MissingMasterError, "Could not find the master client" - end - - if Puppet::Util::Pidlock.new(Puppet[:puppetdlockfile]).locked? - Puppet.notice "Could not trigger run; already running" - return "running" - end - - if tags == "" - tags = nil - end - - if ignoreschedules == "" - ignoreschedules == nil - end - - msg = "" - if client - msg = "%s(%s) " % [client, clientip] - end - msg += "triggered run" % - if tags - msg += " with tags %s" % tags - end - - if ignoreschedules - msg += " ignoring schedules" - end + options = {} + options[:tags] = tags if tags + options[:ignoreschedules] = ignoreschedules if ignoreschedules + options[:background] = !fg - Puppet.notice msg + runner = Puppet::Agent::Runner.new(options) - # And then we need to tell it to run, with this extra info. - if fg - master.run(:tags => tags, :ignoreschedules => ignoreschedules) - else - Puppet.newthread do - master.run(:tags => tags, :ignoreschedules => ignoreschedules) - end - end + runner.run - return "success" + return runner.status end end end |
