diff options
Diffstat (limited to 'lib/puppet/provider')
-rw-r--r-- | lib/puppet/provider/nameservice.rb | 19 | ||||
-rw-r--r-- | lib/puppet/provider/user/netinfo.rb | 7 |
2 files changed, 19 insertions, 7 deletions
diff --git a/lib/puppet/provider/nameservice.rb b/lib/puppet/provider/nameservice.rb index da2de7d57..dc4aadcc9 100644 --- a/lib/puppet/provider/nameservice.rb +++ b/lib/puppet/provider/nameservice.rb @@ -5,6 +5,20 @@ require 'puppet' # provides a way for them all to be as similar as possible. class Puppet::Provider::NameService < Puppet::Provider class << self + def autogen_default(param) + if defined? @autogen_defaults + return @autogen_defaults[symbolize(param)] + else + return nil + end + end + + def autogen_defaults(hash) + @autogen_defaults ||= {} + hash.each do |param, value| + @autogen_defaults[symbolize(param)] = value + end + end def list objects = [] @@ -110,14 +124,15 @@ class Puppet::Provider::NameService < Puppet::Provider end end - # Autogenerate a value. Mostly used for uid/gid, but also used heavily with netinfo, because netinfo is stupid. + # Autogenerate a value. Mostly used for uid/gid, but also used heavily + # with netinfo, because netinfo is stupid. def autogen(field) field = symbolize(field) id_generators = {:user => :uid, :group => :gid} if id_generators[@model.class.name] == field return autogen_id(field) else - if defined?(AUTOGEN_DEFAULTS) and value = AUTOGEN_DEFAULTS[field] + if value = self.class.autogen_default(field) return value elsif respond_to?("autogen_%s" % [field]) return send("autogen_%s" % field) diff --git a/lib/puppet/provider/user/netinfo.rb b/lib/puppet/provider/user/netinfo.rb index de35213c1..3273c59cb 100644 --- a/lib/puppet/provider/user/netinfo.rb +++ b/lib/puppet/provider/user/netinfo.rb @@ -11,11 +11,8 @@ Puppet::Type.type(:user).provide :netinfo, :parent => Puppet::Provider::NameServ options :comment, :key => "realname" defaultfor :operatingsystem => :darwin - - AUTOGEN_DEFAULTS = { - :home => "/var/empty", - :shell => "/usr/bin/false" - } + + autogen_defaults :home => "/var/empty", :shell => "/usr/bin/false" def autogen_comment return @model[:name].capitalize |