179: def find(key, *args)
180: request = request(:find, key, *args)
181: terminus = prepare(request)
182:
183: if result = find_in_cache(request)
184: return result
185: end
186:
187:
188: if ! request.ignore_terminus? and result = terminus.find(request)
189: result.expiration ||= self.expiration if result.respond_to?(:expiration)
190: if cache? and request.use_cache?
191: Puppet.info "Caching #{self.name} for #{request.key}"
192: cache.save request(:save, result, *args)
193: end
194:
195: return terminus.respond_to?(:filter) ? terminus.filter(result) : result
196: end
197:
198: nil
199: end