summaryrefslogtreecommitdiffstats
path: root/lib/puppet
diff options
context:
space:
mode:
authorLuke Kanies <luke@madstop.com>2008-05-21 00:30:24 -0500
committerLuke Kanies <luke@madstop.com>2008-05-21 00:30:24 -0500
commit4434072c7f51e4720b40aaea0637cb94dc6aefe5 (patch)
treedeaff95e8283e62f4909964cd09a4193e560db79 /lib/puppet
parent419f2443c40116623b5c82f03eafcc85deeabcad (diff)
downloadpuppet-4434072c7f51e4720b40aaea0637cb94dc6aefe5.tar.gz
puppet-4434072c7f51e4720b40aaea0637cb94dc6aefe5.tar.xz
puppet-4434072c7f51e4720b40aaea0637cb94dc6aefe5.zip
The ldap user/group providers now work when no users/groups are in ldap yet.
Previously, they failed if you tried to get them to autogenerate an id, because they assumed that a result would be returned.
Diffstat (limited to 'lib/puppet')
-rw-r--r--lib/puppet/provider/group/ldap.rb14
-rw-r--r--lib/puppet/provider/user/ldap.rb14
2 files changed, 16 insertions, 12 deletions
diff --git a/lib/puppet/provider/group/ldap.rb b/lib/puppet/provider/group/ldap.rb
index 5af400a4e..a4870fc68 100644
--- a/lib/puppet/provider/group/ldap.rb
+++ b/lib/puppet/provider/group/ldap.rb
@@ -23,12 +23,14 @@ Puppet::Type.type(:group).provide :ldap, :parent => Puppet::Provider::Ldap do
# Find the next gid after the current largest gid.
provider = self
manager.generates(:gidNumber).with do
- largest = 0
- provider.manager.search.each do |hash|
- next unless value = hash[:gid]
- num = value[0].to_i
- if num > largest
- largest = num
+ largest = 500
+ if existing = provider.manager.search
+ existing.each do |hash|
+ next unless value = hash[:gid]
+ num = value[0].to_i
+ if num > largest
+ largest = num
+ end
end
end
largest + 1
diff --git a/lib/puppet/provider/user/ldap.rb b/lib/puppet/provider/user/ldap.rb
index d670ad435..0d149ac9a 100644
--- a/lib/puppet/provider/user/ldap.rb
+++ b/lib/puppet/provider/user/ldap.rb
@@ -32,12 +32,14 @@ Puppet::Type.type(:user).provide :ldap, :parent => Puppet::Provider::Ldap do
# Find the next uid after the current largest uid.
provider = self
manager.generates(:uidNumber).with do
- largest = 0
- provider.manager.search.each do |hash|
- next unless value = hash[:uid]
- num = value[0].to_i
- if num > largest
- largest = num
+ largest = 500
+ if existing = provider.manager.search
+ existing.each do |hash|
+ next unless value = hash[:uid]
+ num = value[0].to_i
+ if num > largest
+ largest = num
+ end
end
end
largest + 1