# File lib/puppet/provider/nameservice.rb, line 152
152:     def autogen_id(field)
153:         highest = 0
154: 
155:         group = method = nil
156:         case @resource.class.name
157:         when :user; group = :passwd; method = :uid
158:         when :group; group = :group; method = :gid
159:         else
160:             raise Puppet::DevError, "Invalid resource name %s" % resource
161:         end
162: 
163:         # Make sure we don't use the same value multiple times
164:         if defined? @@prevauto
165:             @@prevauto += 1
166:         else
167:             Etc.send(group) { |obj|
168:                 if obj.gid > highest
169:                     unless obj.send(method) > 65000
170:                         highest = obj.send(method)
171:                     end
172:                 end
173:             }
174: 
175:             @@prevauto = highest + 1
176:         end
177: 
178:         return @@prevauto
179:     end