summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xlib/puppet/type/group.rb27
-rwxr-xr-xlib/puppet/type/nameservice.rb1
-rw-r--r--lib/puppet/type/pfile/target.rb2
3 files changed, 19 insertions, 11 deletions
diff --git a/lib/puppet/type/group.rb b/lib/puppet/type/group.rb
index 4e0bc4344..8815b99ed 100755
--- a/lib/puppet/type/group.rb
+++ b/lib/puppet/type/group.rb
@@ -112,15 +112,23 @@ module Puppet
def autogen
highest = 0
- Etc.group { |group|
- if group.gid > highest
- unless group.gid > 65000
- highest = group.gid
+
+ # Make sure we don't use the same value multiple times
+ if defined? @@prevauto
+ @@prevauto += 1
+ else
+ Etc.group { |group|
+ if group.gid > highest
+ unless group.gid > 65000
+ highest = group.gid
+ end
end
- end
- }
+ }
- return highest + 1
+ @@prevauto = highest + 1
+ end
+
+ return @@prevauto
end
munge do |gid|
@@ -136,15 +144,14 @@ module Puppet
self.devfail "Invalid GID %s" % gid
end
if gid == :auto
+ # FIXME this should be done at sync time, not
+ # here.
unless self.class.autogen?
gid = autogen()
- @parent.log "autogenerated value as %s" % gid
end
end
end
- self.info "Setting gid to %s" % gid
-
return gid
end
end
diff --git a/lib/puppet/type/nameservice.rb b/lib/puppet/type/nameservice.rb
index bf83ac439..c9106a532 100755
--- a/lib/puppet/type/nameservice.rb
+++ b/lib/puppet/type/nameservice.rb
@@ -221,6 +221,7 @@ class State
Puppet.debug "%s is not allatonce" % @parent.class.name
if type == "create"
@parent.eachstate { |state|
+ next if state.name == :ensure
state.sync
state.retrieve
}
diff --git a/lib/puppet/type/pfile/target.rb b/lib/puppet/type/pfile/target.rb
index efcb31a82..c136cc7ad 100644
--- a/lib/puppet/type/pfile/target.rb
+++ b/lib/puppet/type/pfile/target.rb
@@ -15,7 +15,7 @@ module Puppet
@linkmaker = true
else
if stat = @parent.stat
- if tstat = File.lstat(self.should) and tstat.ftype == "directory" and @parent.recurse?
+ if File.exists?(self.should) and tstat = File.lstat(self.should) and tstat.ftype == "directory" and @parent.recurse?
@parent[:ensure] = :directory
@is = self.should
@linkmaker = true