summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lib/puppet/provider/package/portage.rb4
-rwxr-xr-xlib/puppet/provider/service/debian.rb2
-rwxr-xr-xtest/ral/providers/service/debian.rb71
3 files changed, 74 insertions, 3 deletions
diff --git a/lib/puppet/provider/package/portage.rb b/lib/puppet/provider/package/portage.rb
index 866ec8730..6a42444ef 100644
--- a/lib/puppet/provider/package/portage.rb
+++ b/lib/puppet/provider/package/portage.rb
@@ -55,7 +55,7 @@ Puppet::Type.type(:package).provide :portage, :parent => Puppet::Provider::Packa
# The common package name format.
def package_name
- "%s/%s" % [@resource[:category], @resource[:name]]
+ @resource[:category] ? "%s/%s" % [@resource[:category], @resource[:name]] : @resource[:name]
end
def uninstall
@@ -71,7 +71,7 @@ Puppet::Type.type(:package).provide :portage, :parent => Puppet::Provider::Packa
result_fields = [:category, :name, :ensure, :version_available, :slot, :vendor, :description]
search_field = @resource[:category] ? "--category-name" : "--name"
- search_value = @resource[:category] ? package_name : @resource[:name]
+ search_value = package_name
search_format = "<category> <name> [<installedversionsshort>] [<best>] <homepage> <description>"
begin
diff --git a/lib/puppet/provider/service/debian.rb b/lib/puppet/provider/service/debian.rb
index d810eac1b..0ba7e1a79 100755
--- a/lib/puppet/provider/service/debian.rb
+++ b/lib/puppet/provider/service/debian.rb
@@ -17,7 +17,7 @@ Puppet::Type.type(:service).provide :debian, :parent => :init do
# If it's enabled, then it will print output showing removal of
# links.
- if output =~ /etc\/rc[\dS].d|Nothing to do\./
+ if output =~ /etc\/rc[\dS].d|not installed/
return :true
else
return :false
diff --git a/test/ral/providers/service/debian.rb b/test/ral/providers/service/debian.rb
new file mode 100755
index 000000000..f74141f9e
--- /dev/null
+++ b/test/ral/providers/service/debian.rb
@@ -0,0 +1,71 @@
+#!/usr/bin/env ruby
+#
+# Created by David Schmitt on 2007-09-13
+# Copyright (c) 2007. All rights reserved.
+
+$:.unshift("../../../lib") if __FILE__ =~ /\.rb$/
+
+require 'puppettest'
+
+class TestDebianServiceProvider < Test::Unit::TestCase
+ include PuppetTest
+ include Puppet::Util
+
+ def prepare_provider(servicename, output)
+ service = Puppet::Type.type(:service).create(
+ :name => servicename, :provider => :debian
+ )
+
+ provider = service.provider
+ assert(provider, "did not get debian provider")
+
+ metaclass = class << provider
+ self
+ end
+
+ metaclass.instance_eval do
+ define_method :update do |*args|
+ return output
+ end
+ end
+
+ provider
+ end
+
+ def assert_enabled( servicename, output)
+ provider = prepare_provider( servicename, output )
+ assert_equal(:true, provider.enabled?,
+ "Service provider=debian thinks service is disabled, when it isn't")
+ end
+
+ def assert_disabled( servicename, output )
+ provider = prepare_provider( servicename, output )
+ assert_equal(:false, provider.enabled?,
+ "Service provider=debian thinks service is enabled, when it isn't")
+ end
+
+ # Testing #822
+ def test_file_rc
+ # These messages are from file-rc's
+ # update-rc.d -n -f $service remove
+ assert_enabled("test1", "/etc/runlevel.tmp not installed as /etc/runlevel.conf\n")
+ assert_disabled("test2", "Nothing to do.\n")
+ end
+
+ def test_sysv_rc
+ # These messages are from file-rc's
+ # update-rc.d -n -f $service remove
+ assert_enabled("test3", """ Removing any system startup links for /etc/init.d/test3 ...
+ /etc/rc0.d/K11test3
+ /etc/rc1.d/K11test3
+ /etc/rc2.d/S89test3
+ /etc/rc3.d/S89test3
+ /etc/rc4.d/S89test3
+ /etc/rc5.d/S89test3
+ /etc/rc6.d/K11test3
+""")
+ assert_disabled("test4", " Removing any system startup links for /etc/init.d/test4 ...\n")
+ end
+end
+
+# $Id$