diff options
| author | Anselm Strauss <anselm@beastie.ttyv0.net> | 2010-02-02 11:03:43 +0100 |
|---|---|---|
| committer | test branch <puppet-dev@googlegroups.com> | 2010-02-17 06:50:53 -0800 |
| commit | 5f72eb9820717df5e85f749ff647d35388f443d7 (patch) | |
| tree | 7bebef588d366a2466884d276eeb436698e65d87 /lib | |
| parent | c3cd24bca33e6918598a73fd04996592509ab229 (diff) | |
| download | puppet-5f72eb9820717df5e85f749ff647d35388f443d7.tar.gz puppet-5f72eb9820717df5e85f749ff647d35388f443d7.tar.xz puppet-5f72eb9820717df5e85f749ff647d35388f443d7.zip | |
Re-included old BSD service provider, made new one default for FreeBSD
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/puppet/provider/service/bsd.rb | 54 | ||||
| -rw-r--r-- | lib/puppet/provider/service/freebsd.rb | 3 |
2 files changed, 56 insertions, 1 deletions
diff --git a/lib/puppet/provider/service/bsd.rb b/lib/puppet/provider/service/bsd.rb new file mode 100644 index 000000000..fed65591d --- /dev/null +++ b/lib/puppet/provider/service/bsd.rb @@ -0,0 +1,54 @@ +# Manage FreeBSD services. +Puppet::Type.type(:service).provide :bsd, :parent => :init do + desc "FreeBSD's (and probably NetBSD?) form of ``init``-style service management. + + Uses ``rc.conf.d`` for service enabling and disabling. + +" + + confine :operatingsystem => [:freebsd, :netbsd, :openbsd] + + @@rcconf_dir = '/etc/rc.conf.d' + + def self.defpath + superclass.defpath + end + + # remove service file from rc.conf.d to disable it + def disable + rcfile = File.join(@@rcconf_dir, @model[:name]) + if File.exists?(rcfile) + File.delete(rcfile) + end + end + + # if the service file exists in rc.conf.d then it's already enabled + def enabled? + rcfile = File.join(@@rcconf_dir, @model[:name]) + if File.exists?(rcfile) + return :true + end + + return :false + end + + # enable service by creating a service file under rc.conf.d with the + # proper contents + def enable + if not File.exists?(@@rcconf_dir) + Dir.mkdir(@@rcconf_dir) + end + rcfile = File.join(@@rcconf_dir, @model[:name]) + open(rcfile, 'w') { |f| f << "%s_enable=\"YES\"\n" % @model[:name] } + end + + # Override stop/start commands to use one<cmd>'s and the avoid race condition + # where provider trys to stop/start the service before it is enabled + def startcmd + [self.initscript, :onestart] + end + + def stopcmd + [self.initscript, :onestop] + end +end diff --git a/lib/puppet/provider/service/freebsd.rb b/lib/puppet/provider/service/freebsd.rb index e124b208a..a98f8f853 100644 --- a/lib/puppet/provider/service/freebsd.rb +++ b/lib/puppet/provider/service/freebsd.rb @@ -1,8 +1,9 @@ -Puppet::Type.type(:service).provide :freebsd2, :parent => :init do +Puppet::Type.type(:service).provide :freebsd, :parent => :init do desc "Provider for FreeBSD. Makes use of rcvar argument of init scripts and parses/edits rc files." confine :operatingsystem => [:freebsd] + defaultfor :operatingsystem => [:freebsd] @@rcconf = '/etc/rc.conf' @@rcconf_local = '/etc/rc.conf.local' |
