Class: Puppet::ResourceApi::SimpleProvider
- Inherits:
-
Object
- Object
- Puppet::ResourceApi::SimpleProvider
- Defined in:
- lib/puppet/resource_api/simple_provider.rb
Overview
This class provides a default implementation for set(), when your resource does not benefit from batching. Instead of processing changes yourself, the create, update, and delete functions, are called for you, with proper logging already set up. Note that your type needs to use name as its namevar, and ensure in the conventional way to signal presence and absence of resources.
Instance Method Summary collapse
- #create(_context, _name, _should) ⇒ Object
- #delete(_context, _name) ⇒ Object
- #set(context, changes) ⇒ Object
- #update(_context, _name, _should) ⇒ Object
Instance Method Details
#create(_context, _name, _should) ⇒ Object
37 38 39 |
# File 'lib/puppet/resource_api/simple_provider.rb', line 37 def create(_context, _name, _should) raise "#{self.class} has not implemented `create`" end |
#delete(_context, _name) ⇒ Object
45 46 47 |
# File 'lib/puppet/resource_api/simple_provider.rb', line 45 def delete(_context, _name) raise "#{self.class} has not implemented `delete`" end |
#set(context, changes) ⇒ Object
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 |
# File 'lib/puppet/resource_api/simple_provider.rb', line 8 def set(context, changes) changes.each do |name, change| is = if context.feature_support?('simple_get_filter') change.key?(:is) ? change[:is] : (get(context, [name]) || []).find { |r| r[:name] == name } else change.key?(:is) ? change[:is] : (get(context) || []).find { |r| r[:name] == name } end should = change[:should] is = { name: name, ensure: 'absent' } if is.nil? should = { name: name, ensure: 'absent' } if should.nil? if is[:ensure].to_s == 'absent' && should[:ensure].to_s == 'present' context.creating(name) do create(context, name, should) end elsif is[:ensure].to_s == 'present' && should[:ensure].to_s == 'present' context.updating(name) do update(context, name, should) end elsif is[:ensure].to_s == 'present' && should[:ensure].to_s == 'absent' context.deleting(name) do delete(context, name) end end end end |
#update(_context, _name, _should) ⇒ Object
41 42 43 |
# File 'lib/puppet/resource_api/simple_provider.rb', line 41 def update(_context, _name, _should) raise "#{self.class} has not implemented `update`" end |