+1 On Sep 15, 2009, at 12:20 PM, Brice Figureau wrote:
> > 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 <[email protected]> > --- > lib/puppet/provider/service/daemontools.rb | 17 +++++++---------- > lib/puppet/provider/service/runit.rb | 6 +++--- > spec/unit/provider/service/daemontools.rb | 21 ++++++++++++++++++ > +-- > spec/unit/provider/service/runit.rb | 3 ++- > 4 files changed, 31 insertions(+), 16 deletions(-) > > diff --git a/lib/puppet/provider/service/daemontools.rb b/lib/puppet/ > provider/service/daemontools.rb > index f6eb509..2c6c6db 100644 > --- a/lib/puppet/provider/service/daemontools.rb > +++ b/lib/puppet/provider/service/daemontools.rb > @@ -2,7 +2,7 @@ > # > # author Brice Figureau <[email protected]> > 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 b2c8900..0182ec7 100644 > --- a/lib/puppet/provider/service/runit.rb > +++ b/lib/puppet/provider/service/runit.rb > @@ -2,7 +2,7 @@ > # > # author Brice Figureau <[email protected]> > 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 > > diff --git a/spec/unit/provider/service/daemontools.rb b/spec/unit/ > provider/service/daemontools.rb > index 4156afb..a2198bb 100755 > --- a/spec/unit/provider/service/daemontools.rb > +++ b/spec/unit/provider/service/daemontools.rb > @@ -65,7 +65,7 @@ describe provider_class do > > describe "when starting" do > it "should use 'svc' to start the service" do > - @provider.stubs(:enabled?).returns true > + @provider.stubs(:enabled?).returns :true > @provider.expects(:svc).with("-u", "/etc/service/ > myservice") > > @provider.start > @@ -74,7 +74,7 @@ describe provider_class do > it "should enable the service if it is not enabled" do > @provider.stubs(:svc) > > - @provider.expects(:enabled?).returns false > + @provider.expects(:enabled?).returns :false > @provider.expects(:enable) > > @provider.start > @@ -124,6 +124,23 @@ describe provider_class do > end > end > > + describe "when checking if the service is enabled?" do > + it "should return true if it is running" do > + @provider.stubs(:status).returns(:running) > + > + @provider.enabled?.should == :true > + end > + > + [true, false].each do |t| > + it "should return #{t} if the symlink exists" do > + @provider.stubs(:status).returns(:stopped) > + FileTest.stubs(:symlink?).returns(t) > + > + @provider.enabled?.should == "#{t}".to_sym > + end > + end > + end > + > describe "when checking status" do > it "should call the external command 'svstat /etc/service/ > myservice'" do > > @provider.expects(:svstat).with(File.join(@servicedir,"myservice")) > diff --git a/spec/unit/provider/service/runit.rb b/spec/unit/ > provider/service/runit.rb > index 4a7a238..ad0ad67 100755 > --- a/spec/unit/provider/service/runit.rb > +++ b/spec/unit/provider/service/runit.rb > @@ -64,13 +64,14 @@ describe provider_class do > @provider.stubs(:sv) > @provider.stubs(:ucommand) > > - @provider.expects(:enabled?).returns false > + @provider.expects(:enabled?).returns :false > @provider.expects(:enable) > > @provider.start > end > > it "should execute external command 'sv start /etc/service/ > myservice'" do > + @provider.stubs(:enabled?).returns :true > @provider.expects(:ucommand).with(:start).returns("") > @provider.start > end > -- > 1.6.4 > > > > -- At my lemonade stand I used to give the first glass away free and charge five dollars for the second glass. The refill contained the antidote. -- Emo Phillips --------------------------------------------------------------------- Luke Kanies | http://reductivelabs.com | http://madstop.com --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Puppet Developers" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/puppet-dev?hl=en -~----------~----~----~----~------~----~------~--~---
