diff options
| author | luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0> | 2007-02-01 00:56:49 +0000 |
|---|---|---|
| committer | luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0> | 2007-02-01 00:56:49 +0000 |
| commit | f1deaa8cc69a4d6255840cd2480be633635c2b86 (patch) | |
| tree | 95f60f0237dffdd5d09cdca5750732de4b6f9e7a | |
| parent | 173f5cc03640a119e77a39047cd7f4f6f0fa1a4e (diff) | |
| download | puppet-f1deaa8cc69a4d6255840cd2480be633635c2b86.tar.gz puppet-f1deaa8cc69a4d6255840cd2480be633635c2b86.tar.xz puppet-f1deaa8cc69a4d6255840cd2480be633635c2b86.zip | |
Fixing autogen so it passes on non-Darwin systems.
git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2140 980ebf18-57e1-0310-9a29-db15c13687c0
| -rw-r--r-- | lib/puppet/provider/nameservice.rb | 19 | ||||
| -rw-r--r-- | lib/puppet/provider/user/netinfo.rb | 7 | ||||
| -rwxr-xr-x | test/providers/user.rb | 5 |
3 files changed, 22 insertions, 9 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 diff --git a/test/providers/user.rb b/test/providers/user.rb index ab3c09ce0..67a5796c1 100755 --- a/test/providers/user.rb +++ b/test/providers/user.rb @@ -529,9 +529,10 @@ class TestUserProvider < Test::Unit::TestCase # Everyone should be able to autogenerate a uid assert_instance_of(Fixnum, provider.autogen(:uid)) - # If we're Darwin, then we should get results, but everyone else should get nil + # If we're Darwin, then we should get results, but everyone else should + # get nil darwin = (Facter.value(:operatingsystem) == "Darwin") - + should = { :comment => user[:name].capitalize, :home => "/var/empty", |
