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/types/service.rb
CHANGED
@@ -8,15 +8,23 @@ require 'puppet'
|
|
8
8
|
require 'puppettest'
|
9
9
|
require 'test/unit'
|
10
10
|
|
11
|
-
|
11
|
+
$skipsvcs = false
|
12
|
+
case Facter["operatingsystem"].value
|
13
|
+
when "Darwin", "OpenBSD": $skipsvcs = true
|
14
|
+
end
|
15
|
+
|
16
|
+
if $skipsvcs
|
17
|
+
puts "Skipping service testing on %s" % Facter["operatingsystem"].value
|
18
|
+
else
|
19
|
+
#class TestInitService < Test::Unit::TestCase
|
20
|
+
class TestInitService
|
12
21
|
include TestPuppet
|
13
|
-
|
14
|
-
# this is complicated, because we store references to the created
|
15
|
-
# objects in a central store
|
22
|
+
|
16
23
|
def setup
|
17
24
|
super
|
18
25
|
sleeper = nil
|
19
26
|
script = File.join($puppetbase,"examples/root/etc/init.d/sleeper")
|
27
|
+
@init = File.join($puppetbase,"examples/root/etc/init.d")
|
20
28
|
@status = script + " status"
|
21
29
|
end
|
22
30
|
|
@@ -25,13 +33,21 @@ class TestService < Test::Unit::TestCase
|
|
25
33
|
stopservices
|
26
34
|
end
|
27
35
|
|
36
|
+
def tstsvcs
|
37
|
+
case Facter["operatingsystem"].value
|
38
|
+
when "Solaris":
|
39
|
+
return ["smtp", "xf"]
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
28
43
|
def mksleeper(hash = {})
|
29
44
|
hash[:name] = "sleeper"
|
30
45
|
hash[:path] = File.join($puppetbase,"examples/root/etc/init.d")
|
31
46
|
hash[:running] = true
|
32
|
-
hash[:
|
47
|
+
hash[:hasstatus] = true
|
48
|
+
#hash[:type] = "init"
|
33
49
|
assert_nothing_raised() {
|
34
|
-
return Puppet
|
50
|
+
return Puppet.type(:service).create(hash)
|
35
51
|
}
|
36
52
|
end
|
37
53
|
|
@@ -40,9 +56,10 @@ class TestService < Test::Unit::TestCase
|
|
40
56
|
sleeper.retrieve
|
41
57
|
}
|
42
58
|
assert(!sleeper.insync?())
|
43
|
-
|
44
|
-
|
45
|
-
|
59
|
+
|
60
|
+
comp = newcomp(sleeper)
|
61
|
+
|
62
|
+
assert_events([:service_started], comp)
|
46
63
|
assert_nothing_raised() {
|
47
64
|
sleeper.retrieve
|
48
65
|
}
|
@@ -63,9 +80,7 @@ class TestService < Test::Unit::TestCase
|
|
63
80
|
sleeper.retrieve
|
64
81
|
}
|
65
82
|
assert(!sleeper.insync?())
|
66
|
-
|
67
|
-
sleeper.sync
|
68
|
-
}
|
83
|
+
assert_events([:service_stopped], comp)
|
69
84
|
assert_nothing_raised() {
|
70
85
|
sleeper.retrieve
|
71
86
|
}
|
@@ -83,18 +98,119 @@ class TestService < Test::Unit::TestCase
|
|
83
98
|
cyclesleeper(sleeper)
|
84
99
|
end
|
85
100
|
|
101
|
+
def test_invalidpathsremoved
|
102
|
+
sleeper = mksleeper()
|
103
|
+
fakedir = [@init, "/thisdirnoexist"]
|
104
|
+
sleeper[:path] = fakedir
|
105
|
+
|
106
|
+
assert(! sleeper[:path].include?(fakedir))
|
107
|
+
end
|
108
|
+
end
|
109
|
+
|
110
|
+
class TestLocalService < Test::Unit::TestCase
|
111
|
+
include TestPuppet
|
112
|
+
|
113
|
+
def teardown
|
114
|
+
Puppet.type(:service).clear
|
115
|
+
super
|
116
|
+
end
|
117
|
+
|
118
|
+
def mktestsvcs
|
119
|
+
tstsvcs.collect { |svc|
|
120
|
+
Puppet.type(:service).create(
|
121
|
+
:name => svc,
|
122
|
+
:check => [:running]
|
123
|
+
)
|
124
|
+
}
|
125
|
+
end
|
126
|
+
|
127
|
+
def tstsvcs
|
128
|
+
case Facter["operatingsystem"].value
|
129
|
+
when "Solaris":
|
130
|
+
case Facter["operatingsystemrelease"].value
|
131
|
+
when "5.10":
|
132
|
+
return ["smtp", "xfs"]
|
133
|
+
end
|
134
|
+
end
|
135
|
+
|
136
|
+
Puppet.notice "No test services for %s-%s" %
|
137
|
+
[Facter["operatingsystem"].value,
|
138
|
+
Facter["operatingsystemrelease"].value]
|
139
|
+
return []
|
140
|
+
end
|
141
|
+
|
142
|
+
def cycleservice(service)
|
143
|
+
assert_nothing_raised() {
|
144
|
+
service.retrieve
|
145
|
+
}
|
146
|
+
|
147
|
+
comp = newcomp("servicetst", service)
|
148
|
+
service[:running] = true
|
149
|
+
|
150
|
+
Puppet.info "Starting %s" % service.name
|
151
|
+
assert_apply(service)
|
152
|
+
|
153
|
+
# Some package systems background the work, so we need to give them
|
154
|
+
# time to do their work.
|
155
|
+
sleep(1.5)
|
156
|
+
assert_nothing_raised() {
|
157
|
+
service.retrieve
|
158
|
+
}
|
159
|
+
assert(service.insync?, "Service %s is not running" % service.name)
|
160
|
+
|
161
|
+
# test refreshing it
|
162
|
+
assert_nothing_raised() {
|
163
|
+
service.refresh
|
164
|
+
}
|
165
|
+
|
166
|
+
assert(service.respond_to?(:refresh))
|
167
|
+
|
168
|
+
# now stop it
|
169
|
+
assert_nothing_raised() {
|
170
|
+
service[:running] = 0
|
171
|
+
}
|
172
|
+
assert_nothing_raised() {
|
173
|
+
service.retrieve
|
174
|
+
}
|
175
|
+
assert(!service.insync?(), "Service %s is not running" % service.name)
|
176
|
+
Puppet.info "stopping %s" % service.name
|
177
|
+
assert_events([:service_stopped], comp)
|
178
|
+
sleep(1.5)
|
179
|
+
assert_nothing_raised() {
|
180
|
+
service.retrieve
|
181
|
+
}
|
182
|
+
assert(service.insync?, "Service %s has not stopped" % service.name)
|
183
|
+
end
|
184
|
+
|
185
|
+
def test_status
|
186
|
+
mktestsvcs.each { |svc|
|
187
|
+
val = nil
|
188
|
+
assert_nothing_raised("Could not get status") {
|
189
|
+
val = svc.status
|
190
|
+
}
|
191
|
+
assert_instance_of(Symbol, val)
|
192
|
+
}
|
193
|
+
end
|
194
|
+
|
86
195
|
unless Process.uid == 0
|
87
|
-
puts "run as root to test service
|
196
|
+
puts "run as root to test service start/stop"
|
88
197
|
else
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
198
|
+
def test_servicestartstop
|
199
|
+
mktestsvcs.each { |svc|
|
200
|
+
startstate = nil
|
201
|
+
assert_nothing_raised("Could not get status") {
|
202
|
+
startstate = svc.status
|
203
|
+
}
|
204
|
+
cycleservice(svc)
|
205
|
+
|
206
|
+
svc[:running] = startstate
|
207
|
+
assert_apply(svc)
|
208
|
+
Puppet.type(:service).clear
|
209
|
+
Puppet.type(:component).clear
|
210
|
+
}
|
96
211
|
end
|
97
212
|
end
|
98
213
|
end
|
214
|
+
end
|
99
215
|
|
100
|
-
# $Id: service.rb
|
216
|
+
# $Id: service.rb 809 2006-01-12 07:08:19Z luke $
|
@@ -0,0 +1,140 @@
|
|
1
|
+
# Test key job creation, modification, and destruction
|
2
|
+
|
3
|
+
if __FILE__ == $0
|
4
|
+
$:.unshift '..'
|
5
|
+
$:.unshift '../../lib'
|
6
|
+
$puppetbase = "../.."
|
7
|
+
end
|
8
|
+
|
9
|
+
require 'puppettest'
|
10
|
+
require 'puppet'
|
11
|
+
require 'puppet/type/parsedtype/sshkey'
|
12
|
+
require 'test/unit'
|
13
|
+
require 'facter'
|
14
|
+
|
15
|
+
class TestSSHKey < Test::Unit::TestCase
|
16
|
+
include TestPuppet
|
17
|
+
def setup
|
18
|
+
super
|
19
|
+
# god i'm lazy
|
20
|
+
@sshtype = Puppet.type(:sshkey)
|
21
|
+
@oldfiletype = @sshtype.filetype
|
22
|
+
end
|
23
|
+
|
24
|
+
def teardown
|
25
|
+
@sshtype.filetype = @oldfiletype
|
26
|
+
Puppet.type(:file).clear
|
27
|
+
super
|
28
|
+
end
|
29
|
+
|
30
|
+
# Here we just create a fake key type that answers to all of the methods
|
31
|
+
# but does not modify our actual system.
|
32
|
+
def mkfaketype
|
33
|
+
@sshtype.filetype = Puppet::FileType.filetype(:ram)
|
34
|
+
end
|
35
|
+
|
36
|
+
def mkkey
|
37
|
+
key = nil
|
38
|
+
assert_nothing_raised {
|
39
|
+
key = @sshtype.create(
|
40
|
+
:name => "culain.madstop.com",
|
41
|
+
:key => "AAAAB3NzaC1kc3MAAACBAMnhSiku76y3EGkNCDsUlvpO8tRgS9wL4Eh54WZfQ2lkxqfd2uT/RTT9igJYDtm/+UHuBRdNGpJYW1Nw2i2JUQgQEEuitx4QKALJrBotejGOAWxxVk6xsh9xA0OW8Q3ZfuX2DDitfeC8ZTCl4xodUMD8feLtP+zEf8hxaNamLlt/AAAAFQDYJyf3vMCWRLjTWnlxLtOyj/bFpwAAAIEAmRxxXb4jjbbui9GYlZAHK00689DZuX0EabHNTl2yGO5KKxGC6Esm7AtjBd+onfu4Rduxut3jdI8GyQCIW8WypwpJofCIyDbTUY4ql0AQUr3JpyVytpnMijlEyr41FfIb4tnDqnRWEsh2H7N7peW+8DWZHDFnYopYZJ9Yu4/jHRYAAACAERG50e6aRRb43biDr7Ab9NUCgM9bC0SQscI/xdlFjac0B/kSWJYTGVARWBDWug705hTnlitY9cLC5Ey/t/OYOjylTavTEfd/bh/8FkAYO+pWdW3hx6p97TBffK0b6nrc6OORT2uKySbbKOn0681nNQh4a6ueR3JRppNkRPnTk5c=",
|
42
|
+
:type => "ssh-dss",
|
43
|
+
:alias => ["192.168.0.3"]
|
44
|
+
)
|
45
|
+
}
|
46
|
+
|
47
|
+
return key
|
48
|
+
end
|
49
|
+
|
50
|
+
def test_simplekey
|
51
|
+
mkfaketype
|
52
|
+
assert_nothing_raised {
|
53
|
+
assert_nil(Puppet.type(:sshkey).retrieve)
|
54
|
+
}
|
55
|
+
|
56
|
+
key = mkkey
|
57
|
+
|
58
|
+
assert_apply(key)
|
59
|
+
|
60
|
+
assert_nothing_raised {
|
61
|
+
Puppet.type(:sshkey).store
|
62
|
+
}
|
63
|
+
|
64
|
+
assert_nothing_raised {
|
65
|
+
assert(
|
66
|
+
Puppet.type(:sshkey).to_file.include?(
|
67
|
+
Puppet.type(:sshkey).fileobj.read
|
68
|
+
),
|
69
|
+
"File does not include all of our objects"
|
70
|
+
)
|
71
|
+
}
|
72
|
+
end
|
73
|
+
|
74
|
+
def test_keysparse
|
75
|
+
fakedata("data/types/sshkey").each { |file|
|
76
|
+
@sshtype.path = file
|
77
|
+
assert_nothing_raised {
|
78
|
+
@sshtype.retrieve
|
79
|
+
}
|
80
|
+
@sshtype.clear
|
81
|
+
}
|
82
|
+
end
|
83
|
+
|
84
|
+
def test_moddingkey
|
85
|
+
mkfaketype
|
86
|
+
key = mkkey()
|
87
|
+
|
88
|
+
assert_events([:sshkey_created], key)
|
89
|
+
|
90
|
+
key.retrieve
|
91
|
+
|
92
|
+
key[:alias] = %w{madstop kirby yayness}
|
93
|
+
|
94
|
+
Puppet.err :mark
|
95
|
+
assert_events([:sshkey_changed], key)
|
96
|
+
end
|
97
|
+
|
98
|
+
def test_aliasisstate
|
99
|
+
assert_equal(:state, @sshtype.attrtype(:alias))
|
100
|
+
end
|
101
|
+
|
102
|
+
def test_multivalues
|
103
|
+
key = mkkey
|
104
|
+
assert_raise(Puppet::Error) {
|
105
|
+
key[:alias] = "puppetmasterd yayness"
|
106
|
+
}
|
107
|
+
end
|
108
|
+
|
109
|
+
def test_puppetalias
|
110
|
+
key = mkkey()
|
111
|
+
|
112
|
+
assert_nothing_raised {
|
113
|
+
key[:alias] = "testing"
|
114
|
+
}
|
115
|
+
|
116
|
+
same = key.class["testing"]
|
117
|
+
assert(same, "Could not retrieve by alias")
|
118
|
+
end
|
119
|
+
|
120
|
+
def test_removal
|
121
|
+
mkfaketype
|
122
|
+
sshkey = mkkey()
|
123
|
+
assert_nothing_raised {
|
124
|
+
sshkey[:ensure] = :present
|
125
|
+
}
|
126
|
+
assert_events([:sshkey_created], sshkey)
|
127
|
+
|
128
|
+
sshkey.retrieve
|
129
|
+
assert(sshkey.insync?)
|
130
|
+
assert_nothing_raised {
|
131
|
+
sshkey[:ensure] = :absent
|
132
|
+
}
|
133
|
+
|
134
|
+
assert_events([:sshkey_removed], sshkey)
|
135
|
+
sshkey.retrieve
|
136
|
+
assert_events([], sshkey)
|
137
|
+
end
|
138
|
+
end
|
139
|
+
|
140
|
+
# $Id: sshkey.rb 831 2006-01-16 20:01:20Z luke $
|
data/test/types/symlink.rb
CHANGED
@@ -8,7 +8,7 @@ require 'puppet'
|
|
8
8
|
require 'puppettest'
|
9
9
|
require 'test/unit'
|
10
10
|
|
11
|
-
# $Id: symlink.rb
|
11
|
+
# $Id: symlink.rb 787 2006-01-08 00:02:23Z luke $
|
12
12
|
|
13
13
|
class TestSymlink < Test::Unit::TestCase
|
14
14
|
include FileTesting
|
@@ -41,7 +41,7 @@ class TestSymlink < Test::Unit::TestCase
|
|
41
41
|
unless hash.include?(:target)
|
42
42
|
hash[:target] = mktmpfile()
|
43
43
|
end
|
44
|
-
link = Puppet
|
44
|
+
link = Puppet.type(:symlink).create(hash)
|
45
45
|
return link
|
46
46
|
end
|
47
47
|
|
@@ -56,9 +56,7 @@ class TestSymlink < Test::Unit::TestCase
|
|
56
56
|
}
|
57
57
|
# we might already be in sync
|
58
58
|
assert(!link.insync?())
|
59
|
-
|
60
|
-
link.sync
|
61
|
-
}
|
59
|
+
assert_apply(link)
|
62
60
|
assert_nothing_raised() {
|
63
61
|
link.retrieve
|
64
62
|
}
|
data/test/types/tidy.rb
CHANGED
@@ -8,7 +8,7 @@ require 'puppet'
|
|
8
8
|
require 'puppettest'
|
9
9
|
require 'test/unit'
|
10
10
|
|
11
|
-
# $Id: tidy.rb
|
11
|
+
# $Id: tidy.rb 831 2006-01-16 20:01:20Z luke $
|
12
12
|
|
13
13
|
class TestTidy < Test::Unit::TestCase
|
14
14
|
include FileTesting
|
@@ -37,26 +37,17 @@ class TestTidy < Test::Unit::TestCase
|
|
37
37
|
f.puts rand(100)
|
38
38
|
}
|
39
39
|
|
40
|
-
tidy = Puppet
|
40
|
+
tidy = Puppet.type(:tidy).create(
|
41
41
|
:name => dir,
|
42
42
|
:size => "1b",
|
43
43
|
:recurse => true
|
44
44
|
)
|
45
|
+
Puppet::Type.finalize
|
45
46
|
|
46
47
|
comp = newcomp("tidytesting", tidy)
|
47
48
|
|
48
49
|
trans = nil
|
49
|
-
|
50
|
-
trans = comp.evaluate
|
51
|
-
}
|
52
|
-
event = nil
|
53
|
-
assert_nothing_raised {
|
54
|
-
event = trans.evaluate.collect { |e| e.event }
|
55
|
-
}
|
56
|
-
|
57
|
-
assert_equal(1, event.length, "Got no events on tidy")
|
58
|
-
assert_equal([:file_tidied], event, "Got incorrect event on tidy")
|
59
|
-
|
50
|
+
assert_events([:file_tidied], comp)
|
60
51
|
assert(!FileTest.exists?(file), "Tidied file still exists")
|
61
52
|
end
|
62
53
|
|
@@ -67,7 +58,7 @@ class TestTidy < Test::Unit::TestCase
|
|
67
58
|
f.puts rand(100)
|
68
59
|
}
|
69
60
|
|
70
|
-
tidy = Puppet
|
61
|
+
tidy = Puppet.type(:tidy).create(
|
71
62
|
:name => dir,
|
72
63
|
:size => "1b",
|
73
64
|
:age => "1s",
|
data/test/types/type.rb
CHANGED
@@ -30,6 +30,11 @@ class TestType < Test::Unit::TestCase
|
|
30
30
|
"Failed to retrieve %s by name" % name
|
31
31
|
)
|
32
32
|
|
33
|
+
# Skip types with no parameters or valid states
|
34
|
+
#unless ! type.parameters.empty? or ! type.validstates.empty?
|
35
|
+
# next
|
36
|
+
#end
|
37
|
+
|
33
38
|
assert(
|
34
39
|
type.namevar,
|
35
40
|
"Failed to retrieve namevar for %s" % name
|
@@ -52,9 +57,9 @@ class TestType < Test::Unit::TestCase
|
|
52
57
|
path = tempfile()
|
53
58
|
assert_nothing_raised() {
|
54
59
|
system("rm -f %s" % path)
|
55
|
-
file = Puppet
|
60
|
+
file = Puppet.type(:file).create(
|
56
61
|
:path => path,
|
57
|
-
:
|
62
|
+
:ensure => "file",
|
58
63
|
:recurse => true,
|
59
64
|
:checksum => "md5"
|
60
65
|
)
|
@@ -63,14 +68,14 @@ class TestType < Test::Unit::TestCase
|
|
63
68
|
file.retrieve
|
64
69
|
}
|
65
70
|
assert_nothing_raised() {
|
66
|
-
file.
|
71
|
+
file.evaluate
|
67
72
|
}
|
68
|
-
Puppet
|
73
|
+
Puppet.type(:file).clear
|
69
74
|
assert_nothing_raised() {
|
70
75
|
system("rm -f %s" % path)
|
71
|
-
file = Puppet
|
76
|
+
file = Puppet.type(:file).create(
|
72
77
|
"path" => path,
|
73
|
-
"
|
78
|
+
"ensure" => "file",
|
74
79
|
"recurse" => true,
|
75
80
|
"checksum" => "md5"
|
76
81
|
)
|
@@ -91,7 +96,7 @@ class TestType < Test::Unit::TestCase
|
|
91
96
|
file["recurse"]
|
92
97
|
}
|
93
98
|
assert_nothing_raised() {
|
94
|
-
file.
|
99
|
+
file.evaluate
|
95
100
|
}
|
96
101
|
end
|
97
102
|
|
@@ -102,7 +107,7 @@ class TestType < Test::Unit::TestCase
|
|
102
107
|
# currently groups are the only objects with the namevar as a state
|
103
108
|
group = nil
|
104
109
|
assert_nothing_raised {
|
105
|
-
group = Puppet
|
110
|
+
group = Puppet.type(:group).create(
|
106
111
|
:name => "testing"
|
107
112
|
)
|
108
113
|
}
|
@@ -116,7 +121,7 @@ class TestType < Test::Unit::TestCase
|
|
116
121
|
|
117
122
|
# Create the first version
|
118
123
|
assert_nothing_raised {
|
119
|
-
Puppet
|
124
|
+
Puppet.type(:file).create(
|
120
125
|
:path => file,
|
121
126
|
:owner => ["root", "bin"]
|
122
127
|
)
|
@@ -124,12 +129,63 @@ class TestType < Test::Unit::TestCase
|
|
124
129
|
|
125
130
|
# Make sure no other statements are allowed
|
126
131
|
assert_raise(Puppet::Error) {
|
127
|
-
Puppet
|
132
|
+
Puppet.type(:file).create(
|
128
133
|
:path => file,
|
129
134
|
:group => "root"
|
130
135
|
)
|
131
136
|
}
|
132
137
|
end
|
138
|
+
|
139
|
+
# Verify that aliasing works
|
140
|
+
def test_aliasing
|
141
|
+
file = tempfile()
|
142
|
+
|
143
|
+
baseobj = nil
|
144
|
+
assert_nothing_raised {
|
145
|
+
baseobj = Puppet.type(:file).create(
|
146
|
+
:name => file,
|
147
|
+
:ensure => "file",
|
148
|
+
:alias => ["funtest"]
|
149
|
+
)
|
150
|
+
}
|
151
|
+
|
152
|
+
# Verify we adding ourselves as an alias isn't an error.
|
153
|
+
assert_nothing_raised {
|
154
|
+
baseobj[:alias] = file
|
155
|
+
}
|
156
|
+
|
157
|
+
assert_instance_of(Puppet.type(:file), Puppet.type(:file)["funtest"],
|
158
|
+
"Could not retrieve alias")
|
159
|
+
|
160
|
+
end
|
161
|
+
|
162
|
+
# Verify that requirements don't depend on file order
|
163
|
+
def test_prereqorder
|
164
|
+
one = tempfile()
|
165
|
+
two = tempfile()
|
166
|
+
|
167
|
+
twoobj = nil
|
168
|
+
oneobj = nil
|
169
|
+
assert_nothing_raised("Could not create prereq that doesn't exist yet") {
|
170
|
+
twoobj = Puppet.type(:file).create(
|
171
|
+
:name => two,
|
172
|
+
:require => [:file, one]
|
173
|
+
)
|
174
|
+
}
|
175
|
+
|
176
|
+
assert_nothing_raised {
|
177
|
+
oneobj = Puppet.type(:file).create(
|
178
|
+
:name => one
|
179
|
+
)
|
180
|
+
}
|
181
|
+
|
182
|
+
assert_nothing_raised {
|
183
|
+
Puppet::Type.finalize
|
184
|
+
}
|
185
|
+
|
186
|
+
|
187
|
+
assert(twoobj.requires?(oneobj), "Requirement was not created")
|
188
|
+
end
|
133
189
|
end
|
134
190
|
|
135
|
-
# $Id: type.rb
|
191
|
+
# $Id: type.rb 832 2006-01-17 07:11:50Z luke $
|