132: def autogen_id(field)
133: highest = 0
134:
135: group = method = nil
136: case @resource.class.name
137: when :user; group = :passwd; method = :uid
138: when :group; group = :group; method = :gid
139: else
140: raise Puppet::DevError, "Invalid resource name #{resource}"
141: end
142:
143:
144: if defined?(@@prevauto)
145: @@prevauto += 1
146: else
147: Etc.send(group) { |obj|
148: if obj.gid > highest
149: highest = obj.send(method) unless obj.send(method) > 65000
150: end
151: }
152:
153: @@prevauto = highest + 1
154: end
155:
156: @@prevauto
157: end