Module: AugeasProviders::Type
- Defined in:
- lib/augeasproviders/type.rb
Overview
Utilities to help write types for Puppet with Augeas-based providers.
To use, include in the type:
Puppet::Type.newtype(:example) do
extend AugeasProviders::Type
# [..]
end
Instance Method Summary (collapse)
-
- (Object) positionable { ... }
Implements
ensurable
with an additional value ofpositioned
.
Instance Method Details
- (Object) positionable { ... }
Implements ensurable
with an additional value of positioned
.
When set to positioned
, the type will call provider.in_position?
to
check if the resource is currently in the correct position in the file.
If it isn't, the resource will be destroyed and recreated - assuming the
provider then creates it in the correct position.
25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
# File 'lib/augeasproviders/type.rb', line 25 def positionable(&block) ensurable do defaultvalues block if block_given? newvalue(:positioned) do current = self.retrieve if current == :absent provider.create elsif !provider.in_position? provider.destroy provider.create end end def insync?(is) return true if should == :positioned and is == :present and provider.in_position? super end end end |