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:
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