diff options
| author | Max Martin <max@puppetlabs.com> | 2011-03-30 12:57:50 -0700 |
|---|---|---|
| committer | Max Martin <max@puppetlabs.com> | 2011-03-30 12:57:50 -0700 |
| commit | f5170fc2dbcbb4202b9b08e8944aa35f7a7bf7b8 (patch) | |
| tree | f2c9101dbf36c9fcbf51454c9baca9a7d92cb667 | |
| parent | ec3178f7f3e7d4afd167089bc78ec99b88a0b664 (diff) | |
| parent | f5aabf52631afbda92dca1b5a90a3198bc4baf99 (diff) | |
| download | puppet-f5170fc2dbcbb4202b9b08e8944aa35f7a7bf7b8.tar.gz puppet-f5170fc2dbcbb4202b9b08e8944aa35f7a7bf7b8.tar.xz puppet-f5170fc2dbcbb4202b9b08e8944aa35f7a7bf7b8.zip | |
Merge branch 'ticket/2.6.next/5908-update-rc' into 2.6.next
* ticket/2.6.next/5908-update-rc:
(#5908) Add support for new update-rc.d disable API
| -rwxr-xr-x | lib/puppet/provider/service/debian.rb | 8 | ||||
| -rwxr-xr-x | spec/unit/provider/service/debian_spec.rb | 16 |
2 files changed, 20 insertions, 4 deletions
diff --git a/lib/puppet/provider/service/debian.rb b/lib/puppet/provider/service/debian.rb index 3d09e2849..58b808a8e 100755 --- a/lib/puppet/provider/service/debian.rb +++ b/lib/puppet/provider/service/debian.rb @@ -22,8 +22,12 @@ Puppet::Type.type(:service).provide :debian, :parent => :init do # Remove the symlinks def disable - update_rc "-f", @resource[:name], "remove" - update_rc @resource[:name], "stop", "00", "1", "2", "3", "4", "5", "6", "." + if `dpkg --compare-versions $(dpkg-query -W --showformat '${Version}' sysv-rc) ge 2.88 ; echo $?`.to_i == 0 + update_rc @resource[:name], "disable" + else + update_rc "-f", @resource[:name], "remove" + update_rc @resource[:name], "stop", "00", "1", "2", "3", "4", "5", "6", "." + end end def enabled? diff --git a/spec/unit/provider/service/debian_spec.rb b/spec/unit/provider/service/debian_spec.rb index 8dee2ee94..440d4491b 100755 --- a/spec/unit/provider/service/debian_spec.rb +++ b/spec/unit/provider/service/debian_spec.rb @@ -52,8 +52,20 @@ describe provider_class do end describe "when disabling" do - it "should call update-rc.d twice" do - @provider.expects(:update_rc).twice + it "should be able to disable services with newer sysv-rc versions" do + @provider.stubs(:`).with("dpkg --compare-versions $(dpkg-query -W --showformat '${Version}' sysv-rc) ge 2.88 ; echo $?").returns "0" + + @provider.expects(:update_rc).with(@resource[:name], "disable") + + @provider.disable + end + + it "should be able to enable services with older sysv-rc versions" do + @provider.stubs(:`).with("dpkg --compare-versions $(dpkg-query -W --showformat '${Version}' sysv-rc) ge 2.88 ; echo $?").returns "1" + + @provider.expects(:update_rc).with("-f", @resource[:name], "remove") + @provider.expects(:update_rc).with(@resource[:name], "stop", "00", "1", "2", "3", "4", "5", "6", ".") + @provider.disable end end |
