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/ral/types/yumrepo.rb
CHANGED
|
@@ -23,10 +23,10 @@ class TestYumRepo < Test::Unit::TestCase
|
|
|
23
23
|
def test_modify
|
|
24
24
|
copy_datafiles
|
|
25
25
|
devel = make_repo("development", { :descr => "New description" })
|
|
26
|
-
devel.retrieve
|
|
26
|
+
current_values = devel.retrieve
|
|
27
27
|
assert_equal("development", devel[:name])
|
|
28
28
|
assert_equal('Fedora Core $releasever - Development Tree',
|
|
29
|
-
devel.property(:descr)
|
|
29
|
+
current_values[devel.property(:descr)])
|
|
30
30
|
assert_equal('New description',
|
|
31
31
|
devel.property(:descr).should)
|
|
32
32
|
assert_apply(devel)
|
data/test/ral/types/zone.rb
CHANGED
|
@@ -5,42 +5,14 @@ $:.unshift("../../lib") if __FILE__ =~ /\.rb$/
|
|
|
5
5
|
require 'puppettest'
|
|
6
6
|
require 'puppet/type/zone'
|
|
7
7
|
|
|
8
|
-
class TestZone <
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
def test_nothing
|
|
12
|
-
end
|
|
13
|
-
|
|
14
|
-
# Zones can only be tested on solaris.
|
|
15
|
-
if Facter["operatingsystem"].value == "Solaris"
|
|
8
|
+
class TestZone < PuppetTest::TestCase
|
|
9
|
+
confine "Zones are only functional on Solaris" => (Facter["operatingsystem"].value == "Solaris")
|
|
16
10
|
|
|
17
11
|
def setup
|
|
18
12
|
super
|
|
19
13
|
@@zones = []
|
|
20
14
|
end
|
|
21
15
|
|
|
22
|
-
def teardown
|
|
23
|
-
current = %x{zoneadm list -cp}.split("\n").inject({}) { |h, line|
|
|
24
|
-
ary = line.split(":")
|
|
25
|
-
h[ary[1]] = ary[2]
|
|
26
|
-
h
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
Puppet::Type.type(:zone).clear
|
|
30
|
-
|
|
31
|
-
# Get rid of any lingering zones
|
|
32
|
-
@@zones.each do |zone|
|
|
33
|
-
next unless current.include? zone
|
|
34
|
-
|
|
35
|
-
obj = Puppet::Type.type(:zone).create(:name => zone)
|
|
36
|
-
obj[:ensure] = :absent
|
|
37
|
-
assert_apply(obj)
|
|
38
|
-
end
|
|
39
|
-
|
|
40
|
-
# We can't delete the temp files until the zones are stopped and removed.
|
|
41
|
-
super
|
|
42
|
-
end
|
|
43
|
-
|
|
44
16
|
def mkzone(name)
|
|
45
17
|
zone = nil
|
|
46
18
|
|
|
@@ -61,10 +33,10 @@ class TestZone < Test::Unit::TestCase
|
|
|
61
33
|
return zone
|
|
62
34
|
end
|
|
63
35
|
|
|
64
|
-
def
|
|
36
|
+
def test_instances
|
|
65
37
|
list = nil
|
|
66
38
|
assert_nothing_raised {
|
|
67
|
-
list = Puppet::Type.type(:zone).
|
|
39
|
+
list = Puppet::Type.type(:zone).instances
|
|
68
40
|
}
|
|
69
41
|
|
|
70
42
|
assert(! list.empty?, "Got no zones back")
|
|
@@ -72,14 +44,14 @@ class TestZone < Test::Unit::TestCase
|
|
|
72
44
|
assert(list.find { |z| z[:name] == "global" }, "Could not find global zone")
|
|
73
45
|
end
|
|
74
46
|
|
|
75
|
-
def
|
|
47
|
+
def test_state_sequence
|
|
76
48
|
zone = mkzone("slicetest")
|
|
77
49
|
|
|
78
50
|
property = zone.property(:ensure)
|
|
79
51
|
|
|
80
52
|
slice = nil
|
|
81
53
|
assert_nothing_raised {
|
|
82
|
-
slice = property.class.
|
|
54
|
+
slice = property.class.state_sequence(:absent, :installed).collect do |o|
|
|
83
55
|
o[:name]
|
|
84
56
|
end
|
|
85
57
|
}
|
|
@@ -88,7 +60,7 @@ class TestZone < Test::Unit::TestCase
|
|
|
88
60
|
assert_equal([:configured, :installed], slice)
|
|
89
61
|
|
|
90
62
|
assert_nothing_raised {
|
|
91
|
-
slice = property.class.
|
|
63
|
+
slice = property.class.state_sequence(:running, :installed).collect do |o|
|
|
92
64
|
o[:name]
|
|
93
65
|
end
|
|
94
66
|
}
|
|
@@ -106,15 +78,15 @@ class TestZone < Test::Unit::TestCase
|
|
|
106
78
|
|
|
107
79
|
assert(property, "Did not get ensure property")
|
|
108
80
|
|
|
81
|
+
values = nil
|
|
109
82
|
assert_nothing_raised {
|
|
110
|
-
zone.retrieve
|
|
83
|
+
values = zone.retrieve
|
|
111
84
|
}
|
|
112
85
|
|
|
113
|
-
assert(! property.insync
|
|
86
|
+
assert(! property.insync?(values[property]), "Property is somehow in sync")
|
|
114
87
|
|
|
115
88
|
assert(property.up?, "Property incorrectly thinks it is not moving up")
|
|
116
89
|
|
|
117
|
-
zone.is = [:ensure, :configured]
|
|
118
90
|
zone[:ensure] = :installed
|
|
119
91
|
assert(property.up?, "Property incorrectly thinks it is not moving up")
|
|
120
92
|
zone[:ensure] = :absent
|
|
@@ -128,7 +100,7 @@ class TestZone < Test::Unit::TestCase
|
|
|
128
100
|
|
|
129
101
|
property = zone.property(:ensure)
|
|
130
102
|
assert_nothing_raised {
|
|
131
|
-
property.class.
|
|
103
|
+
property.class.state_sequence(:absent, :running).each do |st|
|
|
132
104
|
[:up, :down].each do |m|
|
|
133
105
|
if st[m]
|
|
134
106
|
methods << st[m]
|
|
@@ -161,7 +133,7 @@ class TestZone < Test::Unit::TestCase
|
|
|
161
133
|
assert_equal("add inherit-pkg-dir\nset dir=/usr\nend", property.configtext,
|
|
162
134
|
"Got incorrect config text")
|
|
163
135
|
|
|
164
|
-
|
|
136
|
+
zone.provider.inherit = "/usr"
|
|
165
137
|
|
|
166
138
|
assert_equal("", property.configtext,
|
|
167
139
|
"Got incorrect config text")
|
|
@@ -180,7 +152,7 @@ end"
|
|
|
180
152
|
assert_equal(text, property.configtext,
|
|
181
153
|
"Got incorrect config text")
|
|
182
154
|
|
|
183
|
-
|
|
155
|
+
zone.provider.inherit = %w{/usr /sbin /lib}
|
|
184
156
|
property.should = %w{/usr /sbin}
|
|
185
157
|
|
|
186
158
|
text = "remove inherit-pkg-dir dir=/lib"
|
|
@@ -188,20 +160,42 @@ end"
|
|
|
188
160
|
assert_equal(text, property.configtext,
|
|
189
161
|
"Got incorrect config text")
|
|
190
162
|
end
|
|
163
|
+
end
|
|
164
|
+
|
|
165
|
+
class TestZoneAsRoot < TestZone
|
|
166
|
+
confine "Not running Zone creation tests" => Puppet.features.root?
|
|
167
|
+
confine "Zones are only functional on Solaris" => (Facter["operatingsystem"].value == "Solaris")
|
|
168
|
+
|
|
169
|
+
def teardown
|
|
170
|
+
current = %x{zoneadm list -cp}.split("\n").inject({}) { |h, line|
|
|
171
|
+
ary = line.split(":")
|
|
172
|
+
h[ary[1]] = ary[2]
|
|
173
|
+
h
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
Puppet::Type.type(:zone).clear
|
|
177
|
+
|
|
178
|
+
# Get rid of any lingering zones
|
|
179
|
+
@@zones.each do |zone|
|
|
180
|
+
next unless current.include? zone
|
|
181
|
+
|
|
182
|
+
obj = Puppet::Type.type(:zone).create(:name => zone)
|
|
183
|
+
obj[:ensure] = :absent
|
|
184
|
+
assert_apply(obj)
|
|
185
|
+
end
|
|
191
186
|
|
|
192
|
-
|
|
187
|
+
# We can't delete the temp files until the zones are stopped and removed.
|
|
188
|
+
super
|
|
189
|
+
end
|
|
193
190
|
# Make sure our ensure process actually works.
|
|
194
191
|
def test_ensure_sync
|
|
195
192
|
zone = mkzone("ensuretesting")
|
|
196
193
|
|
|
197
194
|
zone[:ensure] = :configured
|
|
198
195
|
|
|
199
|
-
zone.retrieve
|
|
200
196
|
assert_apply(zone)
|
|
201
197
|
|
|
202
|
-
zone.retrieve
|
|
203
|
-
|
|
204
|
-
assert(zone.insync?, "Zone is not insync")
|
|
198
|
+
assert(zone.insync?(zone.retrieve), "Zone is not insync")
|
|
205
199
|
end
|
|
206
200
|
|
|
207
201
|
def test_getconfig
|
|
@@ -242,25 +236,27 @@ end
|
|
|
242
236
|
|
|
243
237
|
assert_equal(0, $?, "Did not successfully create zone")
|
|
244
238
|
|
|
245
|
-
#@@zones << "configtesting"
|
|
246
|
-
|
|
247
239
|
hash = nil
|
|
248
240
|
assert_nothing_raised {
|
|
249
241
|
hash = zone.provider.send(:getconfig)
|
|
250
242
|
}
|
|
251
243
|
|
|
252
|
-
|
|
253
|
-
|
|
244
|
+
zone[:check] = [:inherit, :autoboot]
|
|
245
|
+
|
|
246
|
+
values = nil
|
|
247
|
+
assert_nothing_raised("Could not retrieve zone values") do
|
|
248
|
+
values = zone.retrieve.inject({}) { |result, newvals| result[newvals[0].name] = newvals[1]; result }
|
|
249
|
+
end
|
|
254
250
|
|
|
255
251
|
# And make sure it gets set correctly.
|
|
256
252
|
assert_equal(%w{/sbin /usr /opt/csw /lib /platform}.sort,
|
|
257
|
-
|
|
253
|
+
values[:inherit].sort, "Inherited dirs did not get collected correctly."
|
|
258
254
|
)
|
|
259
255
|
|
|
260
|
-
assert_equal(["#{interface}:#{ip}"],
|
|
256
|
+
assert_equal(["#{interface}:#{ip}"], values[:ip],
|
|
261
257
|
"IP addresses did not get collected correctly.")
|
|
262
258
|
|
|
263
|
-
assert_equal(:true,
|
|
259
|
+
assert_equal(:true, values[:autoboot],
|
|
264
260
|
"Autoboot did not get collected correctly.")
|
|
265
261
|
end
|
|
266
262
|
|
|
@@ -274,12 +270,9 @@ end
|
|
|
274
270
|
|
|
275
271
|
zone[:ensure] = :configured
|
|
276
272
|
|
|
277
|
-
zone.retrieve
|
|
278
273
|
assert_apply(zone)
|
|
279
274
|
|
|
280
|
-
zone.retrieve
|
|
281
|
-
|
|
282
|
-
assert(zone.insync?, "Zone is not insync")
|
|
275
|
+
assert(zone.insync?(zone.retrieve), "Zone is not insync")
|
|
283
276
|
|
|
284
277
|
# Now add a new directory to inherit
|
|
285
278
|
assert_nothing_raised {
|
|
@@ -287,9 +280,7 @@ end
|
|
|
287
280
|
}
|
|
288
281
|
assert_apply(zone)
|
|
289
282
|
|
|
290
|
-
zone.retrieve
|
|
291
|
-
|
|
292
|
-
assert(zone.insync?, "Zone is not insync")
|
|
283
|
+
assert(zone.insync?(zone.retrieve), "Zone is not insync")
|
|
293
284
|
|
|
294
285
|
assert(%x{/usr/sbin/zonecfg -z #{zone[:name]} info} =~ /dir: \/sbin/,
|
|
295
286
|
"sbin was not added")
|
|
@@ -300,9 +291,7 @@ end
|
|
|
300
291
|
}
|
|
301
292
|
assert_apply(zone)
|
|
302
293
|
|
|
303
|
-
zone.retrieve
|
|
304
|
-
|
|
305
|
-
assert(zone.insync?, "Zone is not insync")
|
|
294
|
+
assert(zone.insync?(zone.retrieve), "Zone is not insync")
|
|
306
295
|
|
|
307
296
|
assert(%x{/usr/sbin/zonecfg -z #{zone[:name]} info} !~ /dir: \/sbin/,
|
|
308
297
|
"sbin was not removed")
|
|
@@ -311,18 +300,15 @@ end
|
|
|
311
300
|
# that the interface exists.
|
|
312
301
|
zone[:ip] = "hme0:192.168.0.1"
|
|
313
302
|
|
|
314
|
-
zone.retrieve
|
|
315
|
-
assert(! zone.insync?, "Zone is marked as in sync")
|
|
303
|
+
assert(! zone.insync?(zone.retrieve), "Zone is marked as in sync")
|
|
316
304
|
|
|
317
305
|
assert_apply(zone)
|
|
318
|
-
zone.retrieve
|
|
319
|
-
assert(zone.insync?, "Zone is not in sync")
|
|
306
|
+
assert(zone.insync?(zone.retrieve), "Zone is not in sync")
|
|
320
307
|
assert(%x{/usr/sbin/zonecfg -z #{zone[:name]} info} =~ /192.168.0.1/,
|
|
321
308
|
"ip was not added")
|
|
322
309
|
zone[:ip] = ["hme1:192.168.0.2", "hme0:192.168.0.1"]
|
|
323
310
|
assert_apply(zone)
|
|
324
|
-
zone.retrieve
|
|
325
|
-
assert(zone.insync?, "Zone is not in sync")
|
|
311
|
+
assert(zone.insync?(zone.retrieve), "Zone is not in sync")
|
|
326
312
|
assert(%x{/usr/sbin/zonecfg -z #{zone[:name]} info} =~ /192.168.0.2/,
|
|
327
313
|
"ip was not added")
|
|
328
314
|
zone[:ip] = ["hme1:192.168.0.2"]
|
|
@@ -348,22 +334,20 @@ end
|
|
|
348
334
|
|
|
349
335
|
zone[:ensure] = :configured
|
|
350
336
|
|
|
351
|
-
assert(! zone.insync
|
|
337
|
+
assert(! zone.insync?(zone.retrieve), "Zone is incorrectly in sync")
|
|
352
338
|
|
|
353
339
|
assert_apply(zone)
|
|
354
340
|
|
|
355
|
-
|
|
356
|
-
zone.retrieve
|
|
357
|
-
}
|
|
358
|
-
assert(zone.insync?, "Zone is incorrectly out of sync")
|
|
341
|
+
assert(zone.insync?(zone.retrieve), "Zone is incorrectly out of sync")
|
|
359
342
|
|
|
360
343
|
zone[:ensure] = :absent
|
|
361
344
|
|
|
362
345
|
assert_apply(zone)
|
|
363
346
|
|
|
364
|
-
zone.retrieve
|
|
347
|
+
currentvalues = zone.retrieve
|
|
365
348
|
|
|
366
|
-
assert_equal(:absent, zone.
|
|
349
|
+
assert_equal(:absent, currentvalues[zone.property(:ensure)],
|
|
350
|
+
"Zone is not absent")
|
|
367
351
|
end
|
|
368
352
|
|
|
369
353
|
# Just go through each method linearly and make sure it works.
|
|
@@ -384,16 +368,18 @@ end
|
|
|
384
368
|
[:unconfigure, :absent]
|
|
385
369
|
].each do |method, property|
|
|
386
370
|
Puppet.info "Testing %s" % method
|
|
371
|
+
current_values = nil
|
|
387
372
|
assert_nothing_raised {
|
|
388
|
-
zone.retrieve
|
|
373
|
+
current_values = zone.retrieve
|
|
389
374
|
}
|
|
390
375
|
assert_nothing_raised {
|
|
391
376
|
zone.provider.send(method)
|
|
392
377
|
}
|
|
378
|
+
current_values = nil
|
|
393
379
|
assert_nothing_raised {
|
|
394
|
-
zone.retrieve
|
|
380
|
+
current_values = zone.retrieve
|
|
395
381
|
}
|
|
396
|
-
assert_equal(property, zone.
|
|
382
|
+
assert_equal(property, current_values[zone.property(:ensure)],
|
|
397
383
|
"Method %s did not correctly set property %s" %
|
|
398
384
|
[method, property])
|
|
399
385
|
end
|
|
@@ -416,22 +402,20 @@ end
|
|
|
416
402
|
assert_nothing_raised {
|
|
417
403
|
zone[:ensure] = value
|
|
418
404
|
}
|
|
419
|
-
assert(! zone.insync
|
|
405
|
+
assert(! zone.insync?(zone.retrieve), "Zone is incorrectly in sync")
|
|
420
406
|
|
|
421
407
|
assert_apply(zone)
|
|
422
408
|
|
|
423
409
|
assert_nothing_raised {
|
|
424
|
-
zone.retrieve
|
|
410
|
+
assert(zone.insync?(zone.retrieve), "Zone is incorrectly out of sync")
|
|
425
411
|
}
|
|
426
|
-
assert(zone.insync?, "Zone is incorrectly out of sync")
|
|
427
412
|
end
|
|
428
413
|
|
|
429
|
-
zone.retrieve
|
|
414
|
+
currentvalues = zone.retrieve
|
|
430
415
|
|
|
431
|
-
assert_equal(:absent, zone.
|
|
432
|
-
|
|
433
|
-
end
|
|
416
|
+
assert_equal(:absent, currentvalues[zone.property(:ensure)],
|
|
417
|
+
"Zone is not absent")
|
|
434
418
|
end
|
|
435
419
|
end
|
|
436
420
|
|
|
437
|
-
# $Id: zone.rb
|
|
421
|
+
# $Id: zone.rb 2576 2007-06-14 03:39:00Z luke $
|
data/test/util/autoload.rb
CHANGED
|
@@ -74,7 +74,7 @@ TestAutoload.newthing(:#{name.to_s})
|
|
|
74
74
|
# Now try to actually load it.
|
|
75
75
|
assert_nothing_raised {
|
|
76
76
|
assert_equal(true, loader.load(:mything),
|
|
77
|
-
"got incorrect return on
|
|
77
|
+
"got incorrect return on load")
|
|
78
78
|
}
|
|
79
79
|
|
|
80
80
|
assert(loader.loaded?(:mything), "Not considered loaded")
|
|
@@ -103,28 +103,13 @@ TestAutoload.newthing(:#{name.to_s})
|
|
|
103
103
|
|
|
104
104
|
# Make sure that autoload dynamically modifies $: with the libdir as
|
|
105
105
|
# appropriate.
|
|
106
|
-
def
|
|
106
|
+
def test_searchpath
|
|
107
107
|
dir = Puppet[:libdir]
|
|
108
|
-
unless FileTest.directory?(dir)
|
|
109
|
-
Dir.mkdir(dir)
|
|
110
|
-
end
|
|
111
|
-
|
|
112
|
-
loader = File.join(dir, "test")
|
|
113
|
-
Dir.mkdir(loader)
|
|
114
|
-
name = "funtest"
|
|
115
|
-
file = File.join(loader, "funtest.rb")
|
|
116
|
-
File.open(file, "w") do |f|
|
|
117
|
-
f.puts "$loaded = true"
|
|
118
|
-
end
|
|
119
108
|
|
|
120
|
-
|
|
109
|
+
loader = Puppet::Util::Autoload.new(self, "testing")
|
|
121
110
|
|
|
122
|
-
|
|
123
|
-
assert(! $:.include?(dir), "search path already includes libdir")
|
|
124
|
-
|
|
125
|
-
assert_nothing_raised do
|
|
126
|
-
assert(auto.load("funtest"), "did not successfully load funtest")
|
|
127
|
-
end
|
|
128
|
-
assert($:.include?(dir), "libdir did not get added to search path")
|
|
111
|
+
assert(loader.send(:searchpath).include?(dir), "searchpath does not include the libdir")
|
|
129
112
|
end
|
|
130
113
|
end
|
|
114
|
+
|
|
115
|
+
# $Id: autoload.rb 2518 2007-05-16 00:00:47Z luke $
|
data/test/util/config.rb
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
$:.unshift("../lib").unshift("../../lib") if __FILE__ =~ /\.rb$/
|
|
4
4
|
|
|
5
|
+
require 'mocha'
|
|
5
6
|
require 'puppet'
|
|
6
7
|
require 'puppet/util/config'
|
|
7
8
|
require 'puppettest'
|
|
@@ -196,7 +197,65 @@ class TestConfig < Test::Unit::TestCase
|
|
|
196
197
|
assert_equal("not default", @config[:yayness])
|
|
197
198
|
end
|
|
198
199
|
|
|
199
|
-
def
|
|
200
|
+
def test_parse_file
|
|
201
|
+
text = %{
|
|
202
|
+
one = this is a test
|
|
203
|
+
two = another test
|
|
204
|
+
owner = root
|
|
205
|
+
group = root
|
|
206
|
+
yay = /a/path
|
|
207
|
+
|
|
208
|
+
[main]
|
|
209
|
+
four = five
|
|
210
|
+
six = seven
|
|
211
|
+
|
|
212
|
+
[section1]
|
|
213
|
+
attr = value
|
|
214
|
+
owner = puppet
|
|
215
|
+
group = puppet
|
|
216
|
+
attrdir = /some/dir
|
|
217
|
+
attr3 = $attrdir/other
|
|
218
|
+
}
|
|
219
|
+
|
|
220
|
+
file = tempfile()
|
|
221
|
+
File.open(file, "w") { |f| f.puts text }
|
|
222
|
+
|
|
223
|
+
@config.expects(:settimer)
|
|
224
|
+
|
|
225
|
+
result = nil
|
|
226
|
+
assert_nothing_raised {
|
|
227
|
+
result = @config.send(:parse_file, file)
|
|
228
|
+
}
|
|
229
|
+
|
|
230
|
+
main = result[:main]
|
|
231
|
+
assert(main, "Did not get section for main")
|
|
232
|
+
{
|
|
233
|
+
:one => "this is a test",
|
|
234
|
+
:two => "another test",
|
|
235
|
+
:owner => "root",
|
|
236
|
+
:group => "root",
|
|
237
|
+
:yay => "/a/path",
|
|
238
|
+
:four => "five",
|
|
239
|
+
:six => "seven"
|
|
240
|
+
}.each do |param, value|
|
|
241
|
+
assert_equal(value, main[param], "Param %s was not set correctly in main" % param)
|
|
242
|
+
end
|
|
243
|
+
|
|
244
|
+
section1 = result[:section1]
|
|
245
|
+
assert(section1, "Did not get section1")
|
|
246
|
+
|
|
247
|
+
{
|
|
248
|
+
:attr => "value",
|
|
249
|
+
:owner => "puppet",
|
|
250
|
+
:group => "puppet",
|
|
251
|
+
:attrdir => "/some/dir",
|
|
252
|
+
:attr3 => "$attrdir/other"
|
|
253
|
+
}.each do |param, value|
|
|
254
|
+
assert_equal(value, section1[param], "Param %s was not set correctly in section1" % param)
|
|
255
|
+
end
|
|
256
|
+
end
|
|
257
|
+
|
|
258
|
+
def test_old_parse
|
|
200
259
|
text = %{
|
|
201
260
|
one = this is a test
|
|
202
261
|
two = another test
|
|
@@ -233,7 +292,7 @@ yay = /a/path
|
|
|
233
292
|
}
|
|
234
293
|
|
|
235
294
|
assert_nothing_raised {
|
|
236
|
-
@config.
|
|
295
|
+
@config.old_parse(file)
|
|
237
296
|
}
|
|
238
297
|
|
|
239
298
|
assert_equal("value", @config[:attr])
|
|
@@ -267,6 +326,137 @@ yay = /a/path
|
|
|
267
326
|
check_to_transportable(@config)
|
|
268
327
|
end
|
|
269
328
|
|
|
329
|
+
def test_parse
|
|
330
|
+
result = {
|
|
331
|
+
:main => {:main => "main", :bad => "invalid"},
|
|
332
|
+
:puppet => {:other => "puppet"},
|
|
333
|
+
:puppetd => {:other => "puppetd"}
|
|
334
|
+
}
|
|
335
|
+
# Set our defaults, so they're valid. Don't define 'bad', since we want to test for failures.
|
|
336
|
+
@config.setdefaults(:main,
|
|
337
|
+
:main => ["whatever", "a"],
|
|
338
|
+
:other => ["a", "b"],
|
|
339
|
+
:name => ["puppet", "b"] # our default name
|
|
340
|
+
)
|
|
341
|
+
@config.expects(:parse_file).returns(result).times(2)
|
|
342
|
+
|
|
343
|
+
# First do it with our name being 'puppet'
|
|
344
|
+
assert_nothing_raised("Could not handle parse results") do
|
|
345
|
+
@config.parse(tempfile)
|
|
346
|
+
end
|
|
347
|
+
|
|
348
|
+
assert_logged(:warning, /unknown configuration parameter bad/, "Did not log invalid config param")
|
|
349
|
+
|
|
350
|
+
assert_equal("main", @config[:main], "Did not get main value")
|
|
351
|
+
assert_equal("puppet", @config[:other], "Did not get name value")
|
|
352
|
+
|
|
353
|
+
# Now switch names and make sure the parsing switches, too.
|
|
354
|
+
@config.clear
|
|
355
|
+
@config[:name] = :puppetd
|
|
356
|
+
assert_nothing_raised("Could not handle parse results") do
|
|
357
|
+
@config.parse(tempfile)
|
|
358
|
+
end
|
|
359
|
+
assert_logged(:warning, /unknown configuration parameter bad/, "Did not log invalid config param")
|
|
360
|
+
|
|
361
|
+
assert_equal("main", @config[:main], "Did not get main value")
|
|
362
|
+
assert_equal("puppetd", @config[:other], "Did not get name value")
|
|
363
|
+
end
|
|
364
|
+
|
|
365
|
+
# Make sure we can extract file options correctly.
|
|
366
|
+
def test_parsing_file_options
|
|
367
|
+
@config.setdefaults(:whev,
|
|
368
|
+
:file => {
|
|
369
|
+
:desc => "whev",
|
|
370
|
+
:default => "/default",
|
|
371
|
+
:owner => "me",
|
|
372
|
+
:group => "me",
|
|
373
|
+
:mode => "755"
|
|
374
|
+
}
|
|
375
|
+
)
|
|
376
|
+
|
|
377
|
+
file = tempfile
|
|
378
|
+
|
|
379
|
+
{
|
|
380
|
+
:pass => {
|
|
381
|
+
" {owner = you}" => {:owner => "you"},
|
|
382
|
+
" {owner = you, group = you}" => {:owner => "you", :group => "you"},
|
|
383
|
+
" {owner = you, group = you, mode = 755}" => {:owner => "you", :group => "you", :mode => "755"},
|
|
384
|
+
" { owner = you, group = you } " => {:owner => "you", :group => "you"},
|
|
385
|
+
"{owner=you,group=you} " => {:owner => "you", :group => "you"},
|
|
386
|
+
"{owner=you,} " => {:owner => "you"}
|
|
387
|
+
},
|
|
388
|
+
:fail => [
|
|
389
|
+
%{{owner = you group = you}},
|
|
390
|
+
%{{owner => you, group => you}},
|
|
391
|
+
%{{user => you}},
|
|
392
|
+
%{{random => you}},
|
|
393
|
+
%{{mode => you}}, # make sure modes are numbers
|
|
394
|
+
%{{owner => you}}
|
|
395
|
+
]
|
|
396
|
+
}.each do |type, list|
|
|
397
|
+
list.each do |value|
|
|
398
|
+
if type == :pass
|
|
399
|
+
value, should = value[0], value[1]
|
|
400
|
+
end
|
|
401
|
+
# Write our file out
|
|
402
|
+
File.open(file, "w") do |f|
|
|
403
|
+
f.puts %{[main]\nfile = /other%s} % value
|
|
404
|
+
end
|
|
405
|
+
|
|
406
|
+
if type == :fail
|
|
407
|
+
assert_raise(Puppet::Error, "Did not fail on %s" % value.inspect) do
|
|
408
|
+
@config.send(:parse_file, file)
|
|
409
|
+
end
|
|
410
|
+
else
|
|
411
|
+
result = nil
|
|
412
|
+
assert_nothing_raised("Failed to parse %s" % value.inspect) do
|
|
413
|
+
result = @config.send(:parse_file, file)
|
|
414
|
+
end
|
|
415
|
+
assert_equal(should, result[:main][:_meta][:file], "Got incorrect return for %s" % value.inspect)
|
|
416
|
+
end
|
|
417
|
+
end
|
|
418
|
+
end
|
|
419
|
+
end
|
|
420
|
+
|
|
421
|
+
# Make sure file options returned from parse_file are handled correctly.
|
|
422
|
+
def test_parsed_file_options
|
|
423
|
+
@config.setdefaults(:whev,
|
|
424
|
+
:file => {
|
|
425
|
+
:desc => "whev",
|
|
426
|
+
:default => "/default",
|
|
427
|
+
:owner => "me",
|
|
428
|
+
:group => "me",
|
|
429
|
+
:mode => "755"
|
|
430
|
+
}
|
|
431
|
+
)
|
|
432
|
+
|
|
433
|
+
result = {
|
|
434
|
+
:main => {
|
|
435
|
+
:file => "/other",
|
|
436
|
+
:_meta => {
|
|
437
|
+
:file => {
|
|
438
|
+
:owner => "you",
|
|
439
|
+
:group => "you",
|
|
440
|
+
:mode => "644"
|
|
441
|
+
}
|
|
442
|
+
}
|
|
443
|
+
}
|
|
444
|
+
}
|
|
445
|
+
|
|
446
|
+
@config.expects(:parse_file).returns(result)
|
|
447
|
+
|
|
448
|
+
assert_nothing_raised("Could not handle file options") do
|
|
449
|
+
@config.parse("/whatever")
|
|
450
|
+
end
|
|
451
|
+
|
|
452
|
+
# Get the actual object, so we can verify metadata
|
|
453
|
+
file = @config.element(:file)
|
|
454
|
+
|
|
455
|
+
assert_equal("you", file.owner, "Did not pass on user")
|
|
456
|
+
assert_equal("you", file.group, "Did not pass on group")
|
|
457
|
+
assert_equal("644", file.mode, "Did not pass on mode")
|
|
458
|
+
end
|
|
459
|
+
|
|
270
460
|
def test_arghandling
|
|
271
461
|
c = mkconfig
|
|
272
462
|
|
|
@@ -517,7 +707,7 @@ yay = /a/path
|
|
|
517
707
|
group = "yayness"
|
|
518
708
|
|
|
519
709
|
File.open(cfile, "w") do |f|
|
|
520
|
-
f.puts "[
|
|
710
|
+
f.puts "[main]
|
|
521
711
|
group = #{group}
|
|
522
712
|
"
|
|
523
713
|
end
|
|
@@ -624,7 +814,7 @@ yay = /a/path
|
|
|
624
814
|
|
|
625
815
|
File.open(file, "w") do |f|
|
|
626
816
|
f.puts %{
|
|
627
|
-
[
|
|
817
|
+
[main]
|
|
628
818
|
booltest = true
|
|
629
819
|
inttest = 27
|
|
630
820
|
}
|
|
@@ -726,7 +916,7 @@ inttest = 27
|
|
|
726
916
|
file = tempfile()
|
|
727
917
|
# Set one parameter in the file
|
|
728
918
|
File.open(file, "w") { |f|
|
|
729
|
-
f.puts %{[
|
|
919
|
+
f.puts %{[main]\nfilechange = filevalue}
|
|
730
920
|
}
|
|
731
921
|
assert_nothing_raised {
|
|
732
922
|
config.parse(file)
|
|
@@ -744,7 +934,7 @@ inttest = 27
|
|
|
744
934
|
|
|
745
935
|
# Now rewrite the file
|
|
746
936
|
File.open(file, "w") { |f|
|
|
747
|
-
f.puts %{[
|
|
937
|
+
f.puts %{[main]\nfilechange = newvalue}
|
|
748
938
|
}
|
|
749
939
|
|
|
750
940
|
cfile = config.file
|
|
@@ -766,7 +956,7 @@ inttest = 27
|
|
|
766
956
|
file = tempfile()
|
|
767
957
|
# Set one parameter in the file
|
|
768
958
|
File.open(file, "w") { |f|
|
|
769
|
-
f.puts %{[
|
|
959
|
+
f.puts %{[main]\n
|
|
770
960
|
singleq = 'one'
|
|
771
961
|
doubleq = "one"
|
|
772
962
|
none = one
|
|
@@ -793,7 +983,7 @@ inttest = 27
|
|
|
793
983
|
file = tempfile()
|
|
794
984
|
# Set one parameter in the file
|
|
795
985
|
File.open(file, "w") { |f|
|
|
796
|
-
f.puts %{[
|
|
986
|
+
f.puts %{[main]\n
|
|
797
987
|
paramdir = #{origpath}
|
|
798
988
|
}
|
|
799
989
|
}
|
|
@@ -813,7 +1003,7 @@ inttest = 27
|
|
|
813
1003
|
newpath = tempfile()
|
|
814
1004
|
|
|
815
1005
|
File.open(file, "w") { |f|
|
|
816
|
-
f.puts %{[
|
|
1006
|
+
f.puts %{[main]\n
|
|
817
1007
|
paramdir = #{newpath}
|
|
818
1008
|
}
|
|
819
1009
|
}
|
|
@@ -941,7 +1131,7 @@ inttest = 27
|
|
|
941
1131
|
config.setdefaults(:mysection, :one => ["yay", "yay"])
|
|
942
1132
|
file = tempfile()
|
|
943
1133
|
File.open(file, "w") { |f|
|
|
944
|
-
f.puts %{[
|
|
1134
|
+
f.puts %{[main]\n
|
|
945
1135
|
one = one
|
|
946
1136
|
two = yay
|
|
947
1137
|
}
|
|
@@ -977,96 +1167,6 @@ inttest = 27
|
|
|
977
1167
|
assert_equal("oneval/twoval/oneval/twoval", @config[:three],
|
|
978
1168
|
"Did not interpolate curlied variables")
|
|
979
1169
|
end
|
|
980
|
-
|
|
981
|
-
# #489
|
|
982
|
-
def test_modes
|
|
983
|
-
Puppet[:name] = "puppet"
|
|
984
|
-
config = tempfile()
|
|
985
|
-
|
|
986
|
-
check = Proc.new do |string, int|
|
|
987
|
-
trans = @config.section_to_transportable(:puppet)
|
|
988
|
-
ssldir = trans.find { |o| o.type == "file" }
|
|
989
|
-
assert(ssldir, "could not find trans object")
|
|
990
|
-
|
|
991
|
-
if ssldir[:mode].is_a?(Fixnum)
|
|
992
|
-
assert_equal(int, ssldir[:mode], "mode not set correctly")
|
|
993
|
-
else
|
|
994
|
-
assert_equal(string, ssldir[:mode], "mode not set correctly")
|
|
995
|
-
end
|
|
996
|
-
|
|
997
|
-
obj = nil
|
|
998
|
-
assert_nothing_raised { obj = ssldir.to_type }
|
|
999
|
-
|
|
1000
|
-
assert(obj, "did not create object")
|
|
1001
|
-
assert_equal(int, obj.should(:mode),
|
|
1002
|
-
"did not pass mode correctly to file")
|
|
1003
|
-
|
|
1004
|
-
obj.class.clear
|
|
1005
|
-
end
|
|
1006
|
-
|
|
1007
|
-
file = tempfile
|
|
1008
|
-
@config.setdefaults(:puppet, :mode => ["644", "yay"])
|
|
1009
|
-
@config.setdefaults(:puppet, :ssldir => {
|
|
1010
|
-
:mode => 0644,
|
|
1011
|
-
:desc => "yay",
|
|
1012
|
-
:default => "/some/file"})
|
|
1013
|
-
|
|
1014
|
-
# Convert it first using the number
|
|
1015
|
-
check.call("644", 0644)
|
|
1016
|
-
|
|
1017
|
-
File.open(config, "w") { |f| f.puts "[puppet]
|
|
1018
|
-
mode = 750
|
|
1019
|
-
ssldir = #{file}
|
|
1020
|
-
"}
|
|
1021
|
-
|
|
1022
|
-
@config.parse(config)
|
|
1023
|
-
|
|
1024
|
-
assert_equal("750", @config[:mode],
|
|
1025
|
-
"Did not parse mode correctly")
|
|
1026
|
-
|
|
1027
|
-
check.call("750", 0750)
|
|
1028
|
-
end
|
|
1029
|
-
|
|
1030
|
-
def test_only_set_metas_when_valid
|
|
1031
|
-
file = tempfile
|
|
1032
|
-
config = tempfile
|
|
1033
|
-
@config.setdefaults(Puppet[:name], :ssldir => {
|
|
1034
|
-
:mode => 0644,
|
|
1035
|
-
:group => "yayness",
|
|
1036
|
-
:desc => "yay",
|
|
1037
|
-
:default => "/some/file"})
|
|
1038
|
-
|
|
1039
|
-
File.open(config, "w") { |f| f.puts "[#{Puppet[:name]}]
|
|
1040
|
-
mode = 755
|
|
1041
|
-
group = foo
|
|
1042
|
-
ssldir = #{file}
|
|
1043
|
-
"}
|
|
1044
|
-
|
|
1045
|
-
assert_nothing_raised do
|
|
1046
|
-
@config.parse(config)
|
|
1047
|
-
end
|
|
1048
|
-
|
|
1049
|
-
assert_raise(ArgumentError) do
|
|
1050
|
-
@config[:mode]
|
|
1051
|
-
end
|
|
1052
|
-
assert_raise(ArgumentError) do
|
|
1053
|
-
@config[:group]
|
|
1054
|
-
end
|
|
1055
|
-
|
|
1056
|
-
# Now make them valid params
|
|
1057
|
-
@config.setdefaults(Puppet[:name], :group => ["blah", "yay"])
|
|
1058
|
-
@config.setdefaults(Puppet[:name], :mode => ["750", "yay"])
|
|
1059
|
-
|
|
1060
|
-
assert_nothing_raised do
|
|
1061
|
-
@config.parse(config)
|
|
1062
|
-
end
|
|
1063
|
-
|
|
1064
|
-
assert_equal("foo", @config[:group],
|
|
1065
|
-
"Did not store group when it is a valid config")
|
|
1066
|
-
assert_equal("755", @config[:mode],
|
|
1067
|
-
"Did not store mode when it is a valid config")
|
|
1068
|
-
|
|
1069
|
-
end
|
|
1070
1170
|
end
|
|
1071
1171
|
|
|
1072
|
-
# $Id: config.rb
|
|
1172
|
+
# $Id: config.rb 2464 2007-05-06 05:42:53Z luke $
|