From d2d7070fb614840db56ca3672548bf5c58a3e4f0 Mon Sep 17 00:00:00 2001 From: Brice Figureau Date: Tue, 15 Sep 2009 21:18:46 +0200 Subject: Fix #2640 - Daemontools and Runit were not creating the enable symlink Due to an incorrect tests, those providers weren't enabling themselves when starting, thus failing to create the symlink necessary for them to run. Signed-off-by: Brice Figureau --- lib/puppet/provider/service/daemontools.rb | 17 +++++++---------- lib/puppet/provider/service/runit.rb | 6 +++--- 2 files changed, 10 insertions(+), 13 deletions(-) (limited to 'lib') diff --git a/lib/puppet/provider/service/daemontools.rb b/lib/puppet/provider/service/daemontools.rb index f6eb5099f..2c6c6dbc7 100644 --- a/lib/puppet/provider/service/daemontools.rb +++ b/lib/puppet/provider/service/daemontools.rb @@ -2,7 +2,7 @@ # # author Brice Figureau Puppet::Type.type(:service).provide :daemontools, :parent => :base do - desc """Daemontools service management. + desc "Daemontools service management. This provider manages daemons running supervised by D.J.Bernstein daemontools. It tries to detect the service directory, with by order of preference: @@ -37,7 +37,7 @@ Puppet::Type.type(:service).provide :daemontools, :parent => :base do If a service has ensure => \"stopped\", it will only down the service, not remove the /path/to/service link. - """ + " commands :svc => "/usr/bin/svc", :svstat => "/usr/bin/svstat" @@ -124,11 +124,6 @@ Puppet::Type.type(:service).provide :daemontools, :parent => :base do return :stopped end - def startcmd - self.enable if ! FileTest.symlink?(self.service) - [command(:svc), "-u", self.service ] - end - def setupservice begin if resource[:manifest] @@ -144,10 +139,12 @@ Puppet::Type.type(:service).provide :daemontools, :parent => :base do def enabled? case self.status - when :running: + when :running + # obviously if the daemon is running then it is enabled return :true else - return :false + # the service is enabled if it is linked + return FileTest.symlink?(self.service) ? :true : :false end end @@ -191,7 +188,7 @@ Puppet::Type.type(:service).provide :daemontools, :parent => :base do end def start - enable unless enabled? + enable unless enabled? == :true svc "-u", self.service end diff --git a/lib/puppet/provider/service/runit.rb b/lib/puppet/provider/service/runit.rb index b2c8900b6..0182ec7d2 100644 --- a/lib/puppet/provider/service/runit.rb +++ b/lib/puppet/provider/service/runit.rb @@ -2,7 +2,7 @@ # # author Brice Figureau 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: @@ -31,7 +31,7 @@ Puppet::Type.type(:service).provide :runit, :parent => :daemontools do * status -""" +" commands :sv => "/usr/bin/sv" @@ -93,7 +93,7 @@ Puppet::Type.type(:service).provide :runit, :parent => :daemontools do # relay to the startcmd def start - enable unless enabled? + enable unless enabled? == :true ucommand( :start ) end -- cgit