+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
-~----------~----~----~----~------~----~------~--~---

Reply via email to