summaryrefslogtreecommitdiffstats
path: root/lib/puppet/indirector/memory.rb
blob: c44d62de2decf57a6493b23bf5c4c8d2e2cf9ed1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
require 'puppet/indirector/terminus'

# Manage a memory-cached list of instances.
class Puppet::Indirector::Memory < Puppet::Indirector::Terminus
  def initialize
    @instances = {}
  end

  def destroy(request)
    raise ArgumentError.new("Could not find #{request.key} to destroy") unless @instances.include?(request.key)
    @instances.delete(request.key)
  end

  def find(request)
    @instances[request.key]
  end

  def save(request)
    @instances[request.key] = request.instance
  end
end