summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorJames Turnbull <james@lovedthanlost.net>2009-07-16 21:28:09 +1000
committerJames Turnbull <james@lovedthanlost.net>2009-07-16 21:28:09 +1000
commitc86d44ed826b99752fd0ee85b2a77eaadd8a57ae (patch)
tree98a77088d26c64f8b2a1e6aaa5d97c11cb82c9ea /lib
parent910a5e2f39d2fefab28768f2a2d3d02de7abd54d (diff)
downloadpuppet-c86d44ed826b99752fd0ee85b2a77eaadd8a57ae.tar.gz
puppet-c86d44ed826b99752fd0ee85b2a77eaadd8a57ae.tar.xz
puppet-c86d44ed826b99752fd0ee85b2a77eaadd8a57ae.zip
Fixed #579 - puppet should try to clear solaris 10 services in maintenance state
Diffstat (limited to 'lib')
-rwxr-xr-xlib/puppet/provider/service/smf.rb9
1 files changed, 8 insertions, 1 deletions
diff --git a/lib/puppet/provider/service/smf.rb b/lib/puppet/provider/service/smf.rb
index 60cf305cb..7036865ae 100755
--- a/lib/puppet/provider/service/smf.rb
+++ b/lib/puppet/provider/service/smf.rb
@@ -55,7 +55,12 @@ Puppet::Type.type(:service).provide :smf, :parent => :base do
def startcmd
self.setupservice
- [command(:adm), :enable, @resource[:name]]
+ case self.status
+ when :stopped
+ [command(:adm), :enable, @resource[:name]]
+ when :maintenance
+ [command(:adm), :clear, @resource[:name]]
+ end
end
def status
@@ -79,6 +84,8 @@ Puppet::Type.type(:service).provide :smf, :parent => :base do
when "offline", "disabled", "uninitialized"
#self.warning "matched stopped %s" % line.inspect
return :stopped
+ when "maintenance"
+ return :maintenance
when "legacy_run"
raise Puppet::Error,
"Cannot manage legacy services through SMF"