summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMax Martin <max@puppetlabs.com>2011-03-30 12:57:50 -0700
committerMax Martin <max@puppetlabs.com>2011-03-30 12:57:50 -0700
commitf5170fc2dbcbb4202b9b08e8944aa35f7a7bf7b8 (patch)
treef2c9101dbf36c9fcbf51454c9baca9a7d92cb667
parentec3178f7f3e7d4afd167089bc78ec99b88a0b664 (diff)
parentf5aabf52631afbda92dca1b5a90a3198bc4baf99 (diff)
downloadpuppet-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-xlib/puppet/provider/service/debian.rb8
-rwxr-xr-xspec/unit/provider/service/debian_spec.rb16
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