From f00a7db3072b98d6ec599dd271705c91f20ffcb6 Mon Sep 17 00:00:00 2001 From: luke Date: Mon, 9 Jan 2006 04:20:45 +0000 Subject: All tests pass now, although the lack of service support on os x means that i have now disabled services on it git-svn-id: https://reductivelabs.com/svn/puppet/trunk@789 980ebf18-57e1-0310-9a29-db15c13687c0 --- lib/puppet/type/group.rb | 3 ++- lib/puppet/type/nameservice.rb | 12 ++++++++++-- lib/puppet/type/nameservice/netinfo.rb | 25 +++++++++++++++++-------- lib/puppet/type/user.rb | 2 +- lib/puppet/util.rb | 6 +++++- 5 files changed, 35 insertions(+), 13 deletions(-) (limited to 'lib') diff --git a/lib/puppet/type/group.rb b/lib/puppet/type/group.rb index 8a2301838..05a71119e 100755 --- a/lib/puppet/type/group.rb +++ b/lib/puppet/type/group.rb @@ -58,7 +58,8 @@ module Puppet end if gid == :auto unless self.class.autogen? - gid = autogen + gid = autogen() + @parent.log "autogenerated value as %s" % gid end end end diff --git a/lib/puppet/type/nameservice.rb b/lib/puppet/type/nameservice.rb index 4fccaeb17..5f6d15e62 100755 --- a/lib/puppet/type/nameservice.rb +++ b/lib/puppet/type/nameservice.rb @@ -6,6 +6,11 @@ class Type class << self attr_reader :parentstate, :parentmodule + # Seems a lot like this should be elsewhere, + # but we'd have to have a different parent class for + # netinfo types if that were the case. + attr_accessor :netinfodir + def newstate(*args, &block) s = super(*args, &block) @@ -44,11 +49,14 @@ class State @isautogen = true end + def noautogen + @isautogen = false + end + # Can we autogenerate a value for this field? If a required field # can be autogenerated then we don't require a value. def autogen? - if self.method_defined?(:autogen) or - (defined? @isautogen and @isautogen) + if defined? @isautogen and @isautogen return true else return false diff --git a/lib/puppet/type/nameservice/netinfo.rb b/lib/puppet/type/nameservice/netinfo.rb index f8334c774..e011202ef 100644 --- a/lib/puppet/type/nameservice/netinfo.rb +++ b/lib/puppet/type/nameservice/netinfo.rb @@ -56,22 +56,31 @@ module Puppet # abstract the differents using a simple map where necessary # (the netinfokeymap). class NetInfoState < Puppet::State::NSSState - @netinfokeymap = { - :comment => "realname" - } - - @@allatonce = false - # Similar to posixmethod, what key do we use to get data? Defaults # to being the object name. def self.netinfokey - if @netinfokeymap.include?(self.name) - return @netinfokeymap[self.name] + if defined? @netinfokey + return @netinfokey else return self.name end end + def self.setkey(key) + @netinfokey = key + end + + def self.finish + @allatonce = false + case self.name + when :comment: setkey "realname" + when :uid: + noautogen + when :gid: + noautogen + end + end + # Retrieve the data, yo. def retrieve NetInfo.flush diff --git a/lib/puppet/type/user.rb b/lib/puppet/type/user.rb index fddf64a85..a56e92a6f 100755 --- a/lib/puppet/type/user.rb +++ b/lib/puppet/type/user.rb @@ -182,7 +182,7 @@ module Puppet self.class.states.each { |state| next if @states.include?(state.name) - unless state.autogen? or state.optional? + unless state.autogen? or state.isoptional? if state.method_defined?(:autogen) self[state.name] = :auto else diff --git a/lib/puppet/util.rb b/lib/puppet/util.rb index 87e80b143..650eb484a 100644 --- a/lib/puppet/util.rb +++ b/lib/puppet/util.rb @@ -98,7 +98,11 @@ module Util rescue raise ensure - File.delete(lock) + # I don't really understand how the lock file could disappear, + # but just in case... + if FileTest.exists?(lock) + File.delete(lock) + end end end -- cgit