[Pkg-puppet-devel] [SCM] Puppet packaging for Debian branch, upstream, updated. 0.25.5-639-g8f94f35
test branch
puppet-dev at googlegroups.com
Wed Jul 14 10:30:33 UTC 2010
The following commit has been merged in the upstream branch:
commit 32d34e945ffbc96105e991181f5be5dd12aee3c1
Author: Luke Kanies <luke at madstop.com>
Date: Thu Oct 29 09:17:11 2009 -0700
Moving Ensure property into separate file
Signed-off-by: Luke Kanies <luke at madstop.com>
diff --git a/lib/puppet/property.rb b/lib/puppet/property.rb
index 7d5edcf..753c0d7 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
diff --git a/lib/puppet/property/ensure.rb b/lib/puppet/property/ensure.rb
new file mode 100644
index 0000000..908de8b
--- /dev/null
+++ b/lib/puppet/property/ensure.rb
@@ -0,0 +1,95 @@
+require 'puppet/property'
+
+# This property will get automatically added to any type that responds
+# to the methods 'exists?', 'create', and 'destroy'.
+class Puppet::Property::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
+
diff --git a/spec/unit/property/ensure.rb b/spec/unit/property/ensure.rb
new file mode 100644
index 0000000..aa31abb
--- /dev/null
+++ b/spec/unit/property/ensure.rb
@@ -0,0 +1,13 @@
+#!/usr/bin/env ruby
+
+Dir.chdir(File.dirname(__FILE__)) { (s = lambda { |f| File.exist?(f) ? require(f) : Dir.chdir("..") { s.call(f) } }).call("spec/spec_helper.rb") }
+
+require 'puppet/property/ensure'
+
+klass = Puppet::Property::Ensure
+
+describe klass do
+ it "should be a subclass of Property" do
+ klass.superclass.must == Puppet::Property
+ end
+end
--
Puppet packaging for Debian
More information about the Pkg-puppet-devel
mailing list