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.

Files changed (213) hide show
  1. data/CHANGELOG +58 -0
  2. data/README +21 -18
  3. data/Rakefile +176 -36
  4. data/bin/puppet +34 -48
  5. data/bin/puppetca +41 -28
  6. data/bin/puppetd +87 -65
  7. data/bin/puppetdoc +99 -23
  8. data/bin/puppetmasterd +72 -91
  9. data/conf/redhat/client.init +80 -0
  10. data/conf/redhat/client.sysconfig +11 -0
  11. data/conf/redhat/fileserver.conf +12 -0
  12. data/conf/redhat/puppet.spec +130 -0
  13. data/conf/redhat/server.init +89 -0
  14. data/conf/redhat/server.sysconfig +9 -0
  15. data/examples/code/allatonce +2 -2
  16. data/examples/code/assignments +1 -1
  17. data/examples/code/classing +2 -2
  18. data/examples/code/components +2 -2
  19. data/examples/code/file.bl +5 -5
  20. data/examples/code/filedefaults +2 -2
  21. data/examples/code/fileparsing +1 -1
  22. data/examples/code/filerecursion +1 -1
  23. data/examples/code/functions +1 -1
  24. data/examples/code/groups +1 -1
  25. data/examples/code/importing +1 -1
  26. data/examples/code/nodes +1 -1
  27. data/examples/code/one +1 -1
  28. data/examples/code/relationships +2 -2
  29. data/examples/code/simpletests +5 -5
  30. data/examples/code/snippets/argumentdefaults +2 -2
  31. data/examples/code/snippets/casestatement +16 -8
  32. data/examples/code/snippets/classheirarchy.pp +4 -4
  33. data/examples/code/snippets/classincludes.pp +4 -4
  34. data/examples/code/snippets/classpathtest +2 -2
  35. data/examples/code/snippets/componentmetaparams.pp +11 -0
  36. data/examples/code/snippets/dirchmod +5 -5
  37. data/examples/code/snippets/emptyclass.pp +9 -0
  38. data/examples/code/snippets/failmissingexecpath.pp +1 -1
  39. data/examples/code/snippets/falsevalues.pp +1 -1
  40. data/examples/code/snippets/filecreate +5 -5
  41. data/examples/code/snippets/implicititeration +5 -5
  42. data/examples/code/snippets/multipleinstances +4 -4
  43. data/examples/code/snippets/namevartest +3 -3
  44. data/examples/code/snippets/scopetest +1 -1
  45. data/examples/code/snippets/selectorvalues.pp +3 -3
  46. data/examples/code/snippets/simpledefaults +2 -2
  47. data/examples/code/snippets/simpleselector +5 -5
  48. data/examples/code/snippets/singleary.pp +19 -0
  49. data/examples/root/etc/init.d/sleeper +3 -2
  50. data/ext/emacs/puppet-mode-init.el +6 -0
  51. data/ext/emacs/puppet-mode.el +189 -0
  52. data/ext/ldap/puppet.schema +17 -0
  53. data/ext/{module:puppet → module_puppet} +30 -31
  54. data/ext/vim/filetype.vim +9 -0
  55. data/ext/vim/puppet.vim +87 -0
  56. data/install.rb +63 -30
  57. data/lib/puppet.rb +216 -122
  58. data/lib/puppet/client.rb +51 -416
  59. data/lib/puppet/client/ca.rb +17 -0
  60. data/lib/puppet/client/dipper.rb +78 -0
  61. data/lib/puppet/client/file.rb +20 -0
  62. data/lib/puppet/client/log.rb +17 -0
  63. data/lib/puppet/client/master.rb +246 -0
  64. data/lib/puppet/client/proxy.rb +27 -0
  65. data/lib/puppet/client/status.rb +7 -0
  66. data/lib/puppet/config.rb +563 -13
  67. data/lib/puppet/daemon.rb +50 -22
  68. data/lib/puppet/element.rb +4 -4
  69. data/lib/puppet/event-loop.rb +1 -0
  70. data/lib/puppet/event-loop/better-definers.rb +367 -0
  71. data/lib/puppet/event-loop/event-loop.rb +355 -0
  72. data/lib/puppet/event-loop/signal-system.rb +220 -0
  73. data/lib/puppet/event.rb +9 -11
  74. data/lib/puppet/filetype.rb +195 -0
  75. data/lib/puppet/log.rb +35 -12
  76. data/lib/puppet/metric.rb +2 -2
  77. data/lib/puppet/networkclient.rb +145 -0
  78. data/lib/puppet/parameter.rb +335 -0
  79. data/lib/puppet/parser/ast.rb +42 -1453
  80. data/lib/puppet/parser/ast/astarray.rb +88 -0
  81. data/lib/puppet/parser/ast/branch.rb +47 -0
  82. data/lib/puppet/parser/ast/caseopt.rb +66 -0
  83. data/lib/puppet/parser/ast/casestatement.rb +78 -0
  84. data/lib/puppet/parser/ast/classdef.rb +78 -0
  85. data/lib/puppet/parser/ast/compdef.rb +111 -0
  86. data/lib/puppet/parser/ast/component.rb +105 -0
  87. data/lib/puppet/parser/ast/hostclass.rb +82 -0
  88. data/lib/puppet/parser/ast/leaf.rb +86 -0
  89. data/lib/puppet/parser/ast/node.rb +103 -0
  90. data/lib/puppet/parser/ast/nodedef.rb +68 -0
  91. data/lib/puppet/parser/ast/objectdef.rb +336 -0
  92. data/lib/puppet/parser/ast/objectparam.rb +30 -0
  93. data/lib/puppet/parser/ast/objectref.rb +76 -0
  94. data/lib/puppet/parser/ast/selector.rb +60 -0
  95. data/lib/puppet/parser/ast/typedefaults.rb +45 -0
  96. data/lib/puppet/parser/ast/vardef.rb +44 -0
  97. data/lib/puppet/parser/interpreter.rb +31 -14
  98. data/lib/puppet/parser/lexer.rb +2 -4
  99. data/lib/puppet/parser/parser.rb +332 -242
  100. data/lib/puppet/parser/scope.rb +55 -38
  101. data/lib/puppet/server.rb +43 -44
  102. data/lib/puppet/server/authstore.rb +3 -6
  103. data/lib/puppet/server/ca.rb +5 -2
  104. data/lib/puppet/server/filebucket.rb +2 -4
  105. data/lib/puppet/server/fileserver.rb +28 -12
  106. data/lib/puppet/server/logger.rb +15 -4
  107. data/lib/puppet/server/master.rb +62 -7
  108. data/lib/puppet/sslcertificates.rb +41 -607
  109. data/lib/puppet/sslcertificates/ca.rb +291 -0
  110. data/lib/puppet/sslcertificates/certificate.rb +283 -0
  111. data/lib/puppet/statechange.rb +6 -1
  112. data/lib/puppet/storage.rb +67 -56
  113. data/lib/puppet/transaction.rb +25 -9
  114. data/lib/puppet/transportable.rb +102 -22
  115. data/lib/puppet/type.rb +1096 -315
  116. data/lib/puppet/type/component.rb +30 -21
  117. data/lib/puppet/type/cron.rb +409 -448
  118. data/lib/puppet/type/exec.rb +234 -174
  119. data/lib/puppet/type/group.rb +65 -82
  120. data/lib/puppet/type/nameservice.rb +247 -3
  121. data/lib/puppet/type/nameservice/netinfo.rb +29 -40
  122. data/lib/puppet/type/nameservice/objectadd.rb +52 -66
  123. data/lib/puppet/type/nameservice/posix.rb +6 -194
  124. data/lib/puppet/type/package.rb +447 -295
  125. data/lib/puppet/type/package/apt.rb +51 -50
  126. data/lib/puppet/type/package/bsd.rb +82 -0
  127. data/lib/puppet/type/package/dpkg.rb +85 -88
  128. data/lib/puppet/type/package/rpm.rb +67 -63
  129. data/lib/puppet/type/package/sun.rb +119 -98
  130. data/lib/puppet/type/package/yum.rb +41 -37
  131. data/lib/puppet/type/parsedtype.rb +295 -0
  132. data/lib/puppet/type/parsedtype/host.rb +143 -0
  133. data/lib/puppet/type/parsedtype/port.rb +232 -0
  134. data/lib/puppet/type/parsedtype/sshkey.rb +129 -0
  135. data/lib/puppet/type/pfile.rb +484 -460
  136. data/lib/puppet/type/pfile/checksum.rb +237 -181
  137. data/lib/puppet/type/pfile/content.rb +67 -0
  138. data/lib/puppet/type/pfile/ensure.rb +212 -0
  139. data/lib/puppet/type/pfile/group.rb +106 -105
  140. data/lib/puppet/type/pfile/mode.rb +98 -101
  141. data/lib/puppet/type/pfile/source.rb +228 -209
  142. data/lib/puppet/type/pfile/type.rb +18 -21
  143. data/lib/puppet/type/pfile/uid.rb +127 -130
  144. data/lib/puppet/type/pfilebucket.rb +68 -63
  145. data/lib/puppet/type/schedule.rb +341 -0
  146. data/lib/puppet/type/service.rb +351 -255
  147. data/lib/puppet/type/service/base.rb +9 -14
  148. data/lib/puppet/type/service/debian.rb +32 -38
  149. data/lib/puppet/type/service/init.rb +130 -130
  150. data/lib/puppet/type/service/smf.rb +48 -20
  151. data/lib/puppet/type/state.rb +229 -16
  152. data/lib/puppet/type/symlink.rb +51 -63
  153. data/lib/puppet/type/tidy.rb +105 -102
  154. data/lib/puppet/type/user.rb +118 -180
  155. data/lib/puppet/util.rb +100 -6
  156. data/test/certmgr/certmgr.rb +0 -1
  157. data/test/client/client.rb +4 -4
  158. data/test/executables/puppetbin.rb +7 -14
  159. data/test/executables/puppetca.rb +18 -24
  160. data/test/executables/puppetd.rb +7 -16
  161. data/test/executables/puppetmasterd.rb +7 -9
  162. data/test/executables/puppetmodule.rb +11 -16
  163. data/test/language/ast.rb +11 -7
  164. data/test/language/interpreter.rb +1 -1
  165. data/test/language/scope.rb +2 -0
  166. data/test/language/snippets.rb +30 -5
  167. data/test/language/transportable.rb +77 -0
  168. data/test/other/config.rb +316 -0
  169. data/test/other/events.rb +22 -21
  170. data/test/other/log.rb +14 -14
  171. data/test/other/metrics.rb +4 -8
  172. data/test/other/overrides.rb +5 -5
  173. data/test/other/relationships.rb +4 -2
  174. data/test/other/storage.rb +64 -3
  175. data/test/other/transactions.rb +20 -20
  176. data/test/parser/parser.rb +7 -4
  177. data/test/puppet/conffiles.rb +12 -12
  178. data/test/puppet/defaults.rb +13 -11
  179. data/test/puppet/utiltest.rb +14 -11
  180. data/test/puppettest.rb +156 -48
  181. data/test/server/bucket.rb +2 -2
  182. data/test/server/fileserver.rb +6 -6
  183. data/test/server/logger.rb +19 -11
  184. data/test/server/master.rb +33 -4
  185. data/test/server/server.rb +2 -7
  186. data/test/types/basic.rb +5 -7
  187. data/test/types/component.rb +22 -18
  188. data/test/types/cron.rb +111 -44
  189. data/test/types/exec.rb +116 -59
  190. data/test/types/file.rb +262 -137
  191. data/test/types/filebucket.rb +13 -15
  192. data/test/types/fileignoresource.rb +12 -16
  193. data/test/types/filesources.rb +73 -48
  194. data/test/types/filetype.rb +13 -15
  195. data/test/types/group.rb +15 -13
  196. data/test/types/host.rb +146 -0
  197. data/test/types/package.rb +74 -63
  198. data/test/types/port.rb +139 -0
  199. data/test/types/query.rb +8 -8
  200. data/test/types/schedule.rb +335 -0
  201. data/test/types/service.rb +137 -21
  202. data/test/types/sshkey.rb +140 -0
  203. data/test/types/symlink.rb +3 -5
  204. data/test/types/tidy.rb +5 -14
  205. data/test/types/type.rb +67 -11
  206. data/test/types/user.rb +25 -23
  207. metadata +186 -122
  208. data/lib/puppet/type/pfile/create.rb +0 -108
  209. data/lib/puppet/type/pprocess.rb +0 -97
  210. data/lib/puppet/type/typegen.rb +0 -149
  211. data/lib/puppet/type/typegen/filerecord.rb +0 -243
  212. data/lib/puppet/type/typegen/filetype.rb +0 -316
  213. data/test/other/state.rb +0 -106
