Class: Ironfan::Provider::Resource
- Inherits:
-
Builder
- Object
- Builder
- Ironfan::Provider::Resource
show all
- Defined in:
- lib/ironfan/headers.rb,
lib/ironfan/provider.rb
Direct Known Subclasses
ChefServer::Client, ChefServer::Node, ChefServer::Role, Ec2::EbsVolume, Ec2::ElasticIp, Ec2::ElasticLoadBalancer, Ec2::IamServerCertificate, Ec2::Keypair, Ec2::PlacementGroup, Ec2::SecurityGroup, OpenStack::ElasticIp, OpenStack::Keypair, OpenStack::SecurityGroup, Ironfan::Provider::Rds::SecurityGroup, Vsphere::Keypair
Constant Summary
collapse
- @@known =
{}
Instance Attribute Summary collapse
Class Method Summary
collapse
Instance Method Summary
collapse
Methods inherited from Builder
ui, #ui
Instance Attribute Details
#owner ⇒ Object
Returns the value of attribute owner.
71
72
73
|
# File 'lib/ironfan/provider.rb', line 71
def owner
@owner
end
|
#users ⇒ Object
Returns the value of attribute users.
72
73
74
|
# File 'lib/ironfan/provider.rb', line 72
def users
@users
end
|
Class Method Details
.aggregate!(*p) ⇒ Object
107
|
# File 'lib/ironfan/provider.rb', line 107
def self.aggregate!(*p) Ironfan.noop(self,__method__,*p); end
|
.create!(*p) ⇒ Object
104
|
# File 'lib/ironfan/provider.rb', line 104
def self.create!(*p) Ironfan.noop(self,__method__,*p); end
|
.destroy!(*p) ⇒ Object
108
|
# File 'lib/ironfan/provider.rb', line 108
def self.destroy!(*p) Ironfan.noop(self,__method__,*p); end
|
.forget(id) ⇒ Object
144
145
146
|
# File 'lib/ironfan/provider.rb', line 144
def self.forget(id)
self.known.delete(id)
end
|
.forget! ⇒ Object
140
141
142
|
# File 'lib/ironfan/provider.rb', line 140
def self.forget!
@@known[self.name] = { }
end
|
.handle ⇒ Object
77
|
# File 'lib/ironfan/provider.rb', line 77
def self.handle ; name.to_s.gsub(/.*::/,'').to_sym ; end
|
.known ⇒ Object
Provide a separate namespace in @@known for each subclass
149
150
151
|
# File 'lib/ironfan/provider.rb', line 149
def self.known
@@known[self.name] ||= {}
end
|
.load!(*p) ⇒ Object
95
|
# File 'lib/ironfan/provider.rb', line 95
def self.load!(*p) Ironfan.noop(self,__method__,*p); end
|
.multiple? ⇒ Boolean
Can multiple instances of this resource be associated with the computer?
90
|
# File 'lib/ironfan/provider.rb', line 90
def self.multiple?() false; end
|
.patiently(name, error_class, options = {}) ⇒ Object
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
|
# File 'lib/ironfan/provider.rb', line 153
def self.patiently(name, error_class, options={})
options[:message] ||= 'ignoring %s'
options[:wait_time] ||= 1
options[:max_tries] ||= 10
success = false
tries = 0
until success or (tries > options[:max_tries]) do
begin
result = yield
success = true
rescue error_class => e
tries += 1
if options[:ignore] and options[:ignore].call(e)
success = true
Ironfan.substep(name, options[:message] % e.message, options[:display] ? :red : :gray)
else
Ironfan.substep(name, options[:message] % e.message, options[:display] ? :red : :gray)
Ironfan.substep(name, "sleeping #{options[:sleep_time]} second(s) before trying again")
sleep options[:wait_time]
result = e
end
end
end
if success
return result
else
ui.warn("Gave up after #{options[:max_tries]} attempts to execute #{name} code")
raise result
end
end
|
.prepare!(*p) ⇒ Object
106
|
# File 'lib/ironfan/provider.rb', line 106
def self.prepare!(*p) Ironfan.noop(self,__method__,*p); end
|
.recall(id = nil) ⇒ Object
135
136
137
138
|
# File 'lib/ironfan/provider.rb', line 135
def self.recall(id=nil)
return self.known if id.nil?
self.known[id]
end
|
.recall?(id) ⇒ Boolean
131
132
133
|
# File 'lib/ironfan/provider.rb', line 131
def self.recall?(id)
self.known.include? id
end
|
.receive(obj) ⇒ Object
79
80
81
82
|
# File 'lib/ironfan/provider.rb', line 79
def self.receive(obj)
obj = obj.symbolize_keys if obj.is_a?(Hash)
super(obj)
end
|
.register(native) ⇒ Object
Register and return the (adapted) object with the collection
126
127
128
129
|
# File 'lib/ironfan/provider.rb', line 126
def self.register(native)
result = new(:adaptee => native) or return
remember result
end
|
.remember(resource, options = {}) ⇒ Object
118
119
120
121
122
123
|
# File 'lib/ironfan/provider.rb', line 118
def self.remember(resource,options={})
index = options[:id] || resource.name
index += options[:append_id] if options[:append_id]
Chef::Log.debug("Loaded #{resource}")
self.known[index] = resource
end
|
.save!(*p) ⇒ Object
105
|
# File 'lib/ironfan/provider.rb', line 105
def self.save!(*p) Ironfan.noop(self,__method__,*p); end
|
.shared? ⇒ Boolean
Flags
Non-shared resources live and die with the computer
88
|
# File 'lib/ironfan/provider.rb', line 88
def self.shared?() true; end
|
.validate_computer!(*p) ⇒ Object
96
|
# File 'lib/ironfan/provider.rb', line 96
def self.validate_computer!(*p) Ironfan.noop(self,__method__,*p); end
|
.validate_resources!(*p) ⇒ Object
97
|
# File 'lib/ironfan/provider.rb', line 97
def self.validate_resources!(*p) Ironfan.noop(self,__method__,*p); end
|
Instance Method Details
#bogus? ⇒ Boolean
75
|
# File 'lib/ironfan/provider.rb', line 75
def bogus?() !bogus.empty?; end
|
#on_correlate(*p) ⇒ Object
99
|
# File 'lib/ironfan/provider.rb', line 99
def on_correlate(*p) Ironfan.noop(self,__method__,*p); end
|