diff options
| author | luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0> | 2006-12-13 00:47:37 +0000 |
|---|---|---|
| committer | luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0> | 2006-12-13 00:47:37 +0000 |
| commit | c7633468d990edc63e32e59521178b30740b7516 (patch) | |
| tree | aeed7fda3da5c3c6179a70fd85cd19d204284ad4 | |
| parent | 64d96e9891da508293508491370084d85d977ae7 (diff) | |
| download | puppet-c7633468d990edc63e32e59521178b30740b7516.tar.gz puppet-c7633468d990edc63e32e59521178b30740b7516.tar.xz puppet-c7633468d990edc63e32e59521178b30740b7516.zip | |
You can now use the "resources" type to purge resources. I still need to modify transactions so they do not purge resources that have relationships. Also, apparently the noop metaparam was never actually working; now it is, and there is a test for it.
git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1915 980ebf18-57e1-0310-9a29-db15c13687c0
| -rw-r--r-- | lib/puppet/metatype/metaparams.rb | 15 | ||||
| -rw-r--r-- | lib/puppet/type/resources.rb | 3 | ||||
| -rwxr-xr-x | test/types/resources.rb | 18 | ||||
| -rwxr-xr-x | test/types/type.rb | 16 |
4 files changed, 42 insertions, 10 deletions
diff --git a/lib/puppet/metatype/metaparams.rb b/lib/puppet/metatype/metaparams.rb index df226b146..c9d3426ff 100644 --- a/lib/puppet/metatype/metaparams.rb +++ b/lib/puppet/metatype/metaparams.rb @@ -11,14 +11,13 @@ class Puppet::Type newmetaparam(:noop) do desc "Boolean flag indicating whether work should actually - be done. *true*/**false**" - munge do |noop| - if noop == "true" or noop == true - return true - elsif noop == "false" or noop == false - return false - else - self.fail("Invalid noop value '%s'" % noop) + be done." + + newvalues(:true, :false) + munge do |value| + case value + when true, :true, "true": @parent.noop = true + when false, :false, "false": @parent.noop = false end end end diff --git a/lib/puppet/type/resources.rb b/lib/puppet/type/resources.rb index 7e81a08b3..5171cb58f 100644 --- a/lib/puppet/type/resources.rb +++ b/lib/puppet/type/resources.rb @@ -51,6 +51,9 @@ Puppet::Type.newtype(:resources) do [self[:name]] return [] end + @metaparams.each do |name, param| + resource[name] = param.value + end end end diff --git a/test/types/resources.rb b/test/types/resources.rb index f8a2f6640..0cb28377d 100755 --- a/test/types/resources.rb +++ b/test/types/resources.rb @@ -82,7 +82,7 @@ class TestResources < Test::Unit::TestCase purger = nil assert_nothing_raised do - purger = @type.create :name => "purgetest" + purger = @type.create :name => "purgetest", :noop => true, :loglevel => :warning end assert(purger, "did not get purger manager") @@ -119,10 +119,24 @@ class TestResources < Test::Unit::TestCase unmanned.each do |u| assert(! u.managed?, "unmanaged resource was considered managed") end + + genned = nil + assert_nothing_raised do + genned = purger.generate + end + assert(genned, "Did not get any generated resources") + assert(! genned.empty?, "generated resource list was empty") # Now make sure the generate method only finds the unmanaged resources - assert_equal(unmanned.collect { |r| r.title }.sort, purger.generate.collect { |r| r.title }, + assert_equal(unmanned.collect { |r| r.title }.sort, genned.collect { |r| r.title }, "Did not return correct purge list") + + # Now make sure our metaparams carried over + genned.each do |res| + [:noop, :loglevel].each do |param| + assert_equal(purger[param], res[param], "metaparam %s did not carry over" % param) + end + end end end diff --git a/test/types/type.rb b/test/types/type.rb index 821a9524b..ade0275b8 100755 --- a/test/types/type.rb +++ b/test/types/type.rb @@ -758,6 +758,22 @@ end exec = Puppet::Type.newexec(:title => "yay", :command => "/bin/echo yay") assert_equal("exec[yay]", exec.ref) end + + def test_noop_metaparam + file = Puppet::Type.newfile :path => tempfile + assert(!file.noop, "file incorrectly in noop") + + assert_nothing_raised do + file[:noop] = true + end + assert(file.noop, "file should be in noop") + + # Now set the main one + Puppet[:noop] = true + assert(file.noop, "file should be in noop") + file[:noop] = false + assert(file.noop, "file should be in noop") + end end # $Id$ |