@@ -8,15 +8,23 @@ require 'puppet'
8
8
  require 'puppettest'
9
9
  require 'test/unit'
10
10
 
11
- class TestService < Test::Unit::TestCase
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
- # hmmm
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[:type] = "init"
47
+ hash[:hasstatus] = true
48
+ #hash[:type] = "init"
33
49
  assert_nothing_raised() {
34
- return Puppet::Type::Service.create(hash)
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
- assert_nothing_raised() {
44
- sleeper.sync
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
- assert_nothing_raised() {
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 enable/disable"
196
+ puts "run as root to test service start/stop"
88
197
  else
89
- case Puppet::Type::Service.defaulttype
90
- when Puppet::ServiceTypes::InitSvc
91
- when Puppet::ServiceTypes::SMFSvc
92
- # yay
93
- else
94
- Puppet.notice "Not testing service type %s" %
95
- Puppet::Type::Service.defaulttype
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 742 2005-11-16 17:12:11Z luke $
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 $
@@ -8,7 +8,7 @@ require 'puppet'
8
8
  require 'puppettest'
9
9
  require 'test/unit'
10
10
 
11
- # $Id: symlink.rb 724 2005-10-22 22:27:20Z luke $
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::Type::Symlink.create(hash)
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
- assert_nothing_raised() {
60
- link.sync
61
- }
59
+ assert_apply(link)
62
60
  assert_nothing_raised() {
63
61
  link.retrieve
64
62
  }
@@ -8,7 +8,7 @@ require 'puppet'
8
8
  require 'puppettest'
9
9
  require 'test/unit'
10
10
 
11
- # $Id: tidy.rb 724 2005-10-22 22:27:20Z luke $
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::Type::Tidy.create(
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
- assert_nothing_raised {
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::Type::Tidy.create(
61
+ tidy = Puppet.type(:tidy).create(
71
62
  :name => dir,
72
63
  :size => "1b",
73
64
  :age => "1s",
@@ -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::Type::PFile.create(
60
+ file = Puppet.type(:file).create(
56
61
  :path => path,
57
- :create => true,
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.sync
71
+ file.evaluate
67
72
  }
68
- Puppet::Type::PFile.clear
73
+ Puppet.type(:file).clear
69
74
  assert_nothing_raised() {
70
75
  system("rm -f %s" % path)
71
- file = Puppet::Type::PFile.create(
76
+ file = Puppet.type(:file).create(
72
77
  "path" => path,
73
- "create" => true,
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.sync
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::Type::Group.create(
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::Type::PFile.create(
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::Type::PFile.create(
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 737 2005-10-30 04:07:52Z luke $
191
+ # $Id: type.rb 832 2006-01-17 07:11:50Z luke $