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 `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
31 32 33 |
# File 'lib/puppet/resource_api/simple_provider.rb', line 31 def create(_context, _name, _should) raise "#{self.class} has not implemented `create`" end |
#delete(_context, _name) ⇒ Object
39 40 41 |
# File 'lib/puppet/resource_api/simple_provider.rb', line 39 def delete(_context, _name) raise "#{self.class} has not implemented `delete`" end |
#set(context, changes) ⇒ Object
7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
# File 'lib/puppet/resource_api/simple_provider.rb', line 7 def set(context, changes) changes.each do |name, change| is = change.key?(:is) ? change[:is] : (get(context) || []).find { |key| key[:id] == name } 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
35 36 37 |
# File 'lib/puppet/resource_api/simple_provider.rb', line 35 def update(_context, _name, _should) raise "#{self.class} has not implemented `update`" end |