lib/puppet/provider/service/runit.rb in puppet-0.25.5 vs lib/puppet/provider/service/runit.rb in puppet-2.6.0

- old
+ new

@@ -1,103 +1,103 @@ # Daemontools service management # # author Brice Figureau <brice-puppet@daysofwonder.com> Puppet::Type.type(:service).provide :runit, :parent => :daemontools do - desc "Runit service management. + desc "Runit service management. This provider manages daemons running supervised by Runit. It tries to detect the service directory, with by order of preference: - * /service - * /var/service - * /etc/service + * /service + * /var/service + * /etc/service The daemon directory should be placed in a directory that can be by default in: - * /etc/sv + * /etc/sv or this can be overriden in the service resource parameters:: - service { - \"myservice\": - provider => \"runit\", path => \"/path/to/daemons\"; - } + service { + \"myservice\": + provider => \"runit\", path => \"/path/to/daemons\"; + } This provider supports out of the box: - * start/stop - * enable/disable - * restart - * status + * start/stop + * enable/disable + * restart + * status " - commands :sv => "/usr/bin/sv" + commands :sv => "/usr/bin/sv" - class << self - # this is necessary to autodetect a valid resource - # default path, since there is no standard for such directory. - def defpath(dummy_argument=:work_arround_for_ruby_GC_bug) - unless defined?(@defpath) and @defpath - ["/etc/sv", "/var/lib/service"].each do |path| - if FileTest.exist?(path) - @defpath = path - break - end - end - raise "Could not find the daemon directory (tested [/var/lib/service,/etc])" unless @defpath - end - @defpath + class << self + # this is necessary to autodetect a valid resource + # default path, since there is no standard for such directory. + def defpath(dummy_argument=:work_arround_for_ruby_GC_bug) + unless @defpath + ["/etc/sv", "/var/lib/service"].each do |path| + if FileTest.exist?(path) + @defpath = path + break + end end + raise "Could not find the daemon directory (tested [/var/lib/service,/etc])" unless @defpath + end + @defpath end + end - # find the service dir on this node - def servicedir - unless defined?(@servicedir) and @servicedir - ["/service", "/etc/service","/var/service"].each do |path| - if FileTest.exist?(path) - @servicedir = path - break - end - end - raise "Could not find service directory" unless @servicedir + # find the service dir on this node + def servicedir + unless @servicedir + ["/service", "/etc/service","/var/service"].each do |path| + if FileTest.exist?(path) + @servicedir = path + break end - @servicedir + end + raise "Could not find service directory" unless @servicedir end + @servicedir + end - def status - begin - output = sv "status", self.daemon - return :running if output =~ /^run: / - rescue Puppet::ExecutionFailure => detail - unless detail.message =~ /(warning: |runsv not running$)/ - raise Puppet::Error.new( "Could not get status for service %s: %s" % [ resource.ref, detail] ) - end - end - return :stopped + def status + begin + output = sv "status", self.daemon + return :running if output =~ /^run: / + rescue Puppet::ExecutionFailure => detail + unless detail.message =~ /(warning: |runsv not running$)/ + raise Puppet::Error.new( "Could not get status for service #{resource.ref}: #{detail}" ) + end end + :stopped + end - def stop - sv "stop", self.service - end + def stop + sv "stop", self.service + end - def start - enable unless enabled? == :true - sv "start", self.service - end + def start + enable unless enabled? == :true + sv "start", self.service + end - def restart - sv "restart", self.service - end + def restart + sv "restart", self.service + end - # disable by removing the symlink so that runit - # doesn't restart our service behind our back - # note that runit doesn't need to perform a stop - # before a disable - def disable - # unlink the daemon symlink to disable it - File.unlink(self.service) if FileTest.symlink?(self.service) - end + # disable by removing the symlink so that runit + # doesn't restart our service behind our back + # note that runit doesn't need to perform a stop + # before a disable + def disable + # unlink the daemon symlink to disable it + File.unlink(self.service) if FileTest.symlink?(self.service) + end end