summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorBrice Figureau <brice-puppet@daysofwonder.com>2009-09-15 21:18:46 +0200
committerJames Turnbull <james@lovedthanlost.net>2009-09-16 11:44:34 +1000
commitd2d7070fb614840db56ca3672548bf5c58a3e4f0 (patch)
treef46ffc5aff86d4b981f2a14766333edd0ac360bb /lib
parentd21b2664abcb13df2967af8caa881e41b19b3b81 (diff)
downloadpuppet-d2d7070fb614840db56ca3672548bf5c58a3e4f0.tar.gz
puppet-d2d7070fb614840db56ca3672548bf5c58a3e4f0.tar.xz
puppet-d2d7070fb614840db56ca3672548bf5c58a3e4f0.zip
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 <brice-puppet@daysofwonder.com>
Diffstat (limited to 'lib')
-rw-r--r--lib/puppet/provider/service/daemontools.rb17
-rw-r--r--lib/puppet/provider/service/runit.rb6
2 files changed, 10 insertions, 13 deletions
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 <brice-puppet@daysofwonder.com>
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 <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:
@@ -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