1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
|
module Puppet::Util
# The abstract base class for client configuration storage.
class ConfigStore
extend Puppet::Util
extend Puppet::Util::Docs
extend Puppet::Util::ClassGen
@loader = Puppet::Util::Autoload.new(self, "puppet/config_stores")
@stores = {}
# Add a new report type.
def self.newstore(name, options = {}, &block)
klass = genclass(name,
:block => block,
:prefix => "ConfigStore",
:hash => @stores,
:attributes => options
)
end
# Remove a store; really only used for testing.
def self.rmstore(name)
rmclass(name, :hash => @stores)
end
# Load a store.
def self.store(name)
name = symbolize(name)
unless @stores.include? name
if @loader.load(name)
unless @stores.include? name
Puppet.warning(
"Loaded report file for %s but report was not defined" %
name
)
return nil
end
else
return nil
end
end
@stores[name]
end
# Retrieve the config for a client.
def get(client)
raise Puppet::DevError, "%s has not overridden get" % self.class.name
end
# Store the config for a client.
def store(client, config)
raise Puppet::DevError, "%s has not overridden store" % self.class.name
end
def collect_exported(client, conditions)
raise Puppet::DevError, "%s has not overridden collect_exported" % self.class.name
end
end
end
|