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
@@ -9,7 +9,7 @@ require 'test/unit'
9
9
  require 'fileutils'
10
10
  require 'puppettest'
11
11
 
12
- # $Id: filebucket.rb 724 2005-10-22 22:27:20Z luke $
12
+ # $Id: filebucket.rb 847 2006-01-23 22:38:39Z luke $
13
13
 
14
14
  class TestFileBucket < Test::Unit::TestCase
15
15
  include FileTesting
@@ -19,7 +19,7 @@ class TestFileBucket < Test::Unit::TestCase
19
19
  def mkfile(hash)
20
20
  file = nil
21
21
  assert_nothing_raised {
22
- file = Puppet::Type::PFile.create(hash)
22
+ file = Puppet.type(:file).create(hash)
23
23
  }
24
24
  return file
25
25
  end
@@ -27,7 +27,7 @@ class TestFileBucket < Test::Unit::TestCase
27
27
  def mkbucket(name,path)
28
28
  bucket = nil
29
29
  assert_nothing_raised {
30
- bucket = Puppet::Type::PFileBucket.create(
30
+ bucket = Puppet.type(:filebucket).create(
31
31
  :name => name,
32
32
  :path => path
33
33
  )
@@ -52,15 +52,10 @@ class TestFileBucket < Test::Unit::TestCase
52
52
  begin
53
53
  initstorage
54
54
  rescue
55
- system("rm -rf %s" % Puppet[:checksumfile])
55
+ system("rm -rf %s" % Puppet[:statefile])
56
56
  end
57
57
  end
58
58
 
59
- def teardown
60
- super
61
- clearstorage
62
- end
63
-
64
59
  def initstorage
65
60
  Puppet::Storage.init
66
61
  Puppet::Storage.load
@@ -73,17 +68,17 @@ class TestFileBucket < Test::Unit::TestCase
73
68
 
74
69
  def test_simplebucket
75
70
  name = "yayness"
76
- mkbucket("yayness", "/tmp/filebucket")
71
+ mkbucket(name, tempfile())
77
72
 
78
73
  bucket = nil
79
74
  assert_nothing_raised {
80
- bucket = Puppet::Type::PFileBucket.bucket(name)
75
+ bucket = Puppet.type(:filebucket).bucket(name)
81
76
  }
82
77
 
83
78
  assert_instance_of(Puppet::Client::Dipper, bucket)
84
79
 
85
80
  md5 = nil
86
- newpath = "/tmp/passwd"
81
+ newpath = tempfile()
87
82
  @@tmpfiles << newpath
88
83
  system("cp /etc/passwd %s" % newpath)
89
84
  assert_nothing_raised {
@@ -94,6 +89,8 @@ class TestFileBucket < Test::Unit::TestCase
94
89
 
95
90
  newmd5 = nil
96
91
 
92
+ # Just in case the file isn't writable
93
+ File.chmod(0644, newpath)
97
94
  File.open(newpath, "w") { |f| f.puts ";lkjasdf;lkjasdflkjwerlkj134lkj" }
98
95
 
99
96
  assert_nothing_raised {
@@ -113,11 +110,11 @@ class TestFileBucket < Test::Unit::TestCase
113
110
 
114
111
  def test_fileswithbuckets
115
112
  name = "yayness"
116
- mkbucket("yayness", "/tmp/filebucket")
113
+ mkbucket(name, tempfile())
117
114
 
118
115
  bucket = nil
119
116
  assert_nothing_raised {
120
- bucket = Puppet::Type::PFileBucket.bucket(name)
117
+ bucket = Puppet.type(:filebucket).bucket(name)
121
118
  }
122
119
 
123
120
  file = mktestfile()
@@ -125,7 +122,7 @@ class TestFileBucket < Test::Unit::TestCase
125
122
  file[:backup] = ["filebucket", name]
126
123
  }
127
124
 
128
- opath = "/tmp/anotherbuckettest"
125
+ opath = tempfile()
129
126
  @@tmpfiles << opath
130
127
  system("cp /etc/passwd %s" % opath)
131
128
 
@@ -153,6 +150,7 @@ class TestFileBucket < Test::Unit::TestCase
153
150
  File.open(file.name) { |f| newmd5 = Digest::MD5.hexdigest(f.read) }
154
151
  )
155
152
 
153
+ #File.chmod(0644, file.name)
156
154
  assert_nothing_raised {
157
155
  bucket.restore(file.name, origmd5)
158
156
  }
@@ -11,7 +11,6 @@ require 'test/unit'
11
11
  require 'fileutils'
12
12
  require 'puppettest'
13
13
 
14
- # $Id: $
15
14
 
16
15
  class TestFileIgnoreSources < Test::Unit::TestCase
17
16
  include FileTesting
@@ -21,15 +20,10 @@ class TestFileIgnoreSources < Test::Unit::TestCase
21
20
  begin
22
21
  initstorage
23
22
  rescue
24
- system("rm -rf %s" % Puppet[:checksumfile])
23
+ system("rm -rf %s" % Puppet[:statefile])
25
24
  end
26
25
  end
27
26
 
28
- def teardown
29
- super
30
- clearstorage
31
- end
32
-
33
27
  #This is not needed unless using md5 (correct me if I'm wrong)
34
28
  def initstorage
35
29
  Puppet::Storage.init
@@ -44,7 +38,7 @@ class TestFileIgnoreSources < Test::Unit::TestCase
44
38
  def test_ignore_simple_source
45
39
 
46
40
  #Temp directory to run tests in
47
- path = "/tmp/Fileignoresourcetest"
41
+ path = tempfile()
48
42
  @@tmpfiles.push path
49
43
 
50
44
  #source directory
@@ -77,7 +71,7 @@ class TestFileIgnoreSources < Test::Unit::TestCase
77
71
 
78
72
  #makes Puppet file Object
79
73
  assert_nothing_raised {
80
- tofile = Puppet::Type::PFile.create(
74
+ tofile = Puppet.type(:file).create(
81
75
  :name => topath,
82
76
  :source => frompath,
83
77
  :recurse => true,
@@ -86,7 +80,7 @@ class TestFileIgnoreSources < Test::Unit::TestCase
86
80
  }
87
81
 
88
82
  #make a component and adds the file
89
- comp = Puppet::Type::Component.create(
83
+ comp = Puppet.type(:component).create(
90
84
  :name => "component"
91
85
  )
92
86
  comp.push tofile
@@ -113,7 +107,7 @@ class TestFileIgnoreSources < Test::Unit::TestCase
113
107
 
114
108
  def test_ignore_with_wildcard
115
109
  #Temp directory to run tests in
116
- path = "/tmp/Fileignoresourcetest"
110
+ path = tempfile()
117
111
  @@tmpfiles.push path
118
112
 
119
113
  #source directory
@@ -154,7 +148,7 @@ class TestFileIgnoreSources < Test::Unit::TestCase
154
148
 
155
149
  #makes Puppet file Object
156
150
  assert_nothing_raised {
157
- tofile = Puppet::Type::PFile.create(
151
+ tofile = Puppet.type(:file).create(
158
152
  :name => topath,
159
153
  :source => frompath,
160
154
  :recurse => true,
@@ -163,7 +157,7 @@ class TestFileIgnoreSources < Test::Unit::TestCase
163
157
  }
164
158
 
165
159
  #make a component and adds the file
166
- comp = Puppet::Type::Component.create(
160
+ comp = Puppet.type(:component).create(
167
161
  :name => "component"
168
162
  )
169
163
  comp.push tofile
@@ -192,7 +186,7 @@ class TestFileIgnoreSources < Test::Unit::TestCase
192
186
 
193
187
  def test_ignore_array
194
188
  #Temp directory to run tests in
195
- path = "/tmp/Fileignoresourcetest"
189
+ path = tempfile()
196
190
  @@tmpfiles.push path
197
191
 
198
192
  #source directory
@@ -238,7 +232,7 @@ class TestFileIgnoreSources < Test::Unit::TestCase
238
232
 
239
233
  #makes Puppet file Object
240
234
  assert_nothing_raised {
241
- tofile = Puppet::Type::PFile.create(
235
+ tofile = Puppet.type(:file).create(
242
236
  :name => topath,
243
237
  :source => frompath,
244
238
  :recurse => true,
@@ -248,7 +242,7 @@ class TestFileIgnoreSources < Test::Unit::TestCase
248
242
  }
249
243
 
250
244
  #make a component and adds the file
251
- comp = Puppet::Type::Component.create(
245
+ comp = Puppet.type(:component).create(
252
246
  :name => "component"
253
247
  )
254
248
  comp.push tofile
@@ -285,3 +279,5 @@ class TestFileIgnoreSources < Test::Unit::TestCase
285
279
  end
286
280
 
287
281
  end
282
+
283
+ # $Id$
@@ -18,7 +18,7 @@ class TestFileSources < Test::Unit::TestCase
18
18
  begin
19
19
  initstorage
20
20
  rescue
21
- system("rm -rf %s" % Puppet[:checksumfile])
21
+ system("rm -rf %s" % Puppet[:statefile])
22
22
  end
23
23
  if defined? @port
24
24
  @port += 1
@@ -27,11 +27,6 @@ class TestFileSources < Test::Unit::TestCase
27
27
  end
28
28
  end
29
29
 
30
- def teardown
31
- super
32
- clearstorage
33
- end
34
-
35
30
  def initstorage
36
31
  Puppet::Storage.init
37
32
  Puppet::Storage.load
@@ -43,7 +38,7 @@ class TestFileSources < Test::Unit::TestCase
43
38
  end
44
39
 
45
40
  def test_newchild
46
- path = "/tmp/newchilddir"
41
+ path = tempfile()
47
42
  @@tmpfiles.push path
48
43
 
49
44
  FileUtils.mkdir_p path
@@ -54,22 +49,22 @@ class TestFileSources < Test::Unit::TestCase
54
49
  comp = nil
55
50
  trans = nil
56
51
  assert_nothing_raised {
57
- file = Puppet::Type::PFile.create(
52
+ file = Puppet.type(:file).create(
58
53
  :name => path
59
54
  )
60
55
  }
61
56
  child = nil
62
57
  assert_nothing_raised {
63
- child = file.newchild("childtest")
58
+ child = file.newchild("childtest", true)
64
59
  }
65
60
  assert(child)
66
61
  assert_raise(Puppet::DevError) {
67
- file.newchild(File.join(path,"childtest"))
62
+ file.newchild(File.join(path,"childtest"), true)
68
63
  }
69
64
  end
70
65
 
71
66
  def test_simplelocalsource
72
- path = "/tmp/Filesourcetest"
67
+ path = tempfile()
73
68
  @@tmpfiles.push path
74
69
  FileUtils.mkdir_p path
75
70
  frompath = File.join(path,"source")
@@ -82,12 +77,12 @@ class TestFileSources < Test::Unit::TestCase
82
77
  of.puts "yayness"
83
78
  }
84
79
  assert_nothing_raised {
85
- tofile = Puppet::Type::PFile.create(
80
+ tofile = Puppet.type(:file).create(
86
81
  :name => topath,
87
82
  :source => frompath
88
83
  )
89
84
  }
90
- comp = Puppet::Type::Component.create(
85
+ comp = Puppet.type(:component).create(
91
86
  :name => "component"
92
87
  )
93
88
  comp.push tofile
@@ -97,9 +92,6 @@ class TestFileSources < Test::Unit::TestCase
97
92
  assert_nothing_raised {
98
93
  trans.evaluate
99
94
  }
100
- # assert_nothing_raised {
101
- # comp.sync
102
- # }
103
95
 
104
96
  assert(FileTest.exists?(topath))
105
97
  from = File.open(frompath) { |o| o.read }
@@ -115,30 +107,21 @@ class TestFileSources < Test::Unit::TestCase
115
107
  trans = nil
116
108
 
117
109
  assert_nothing_raised {
118
- tofile = Puppet::Type::PFile.create(
110
+ tofile = Puppet.type(:file).create(
119
111
  :name => todir,
120
112
  "recurse" => true,
121
113
  "backup" => false,
122
114
  "source" => fromdir
123
115
  )
124
116
  }
125
- comp = Puppet::Type::Component.create(
126
- :name => "component"
127
- )
128
- comp.push tofile
129
- assert_nothing_raised {
130
- trans = comp.evaluate
131
- }
132
- assert_nothing_raised {
133
- trans.evaluate
134
- }
117
+ assert_apply(tofile)
135
118
 
136
- assert(FileTest.exists?(todir))
119
+ assert(FileTest.exists?(todir), "Created dir %s does not exist" % todir)
137
120
  Puppet::Type.allclear
138
121
  end
139
122
 
140
123
  def run_complex_sources(networked = false)
141
- path = "/tmp/ComplexSourcesTest"
124
+ path = tempfile()
142
125
  @@tmpfiles.push path
143
126
 
144
127
  # first create the source directory
@@ -236,7 +219,7 @@ class TestFileSources < Test::Unit::TestCase
236
219
  end
237
220
 
238
221
  def test_RecursionWithAddedFiles
239
- basedir = "/tmp/recursionplussaddedfiles"
222
+ basedir = tempfile()
240
223
  Dir.mkdir(basedir)
241
224
  @@tmpfiles << basedir
242
225
  file1 = File.join(basedir, "file1")
@@ -246,7 +229,7 @@ class TestFileSources < Test::Unit::TestCase
246
229
  File.open(file1, "w") { |f| 3.times { f.print rand(100) } }
247
230
  rootobj = nil
248
231
  assert_nothing_raised {
249
- rootobj = Puppet::Type::PFile.create(
232
+ rootobj = Puppet.type(:file).create(
250
233
  :name => basedir,
251
234
  :recurse => true,
252
235
  :check => %w{type owner}
@@ -255,7 +238,7 @@ class TestFileSources < Test::Unit::TestCase
255
238
  rootobj.evaluate
256
239
  }
257
240
 
258
- klass = Puppet::Type::PFile
241
+ klass = Puppet.type(:file)
259
242
  assert(klass[basedir])
260
243
  assert(klass[file1])
261
244
  assert_nil(klass[file2])
@@ -277,7 +260,7 @@ class TestFileSources < Test::Unit::TestCase
277
260
  end
278
261
 
279
262
  def mkfileserverconf(mounts)
280
- file = "/tmp/fileserverconftestingfile%s" % rand(100)
263
+ file = tempfile()
281
264
  File.open(file, "w") { |f|
282
265
  mounts.each { |path, name|
283
266
  f.puts "[#{name}]\n\tpath #{path}\n\tallow *\n"
@@ -293,7 +276,7 @@ class TestFileSources < Test::Unit::TestCase
293
276
  # the certificates correct
294
277
  def disabled_test_SimpleNetworkSources
295
278
  server = nil
296
- basedir = "/tmp/simplenetworksourcetesting"
279
+ basedir = tempfile()
297
280
  @@tmpfiles << basedir
298
281
 
299
282
  mounts = {
@@ -307,8 +290,8 @@ class TestFileSources < Test::Unit::TestCase
307
290
  end
308
291
  Dir.mkdir(basedir)
309
292
 
310
- Puppet[:puppetconf] = basedir
311
- Puppet[:puppetvar] = basedir
293
+ Puppet[:confdir] = basedir
294
+ Puppet[:vardir] = basedir
312
295
  Puppet[:autosign] = true
313
296
 
314
297
  tmpname = "yaytesting"
@@ -375,11 +358,8 @@ class TestFileSources < Test::Unit::TestCase
375
358
 
376
359
  def test_NetworkSources
377
360
  server = nil
378
- basedir = "/tmp/networksourcetesting"
361
+ basedir = tempfile()
379
362
  @@tmpfiles << basedir
380
- if File.exists?(basedir)
381
- system("rm -rf %s" % basedir)
382
- end
383
363
  Dir.mkdir(basedir)
384
364
 
385
365
  mounts = {
@@ -388,8 +368,8 @@ class TestFileSources < Test::Unit::TestCase
388
368
 
389
369
  fileserverconf = mkfileserverconf(mounts)
390
370
 
391
- Puppet[:puppetconf] = basedir
392
- Puppet[:puppetvar] = basedir
371
+ Puppet[:confdir] = basedir
372
+ Puppet[:vardir] = basedir
393
373
  Puppet[:autosign] = true
394
374
 
395
375
  Puppet[:masterport] = 8762
@@ -454,7 +434,7 @@ class TestFileSources < Test::Unit::TestCase
454
434
  sleep(1)
455
435
 
456
436
  name = File.join(tmpdir(), "nosourcefile")
457
- file = Puppet::Type::PFile.create(
437
+ file = Puppet.type(:file).create(
458
438
  :source => "puppet://localhost/dist/file",
459
439
  :name => name
460
440
  )
@@ -510,7 +490,7 @@ class TestFileSources < Test::Unit::TestCase
510
490
  sleep(1)
511
491
 
512
492
  name = File.join(tmpdir(), "nosourcefile")
513
- file = Puppet::Type::PFile.create(
493
+ file = Puppet.type(:file).create(
514
494
  :source => "puppet://localhost/noexist/file",
515
495
  :name => name
516
496
  )
@@ -540,7 +520,7 @@ class TestFileSources < Test::Unit::TestCase
540
520
  # Now the files should be exactly the same, so we should not see attempts
541
521
  # at copying
542
522
  assert_nothing_raised {
543
- file = Puppet::Type::PFile.create(
523
+ file = Puppet.type(:file).create(
544
524
  :path => to,
545
525
  :source => from
546
526
  )
@@ -566,14 +546,14 @@ class TestFileSources < Test::Unit::TestCase
566
546
 
567
547
  file = nil
568
548
  assert_nothing_raised {
569
- file = Puppet::Type::PFile.create(
549
+ file = Puppet.type(:file).create(
570
550
  :name => to,
571
551
  :source => files
572
552
  )
573
553
  }
574
554
 
575
555
  comp = newcomp(file)
576
- assert_events(comp, [:file_changed])
556
+ assert_events([:file_created], comp)
577
557
 
578
558
  assert(File.exists?(to), "File does not exist")
579
559
 
@@ -582,6 +562,51 @@ class TestFileSources < Test::Unit::TestCase
582
562
 
583
563
  assert_equal("yee-haw", txt, "Contents do not match")
584
564
  end
565
+
566
+ # Make sure that source-copying updates the checksum on the same run
567
+ def test_checksumchange
568
+ source = tempfile()
569
+ dest = tempfile()
570
+ File.open(dest, "w") { |f| f.puts "boo" }
571
+ File.open(source, "w") { |f| f.puts "yay" }
572
+
573
+ file = nil
574
+ assert_nothing_raised {
575
+ file = Puppet.type(:file).create(
576
+ :name => dest,
577
+ :source => source
578
+ )
579
+ }
580
+
581
+ file.retrieve
582
+
583
+ assert_events([:file_changed], file)
584
+ file.retrieve
585
+ assert_events([], file)
586
+ end
587
+
588
+ # Make sure that source-copying updates the checksum on the same run
589
+ def test_sourcebeatsensure
590
+ source = tempfile()
591
+ dest = tempfile()
592
+ File.open(source, "w") { |f| f.puts "yay" }
593
+
594
+ file = nil
595
+ assert_nothing_raised {
596
+ file = Puppet.type(:file).create(
597
+ :name => dest,
598
+ :ensure => "file",
599
+ :source => source
600
+ )
601
+ }
602
+
603
+ file.retrieve
604
+
605
+ assert_events([:file_created], file)
606
+ file.retrieve
607
+ assert_events([], file)
608
+ assert_events([], file)
609
+ end
585
610
  end
586
611
 
587
- # $Id: filesources.rb 745 2005-11-16 22:17:29Z luke $
612
+ # $Id: filesources.rb 884 2006-02-08 17:11:54Z luke $