puppet 0.22.4 → 0.23.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/CHANGELOG +156 -0
- data/README +2 -2
- data/Rakefile +6 -6
- data/bin/filebucket +212 -0
- data/bin/puppet +2 -0
- data/bin/puppetca +2 -4
- data/bin/puppetd +16 -15
- data/bin/puppetdoc +46 -496
- data/bin/puppetmasterd +3 -5
- data/bin/puppetrun +8 -3
- data/bin/ralsh +271 -0
- data/conf/redhat/client.init +1 -1
- data/conf/redhat/puppet.spec +13 -2
- data/conf/solaris/pkginfo +1 -1
- data/ext/puppet-test +374 -0
- data/install.rb +40 -31
- data/lib/puppet.rb +39 -4
- data/lib/puppet/config_stores/rest.rb +60 -0
- data/lib/puppet/configuration.rb +312 -17
- data/lib/puppet/external/event-loop/event-loop.rb +4 -0
- data/lib/puppet/external/gratr/rdot.rb +1 -1
- data/lib/puppet/fact_stores/yaml.rb +42 -0
- data/lib/puppet/feature/base.rb +4 -1
- data/lib/puppet/metatype/attributes.rb +20 -43
- data/lib/puppet/metatype/container.rb +1 -36
- data/lib/puppet/metatype/evaluation.rb +48 -19
- data/lib/puppet/metatype/instances.rb +35 -1
- data/lib/puppet/metatype/metaparams.rb +23 -19
- data/lib/puppet/metatype/providers.rb +25 -38
- data/lib/puppet/network/client/ca.rb +8 -5
- data/lib/puppet/network/client/master.rb +59 -17
- data/lib/puppet/network/handler.rb +18 -1
- data/lib/puppet/network/handler/ca.rb +9 -3
- data/lib/puppet/network/handler/facts.rb +70 -0
- data/lib/puppet/network/handler/filebucket.rb +4 -1
- data/lib/puppet/network/handler/fileserver.rb +65 -21
- data/lib/puppet/network/handler/master.rb +6 -3
- data/lib/puppet/network/handler/report.rb +12 -26
- data/lib/puppet/network/handler/resource.rb +14 -2
- data/lib/puppet/network/handler/runner.rb +5 -1
- data/lib/puppet/network/handler/status.rb +5 -1
- data/lib/puppet/network/server/mongrel.rb +4 -4
- data/lib/puppet/network/server/webrick.rb +14 -3
- data/lib/puppet/parameter.rb +30 -25
- data/lib/puppet/parser/ast.rb +1 -6
- data/lib/puppet/parser/ast/component.rb +23 -20
- data/lib/puppet/parser/ast/hostclass.rb +7 -11
- data/lib/puppet/parser/ast/leaf.rb +4 -1
- data/lib/puppet/parser/ast/node.rb +6 -8
- data/lib/puppet/parser/functions.rb +7 -4
- data/lib/puppet/parser/interpreter.rb +155 -205
- data/lib/puppet/parser/lexer.rb +35 -2
- data/lib/puppet/parser/parser.rb +705 -612
- data/lib/puppet/parser/resource.rb +91 -48
- data/lib/puppet/parser/resource/param.rb +52 -29
- data/lib/puppet/parser/scope.rb +28 -23
- data/lib/puppet/pgraph.rb +26 -21
- data/lib/puppet/propertychange.rb +12 -12
- data/lib/puppet/provider.rb +102 -31
- data/lib/puppet/provider/cron/crontab.rb +7 -8
- data/lib/puppet/provider/group/groupadd.rb +4 -4
- data/lib/puppet/provider/group/pw.rb +3 -3
- data/lib/puppet/provider/mount.rb +8 -8
- data/lib/puppet/provider/mount/netinfo.rb +5 -5
- data/lib/puppet/provider/mount/parsed.rb +2 -2
- data/lib/puppet/provider/nameservice.rb +19 -31
- data/lib/puppet/provider/nameservice/netinfo.rb +14 -14
- data/lib/puppet/provider/nameservice/objectadd.rb +4 -4
- data/lib/puppet/provider/nameservice/pw.rb +4 -4
- data/lib/puppet/provider/package.rb +31 -0
- data/lib/puppet/provider/package/appdmg.rb +118 -0
- data/lib/puppet/provider/package/apple.rb +18 -16
- data/lib/puppet/provider/package/apt.rb +13 -15
- data/lib/puppet/provider/package/aptitude.rb +5 -3
- data/lib/puppet/provider/package/aptrpm.rb +9 -11
- data/lib/puppet/provider/package/blastwave.rb +9 -9
- data/lib/puppet/provider/package/darwinport.rb +12 -11
- data/lib/puppet/provider/package/dpkg.rb +20 -12
- data/lib/puppet/provider/package/fink.rb +87 -0
- data/lib/puppet/provider/package/freebsd.rb +10 -11
- data/lib/puppet/provider/package/gem.rb +15 -15
- data/lib/puppet/provider/package/openbsd.rb +12 -17
- data/lib/puppet/provider/package/pkgdmg.rb +90 -16
- data/lib/puppet/provider/package/portage.rb +20 -14
- data/lib/puppet/provider/package/ports.rb +15 -13
- data/lib/puppet/provider/package/rpm.rb +20 -23
- data/lib/puppet/provider/package/rug.rb +6 -8
- data/lib/puppet/provider/package/sun.rb +20 -18
- data/lib/puppet/provider/package/sunfreeware.rb +2 -2
- data/lib/puppet/provider/package/up2date.rb +6 -10
- data/lib/puppet/provider/package/urpmi.rb +51 -0
- data/lib/puppet/provider/package/yum.rb +15 -13
- data/lib/puppet/provider/parsedfile.rb +53 -63
- data/lib/puppet/provider/service/base.rb +13 -15
- data/lib/puppet/provider/service/debian.rb +4 -4
- data/lib/puppet/provider/service/gentoo.rb +4 -4
- data/lib/puppet/provider/service/init.rb +22 -15
- data/lib/puppet/provider/service/redhat.rb +6 -6
- data/lib/puppet/provider/service/smf.rb +6 -6
- data/lib/puppet/provider/user/netinfo.rb +5 -5
- data/lib/puppet/provider/user/pw.rb +10 -5
- data/lib/puppet/provider/user/useradd.rb +9 -14
- data/lib/puppet/provider/zone/solaris.rb +80 -45
- data/lib/puppet/rails.rb +3 -34
- data/lib/puppet/rails/database/schema.rb +45 -24
- data/lib/puppet/rails/fact_value.rb +1 -0
- data/lib/puppet/rails/host.rb +69 -40
- data/lib/puppet/rails/param_name.rb +3 -8
- data/lib/puppet/rails/param_value.rb +2 -1
- data/lib/puppet/rails/puppet_class.rb +0 -2
- data/lib/puppet/rails/puppet_tag.rb +5 -0
- data/lib/puppet/rails/resource.rb +41 -17
- data/lib/puppet/rails/resource_tag.rb +4 -0
- data/lib/puppet/reference/configuration.rb +149 -0
- data/lib/puppet/reference/function.rb +13 -0
- data/lib/puppet/reference/network.rb +37 -0
- data/lib/puppet/reference/providers.rb +118 -0
- data/lib/puppet/reference/report.rb +21 -0
- data/lib/puppet/reference/type.rb +152 -0
- data/lib/puppet/reports/rrdgraph.rb +21 -7
- data/lib/puppet/reports/tagmail.rb +4 -1
- data/lib/puppet/sslcertificates.rb +1 -49
- data/lib/puppet/sslcertificates/ca.rb +2 -79
- data/lib/puppet/sslcertificates/inventory.rb +0 -10
- data/lib/puppet/transaction.rb +24 -41
- data/lib/puppet/transaction/report.rb +27 -1
- data/lib/puppet/type.rb +7 -43
- data/lib/puppet/type/component.rb +198 -124
- data/lib/puppet/type/cron.rb +51 -42
- data/lib/puppet/type/exec.rb +20 -19
- data/lib/puppet/type/group.rb +6 -55
- data/lib/puppet/type/host.rb +16 -37
- data/lib/puppet/type/mount.rb +30 -17
- data/lib/puppet/type/notify.rb +7 -8
- data/lib/puppet/type/package.rb +44 -80
- data/lib/puppet/type/pfile.rb +50 -41
- data/lib/puppet/type/pfile/checksum.rb +82 -95
- data/lib/puppet/type/pfile/content.rb +21 -25
- data/lib/puppet/type/pfile/ensure.rb +32 -30
- data/lib/puppet/type/pfile/group.rb +21 -26
- data/lib/puppet/type/pfile/mode.rb +25 -32
- data/lib/puppet/type/pfile/owner.rb +23 -27
- data/lib/puppet/type/pfile/source.rb +42 -33
- data/lib/puppet/type/pfile/target.rb +20 -18
- data/lib/puppet/type/pfile/type.rb +6 -7
- data/lib/puppet/type/pfilebucket.rb +3 -3
- data/lib/puppet/type/port.rb +5 -7
- data/lib/puppet/type/property.rb +58 -61
- data/lib/puppet/type/resources.rb +12 -8
- data/lib/puppet/type/schedule.rb +8 -8
- data/lib/puppet/type/service.rb +26 -33
- data/lib/puppet/type/sshkey.rb +6 -7
- data/lib/puppet/type/tidy.rb +41 -35
- data/lib/puppet/type/user.rb +34 -67
- data/lib/puppet/type/yumrepo.rb +27 -12
- data/lib/puppet/type/zone.rb +71 -110
- data/lib/puppet/util.rb +46 -61
- data/lib/puppet/util/autoload.rb +59 -47
- data/lib/puppet/util/config.rb +160 -18
- data/lib/puppet/util/config_store.rb +61 -0
- data/lib/puppet/util/fact_store.rb +60 -0
- data/lib/puppet/util/instance_loader.rb +74 -0
- data/lib/puppet/util/loadedfile.rb +5 -8
- data/lib/puppet/util/metric.rb +17 -25
- data/lib/puppet/util/posix.rb +39 -7
- data/lib/puppet/util/provider_features.rb +9 -1
- data/lib/puppet/util/rails/collection_merger.rb +16 -1
- data/lib/puppet/util/reference.rb +189 -0
- data/lib/puppet/util/storage.rb +2 -2
- data/lib/puppet/util/subclass_loader.rb +9 -2
- data/test/language/ast.rb +4 -148
- data/test/language/ast/component.rb +10 -1
- data/test/language/collector.rb +1 -191
- data/test/language/interpreter.rb +284 -327
- data/test/language/lexer.rb +13 -1
- data/test/language/node.rb +1 -1
- data/test/language/parser.rb +17 -4
- data/test/language/resource.rb +67 -101
- data/test/language/scope.rb +18 -3
- data/test/language/snippets.rb +114 -151
- data/test/lib/puppettest.rb +13 -0
- data/test/lib/puppettest/exetest.rb +7 -0
- data/test/lib/puppettest/fakes.rb +39 -28
- data/test/lib/puppettest/railstesting.rb +1 -1
- data/test/lib/puppettest/support/assertions.rb +2 -2
- data/test/lib/puppettest/support/collection.rb +30 -0
- data/test/network/client/ca.rb +27 -1
- data/test/network/client/client.rb +3 -3
- data/test/network/client/master.rb +102 -1
- data/test/network/handler/ca.rb +35 -1
- data/test/network/handler/facts.rb +112 -0
- data/test/network/handler/fileserver.rb +25 -1
- data/test/network/handler/handler.rb +2 -2
- data/test/network/handler/master.rb +2 -49
- data/test/network/handler/resource.rb +5 -6
- data/test/network/server/mongrel_test.rb +65 -0
- data/test/network/server/webrick.rb +2 -2
- data/test/network/xmlrpc/client.rb +2 -1
- data/test/network/xmlrpc/processor.rb +2 -1
- data/test/other/pgraph.rb +6 -5
- data/test/other/propertychange.rb +11 -12
- data/test/other/report.rb +44 -27
- data/test/other/transactions.rb +17 -16
- data/test/puppet/tc_suidmanager.rb +2 -2
- data/test/rails/ast.rb +74 -0
- data/test/rails/collection.rb +214 -0
- data/test/rails/host.rb +49 -24
- data/test/rails/interpreter.rb +91 -0
- data/test/rails/railsparameter.rb +22 -11
- data/test/rails/railsresource.rb +140 -7
- data/test/ral/manager/attributes.rb +37 -13
- data/test/ral/manager/instances.rb +82 -0
- data/test/ral/manager/provider.rb +60 -22
- data/test/ral/manager/type.rb +9 -6
- data/test/ral/providers/cron/crontab.rb +59 -7
- data/test/ral/providers/group.rb +7 -7
- data/test/ral/providers/host/netinfo.rb +5 -6
- data/test/ral/providers/host/parsed.rb +4 -4
- data/test/ral/providers/mount/parsed.rb +11 -6
- data/test/ral/providers/nameservice.rb +2 -2
- data/test/ral/providers/package.rb +39 -14
- data/test/ral/providers/package/apt.rb +72 -3
- data/test/ral/providers/package/aptitude.rb +15 -12
- data/test/ral/providers/package/aptrpm.rb +3 -3
- data/test/ral/providers/package/dpkg.rb +2 -2
- data/test/ral/providers/parsedfile.rb +114 -88
- data/test/ral/providers/{parsedport.rb → port/parsed.rb} +1 -1
- data/test/ral/providers/provider.rb +93 -13
- data/test/ral/providers/service.rb +52 -26
- data/test/ral/providers/sshkey/parsed.rb +3 -3
- data/test/ral/providers/user.rb +19 -20
- data/test/ral/providers/user/useradd.rb +1 -5
- data/test/ral/types/cron.rb +49 -36
- data/test/ral/types/file.rb +38 -35
- data/test/ral/types/file/target.rb +4 -4
- data/test/ral/types/filesources.rb +24 -22
- data/test/ral/types/group.rb +4 -2
- data/test/ral/types/host.rb +17 -10
- data/test/ral/types/mount.rb +40 -23
- data/test/ral/types/package.rb +62 -5
- data/test/ral/types/parameter.rb +2 -2
- data/test/ral/types/property.rb +27 -20
- data/test/ral/types/resources.rb +4 -16
- data/test/ral/types/schedule.rb +2 -2
- data/test/ral/types/service.rb +2 -3
- data/test/ral/types/sshkey.rb +3 -3
- data/test/ral/types/tidy.rb +6 -15
- data/test/ral/types/user.rb +17 -17
- data/test/ral/types/yumrepo.rb +2 -2
- data/test/ral/types/zone.rb +71 -87
- data/test/util/autoload.rb +6 -21
- data/test/util/config.rb +201 -101
- data/test/util/fact_store.rb +67 -0
- data/test/util/features.rb +9 -6
- data/test/util/instance_loader.rb +53 -0
- data/test/util/loadedfile.rb +17 -1
- data/test/util/metrics.rb +54 -57
- data/test/util/posixtest.rb +8 -11
- data/test/util/utiltest.rb +31 -2
- metadata +520 -492
- data/TODO +0 -4
- data/lib/puppet/network/client/logger.rb +0 -6
- data/lib/puppet/network/handler/logger.rb +0 -52
- data/lib/puppet/rails/database/001_add_indexes.rb +0 -38
- data/lib/puppet/type/parsedtype.rb +0 -219
- data/test/network/handler/logger.rb +0 -183
data/test/language/lexer.rb
CHANGED
|
@@ -242,6 +242,18 @@ class TestLexer < Test::Unit::TestCase
|
|
|
242
242
|
end
|
|
243
243
|
end
|
|
244
244
|
end
|
|
245
|
+
|
|
246
|
+
# Make sure the expected stack works as it should
|
|
247
|
+
def test_expected
|
|
248
|
+
@lexer.string = "[a{"
|
|
249
|
+
expected = @lexer.instance_variable_get("@expected")
|
|
250
|
+
@lexer.scan {}
|
|
251
|
+
assert_equal("}", @lexer.expected, "expected value is wrong")
|
|
252
|
+
|
|
253
|
+
@lexer.string = "}"
|
|
254
|
+
@lexer.scan {}
|
|
255
|
+
assert_equal("]", @lexer.expected, "expected value is wrong after pop")
|
|
256
|
+
end
|
|
245
257
|
end
|
|
246
258
|
|
|
247
|
-
# $Id: lexer.rb
|
|
259
|
+
# $Id: lexer.rb 2531 2007-05-25 00:31:28Z luke $
|
data/test/language/node.rb
CHANGED
data/test/language/parser.rb
CHANGED
|
@@ -397,7 +397,7 @@ file { "/tmp/yayness":
|
|
|
397
397
|
}
|
|
398
398
|
sub = interp.findclass("", "container::deep::sub")
|
|
399
399
|
assert(sub, "Could not find sub")
|
|
400
|
-
assert_equal("base", sub.
|
|
400
|
+
assert_equal("base", sub.parentobj.classname)
|
|
401
401
|
|
|
402
402
|
# Now try it with a parent class being a fq class
|
|
403
403
|
assert_nothing_raised {
|
|
@@ -405,7 +405,7 @@ file { "/tmp/yayness":
|
|
|
405
405
|
}
|
|
406
406
|
sub = interp.findclass("", "container::one")
|
|
407
407
|
assert(sub, "Could not find one")
|
|
408
|
-
assert_equal("sub", sub.
|
|
408
|
+
assert_equal("container::deep::sub", sub.parentobj.classname)
|
|
409
409
|
|
|
410
410
|
# Finally, try including a qualified class
|
|
411
411
|
assert_nothing_raised("Could not include fully qualified class") {
|
|
@@ -431,7 +431,7 @@ file { "/tmp/yayness":
|
|
|
431
431
|
assert_nothing_raised do
|
|
432
432
|
out = parser.parse "Exec { path => '/usr/bin:/usr/sbin' }"
|
|
433
433
|
assert_instance_of(AST::ASTArray, out)
|
|
434
|
-
assert_equal("", parser.interp.findclass("", "").
|
|
434
|
+
assert_equal("", parser.interp.findclass("", "").classname)
|
|
435
435
|
assert_equal("", parser.interp.findclass("", "").namespace)
|
|
436
436
|
assert_equal(out.object_id, parser.interp.findclass("", "").code.object_id)
|
|
437
437
|
end
|
|
@@ -763,6 +763,19 @@ file { "/tmp/yayness":
|
|
|
763
763
|
parser.import("%s/*" % dir)
|
|
764
764
|
end
|
|
765
765
|
end
|
|
766
|
+
|
|
767
|
+
# #629 - undef keyword
|
|
768
|
+
def test_undef
|
|
769
|
+
parser = mkparser
|
|
770
|
+
result = nil
|
|
771
|
+
assert_nothing_raised("Could not parse assignment to undef") {
|
|
772
|
+
result = parser.parse %{$variable = undef}
|
|
773
|
+
}
|
|
774
|
+
|
|
775
|
+
children = result.children
|
|
776
|
+
assert_instance_of(AST::VarDef, result.children[0])
|
|
777
|
+
assert_instance_of(AST::Undef, result.children[0].value)
|
|
778
|
+
end
|
|
766
779
|
end
|
|
767
780
|
|
|
768
|
-
# $Id: parser.rb
|
|
781
|
+
# $Id: parser.rb 2522 2007-05-17 21:43:51Z luke $
|
data/test/language/resource.rb
CHANGED
|
@@ -4,15 +4,14 @@ $:.unshift("../lib").unshift("../../lib") if __FILE__ =~ /\.rb$/
|
|
|
4
4
|
|
|
5
5
|
require 'puppettest'
|
|
6
6
|
require 'puppettest/resourcetesting'
|
|
7
|
-
require 'puppettest/railstesting'
|
|
8
7
|
|
|
9
|
-
class TestResource <
|
|
8
|
+
class TestResource < PuppetTest::TestCase
|
|
10
9
|
include PuppetTest
|
|
11
10
|
include PuppetTest::ParserTesting
|
|
12
11
|
include PuppetTest::ResourceTesting
|
|
13
|
-
include PuppetTest::RailsTesting
|
|
14
12
|
Parser = Puppet::Parser
|
|
15
13
|
AST = Parser::AST
|
|
14
|
+
Reference = Puppet::Parser::Resource::Reference
|
|
16
15
|
|
|
17
16
|
def setup
|
|
18
17
|
super
|
|
@@ -133,10 +132,15 @@ class TestResource < Test::Unit::TestCase
|
|
|
133
132
|
end
|
|
134
133
|
|
|
135
134
|
def test_to_trans
|
|
136
|
-
# First try translating a builtin resource
|
|
135
|
+
# First try translating a builtin resource. Make sure we use some references
|
|
136
|
+
# and arrays, to make sure they translate correctly.
|
|
137
|
+
refs = []
|
|
138
|
+
4.times { |i| refs << Puppet::Parser::Resource::Reference.new(:title => "file%s" % i, :type => "file") }
|
|
137
139
|
res = Parser::Resource.new :type => "file", :title => "/tmp",
|
|
138
140
|
:source => @source, :scope => @scope,
|
|
139
|
-
:params => paramify(@source, :owner => "nobody", :
|
|
141
|
+
:params => paramify(@source, :owner => "nobody", :group => %w{you me},
|
|
142
|
+
:require => refs[0], :ignore => %w{svn},
|
|
143
|
+
:subscribe => [refs[1], refs[2]], :notify => [refs[3]])
|
|
140
144
|
|
|
141
145
|
obj = nil
|
|
142
146
|
assert_nothing_raised do
|
|
@@ -149,8 +153,12 @@ class TestResource < Test::Unit::TestCase
|
|
|
149
153
|
assert_equal(obj.name, res.title)
|
|
150
154
|
|
|
151
155
|
# TransObjects use strings, resources use symbols
|
|
152
|
-
|
|
153
|
-
assert_equal(
|
|
156
|
+
assert_equal("nobody", obj["owner"], "Single-value string was not passed correctly")
|
|
157
|
+
assert_equal(%w{you me}, obj["group"], "Array of strings was not passed correctly")
|
|
158
|
+
assert_equal("svn", obj["ignore"], "Array with single string was not turned into single value")
|
|
159
|
+
assert_equal(["file", refs[0].title], obj["require"], "Resource reference was not passed correctly")
|
|
160
|
+
assert_equal([["file", refs[1].title], ["file", refs[2].title]], obj["subscribe"], "Array of resource references was not passed correctly")
|
|
161
|
+
assert_equal(["file", refs[3].title], obj["notify"], "Array with single resource reference was not turned into single value")
|
|
154
162
|
end
|
|
155
163
|
|
|
156
164
|
def test_adddefaults
|
|
@@ -360,99 +368,6 @@ class TestResource < Test::Unit::TestCase
|
|
|
360
368
|
|
|
361
369
|
assert_nil(ref.builtintype, "Component was considered builtin")
|
|
362
370
|
end
|
|
363
|
-
if Puppet.features.rails?
|
|
364
|
-
|
|
365
|
-
# Compare a parser resource to a rails resource.
|
|
366
|
-
def compare_resources(host, res, updating, options = {})
|
|
367
|
-
# to_rails now expects to be passed a resource, else it will create a new one
|
|
368
|
-
newobj = host.resources.find_by_restype_and_title(res.type, res.title)
|
|
369
|
-
assert_nothing_raised do
|
|
370
|
-
newobj = res.to_rails(host, newobj)
|
|
371
|
-
end
|
|
372
|
-
|
|
373
|
-
assert_instance_of(Puppet::Rails::Resource, newobj)
|
|
374
|
-
newobj.save
|
|
375
|
-
|
|
376
|
-
if updating
|
|
377
|
-
tail = "on update"
|
|
378
|
-
else
|
|
379
|
-
tail = ""
|
|
380
|
-
end
|
|
381
|
-
|
|
382
|
-
# Make sure we find our object and only our object
|
|
383
|
-
count = 0
|
|
384
|
-
obj = nil
|
|
385
|
-
Puppet::Rails::Resource.find(:all).each do |obj|
|
|
386
|
-
assert_equal(newobj.id, obj.id, "Found object has a different id than generated object %s" % tail)
|
|
387
|
-
count += 1
|
|
388
|
-
[:title, :restype, :line, :exported].each do |param|
|
|
389
|
-
if param == :restype
|
|
390
|
-
method = :type
|
|
391
|
-
else
|
|
392
|
-
method = param
|
|
393
|
-
end
|
|
394
|
-
assert_equal(res.send(method), obj[param],
|
|
395
|
-
"attribute %s was not set correctly in rails %s" % [param, tail])
|
|
396
|
-
end
|
|
397
|
-
end
|
|
398
|
-
assert_equal(1, count, "Got too many resources %s" % tail)
|
|
399
|
-
# Now make sure we can find it again
|
|
400
|
-
assert_nothing_raised do
|
|
401
|
-
obj = Puppet::Rails::Resource.find_by_restype_and_title(
|
|
402
|
-
res.type, res.title, :include => :param_names
|
|
403
|
-
)
|
|
404
|
-
end
|
|
405
|
-
assert_instance_of(Puppet::Rails::Resource, obj)
|
|
406
|
-
|
|
407
|
-
# Make sure we get the parameters back
|
|
408
|
-
params = options[:params] || [obj.param_names.collect { |p| p.name },
|
|
409
|
-
res.to_hash.keys].flatten.collect { |n| n.to_s }.uniq
|
|
410
|
-
|
|
411
|
-
params.each do |name|
|
|
412
|
-
param = obj.param_names.find_by_name(name)
|
|
413
|
-
if res[name]
|
|
414
|
-
assert(param, "resource did not keep %s %s" % [name, tail])
|
|
415
|
-
else
|
|
416
|
-
assert(! param, "resource did not delete %s %s" % [name, tail])
|
|
417
|
-
end
|
|
418
|
-
if param
|
|
419
|
-
values = param.param_values.collect { |pv| pv.value }
|
|
420
|
-
should = res[param.name]
|
|
421
|
-
should = [should] unless should.is_a?(Array)
|
|
422
|
-
assert_equal(should, values,
|
|
423
|
-
"%s was different %s" % [param.name, tail])
|
|
424
|
-
end
|
|
425
|
-
end
|
|
426
|
-
end
|
|
427
|
-
|
|
428
|
-
def test_to_rails
|
|
429
|
-
railsteardown
|
|
430
|
-
railsinit
|
|
431
|
-
res = mkresource :type => "file", :title => "/tmp/testing",
|
|
432
|
-
:source => @source, :scope => @scope,
|
|
433
|
-
:params => {:owner => "root", :source => ["/tmp/A", "/tmp/B"],
|
|
434
|
-
:mode => "755"}
|
|
435
|
-
|
|
436
|
-
res.line = 50
|
|
437
|
-
|
|
438
|
-
# We also need a Rails Host to store under
|
|
439
|
-
host = Puppet::Rails::Host.new(:name => Facter.hostname)
|
|
440
|
-
|
|
441
|
-
compare_resources(host, res, false, :params => %w{owner source mode})
|
|
442
|
-
|
|
443
|
-
# Now make some changes to our resource. We're removing the mode,
|
|
444
|
-
# changing the source, and adding 'check'.
|
|
445
|
-
res = mkresource :type => "file", :title => "/tmp/testing",
|
|
446
|
-
:source => @source, :scope => @scope,
|
|
447
|
-
:params => {:owner => "bin", :source => ["/tmp/A", "/tmp/C"],
|
|
448
|
-
:check => "checksum"}
|
|
449
|
-
|
|
450
|
-
res.line = 75
|
|
451
|
-
res.exported = true
|
|
452
|
-
|
|
453
|
-
compare_resources(host, res, true, :params => %w{owner source mode check})
|
|
454
|
-
end
|
|
455
|
-
end
|
|
456
371
|
|
|
457
372
|
# #472. Really, this still isn't the best behaviour, but at least
|
|
458
373
|
# it's consistent with what we have elsewhere.
|
|
@@ -530,6 +445,57 @@ class TestResource < Test::Unit::TestCase
|
|
|
530
445
|
end
|
|
531
446
|
end
|
|
532
447
|
end
|
|
448
|
+
|
|
449
|
+
# part of #629 -- the undef keyword. Make sure 'undef' params get skipped.
|
|
450
|
+
def test_undef_and_to_hash
|
|
451
|
+
res = mkresource :type => "file", :title => "/tmp/testing",
|
|
452
|
+
:source => @source, :scope => @scope,
|
|
453
|
+
:params => {:owner => :undef, :mode => "755"}
|
|
454
|
+
|
|
455
|
+
hash = nil
|
|
456
|
+
assert_nothing_raised("Could not convert resource with undef to hash") do
|
|
457
|
+
hash = res.to_hash
|
|
458
|
+
end
|
|
459
|
+
|
|
460
|
+
assert_nil(hash[:owner], "got a value for an undef parameter")
|
|
461
|
+
end
|
|
462
|
+
|
|
463
|
+
# #643 - Make sure virtual defines result in virtual resources
|
|
464
|
+
def test_virtual_defines
|
|
465
|
+
define = @interp.newdefine("yayness",
|
|
466
|
+
:code => resourcedef("file", varref("name"),
|
|
467
|
+
"mode" => "644"))
|
|
468
|
+
|
|
469
|
+
res = mkresource :type => "yayness", :title => "foo", :params => {}
|
|
470
|
+
res.virtual = true
|
|
471
|
+
|
|
472
|
+
result = nil
|
|
473
|
+
assert_nothing_raised("Could not evaluate defined resource") do
|
|
474
|
+
result = res.evaluate
|
|
475
|
+
end
|
|
476
|
+
|
|
477
|
+
scope = res.scope
|
|
478
|
+
newres = scope.findresource("File[foo]")
|
|
479
|
+
assert(newres, "Could not find resource")
|
|
480
|
+
|
|
481
|
+
assert(newres.virtual?, "Virtual defined resource generated non-virtual resources")
|
|
482
|
+
|
|
483
|
+
# Now try it with exported resources
|
|
484
|
+
res = mkresource :type => "yayness", :title => "bar", :params => {}
|
|
485
|
+
res.exported = true
|
|
486
|
+
|
|
487
|
+
result = nil
|
|
488
|
+
assert_nothing_raised("Could not evaluate exported resource") do
|
|
489
|
+
result = res.evaluate
|
|
490
|
+
end
|
|
491
|
+
|
|
492
|
+
scope = res.scope
|
|
493
|
+
newres = scope.findresource("File[bar]")
|
|
494
|
+
assert(newres, "Could not find resource")
|
|
495
|
+
|
|
496
|
+
assert(newres.exported?, "Exported defined resource generated non-exported resources")
|
|
497
|
+
assert(newres.virtual?, "Exported defined resource generated non-virtual resources")
|
|
498
|
+
end
|
|
533
499
|
end
|
|
534
500
|
|
|
535
|
-
# $Id: resource.rb
|
|
501
|
+
# $Id: resource.rb 2597 2007-06-17 21:41:50Z luke $
|
data/test/language/scope.rb
CHANGED
|
@@ -412,7 +412,7 @@ class TestScope < Test::Unit::TestCase
|
|
|
412
412
|
|
|
413
413
|
[myclass, otherclass].each do |klass|
|
|
414
414
|
assert(scope.setclass?(klass),
|
|
415
|
-
"%s was not set" % klass.
|
|
415
|
+
"%s was not set" % klass.classname)
|
|
416
416
|
end
|
|
417
417
|
end
|
|
418
418
|
|
|
@@ -445,6 +445,8 @@ class TestScope < Test::Unit::TestCase
|
|
|
445
445
|
"Empty strings considered true")
|
|
446
446
|
assert_equal(false, Puppet::Parser::Scope.true?(false),
|
|
447
447
|
"false considered true")
|
|
448
|
+
assert_equal(false, Puppet::Parser::Scope.true?(:undef),
|
|
449
|
+
"undef considered true")
|
|
448
450
|
end
|
|
449
451
|
|
|
450
452
|
# Verify scope context is handled correctly.
|
|
@@ -611,7 +613,7 @@ Host <<||>>"
|
|
|
611
613
|
end
|
|
612
614
|
|
|
613
615
|
# Now make sure good tags make it through.
|
|
614
|
-
tags = %w{good-tag yaytag GoodTag another_tag}
|
|
616
|
+
tags = %w{good-tag yaytag GoodTag another_tag a ab A}
|
|
615
617
|
tags.each do |tag|
|
|
616
618
|
assert_nothing_raised("Tag #{tag} was considered invalid") do
|
|
617
619
|
scope.tag tag
|
|
@@ -745,6 +747,19 @@ Host <<||>>"
|
|
|
745
747
|
scope.add_namespace("b")
|
|
746
748
|
assert_nothing_raised { test.call([["a", "testing"], ["b", "testing"]]) }
|
|
747
749
|
end
|
|
750
|
+
|
|
751
|
+
# #629 - undef should be "" or :undef
|
|
752
|
+
def test_lookupvar_with_undef
|
|
753
|
+
scope = mkscope
|
|
754
|
+
|
|
755
|
+
scope.setvar("testing", :undef)
|
|
756
|
+
|
|
757
|
+
assert_equal(:undef, scope.lookupvar("testing", false),
|
|
758
|
+
"undef was not returned as :undef when not string")
|
|
759
|
+
|
|
760
|
+
assert_equal("", scope.lookupvar("testing", true),
|
|
761
|
+
"undef was not returned as '' when string")
|
|
762
|
+
end
|
|
748
763
|
end
|
|
749
764
|
|
|
750
|
-
# $Id: scope.rb
|
|
765
|
+
# $Id: scope.rb 2523 2007-05-17 21:51:36Z luke $
|
data/test/language/snippets.rb
CHANGED
|
@@ -13,10 +13,32 @@ class TestSnippets < Test::Unit::TestCase
|
|
|
13
13
|
include PuppetTest
|
|
14
14
|
include ObjectSpace
|
|
15
15
|
|
|
16
|
+
def setup
|
|
17
|
+
super
|
|
18
|
+
@file = Puppet::Type.type(:file)
|
|
19
|
+
end
|
|
20
|
+
|
|
16
21
|
def self.snippetdir
|
|
17
22
|
PuppetTest.datadir "snippets"
|
|
18
23
|
end
|
|
19
24
|
|
|
25
|
+
def assert_file(path, msg = nil)
|
|
26
|
+
unless file = @file[path]
|
|
27
|
+
msg ||= "Could not find file %s" % path
|
|
28
|
+
raise msg
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
def assert_mode_equal(mode, path)
|
|
33
|
+
unless file = @file[path]
|
|
34
|
+
raise "Could not find file %s" % path
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
unless mode == file.should(:mode)
|
|
38
|
+
raise "Mode for %s is incorrect: %o vs %o" % [path, mode, file.should(:mode)]
|
|
39
|
+
end
|
|
40
|
+
end
|
|
41
|
+
|
|
20
42
|
def snippet(name)
|
|
21
43
|
File.join(self.class.snippetdir, name)
|
|
22
44
|
end
|
|
@@ -151,73 +173,57 @@ class TestSnippets < Test::Unit::TestCase
|
|
|
151
173
|
|
|
152
174
|
def snippet_filecreate
|
|
153
175
|
%w{a b c d}.each { |letter|
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
}
|
|
160
|
-
%w{a b}.each { |letter|
|
|
161
|
-
file = "/tmp/create%stest" % letter
|
|
162
|
-
assert(File.stat(file).mode & 007777 == 0755)
|
|
176
|
+
path = "/tmp/create%stest" % letter
|
|
177
|
+
assert_file(path)
|
|
178
|
+
if %w{a b}.include?(letter)
|
|
179
|
+
assert_mode_equal(0755, path)
|
|
180
|
+
end
|
|
163
181
|
}
|
|
164
182
|
end
|
|
165
183
|
|
|
166
184
|
def snippet_simpledefaults
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
assert(File.stat(file).mode & 007777 == 0755)
|
|
185
|
+
path = "/tmp/defaulttest"
|
|
186
|
+
assert_file(path)
|
|
187
|
+
assert_mode_equal(0755, path)
|
|
171
188
|
end
|
|
172
189
|
|
|
173
190
|
def snippet_simpleselector
|
|
174
191
|
files = %w{a b c d}.collect { |letter|
|
|
175
|
-
"/tmp/snippetselect%stest" % letter
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
files.each { |file|
|
|
180
|
-
assert(FileTest.exists?(file), "File %s does not exist" % file)
|
|
181
|
-
assert(File.stat(file).mode & 007777 == 0755,
|
|
182
|
-
"File %s is the incorrect mode" % file)
|
|
183
|
-
@@tmpfiles << file
|
|
192
|
+
path = "/tmp/snippetselect%stest" % letter
|
|
193
|
+
assert_file(path)
|
|
194
|
+
assert_mode_equal(0755, path)
|
|
184
195
|
}
|
|
185
196
|
end
|
|
186
197
|
|
|
187
198
|
def snippet_classpathtest
|
|
188
|
-
|
|
189
|
-
@@tmpfiles << file
|
|
190
|
-
|
|
191
|
-
assert(FileTest.exists?(file))
|
|
199
|
+
path = "/tmp/classtest"
|
|
192
200
|
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
obj = Puppet.type(:file)[file]
|
|
196
|
-
}
|
|
201
|
+
file = @file[path]
|
|
202
|
+
assert(file, "did not create file %s" % path)
|
|
197
203
|
|
|
198
204
|
assert_nothing_raised {
|
|
199
205
|
assert_equal(
|
|
200
206
|
"//testing/component[componentname]/File[/tmp/classtest]",
|
|
201
|
-
|
|
202
|
-
#Puppet.err obj.path
|
|
207
|
+
file.path)
|
|
203
208
|
}
|
|
204
209
|
end
|
|
205
210
|
|
|
206
211
|
def snippet_argumentdefaults
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
@@tmpfiles << file1
|
|
210
|
-
@@tmpfiles << file2
|
|
212
|
+
path1 = "/tmp/argumenttest1"
|
|
213
|
+
path2 = "/tmp/argumenttest2"
|
|
211
214
|
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
215
|
+
file1 = @file[path1]
|
|
216
|
+
file2 = @file[path2]
|
|
217
|
+
|
|
218
|
+
assert_file(path1)
|
|
219
|
+
assert_mode_equal(0755, path1)
|
|
220
|
+
|
|
221
|
+
assert_file(path2)
|
|
222
|
+
assert_mode_equal(0644, path2)
|
|
217
223
|
end
|
|
218
224
|
|
|
219
225
|
def snippet_casestatement
|
|
220
|
-
|
|
226
|
+
paths = %w{
|
|
221
227
|
/tmp/existsfile
|
|
222
228
|
/tmp/existsfile2
|
|
223
229
|
/tmp/existsfile3
|
|
@@ -225,32 +231,29 @@ class TestSnippets < Test::Unit::TestCase
|
|
|
225
231
|
/tmp/existsfile5
|
|
226
232
|
}
|
|
227
233
|
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
assert(
|
|
234
|
+
paths.each { |path|
|
|
235
|
+
file = @file[path]
|
|
236
|
+
assert(file, "File %s is missing" % path)
|
|
237
|
+
assert_mode_equal(0755, path)
|
|
231
238
|
}
|
|
232
239
|
end
|
|
233
240
|
|
|
234
241
|
def snippet_implicititeration
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
files.each { |file|
|
|
238
|
-
@@tmpfiles << file
|
|
239
|
-
assert(FileTest.exists?(file), "File %s does not exist" % file)
|
|
240
|
-
assert(File.stat(file).mode & 007777 == 0755,
|
|
241
|
-
"File %s is not 755" % file)
|
|
242
|
+
paths = %w{a b c d e f g h}.collect { |l| "/tmp/iteration%stest" % l }
|
|
242
243
|
|
|
244
|
+
paths.each { |path|
|
|
245
|
+
file = @file[path]
|
|
246
|
+
assert_file(path)
|
|
247
|
+
assert_mode_equal(0755, path)
|
|
243
248
|
}
|
|
244
249
|
end
|
|
245
250
|
|
|
246
251
|
def snippet_multipleinstances
|
|
247
|
-
|
|
252
|
+
paths = %w{a b c}.collect { |l| "/tmp/multipleinstances%s" % l }
|
|
248
253
|
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
assert(File.stat(file).mode & 007777 == 0755,
|
|
253
|
-
"File %s is not 755" % file)
|
|
254
|
+
paths.each { |path|
|
|
255
|
+
assert_file(path)
|
|
256
|
+
assert_mode_equal(0755, path)
|
|
254
257
|
|
|
255
258
|
}
|
|
256
259
|
end
|
|
@@ -258,26 +261,23 @@ class TestSnippets < Test::Unit::TestCase
|
|
|
258
261
|
def snippet_namevartest
|
|
259
262
|
file = "/tmp/testfiletest"
|
|
260
263
|
dir = "/tmp/testdirtest"
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
assert(FileTest.directory?(dir), "Directory %s does not exist" % dir)
|
|
264
|
+
assert_file(file)
|
|
265
|
+
assert_file(dir)
|
|
266
|
+
assert_equal(:directory, @file[dir].should(:ensure), "Directory is not set to be a directory")
|
|
265
267
|
end
|
|
266
268
|
|
|
267
269
|
def snippet_scopetest
|
|
268
270
|
file = "/tmp/scopetest"
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
assert(File.stat(file).mode & 007777 == 0755,
|
|
272
|
-
"File %s is not 755" % file)
|
|
271
|
+
assert_file(file)
|
|
272
|
+
assert_mode_equal(0755, file)
|
|
273
273
|
end
|
|
274
274
|
|
|
275
275
|
def snippet_failmissingexecpath
|
|
276
276
|
file = "/tmp/exectesting1"
|
|
277
277
|
execfile = "/tmp/execdisttesting"
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
278
|
+
assert_file(file)
|
|
279
|
+
|
|
280
|
+
assert_nil(Puppet::Type.type(:exec)["exectest"], "invalid exec was created")
|
|
281
281
|
end
|
|
282
282
|
|
|
283
283
|
def snippet_selectorvalues
|
|
@@ -287,10 +287,8 @@ class TestSnippets < Test::Unit::TestCase
|
|
|
287
287
|
}
|
|
288
288
|
|
|
289
289
|
files.each { |f|
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
assert(File.stat(f).mode & 007777 == 0755,
|
|
293
|
-
"File %s is not 755" % f)
|
|
290
|
+
assert_file(f)
|
|
291
|
+
assert_mode_equal(0755, f)
|
|
294
292
|
}
|
|
295
293
|
end
|
|
296
294
|
|
|
@@ -301,66 +299,56 @@ class TestSnippets < Test::Unit::TestCase
|
|
|
301
299
|
}
|
|
302
300
|
|
|
303
301
|
files.each { |f|
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
assert(File.stat(f).mode & 007777 == 0755,
|
|
307
|
-
"File %s is not 755" % f)
|
|
302
|
+
assert_file(f)
|
|
303
|
+
assert_mode_equal(0755, f)
|
|
308
304
|
}
|
|
309
305
|
end
|
|
310
306
|
|
|
311
307
|
def snippet_falsevalues
|
|
312
308
|
file = "/tmp/falsevaluesfalse"
|
|
313
|
-
|
|
314
|
-
assert(FileTest.exists?(file), "File %s does not exist" % file)
|
|
309
|
+
assert_file(file)
|
|
315
310
|
end
|
|
316
311
|
|
|
317
312
|
def disabled_snippet_classargtest
|
|
318
313
|
[1,2].each { |num|
|
|
319
314
|
file = "/tmp/classargtest%s" % num
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
assert(File.stat(file).mode & 007777 == 0755,
|
|
323
|
-
"File %s is not 755" % file)
|
|
315
|
+
assert_file(file)
|
|
316
|
+
assert_mode_equal(0755, file)
|
|
324
317
|
}
|
|
325
318
|
end
|
|
326
319
|
|
|
327
320
|
def snippet_classheirarchy
|
|
328
321
|
[1,2,3].each { |num|
|
|
329
322
|
file = "/tmp/classheir%s" % num
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
assert(File.stat(file).mode & 007777 == 0755,
|
|
333
|
-
"File %s is not 755" % file)
|
|
323
|
+
assert_file(file)
|
|
324
|
+
assert_mode_equal(0755, file)
|
|
334
325
|
}
|
|
335
326
|
end
|
|
336
327
|
|
|
337
328
|
def snippet_singleary
|
|
338
329
|
[1,2,3,4].each { |num|
|
|
339
330
|
file = "/tmp/singleary%s" % num
|
|
340
|
-
|
|
341
|
-
assert(FileTest.file?(file), "File %s does not exist" % file)
|
|
331
|
+
assert_file(file)
|
|
342
332
|
}
|
|
343
333
|
end
|
|
344
334
|
|
|
345
335
|
def snippet_classincludes
|
|
346
336
|
[1,2,3].each { |num|
|
|
347
337
|
file = "/tmp/classincludes%s" % num
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
assert(File.stat(file).mode & 007777 == 0755,
|
|
351
|
-
"File %s is not 755" % file)
|
|
338
|
+
assert_file(file)
|
|
339
|
+
assert_mode_equal(0755, file)
|
|
352
340
|
}
|
|
353
341
|
end
|
|
354
342
|
|
|
355
343
|
def snippet_componentmetaparams
|
|
356
344
|
["/tmp/component1", "/tmp/component2"].each { |file|
|
|
357
|
-
|
|
345
|
+
assert_file(file)
|
|
358
346
|
}
|
|
359
347
|
end
|
|
360
348
|
|
|
361
349
|
def snippet_aliastest
|
|
362
350
|
%w{/tmp/aliastest /tmp/aliastest2 /tmp/aliastest3}.each { |file|
|
|
363
|
-
|
|
351
|
+
assert_file(file)
|
|
364
352
|
}
|
|
365
353
|
end
|
|
366
354
|
|
|
@@ -369,17 +357,14 @@ class TestSnippets < Test::Unit::TestCase
|
|
|
369
357
|
2 => 'some "\yayness\"'
|
|
370
358
|
}.each { |count, str|
|
|
371
359
|
path = "/tmp/singlequote%s" % count
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
assert_equal(str, text)
|
|
360
|
+
assert_file(path)
|
|
361
|
+
assert_equal(str, @file[path].should(:content))
|
|
376
362
|
}
|
|
377
363
|
end
|
|
378
364
|
|
|
379
365
|
# There's no way to actually retrieve the list of classes from the
|
|
380
366
|
# transaction.
|
|
381
367
|
def snippet_tag
|
|
382
|
-
@@tmpfiles << "/tmp/settestingness"
|
|
383
368
|
end
|
|
384
369
|
|
|
385
370
|
# Make sure that set tags are correctly in place, yo.
|
|
@@ -388,25 +373,21 @@ class TestSnippets < Test::Unit::TestCase
|
|
|
388
373
|
"both" => false, "bothtrue" => true, "define" => true}
|
|
389
374
|
|
|
390
375
|
tags.each do |tag, retval|
|
|
391
|
-
|
|
392
|
-
@@tmpfiles << "/tmp/tagged#{tag}false"
|
|
393
|
-
|
|
394
|
-
assert(FileTest.exists?("/tmp/tagged#{tag}#{retval.to_s}"),
|
|
395
|
-
"'tagged' did not return %s with %s" % [retval, tag])
|
|
376
|
+
assert_file("/tmp/tagged#{tag}#{retval.to_s}")
|
|
396
377
|
end
|
|
397
378
|
end
|
|
398
379
|
|
|
399
380
|
def snippet_defineoverrides
|
|
400
381
|
file = "/tmp/defineoverrides1"
|
|
401
|
-
|
|
402
|
-
|
|
382
|
+
assert_file(file)
|
|
383
|
+
assert_mode_equal(0755, file)
|
|
403
384
|
end
|
|
404
385
|
|
|
405
386
|
def snippet_deepclassheirarchy
|
|
406
387
|
5.times { |i|
|
|
407
388
|
i += 1
|
|
408
389
|
file = "/tmp/deepclassheir%s" % i
|
|
409
|
-
|
|
390
|
+
assert_file(file)
|
|
410
391
|
}
|
|
411
392
|
end
|
|
412
393
|
|
|
@@ -415,70 +396,56 @@ class TestSnippets < Test::Unit::TestCase
|
|
|
415
396
|
end
|
|
416
397
|
|
|
417
398
|
def snippet_emptyexec
|
|
418
|
-
assert(
|
|
419
|
-
"
|
|
420
|
-
|
|
421
|
-
@@tmpfiles << "/tmp/emptyexextest"
|
|
399
|
+
assert(Puppet::Type.type(:exec)["touch /tmp/emptyexectest"],
|
|
400
|
+
"Did not create exec")
|
|
422
401
|
end
|
|
423
402
|
|
|
424
403
|
def snippet_multisubs
|
|
425
404
|
path = "/tmp/multisubtest"
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
assert_equal(
|
|
405
|
+
assert_file(path)
|
|
406
|
+
file = @file[path]
|
|
407
|
+
assert_equal("sub2", file.should(:content), "sub2 did not override content")
|
|
408
|
+
assert_mode_equal(0755, path)
|
|
429
409
|
end
|
|
430
410
|
|
|
431
411
|
def snippet_collection
|
|
432
|
-
|
|
433
|
-
|
|
412
|
+
assert_file("/tmp/colltest1")
|
|
413
|
+
assert_nil(@file["/tmp/colltest2"], "Incorrectly collected file")
|
|
434
414
|
end
|
|
435
415
|
|
|
436
416
|
def snippet_virtualresources
|
|
437
417
|
%w{1 2 3 4}.each do |num|
|
|
438
|
-
|
|
439
|
-
"Did not collect file #{num}")
|
|
418
|
+
assert_file("/tmp/virtualtest#{num}")
|
|
440
419
|
end
|
|
441
420
|
end
|
|
442
421
|
|
|
443
422
|
def snippet_componentrequire
|
|
444
423
|
%w{1 2}.each do |num|
|
|
445
|
-
|
|
424
|
+
assert_file("/tmp/testing_component_requires#{num}",
|
|
446
425
|
"#{num} does not exist")
|
|
447
|
-
|
|
426
|
+
end
|
|
448
427
|
end
|
|
449
428
|
|
|
450
429
|
def snippet_realize_defined_types
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
assert(FileTest.exists?("/tmp/realize_defined_test2"),
|
|
454
|
-
"Did not make file from realized file inside defined type")
|
|
430
|
+
assert_file("/tmp/realize_defined_test1")
|
|
431
|
+
assert_file("/tmp/realize_defined_test2")
|
|
455
432
|
end
|
|
456
433
|
|
|
457
434
|
def snippet_fqparents
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
assert(FileTest.exists?("/tmp/fqparent2"),
|
|
461
|
-
"Did not make file from subclass")
|
|
435
|
+
assert_file("/tmp/fqparent1", "Did not make file from parent class")
|
|
436
|
+
assert_file("/tmp/fqparent2", "Did not make file from subclass")
|
|
462
437
|
end
|
|
463
438
|
|
|
464
439
|
def snippet_fqdefinition
|
|
465
|
-
|
|
440
|
+
assert_file("/tmp/fqdefinition",
|
|
466
441
|
"Did not make file from fully-qualified definition")
|
|
467
442
|
end
|
|
468
443
|
|
|
469
|
-
def
|
|
470
|
-
|
|
471
|
-
"
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
@@tmpfiles << dirs
|
|
475
|
-
|
|
476
|
-
dirs.each { |dir|
|
|
477
|
-
assert(FileTest.directory?(dir))
|
|
478
|
-
}
|
|
479
|
-
|
|
480
|
-
assert(File.stat("/tmp/dirchmodtesta").mode & 007777 == 0755)
|
|
481
|
-
assert(File.stat("/tmp/dirchmodtestb").mode & 007777 == 0700)
|
|
444
|
+
def snippet_subclass_name_duplication
|
|
445
|
+
assert_file("/tmp/subclass_name_duplication1",
|
|
446
|
+
"Did not make first file from duplicate subclass names")
|
|
447
|
+
assert_file("/tmp/subclass_name_duplication2",
|
|
448
|
+
"Did not make second file from duplicate subclass names")
|
|
482
449
|
end
|
|
483
450
|
|
|
484
451
|
# Iterate across each of the snippets and create a test.
|
|
@@ -517,9 +484,9 @@ class TestSnippets < Test::Unit::TestCase
|
|
|
517
484
|
assert_nothing_raised {
|
|
518
485
|
client.getconfig()
|
|
519
486
|
}
|
|
520
|
-
assert_nothing_raised {
|
|
521
|
-
|
|
522
|
-
}
|
|
487
|
+
#assert_nothing_raised {
|
|
488
|
+
# trans = client.apply()
|
|
489
|
+
#}
|
|
523
490
|
|
|
524
491
|
Puppet::Type.eachtype { |type|
|
|
525
492
|
type.each { |obj|
|
|
@@ -529,10 +496,6 @@ class TestSnippets < Test::Unit::TestCase
|
|
|
529
496
|
# assert(obj.parent, "%s has no parent" % obj.name)
|
|
530
497
|
#end
|
|
531
498
|
assert(obj.name)
|
|
532
|
-
|
|
533
|
-
if obj.is_a?(Puppet.type(:file))
|
|
534
|
-
@@tmpfiles << obj[:path]
|
|
535
|
-
end
|
|
536
499
|
}
|
|
537
500
|
}
|
|
538
501
|
assert_nothing_raised {
|
|
@@ -546,4 +509,4 @@ class TestSnippets < Test::Unit::TestCase
|
|
|
546
509
|
}
|
|
547
510
|
end
|
|
548
511
|
|
|
549
|
-
# $Id: snippets.rb
|
|
512
|
+
# $Id: snippets.rb 2463 2007-05-04 23:09:34Z luke $
|