summaryrefslogtreecommitdiffstats
path: root/lib/puppet/network/handler
diff options
context:
space:
mode:
authorLuke Kanies <luke@madstop.com>2009-02-06 17:27:44 -0600
committerLuke Kanies <luke@madstop.com>2009-02-06 18:08:43 -0600
commit08a5d492dd3545366a2850d568d87aad0ba884e6 (patch)
treed3e174eb3297ed1f0091b63809763c7f56cdfb00 /lib/puppet/network/handler
parentc7d178d04f324c010de1552083a954bb4b02217d (diff)
downloadpuppet-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-xlib/puppet/network/handler/runner.rb51
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