summaryrefslogtreecommitdiffstats
path: root/lib/puppet/property.rb
diff options
context:
space:
mode:
authorLuke Kanies <luke@madstop.com>2009-10-29 09:17:11 -0700
committertest branch <puppet-dev@googlegroups.com>2010-02-17 06:50:53 -0800
commit32d34e945ffbc96105e991181f5be5dd12aee3c1 (patch)
treeca417c42d9a35d48c55e3362aed0f8e40f46df81 /lib/puppet/property.rb
parent3c86666f68d50eb1a45bf1e1b81b8ffad0f3b9c1 (diff)
downloadpuppet-32d34e945ffbc96105e991181f5be5dd12aee3c1.tar.gz
puppet-32d34e945ffbc96105e991181f5be5dd12aee3c1.tar.xz
puppet-32d34e945ffbc96105e991181f5be5dd12aee3c1.zip
Moving Ensure property into separate file
Signed-off-by: Luke Kanies <luke@madstop.com>
Diffstat (limited to 'lib/puppet/property.rb')
-rw-r--r--lib/puppet/property.rb93
1 files changed, 1 insertions, 92 deletions
diff --git a/lib/puppet/property.rb b/lib/puppet/property.rb
index 7d5edcfc1..753c0d7c6 100644
--- a/lib/puppet/property.rb
+++ b/lib/puppet/property.rb
@@ -5,6 +5,7 @@ require 'puppet'
require 'puppet/parameter'
class Puppet::Property < Puppet::Parameter
+ require 'puppet/property/ensure'
# Because 'should' uses an array, we have a special method for handling
# it. We also want to keep copies of the original values, so that
@@ -392,96 +393,4 @@ class Puppet::Property < Puppet::Parameter
self.should = value
end
- # This property will get automatically added to any type that responds
- # to the methods 'exists?', 'create', and 'destroy'.
- class Ensure < Puppet::Property
- @name = :ensure
-
- def self.defaultvalues
- newvalue(:present) do
- if @resource.provider and @resource.provider.respond_to?(:create)
- @resource.provider.create
- else
- @resource.create
- end
- nil # return nil so the event is autogenerated
- end
-
- newvalue(:absent) do
- if @resource.provider and @resource.provider.respond_to?(:destroy)
- @resource.provider.destroy
- else
- @resource.destroy
- end
- nil # return nil so the event is autogenerated
- end
-
- defaultto do
- if @resource.managed?
- :present
- else
- nil
- end
- end
-
- # This doc will probably get overridden
- @doc ||= "The basic property that the resource should be in."
- end
-
- def self.inherited(sub)
- # Add in the two properties that everyone will have.
- sub.class_eval do
- end
- end
-
- def change_to_s(currentvalue, newvalue)
- begin
- if currentvalue == :absent or currentvalue.nil?
- return "created"
- elsif newvalue == :absent
- return "removed"
- else
- return "%s changed '%s' to '%s'" %
- [self.name, self.is_to_s(currentvalue), self.should_to_s(newvalue)]
- end
- rescue Puppet::Error, Puppet::DevError
- raise
- rescue => detail
- raise Puppet::DevError, "Could not convert change %s to string: %s" %
- [self.name, detail]
- end
- end
-
- def retrieve
- # XXX This is a problem -- whether the object exists or not often
- # depends on the results of other properties, yet we're the first property
- # to get checked, which means that those other properties do not have
- # @is values set. This seems to be the source of quite a few bugs,
- # although they're mostly logging bugs, not functional ones.
- if prov = @resource.provider and prov.respond_to?(:exists?)
- result = prov.exists?
- elsif @resource.respond_to?(:exists?)
- result = @resource.exists?
- else
- raise Puppet::DevError, "No ability to determine if %s exists" %
- @resource.class.name
- end
- if result
- return :present
- else
- return :absent
- end
- end
-
- # If they're talking about the thing at all, they generally want to
- # say it should exist.
- #defaultto :present
- defaultto do
- if @resource.managed?
- :present
- else
- nil
- end
- end
- end
end