Sha256: a8035d51727718ed8138bce182771bea4bfb8f9ecf57944ab3c30cc1ff9975c3
Contents?: true
Size: 1.6 KB
Versions: 1
Compression:
Stored size: 1.6 KB
Contents
module Puppet::ResourceApi # 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. class SimpleProvider def set(context, changes) changes.each do |name, change| is = change.key?(:is) ? change[:is] : (get(context) || []).find { |r| r[:name] == 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 def create(_context, _name, _should) raise "#{self.class} has not implemented `create`" end def update(_context, _name, _should) raise "#{self.class} has not implemented `update`" end def delete(_context, _name) raise "#{self.class} has not implemented `delete`" end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
puppet-resource_api-0.9.0 | lib/puppet/resource_api/simple_provider.rb |