diff options
author | Luke Kanies <luke@madstop.com> | 2008-05-21 00:30:24 -0500 |
---|---|---|
committer | Luke Kanies <luke@madstop.com> | 2008-05-21 00:30:24 -0500 |
commit | 4434072c7f51e4720b40aaea0637cb94dc6aefe5 (patch) | |
tree | deaff95e8283e62f4909964cd09a4193e560db79 /lib/puppet | |
parent | 419f2443c40116623b5c82f03eafcc85deeabcad (diff) | |
download | puppet-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.rb | 14 | ||||
-rw-r--r-- | lib/puppet/provider/user/ldap.rb | 14 |
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 |