39
|
1 class Puppet::Provider::Firewall < Puppet::Provider
|
|
2
|
|
3 # Prefetch our rule list. This is ran once every time before any other
|
|
4 # action (besides initialization of each object).
|
|
5 def self.prefetch(resources)
|
|
6 debug("[prefetch(resources)]")
|
|
7 instances.each do |prov|
|
|
8 if resource = resources[prov.name] || resources[prov.name.downcase]
|
|
9 resource.provider = prov
|
|
10 end
|
|
11 end
|
|
12 end
|
|
13
|
|
14 # Look up the current status. This allows us to conventiently look up
|
|
15 # existing status with properties[:foo].
|
|
16 def properties
|
|
17 if @property_hash.empty?
|
|
18 @property_hash = query || {:ensure => :absent}
|
|
19 @property_hash[:ensure] = :absent if @property_hash.empty?
|
|
20 end
|
|
21 @property_hash.dup
|
|
22 end
|
|
23
|
|
24 # Pull the current state of the list from the full list. We're
|
|
25 # getting some double entendre here....
|
|
26 def query
|
|
27 self.class.instances.each do |instance|
|
|
28 if instance.name == self.name or instance.name.downcase == self.name
|
|
29 return instance.properties
|
|
30 end
|
|
31 end
|
|
32 nil
|
|
33 end
|
|
34 end
|