puppet 0.9.2 → 0.13.0
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of puppet might be problematic. Click here for more details.
- data/CHANGELOG +58 -0
- data/README +21 -18
- data/Rakefile +176 -36
- data/bin/puppet +34 -48
- data/bin/puppetca +41 -28
- data/bin/puppetd +87 -65
- data/bin/puppetdoc +99 -23
- data/bin/puppetmasterd +72 -91
- data/conf/redhat/client.init +80 -0
- data/conf/redhat/client.sysconfig +11 -0
- data/conf/redhat/fileserver.conf +12 -0
- data/conf/redhat/puppet.spec +130 -0
- data/conf/redhat/server.init +89 -0
- data/conf/redhat/server.sysconfig +9 -0
- data/examples/code/allatonce +2 -2
- data/examples/code/assignments +1 -1
- data/examples/code/classing +2 -2
- data/examples/code/components +2 -2
- data/examples/code/file.bl +5 -5
- data/examples/code/filedefaults +2 -2
- data/examples/code/fileparsing +1 -1
- data/examples/code/filerecursion +1 -1
- data/examples/code/functions +1 -1
- data/examples/code/groups +1 -1
- data/examples/code/importing +1 -1
- data/examples/code/nodes +1 -1
- data/examples/code/one +1 -1
- data/examples/code/relationships +2 -2
- data/examples/code/simpletests +5 -5
- data/examples/code/snippets/argumentdefaults +2 -2
- data/examples/code/snippets/casestatement +16 -8
- data/examples/code/snippets/classheirarchy.pp +4 -4
- data/examples/code/snippets/classincludes.pp +4 -4
- data/examples/code/snippets/classpathtest +2 -2
- data/examples/code/snippets/componentmetaparams.pp +11 -0
- data/examples/code/snippets/dirchmod +5 -5
- data/examples/code/snippets/emptyclass.pp +9 -0
- data/examples/code/snippets/failmissingexecpath.pp +1 -1
- data/examples/code/snippets/falsevalues.pp +1 -1
- data/examples/code/snippets/filecreate +5 -5
- data/examples/code/snippets/implicititeration +5 -5
- data/examples/code/snippets/multipleinstances +4 -4
- data/examples/code/snippets/namevartest +3 -3
- data/examples/code/snippets/scopetest +1 -1
- data/examples/code/snippets/selectorvalues.pp +3 -3
- data/examples/code/snippets/simpledefaults +2 -2
- data/examples/code/snippets/simpleselector +5 -5
- data/examples/code/snippets/singleary.pp +19 -0
- data/examples/root/etc/init.d/sleeper +3 -2
- data/ext/emacs/puppet-mode-init.el +6 -0
- data/ext/emacs/puppet-mode.el +189 -0
- data/ext/ldap/puppet.schema +17 -0
- data/ext/{module:puppet → module_puppet} +30 -31
- data/ext/vim/filetype.vim +9 -0
- data/ext/vim/puppet.vim +87 -0
- data/install.rb +63 -30
- data/lib/puppet.rb +216 -122
- data/lib/puppet/client.rb +51 -416
- data/lib/puppet/client/ca.rb +17 -0
- data/lib/puppet/client/dipper.rb +78 -0
- data/lib/puppet/client/file.rb +20 -0
- data/lib/puppet/client/log.rb +17 -0
- data/lib/puppet/client/master.rb +246 -0
- data/lib/puppet/client/proxy.rb +27 -0
- data/lib/puppet/client/status.rb +7 -0
- data/lib/puppet/config.rb +563 -13
- data/lib/puppet/daemon.rb +50 -22
- data/lib/puppet/element.rb +4 -4
- data/lib/puppet/event-loop.rb +1 -0
- data/lib/puppet/event-loop/better-definers.rb +367 -0
- data/lib/puppet/event-loop/event-loop.rb +355 -0
- data/lib/puppet/event-loop/signal-system.rb +220 -0
- data/lib/puppet/event.rb +9 -11
- data/lib/puppet/filetype.rb +195 -0
- data/lib/puppet/log.rb +35 -12
- data/lib/puppet/metric.rb +2 -2
- data/lib/puppet/networkclient.rb +145 -0
- data/lib/puppet/parameter.rb +335 -0
- data/lib/puppet/parser/ast.rb +42 -1453
- data/lib/puppet/parser/ast/astarray.rb +88 -0
- data/lib/puppet/parser/ast/branch.rb +47 -0
- data/lib/puppet/parser/ast/caseopt.rb +66 -0
- data/lib/puppet/parser/ast/casestatement.rb +78 -0
- data/lib/puppet/parser/ast/classdef.rb +78 -0
- data/lib/puppet/parser/ast/compdef.rb +111 -0
- data/lib/puppet/parser/ast/component.rb +105 -0
- data/lib/puppet/parser/ast/hostclass.rb +82 -0
- data/lib/puppet/parser/ast/leaf.rb +86 -0
- data/lib/puppet/parser/ast/node.rb +103 -0
- data/lib/puppet/parser/ast/nodedef.rb +68 -0
- data/lib/puppet/parser/ast/objectdef.rb +336 -0
- data/lib/puppet/parser/ast/objectparam.rb +30 -0
- data/lib/puppet/parser/ast/objectref.rb +76 -0
- data/lib/puppet/parser/ast/selector.rb +60 -0
- data/lib/puppet/parser/ast/typedefaults.rb +45 -0
- data/lib/puppet/parser/ast/vardef.rb +44 -0
- data/lib/puppet/parser/interpreter.rb +31 -14
- data/lib/puppet/parser/lexer.rb +2 -4
- data/lib/puppet/parser/parser.rb +332 -242
- data/lib/puppet/parser/scope.rb +55 -38
- data/lib/puppet/server.rb +43 -44
- data/lib/puppet/server/authstore.rb +3 -6
- data/lib/puppet/server/ca.rb +5 -2
- data/lib/puppet/server/filebucket.rb +2 -4
- data/lib/puppet/server/fileserver.rb +28 -12
- data/lib/puppet/server/logger.rb +15 -4
- data/lib/puppet/server/master.rb +62 -7
- data/lib/puppet/sslcertificates.rb +41 -607
- data/lib/puppet/sslcertificates/ca.rb +291 -0
- data/lib/puppet/sslcertificates/certificate.rb +283 -0
- data/lib/puppet/statechange.rb +6 -1
- data/lib/puppet/storage.rb +67 -56
- data/lib/puppet/transaction.rb +25 -9
- data/lib/puppet/transportable.rb +102 -22
- data/lib/puppet/type.rb +1096 -315
- data/lib/puppet/type/component.rb +30 -21
- data/lib/puppet/type/cron.rb +409 -448
- data/lib/puppet/type/exec.rb +234 -174
- data/lib/puppet/type/group.rb +65 -82
- data/lib/puppet/type/nameservice.rb +247 -3
- data/lib/puppet/type/nameservice/netinfo.rb +29 -40
- data/lib/puppet/type/nameservice/objectadd.rb +52 -66
- data/lib/puppet/type/nameservice/posix.rb +6 -194
- data/lib/puppet/type/package.rb +447 -295
- data/lib/puppet/type/package/apt.rb +51 -50
- data/lib/puppet/type/package/bsd.rb +82 -0
- data/lib/puppet/type/package/dpkg.rb +85 -88
- data/lib/puppet/type/package/rpm.rb +67 -63
- data/lib/puppet/type/package/sun.rb +119 -98
- data/lib/puppet/type/package/yum.rb +41 -37
- data/lib/puppet/type/parsedtype.rb +295 -0
- data/lib/puppet/type/parsedtype/host.rb +143 -0
- data/lib/puppet/type/parsedtype/port.rb +232 -0
- data/lib/puppet/type/parsedtype/sshkey.rb +129 -0
- data/lib/puppet/type/pfile.rb +484 -460
- data/lib/puppet/type/pfile/checksum.rb +237 -181
- data/lib/puppet/type/pfile/content.rb +67 -0
- data/lib/puppet/type/pfile/ensure.rb +212 -0
- data/lib/puppet/type/pfile/group.rb +106 -105
- data/lib/puppet/type/pfile/mode.rb +98 -101
- data/lib/puppet/type/pfile/source.rb +228 -209
- data/lib/puppet/type/pfile/type.rb +18 -21
- data/lib/puppet/type/pfile/uid.rb +127 -130
- data/lib/puppet/type/pfilebucket.rb +68 -63
- data/lib/puppet/type/schedule.rb +341 -0
- data/lib/puppet/type/service.rb +351 -255
- data/lib/puppet/type/service/base.rb +9 -14
- data/lib/puppet/type/service/debian.rb +32 -38
- data/lib/puppet/type/service/init.rb +130 -130
- data/lib/puppet/type/service/smf.rb +48 -20
- data/lib/puppet/type/state.rb +229 -16
- data/lib/puppet/type/symlink.rb +51 -63
- data/lib/puppet/type/tidy.rb +105 -102
- data/lib/puppet/type/user.rb +118 -180
- data/lib/puppet/util.rb +100 -6
- data/test/certmgr/certmgr.rb +0 -1
- data/test/client/client.rb +4 -4
- data/test/executables/puppetbin.rb +7 -14
- data/test/executables/puppetca.rb +18 -24
- data/test/executables/puppetd.rb +7 -16
- data/test/executables/puppetmasterd.rb +7 -9
- data/test/executables/puppetmodule.rb +11 -16
- data/test/language/ast.rb +11 -7
- data/test/language/interpreter.rb +1 -1
- data/test/language/scope.rb +2 -0
- data/test/language/snippets.rb +30 -5
- data/test/language/transportable.rb +77 -0
- data/test/other/config.rb +316 -0
- data/test/other/events.rb +22 -21
- data/test/other/log.rb +14 -14
- data/test/other/metrics.rb +4 -8
- data/test/other/overrides.rb +5 -5
- data/test/other/relationships.rb +4 -2
- data/test/other/storage.rb +64 -3
- data/test/other/transactions.rb +20 -20
- data/test/parser/parser.rb +7 -4
- data/test/puppet/conffiles.rb +12 -12
- data/test/puppet/defaults.rb +13 -11
- data/test/puppet/utiltest.rb +14 -11
- data/test/puppettest.rb +156 -48
- data/test/server/bucket.rb +2 -2
- data/test/server/fileserver.rb +6 -6
- data/test/server/logger.rb +19 -11
- data/test/server/master.rb +33 -4
- data/test/server/server.rb +2 -7
- data/test/types/basic.rb +5 -7
- data/test/types/component.rb +22 -18
- data/test/types/cron.rb +111 -44
- data/test/types/exec.rb +116 -59
- data/test/types/file.rb +262 -137
- data/test/types/filebucket.rb +13 -15
- data/test/types/fileignoresource.rb +12 -16
- data/test/types/filesources.rb +73 -48
- data/test/types/filetype.rb +13 -15
- data/test/types/group.rb +15 -13
- data/test/types/host.rb +146 -0
- data/test/types/package.rb +74 -63
- data/test/types/port.rb +139 -0
- data/test/types/query.rb +8 -8
- data/test/types/schedule.rb +335 -0
- data/test/types/service.rb +137 -21
- data/test/types/sshkey.rb +140 -0
- data/test/types/symlink.rb +3 -5
- data/test/types/tidy.rb +5 -14
- data/test/types/type.rb +67 -11
- data/test/types/user.rb +25 -23
- metadata +186 -122
- data/lib/puppet/type/pfile/create.rb +0 -108
- data/lib/puppet/type/pprocess.rb +0 -97
- data/lib/puppet/type/typegen.rb +0 -149
- data/lib/puppet/type/typegen/filerecord.rb +0 -243
- data/lib/puppet/type/typegen/filetype.rb +0 -316
- data/test/other/state.rb +0 -106
data/test/other/events.rb
CHANGED
@@ -8,7 +8,7 @@ require 'puppet'
|
|
8
8
|
require 'puppettest'
|
9
9
|
require 'test/unit'
|
10
10
|
|
11
|
-
# $Id: events.rb
|
11
|
+
# $Id: events.rb 832 2006-01-17 07:11:50Z luke $
|
12
12
|
|
13
13
|
class TestEvents < Test::Unit::TestCase
|
14
14
|
include TestPuppet
|
@@ -18,41 +18,40 @@ class TestEvents < Test::Unit::TestCase
|
|
18
18
|
end
|
19
19
|
|
20
20
|
def test_simplesubscribe
|
21
|
-
|
22
|
-
|
23
|
-
:
|
21
|
+
name = tempfile()
|
22
|
+
file = Puppet.type(:file).create(
|
23
|
+
:name => name,
|
24
|
+
:ensure => "file"
|
24
25
|
)
|
25
|
-
exec = Puppet
|
26
|
+
exec = Puppet.type(:exec).create(
|
26
27
|
:name => "echo true",
|
27
28
|
:path => "/usr/bin:/bin",
|
28
29
|
:refreshonly => true,
|
29
30
|
:subscribe => [[file.class.name, file.name]]
|
30
31
|
)
|
31
32
|
|
32
|
-
@@tmpfiles << "/tmp/eventtestingA"
|
33
|
-
|
34
33
|
comp = newcomp("eventtesting", file, exec)
|
35
34
|
|
36
|
-
trans = assert_events(
|
35
|
+
trans = assert_events([:file_created], comp)
|
37
36
|
|
38
37
|
assert_equal(1, trans.triggered?(exec, :refresh))
|
39
38
|
end
|
40
39
|
|
41
40
|
def test_simplerequire
|
42
|
-
|
43
|
-
|
44
|
-
:
|
41
|
+
name = tempfile()
|
42
|
+
file = Puppet.type(:file).create(
|
43
|
+
:name => name,
|
44
|
+
:ensure => "file"
|
45
45
|
)
|
46
|
-
exec = Puppet
|
46
|
+
exec = Puppet.type(:exec).create(
|
47
47
|
:name => "echo true",
|
48
48
|
:path => "/usr/bin:/bin",
|
49
49
|
:refreshonly => true,
|
50
50
|
:require => [[file.class.name, file.name]]
|
51
51
|
)
|
52
52
|
|
53
|
-
@@tmpfiles << "/tmp/eventtestingA"
|
54
53
|
|
55
|
-
comp = Puppet
|
54
|
+
comp = Puppet.type(:component).create(
|
56
55
|
:name => "eventtesting"
|
57
56
|
)
|
58
57
|
comp.push exec
|
@@ -67,21 +66,21 @@ class TestEvents < Test::Unit::TestCase
|
|
67
66
|
assert_equal(0, trans.triggered?(exec, :refresh))
|
68
67
|
end
|
69
68
|
|
70
|
-
def
|
69
|
+
def test_ladderrequire
|
71
70
|
comps = {}
|
72
71
|
objects = {}
|
73
|
-
fname =
|
72
|
+
fname = tempfile()
|
74
73
|
[:a, :b].each { |l|
|
75
74
|
case l
|
76
75
|
when :a
|
77
|
-
name =
|
78
|
-
objects[l] = Puppet
|
76
|
+
name = tempfile() + l.to_s
|
77
|
+
objects[l] = Puppet.type(:file).create(
|
79
78
|
:name => name,
|
80
|
-
:
|
79
|
+
:ensure => "file"
|
81
80
|
)
|
82
81
|
@@tmpfiles << name
|
83
82
|
when :b
|
84
|
-
objects[l] = Puppet
|
83
|
+
objects[l] = Puppet.type(:exec).create(
|
85
84
|
:name => "touch %s" % fname,
|
86
85
|
:path => "/usr/bin:/bin",
|
87
86
|
:refreshonly => true
|
@@ -90,7 +89,7 @@ class TestEvents < Test::Unit::TestCase
|
|
90
89
|
end
|
91
90
|
|
92
91
|
|
93
|
-
comps[l] = Puppet
|
92
|
+
comps[l] = Puppet.type(:component).create(
|
94
93
|
:name => "eventtesting%s" % l
|
95
94
|
)
|
96
95
|
|
@@ -99,6 +98,8 @@ class TestEvents < Test::Unit::TestCase
|
|
99
98
|
|
100
99
|
comps[:b][:subscribe] = [[comps[:a].class.name, comps[:a].name]]
|
101
100
|
|
101
|
+
Puppet::Type.finalize
|
102
|
+
|
102
103
|
trans = comps[:a].evaluate
|
103
104
|
events = nil
|
104
105
|
assert_nothing_raised {
|
data/test/other/log.rb
CHANGED
@@ -9,7 +9,7 @@ require 'puppet'
|
|
9
9
|
require 'puppettest'
|
10
10
|
require 'test/unit'
|
11
11
|
|
12
|
-
# $Id: log.rb
|
12
|
+
# $Id: log.rb 873 2006-02-07 23:12:33Z luke $
|
13
13
|
|
14
14
|
class TestLog < Test::Unit::TestCase
|
15
15
|
include TestPuppet
|
@@ -44,6 +44,7 @@ class TestLog < Test::Unit::TestCase
|
|
44
44
|
def test_logfile
|
45
45
|
fact = nil
|
46
46
|
levels = nil
|
47
|
+
Puppet::Log.level = :debug
|
47
48
|
levels = getlevels
|
48
49
|
logfile = tempfile()
|
49
50
|
assert_nothing_raised() {
|
@@ -77,7 +78,6 @@ class TestLog < Test::Unit::TestCase
|
|
77
78
|
end
|
78
79
|
|
79
80
|
def test_consolelog
|
80
|
-
Puppet[:debug] = true if __FILE__ == $0
|
81
81
|
fact = nil
|
82
82
|
levels = getlevels
|
83
83
|
assert_nothing_raised() {
|
@@ -100,28 +100,28 @@ class TestLog < Test::Unit::TestCase
|
|
100
100
|
end
|
101
101
|
|
102
102
|
def test_output
|
103
|
-
Puppet
|
103
|
+
Puppet.debug = false
|
104
104
|
assert(Puppet.err("This is an error").is_a?(Puppet::Log))
|
105
105
|
assert(Puppet.debug("This is debugging").nil?)
|
106
|
-
Puppet
|
106
|
+
Puppet.debug = true
|
107
107
|
assert(Puppet.err("This is an error").is_a?(Puppet::Log))
|
108
108
|
assert(Puppet.debug("This is debugging").is_a?(Puppet::Log))
|
109
109
|
end
|
110
110
|
|
111
111
|
def test_creatingdirs
|
112
|
-
|
112
|
+
dir = tempfile()
|
113
|
+
file = File.join(dir, "logfile")
|
114
|
+
Puppet::Log.newdestination file
|
113
115
|
Puppet.info "testing logs"
|
114
|
-
assert(FileTest.directory?(
|
115
|
-
assert(FileTest.file?(
|
116
|
-
|
117
|
-
system("rm -rf /tmp/logtesting")
|
116
|
+
assert(FileTest.directory?(dir))
|
117
|
+
assert(FileTest.file?(file))
|
118
118
|
end
|
119
119
|
|
120
120
|
def test_logtags
|
121
121
|
path = tempfile
|
122
122
|
File.open(path, "w") { |f| f.puts "yayness" }
|
123
123
|
|
124
|
-
file = Puppet
|
124
|
+
file = Puppet.type(:file).create(
|
125
125
|
:path => path,
|
126
126
|
:check => [:owner, :group, :mode, :checksum]
|
127
127
|
)
|
@@ -144,7 +144,7 @@ class TestLog < Test::Unit::TestCase
|
|
144
144
|
|
145
145
|
# Verify that we can pass strings that match printf args
|
146
146
|
def test_percentlogs
|
147
|
-
Puppet
|
147
|
+
Puppet::Log.newdestination :syslog
|
148
148
|
|
149
149
|
assert_nothing_raised {
|
150
150
|
Puppet::Log.new(
|
@@ -157,7 +157,7 @@ class TestLog < Test::Unit::TestCase
|
|
157
157
|
# Verify that the error and source are always strings
|
158
158
|
def test_argsAreStrings
|
159
159
|
msg = nil
|
160
|
-
file = Puppet
|
160
|
+
file = Puppet.type(:file).create(
|
161
161
|
:path => tempfile(),
|
162
162
|
:check => %w{owner group}
|
163
163
|
)
|
@@ -175,9 +175,9 @@ class TestLog < Test::Unit::TestCase
|
|
175
175
|
# Verify that loglevel behaves as one expects
|
176
176
|
def test_loglevel
|
177
177
|
path = tempfile()
|
178
|
-
file = Puppet
|
178
|
+
file = Puppet.type(:file).create(
|
179
179
|
:path => path,
|
180
|
-
:
|
180
|
+
:ensure => "file"
|
181
181
|
)
|
182
182
|
|
183
183
|
assert_nothing_raised {
|
data/test/other/metrics.rb
CHANGED
@@ -18,6 +18,7 @@ end
|
|
18
18
|
|
19
19
|
if $haverrd
|
20
20
|
class TestMetric < Test::Unit::TestCase
|
21
|
+
include TestPuppet
|
21
22
|
|
22
23
|
def gendata
|
23
24
|
totalmax = 1000
|
@@ -25,7 +26,7 @@ if $haverrd
|
|
25
26
|
eventmax = 10
|
26
27
|
maxdiff = 10
|
27
28
|
|
28
|
-
types = [Puppet
|
29
|
+
types = [Puppet.type(:file), Puppet.type(:package), Puppet.type(:package)]
|
29
30
|
data = [:total, :managed, :outofsync, :changed, :totalchanges]
|
30
31
|
events = [:file_changed, :package_installed, :service_started]
|
31
32
|
|
@@ -52,13 +53,8 @@ if $haverrd
|
|
52
53
|
end
|
53
54
|
|
54
55
|
def setup
|
55
|
-
|
56
|
+
super
|
56
57
|
Puppet[:rrdgraph] = true
|
57
|
-
Puppet[:loglevel] = :debug if __FILE__ == $0
|
58
|
-
end
|
59
|
-
|
60
|
-
def teardown
|
61
|
-
system("rm -rf %s" % Puppet[:rrddir])
|
62
58
|
end
|
63
59
|
|
64
60
|
def test_fakedata
|
@@ -89,4 +85,4 @@ else
|
|
89
85
|
$stderr.puts "Missing RRD library -- skipping metric tests"
|
90
86
|
end
|
91
87
|
|
92
|
-
# $Id: metrics.rb
|
88
|
+
# $Id: metrics.rb 816 2006-01-12 21:04:06Z luke $
|
data/test/other/overrides.rb
CHANGED
@@ -29,7 +29,7 @@ class TestOverrides < Test::Unit::TestCase
|
|
29
29
|
baseobj = nil
|
30
30
|
basefile = File.join(basedir, "file")
|
31
31
|
assert_nothing_raised("Could not create base obj") {
|
32
|
-
baseobj = Puppet
|
32
|
+
baseobj = Puppet.type(:file).create(
|
33
33
|
:path => basedir,
|
34
34
|
:recurse => true,
|
35
35
|
:mode => "755"
|
@@ -40,7 +40,7 @@ class TestOverrides < Test::Unit::TestCase
|
|
40
40
|
subdir = File.join(basedir, "0")
|
41
41
|
subfile = File.join(subdir, "file")
|
42
42
|
assert_nothing_raised("Could not create sub obj") {
|
43
|
-
subobj = Puppet
|
43
|
+
subobj = Puppet.type(:file).create(
|
44
44
|
:path => subdir,
|
45
45
|
:recurse => true,
|
46
46
|
:mode => "644"
|
@@ -63,7 +63,7 @@ class TestOverrides < Test::Unit::TestCase
|
|
63
63
|
|
64
64
|
baseobj = nil
|
65
65
|
assert_nothing_raised("Could not create base obj") {
|
66
|
-
baseobj = Puppet
|
66
|
+
baseobj = Puppet.type(:file).create(
|
67
67
|
:path => basedir,
|
68
68
|
:recurse => true,
|
69
69
|
:mode => "755"
|
@@ -87,7 +87,7 @@ class TestOverrides < Test::Unit::TestCase
|
|
87
87
|
end
|
88
88
|
|
89
89
|
assert_nothing_raised("Could not create sub obj") {
|
90
|
-
children << Puppet
|
90
|
+
children << Puppet.type(:file).create(
|
91
91
|
:path => subdir,
|
92
92
|
:recurse => true,
|
93
93
|
:mode => mode
|
@@ -112,4 +112,4 @@ class TestOverrides < Test::Unit::TestCase
|
|
112
112
|
end
|
113
113
|
end
|
114
114
|
|
115
|
-
# $Id: overrides.rb
|
115
|
+
# $Id: overrides.rb 787 2006-01-08 00:02:23Z luke $
|
data/test/other/relationships.rb
CHANGED
@@ -12,7 +12,7 @@ class TestRelationships < Test::Unit::TestCase
|
|
12
12
|
include TestPuppet
|
13
13
|
def newfile
|
14
14
|
assert_nothing_raised() {
|
15
|
-
return Puppet
|
15
|
+
return Puppet.type(:file).create(
|
16
16
|
:path => tempfile,
|
17
17
|
:check => [:mode, :owner, :group]
|
18
18
|
)
|
@@ -26,6 +26,8 @@ class TestRelationships < Test::Unit::TestCase
|
|
26
26
|
file1[:require] = [file2.class.name, file2.name]
|
27
27
|
}
|
28
28
|
|
29
|
+
Puppet::Type.finalize
|
30
|
+
|
29
31
|
deps = []
|
30
32
|
assert_nothing_raised {
|
31
33
|
file1.eachdependency { |obj|
|
@@ -110,4 +112,4 @@ class TestRelationships < Test::Unit::TestCase
|
|
110
112
|
end
|
111
113
|
end
|
112
114
|
|
113
|
-
# $Id: relationships.rb
|
115
|
+
# $Id: relationships.rb 808 2006-01-12 05:02:51Z luke $
|
data/test/other/storage.rb
CHANGED
@@ -11,12 +11,28 @@ require 'test/unit'
|
|
11
11
|
class TestParsedFile < Test::Unit::TestCase
|
12
12
|
include TestPuppet
|
13
13
|
|
14
|
+
def mkfile
|
15
|
+
path = tempfile()
|
16
|
+
File.open(path, "w") { |f| f.puts :yayness }
|
17
|
+
|
18
|
+
f = Puppet.type(:file).create(
|
19
|
+
:name => path,
|
20
|
+
:check => %w{checksum type}
|
21
|
+
)
|
22
|
+
|
23
|
+
return f
|
24
|
+
end
|
25
|
+
|
14
26
|
def test_storeandretrieve
|
27
|
+
path = tempfile()
|
28
|
+
|
29
|
+
f = mkfile()
|
30
|
+
|
15
31
|
hash = {:a => :b, :c => :d}
|
16
32
|
|
17
33
|
state = nil
|
18
34
|
assert_nothing_raised {
|
19
|
-
state = Puppet::Storage.
|
35
|
+
state = Puppet::Storage.cache(f)
|
20
36
|
}
|
21
37
|
|
22
38
|
assert(!state.include?("name"))
|
@@ -29,11 +45,56 @@ class TestParsedFile < Test::Unit::TestCase
|
|
29
45
|
Puppet::Storage.store
|
30
46
|
}
|
31
47
|
assert_nothing_raised {
|
32
|
-
|
48
|
+
Puppet::Storage.clear
|
49
|
+
}
|
50
|
+
assert_nothing_raised {
|
51
|
+
Puppet::Storage.load
|
52
|
+
}
|
53
|
+
|
54
|
+
# Reset it
|
55
|
+
state = nil
|
56
|
+
assert_nothing_raised {
|
57
|
+
state = Puppet::Storage.cache(f)
|
33
58
|
}
|
34
59
|
|
35
60
|
assert_equal(state["name"], hash)
|
36
61
|
end
|
62
|
+
|
63
|
+
# we're getting corrupt files, probably because multiple processes
|
64
|
+
# are reading or writing the file at once
|
65
|
+
# so we need to test that
|
66
|
+
def test_multiwrite
|
67
|
+
f = mkfile()
|
68
|
+
|
69
|
+
value = {:a => :b}
|
70
|
+
threads = []
|
71
|
+
9.times { |a|
|
72
|
+
threads << Thread.new {
|
73
|
+
9.times { |b|
|
74
|
+
assert_nothing_raised {
|
75
|
+
Puppet::Storage.load
|
76
|
+
state = Puppet::Storage.cache(f)
|
77
|
+
value.each { |k,v| state[k] = v }
|
78
|
+
state[:e] = rand(100)
|
79
|
+
Puppet::Storage.store
|
80
|
+
}
|
81
|
+
}
|
82
|
+
}
|
83
|
+
}
|
84
|
+
threads.each { |th| th.join }
|
85
|
+
end
|
86
|
+
|
87
|
+
def test_emptyrestore
|
88
|
+
Puppet::Storage.load
|
89
|
+
Puppet::Storage.store
|
90
|
+
Puppet::Storage.clear
|
91
|
+
Puppet::Storage.load
|
92
|
+
|
93
|
+
f = mkfile()
|
94
|
+
state = Puppet::Storage.cache(f)
|
95
|
+
assert_same Hash, state.class
|
96
|
+
assert_equal 0, state.size
|
97
|
+
end
|
37
98
|
end
|
38
99
|
|
39
|
-
# $Id: storage.rb
|
100
|
+
# $Id: storage.rb 847 2006-01-23 22:38:39Z luke $
|
data/test/other/transactions.rb
CHANGED
@@ -8,7 +8,7 @@ require 'puppet'
|
|
8
8
|
require 'puppettest'
|
9
9
|
require 'test/unit'
|
10
10
|
|
11
|
-
# $Id: transactions.rb
|
11
|
+
# $Id: transactions.rb 871 2006-02-07 05:58:00Z luke $
|
12
12
|
|
13
13
|
class TestTransactions < Test::Unit::TestCase
|
14
14
|
include FileTesting
|
@@ -34,10 +34,7 @@ class TestTransactions < Test::Unit::TestCase
|
|
34
34
|
end
|
35
35
|
|
36
36
|
def teardown
|
37
|
-
|
38
|
-
serv[:running] = false
|
39
|
-
serv.sync
|
40
|
-
}
|
37
|
+
stopservices
|
41
38
|
#print "\n\n" if Puppet[:debug]
|
42
39
|
super
|
43
40
|
end
|
@@ -66,13 +63,13 @@ class TestTransactions < Test::Unit::TestCase
|
|
66
63
|
@@tmpfiles.push tmpfile
|
67
64
|
hash[:name] = tmpfile
|
68
65
|
assert_nothing_raised() {
|
69
|
-
return Puppet
|
66
|
+
return Puppet.type(:file).create(hash)
|
70
67
|
}
|
71
68
|
end
|
72
69
|
|
73
70
|
def newservice
|
74
71
|
assert_nothing_raised() {
|
75
|
-
return Puppet
|
72
|
+
return Puppet.type(:service).create(
|
76
73
|
:name => "sleeper",
|
77
74
|
:type => "init",
|
78
75
|
:path => File.join($puppetbase,"examples/root/etc/init.d"),
|
@@ -84,7 +81,7 @@ class TestTransactions < Test::Unit::TestCase
|
|
84
81
|
|
85
82
|
def newexec(file)
|
86
83
|
assert_nothing_raised() {
|
87
|
-
return Puppet
|
84
|
+
return Puppet.type(:exec).create(
|
88
85
|
:name => "touch %s" % file,
|
89
86
|
:path => "/bin:/usr/bin:/sbin:/usr/sbin",
|
90
87
|
:returns => 0
|
@@ -126,9 +123,10 @@ class TestTransactions < Test::Unit::TestCase
|
|
126
123
|
|
127
124
|
file[:mode] = "755"
|
128
125
|
}
|
129
|
-
trans = assert_events(
|
126
|
+
trans = assert_events([:file_changed, :file_changed], component)
|
127
|
+
file.retrieve
|
130
128
|
|
131
|
-
assert_rollback_events(trans, [:
|
129
|
+
assert_rollback_events(trans, [:file_changed, :file_changed], "file")
|
132
130
|
|
133
131
|
assert_nothing_raised() {
|
134
132
|
file.retrieve
|
@@ -141,7 +139,8 @@ class TestTransactions < Test::Unit::TestCase
|
|
141
139
|
end
|
142
140
|
|
143
141
|
# start a service, and then roll the modification back
|
144
|
-
|
142
|
+
# Disabled, because it wasn't really worth the effort.
|
143
|
+
def disabled_test_servicetrans
|
145
144
|
transaction = nil
|
146
145
|
service = newservice()
|
147
146
|
|
@@ -150,9 +149,13 @@ class TestTransactions < Test::Unit::TestCase
|
|
150
149
|
assert_nothing_raised() {
|
151
150
|
service[:running] = 1
|
152
151
|
}
|
153
|
-
|
152
|
+
service.retrieve
|
153
|
+
assert(service.insync?, "Service did not start")
|
154
|
+
system("ps -ef | grep ruby")
|
155
|
+
trans = assert_events([:service_started], component)
|
156
|
+
service.retrieve
|
154
157
|
|
155
|
-
assert_rollback_events(trans, [:service_stopped], "
|
158
|
+
assert_rollback_events(trans, [:service_stopped], "service")
|
156
159
|
end
|
157
160
|
|
158
161
|
# test that services are correctly restarted and that work is done
|
@@ -186,8 +189,7 @@ class TestTransactions < Test::Unit::TestCase
|
|
186
189
|
file[:mode] = "755"
|
187
190
|
}
|
188
191
|
|
189
|
-
trans = assert_events(component
|
190
|
-
[:inode_changed], "testboth")
|
192
|
+
trans = assert_events( [:file_changed], component)
|
191
193
|
|
192
194
|
assert(FileTest.exists?(execfile), "Execfile does not exist")
|
193
195
|
File.unlink(execfile)
|
@@ -195,8 +197,7 @@ class TestTransactions < Test::Unit::TestCase
|
|
195
197
|
file[:group] = @groups[1]
|
196
198
|
}
|
197
199
|
|
198
|
-
trans = assert_events(component
|
199
|
-
[:inode_changed], "testboth")
|
200
|
+
trans = assert_events([:file_changed], component)
|
200
201
|
assert(FileTest.exists?(execfile), "Execfile does not exist")
|
201
202
|
end
|
202
203
|
|
@@ -220,15 +221,14 @@ class TestTransactions < Test::Unit::TestCase
|
|
220
221
|
ecomp[:subscribe] = [[fcomp.class.name,fcomp.name]]
|
221
222
|
exec[:refreshonly] = true
|
222
223
|
|
223
|
-
trans = assert_events(
|
224
|
+
trans = assert_events([], component)
|
224
225
|
|
225
226
|
assert_nothing_raised() {
|
226
227
|
file[:group] = @groups[1]
|
227
228
|
file[:mode] = "755"
|
228
229
|
}
|
229
230
|
|
230
|
-
trans = assert_events(
|
231
|
-
"subscribe2")
|
231
|
+
trans = assert_events([:file_changed, :file_changed], component)
|
232
232
|
|
233
233
|
end
|
234
234
|
|