diff options
| author | Luke Kanies <luke@madstop.com> | 2007-10-04 16:55:53 -0500 |
|---|---|---|
| committer | Luke Kanies <luke@madstop.com> | 2007-10-04 16:55:53 -0500 |
| commit | 95b2b93290f619c20a1c2dca11dd9909477857f8 (patch) | |
| tree | 203bf772bc5a8450dc05ec445023886a8ccd4f41 /lib | |
| parent | a93db8728ddc9a4b26dec738ff39863666ea229e (diff) | |
| parent | 8ba3a701fdcd11509acc032b0524e2e8c9e6857a (diff) | |
| download | puppet-95b2b93290f619c20a1c2dca11dd9909477857f8.tar.gz puppet-95b2b93290f619c20a1c2dca11dd9909477857f8.tar.xz puppet-95b2b93290f619c20a1c2dca11dd9909477857f8.zip | |
Merge branch 'master' of git://michaelobrien.info/puppet
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/puppet/property.rb | 3 | ||||
| -rwxr-xr-x | lib/puppet/provider/package/dpkg.rb | 9 | ||||
| -rwxr-xr-x | lib/puppet/provider/package/sun.rb | 2 | ||||
| -rw-r--r-- | lib/puppet/provider/service/freebsd.rb | 46 |
4 files changed, 56 insertions, 4 deletions
diff --git a/lib/puppet/property.rb b/lib/puppet/property.rb index cd3c35b38..84620bfb6 100644 --- a/lib/puppet/property.rb +++ b/lib/puppet/property.rb @@ -56,8 +56,7 @@ class Property < Puppet::Parameter # Look up a value's name, so we can find options and such. def self.value_name(value) - name = symbolize(value) - if @parametervalues[name] + if value != '' and name = symbolize(value) and @parametervalues.include?(name) return name elsif ary = self.match?(value) return ary[0] diff --git a/lib/puppet/provider/package/dpkg.rb b/lib/puppet/provider/package/dpkg.rb index 44e6a985c..512170a73 100755 --- a/lib/puppet/provider/package/dpkg.rb +++ b/lib/puppet/provider/package/dpkg.rb @@ -56,9 +56,18 @@ Puppet::Type.type(:package).provide :dpkg, :parent => Puppet::Provider::Package dpkg "-i", file end + def update + self.install + end + # Return the version from the package. def latest output = dpkg_deb "--show", @resource[:source] + matches = /^(\S+)\t(\S+)$/.match(output).captures + unless matches[0].match(@resource[:name]) + Puppet.warning "source doesn't contain named package, but %s" % matches[0] + end + matches[1] end def query diff --git a/lib/puppet/provider/package/sun.rb b/lib/puppet/provider/package/sun.rb index e204e6d58..927596df2 100755 --- a/lib/puppet/provider/package/sun.rb +++ b/lib/puppet/provider/package/sun.rb @@ -51,8 +51,6 @@ Puppet::Type.type(:package).provide :sun, :parent => Puppet::Provider::Package d unless names[name].nil? hash[names[name]] = value end - else - raise "Could not find %s" % name end when /\s+\d+.+/: # nothing; we're ignoring the FILES info diff --git a/lib/puppet/provider/service/freebsd.rb b/lib/puppet/provider/service/freebsd.rb new file mode 100644 index 000000000..31fdacb86 --- /dev/null +++ b/lib/puppet/provider/service/freebsd.rb @@ -0,0 +1,46 @@ +# Manage FreeBSD services. +Puppet::Type.type(:service).provide :freebsd, :parent => :init do + desc "FreeBSD's (and probably NetBSD?) form of ``init``-style service + management; uses ``rc-update`` for service enabling and disabling." + + commands :rcupdate => "/usr/local/sbin/rc-update" + + defaultfor :operatingsystem => :freebsd + + def self.defpath + superclass.defpath + end + + def disable + begin + output = rcupdate("disable", @model[:name]) + rescue Puppet::ExecutionFailure + raise Puppet::Error, "Could not disable %s: %s" % + [self.name, output] + end + end + + def enabled? + begin + output = rcupdate("enabled", @model[:name]) + rescue Puppet::ExecutionFailure + return :false + end + + # If it's enabled, output is 0 + if output =~ /^0$/ + return :true + end + + return :false + end + + def enable + begin + output = rcupdate("enable", @model[:name]) + rescue Puppet::ExecutionFailure => detail + raise Puppet::Error, "Could not enable %s: %s" % + [self.name, detail] + end + end +end |
