puppet 0.9.2

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 (182) hide show
  1. data/CHANGELOG +0 -0
  2. data/COPYING +340 -0
  3. data/LICENSE +17 -0
  4. data/README +24 -0
  5. data/Rakefile +294 -0
  6. data/TODO +4 -0
  7. data/bin/cf2puppet +186 -0
  8. data/bin/puppet +176 -0
  9. data/bin/puppetca +213 -0
  10. data/bin/puppetd +246 -0
  11. data/bin/puppetdoc +184 -0
  12. data/bin/puppetmasterd +258 -0
  13. data/examples/code/allatonce +13 -0
  14. data/examples/code/assignments +11 -0
  15. data/examples/code/classing +35 -0
  16. data/examples/code/components +73 -0
  17. data/examples/code/execs +16 -0
  18. data/examples/code/failers/badclassnoparam +10 -0
  19. data/examples/code/failers/badclassparam +10 -0
  20. data/examples/code/failers/badcompnoparam +9 -0
  21. data/examples/code/failers/badcompparam +9 -0
  22. data/examples/code/failers/badtypeparam +3 -0
  23. data/examples/code/file.bl +11 -0
  24. data/examples/code/filedefaults +10 -0
  25. data/examples/code/fileparsing +116 -0
  26. data/examples/code/filerecursion +15 -0
  27. data/examples/code/functions +3 -0
  28. data/examples/code/groups +7 -0
  29. data/examples/code/head +30 -0
  30. data/examples/code/importing +8 -0
  31. data/examples/code/nodes +20 -0
  32. data/examples/code/one +8 -0
  33. data/examples/code/relationships +34 -0
  34. data/examples/code/selectors +28 -0
  35. data/examples/code/simpletests +11 -0
  36. data/examples/code/snippets/argumentdefaults +14 -0
  37. data/examples/code/snippets/casestatement +39 -0
  38. data/examples/code/snippets/classheirarchy.pp +15 -0
  39. data/examples/code/snippets/classincludes.pp +17 -0
  40. data/examples/code/snippets/classpathtest +11 -0
  41. data/examples/code/snippets/dirchmod +19 -0
  42. data/examples/code/snippets/failmissingexecpath.pp +13 -0
  43. data/examples/code/snippets/falsevalues.pp +3 -0
  44. data/examples/code/snippets/filecreate +11 -0
  45. data/examples/code/snippets/implicititeration +15 -0
  46. data/examples/code/snippets/multipleinstances +7 -0
  47. data/examples/code/snippets/namevartest +9 -0
  48. data/examples/code/snippets/scopetest +13 -0
  49. data/examples/code/snippets/selectorvalues.pp +22 -0
  50. data/examples/code/snippets/simpledefaults +5 -0
  51. data/examples/code/snippets/simpleselector +38 -0
  52. data/examples/code/svncommit +13 -0
  53. data/examples/root/bin/sleeper +69 -0
  54. data/examples/root/etc/configfile +0 -0
  55. data/examples/root/etc/debian-passwd +29 -0
  56. data/examples/root/etc/debian-syslog.conf +71 -0
  57. data/examples/root/etc/init.d/sleeper +65 -0
  58. data/examples/root/etc/otherfile +0 -0
  59. data/examples/root/etc/puppet/fileserver.conf +3 -0
  60. data/examples/root/etc/puppet/puppetmasterd.conf +10 -0
  61. data/ext/module:puppet +195 -0
  62. data/install.rb +270 -0
  63. data/lib/puppet.rb +249 -0
  64. data/lib/puppet/base64.rb +19 -0
  65. data/lib/puppet/client.rb +519 -0
  66. data/lib/puppet/config.rb +49 -0
  67. data/lib/puppet/daemon.rb +208 -0
  68. data/lib/puppet/element.rb +71 -0
  69. data/lib/puppet/event.rb +259 -0
  70. data/lib/puppet/log.rb +321 -0
  71. data/lib/puppet/metric.rb +250 -0
  72. data/lib/puppet/parsedfile.rb +38 -0
  73. data/lib/puppet/parser/ast.rb +1560 -0
  74. data/lib/puppet/parser/interpreter.rb +150 -0
  75. data/lib/puppet/parser/lexer.rb +226 -0
  76. data/lib/puppet/parser/parser.rb +1354 -0
  77. data/lib/puppet/parser/scope.rb +755 -0
  78. data/lib/puppet/server.rb +170 -0
  79. data/lib/puppet/server/authstore.rb +227 -0
  80. data/lib/puppet/server/ca.rb +140 -0
  81. data/lib/puppet/server/filebucket.rb +147 -0
  82. data/lib/puppet/server/fileserver.rb +477 -0
  83. data/lib/puppet/server/logger.rb +43 -0
  84. data/lib/puppet/server/master.rb +103 -0
  85. data/lib/puppet/server/servlet.rb +247 -0
  86. data/lib/puppet/sslcertificates.rb +737 -0
  87. data/lib/puppet/statechange.rb +150 -0
  88. data/lib/puppet/storage.rb +95 -0
  89. data/lib/puppet/transaction.rb +179 -0
  90. data/lib/puppet/transportable.rb +151 -0
  91. data/lib/puppet/type.rb +1354 -0
  92. data/lib/puppet/type/component.rb +141 -0
  93. data/lib/puppet/type/cron.rb +543 -0
  94. data/lib/puppet/type/exec.rb +316 -0
  95. data/lib/puppet/type/group.rb +152 -0
  96. data/lib/puppet/type/nameservice.rb +3 -0
  97. data/lib/puppet/type/nameservice/netinfo.rb +173 -0
  98. data/lib/puppet/type/nameservice/objectadd.rb +146 -0
  99. data/lib/puppet/type/nameservice/posix.rb +200 -0
  100. data/lib/puppet/type/package.rb +420 -0
  101. data/lib/puppet/type/package/apt.rb +70 -0
  102. data/lib/puppet/type/package/dpkg.rb +108 -0
  103. data/lib/puppet/type/package/rpm.rb +81 -0
  104. data/lib/puppet/type/package/sun.rb +117 -0
  105. data/lib/puppet/type/package/yum.rb +58 -0
  106. data/lib/puppet/type/pfile.rb +569 -0
  107. data/lib/puppet/type/pfile/checksum.rb +219 -0
  108. data/lib/puppet/type/pfile/create.rb +108 -0
  109. data/lib/puppet/type/pfile/group.rb +129 -0
  110. data/lib/puppet/type/pfile/mode.rb +131 -0
  111. data/lib/puppet/type/pfile/source.rb +264 -0
  112. data/lib/puppet/type/pfile/type.rb +31 -0
  113. data/lib/puppet/type/pfile/uid.rb +166 -0
  114. data/lib/puppet/type/pfilebucket.rb +80 -0
  115. data/lib/puppet/type/pprocess.rb +97 -0
  116. data/lib/puppet/type/service.rb +347 -0
  117. data/lib/puppet/type/service/base.rb +17 -0
  118. data/lib/puppet/type/service/debian.rb +50 -0
  119. data/lib/puppet/type/service/init.rb +145 -0
  120. data/lib/puppet/type/service/smf.rb +29 -0
  121. data/lib/puppet/type/state.rb +182 -0
  122. data/lib/puppet/type/symlink.rb +183 -0
  123. data/lib/puppet/type/tidy.rb +183 -0
  124. data/lib/puppet/type/typegen.rb +149 -0
  125. data/lib/puppet/type/typegen/filerecord.rb +243 -0
  126. data/lib/puppet/type/typegen/filetype.rb +316 -0
  127. data/lib/puppet/type/user.rb +290 -0
  128. data/lib/puppet/util.rb +138 -0
  129. data/test/certmgr/certmgr.rb +265 -0
  130. data/test/client/client.rb +203 -0
  131. data/test/executables/puppetbin.rb +53 -0
  132. data/test/executables/puppetca.rb +79 -0
  133. data/test/executables/puppetd.rb +71 -0
  134. data/test/executables/puppetmasterd.rb +153 -0
  135. data/test/executables/puppetmodule.rb +60 -0
  136. data/test/language/ast.rb +412 -0
  137. data/test/language/interpreter.rb +71 -0
  138. data/test/language/scope.rb +412 -0
  139. data/test/language/snippets.rb +445 -0
  140. data/test/other/events.rb +111 -0
  141. data/test/other/log.rb +195 -0
  142. data/test/other/metrics.rb +92 -0
  143. data/test/other/overrides.rb +115 -0
  144. data/test/other/parsedfile.rb +31 -0
  145. data/test/other/relationships.rb +113 -0
  146. data/test/other/state.rb +106 -0
  147. data/test/other/storage.rb +39 -0
  148. data/test/other/transactions.rb +235 -0
  149. data/test/parser/lexer.rb +120 -0
  150. data/test/parser/parser.rb +180 -0
  151. data/test/puppet/conffiles.rb +104 -0
  152. data/test/puppet/defaults.rb +100 -0
  153. data/test/puppet/error.rb +23 -0
  154. data/test/puppet/utiltest.rb +120 -0
  155. data/test/puppettest.rb +774 -0
  156. data/test/server/authstore.rb +209 -0
  157. data/test/server/bucket.rb +227 -0
  158. data/test/server/ca.rb +201 -0
  159. data/test/server/fileserver.rb +710 -0
  160. data/test/server/logger.rb +175 -0
  161. data/test/server/master.rb +150 -0
  162. data/test/server/server.rb +130 -0
  163. data/test/tagging/tagging.rb +80 -0
  164. data/test/test +51 -0
  165. data/test/types/basic.rb +119 -0
  166. data/test/types/component.rb +272 -0
  167. data/test/types/cron.rb +261 -0
  168. data/test/types/exec.rb +273 -0
  169. data/test/types/file.rb +616 -0
  170. data/test/types/filebucket.rb +167 -0
  171. data/test/types/fileignoresource.rb +287 -0
  172. data/test/types/filesources.rb +587 -0
  173. data/test/types/filetype.rb +162 -0
  174. data/test/types/group.rb +271 -0
  175. data/test/types/package.rb +205 -0
  176. data/test/types/query.rb +101 -0
  177. data/test/types/service.rb +100 -0
  178. data/test/types/symlink.rb +93 -0
  179. data/test/types/tidy.rb +124 -0
  180. data/test/types/type.rb +135 -0
  181. data/test/types/user.rb +371 -0
  182. metadata +243 -0
@@ -0,0 +1,167 @@
1
+ if __FILE__ == $0
2
+ $:.unshift '..'
3
+ $:.unshift '../../lib'
4
+ $puppetbase = "../../../../language/trunk"
5
+ end
6
+
7
+ require 'puppet'
8
+ require 'test/unit'
9
+ require 'fileutils'
10
+ require 'puppettest'
11
+
12
+ # $Id: filebucket.rb 724 2005-10-22 22:27:20Z luke $
13
+
14
+ class TestFileBucket < Test::Unit::TestCase
15
+ include FileTesting
16
+ # hmmm
17
+ # this is complicated, because we store references to the created
18
+ # objects in a central store
19
+ def mkfile(hash)
20
+ file = nil
21
+ assert_nothing_raised {
22
+ file = Puppet::Type::PFile.create(hash)
23
+ }
24
+ return file
25
+ end
26
+
27
+ def mkbucket(name,path)
28
+ bucket = nil
29
+ assert_nothing_raised {
30
+ bucket = Puppet::Type::PFileBucket.create(
31
+ :name => name,
32
+ :path => path
33
+ )
34
+ }
35
+
36
+ @@tmpfiles.push path
37
+
38
+ return bucket
39
+ end
40
+
41
+ def mktestfile
42
+ # because luke's home directory is on nfs, it can't be used for testing
43
+ # as root
44
+ tmpfile = tempfile()
45
+ File.open(tmpfile, "w") { |f| f.puts rand(100) }
46
+ @@tmpfiles.push tmpfile
47
+ mkfile(:name => tmpfile)
48
+ end
49
+
50
+ def setup
51
+ super
52
+ begin
53
+ initstorage
54
+ rescue
55
+ system("rm -rf %s" % Puppet[:checksumfile])
56
+ end
57
+ end
58
+
59
+ def teardown
60
+ super
61
+ clearstorage
62
+ end
63
+
64
+ def initstorage
65
+ Puppet::Storage.init
66
+ Puppet::Storage.load
67
+ end
68
+
69
+ def clearstorage
70
+ Puppet::Storage.store
71
+ Puppet::Storage.clear
72
+ end
73
+
74
+ def test_simplebucket
75
+ name = "yayness"
76
+ mkbucket("yayness", "/tmp/filebucket")
77
+
78
+ bucket = nil
79
+ assert_nothing_raised {
80
+ bucket = Puppet::Type::PFileBucket.bucket(name)
81
+ }
82
+
83
+ assert_instance_of(Puppet::Client::Dipper, bucket)
84
+
85
+ md5 = nil
86
+ newpath = "/tmp/passwd"
87
+ @@tmpfiles << newpath
88
+ system("cp /etc/passwd %s" % newpath)
89
+ assert_nothing_raised {
90
+ md5 = bucket.backup(newpath)
91
+ }
92
+
93
+ assert(md5)
94
+
95
+ newmd5 = nil
96
+
97
+ File.open(newpath, "w") { |f| f.puts ";lkjasdf;lkjasdflkjwerlkj134lkj" }
98
+
99
+ assert_nothing_raised {
100
+ newmd5 = bucket.backup(newpath)
101
+ }
102
+
103
+ assert(md5 != newmd5)
104
+
105
+ assert_nothing_raised {
106
+ bucket.restore(newpath, md5)
107
+ }
108
+
109
+ File.open(newpath) { |f| newmd5 = Digest::MD5.hexdigest(f.read) }
110
+
111
+ assert_equal(md5, newmd5)
112
+ end
113
+
114
+ def test_fileswithbuckets
115
+ name = "yayness"
116
+ mkbucket("yayness", "/tmp/filebucket")
117
+
118
+ bucket = nil
119
+ assert_nothing_raised {
120
+ bucket = Puppet::Type::PFileBucket.bucket(name)
121
+ }
122
+
123
+ file = mktestfile()
124
+ assert_nothing_raised {
125
+ file[:backup] = ["filebucket", name]
126
+ }
127
+
128
+ opath = "/tmp/anotherbuckettest"
129
+ @@tmpfiles << opath
130
+ system("cp /etc/passwd %s" % opath)
131
+
132
+ origmd5 = File.open(file.name) { |f| newmd5 = Digest::MD5.hexdigest(f.read) }
133
+
134
+ file[:source] = opath
135
+ #assert_nothing_raised {
136
+ # file[:backup] = true
137
+ #}
138
+
139
+ comp = newcomp("yaytest", file)
140
+
141
+ trans = nil
142
+ assert_nothing_raised {
143
+ trans = comp.evaluate
144
+ }
145
+ events = nil
146
+ assert_nothing_raised {
147
+ events = trans.evaluate.collect { |e| e.event }
148
+ }
149
+
150
+ # so, we've now replaced the file with the opath file
151
+ assert_equal(
152
+ File.open(opath) { |f| newmd5 = Digest::MD5.hexdigest(f.read) },
153
+ File.open(file.name) { |f| newmd5 = Digest::MD5.hexdigest(f.read) }
154
+ )
155
+
156
+ assert_nothing_raised {
157
+ bucket.restore(file.name, origmd5)
158
+ }
159
+
160
+ assert_equal(
161
+ origmd5,
162
+ File.open(file.name) { |f| newmd5 = Digest::MD5.hexdigest(f.read) }
163
+ )
164
+
165
+
166
+ end
167
+ end
@@ -0,0 +1,287 @@
1
+ if __FILE__ == $0
2
+ $:.unshift '..'
3
+ $:.unshift '../../lib'
4
+ $:.unshift "../../../../language/trunk/lib"
5
+ $puppetbase = "../../../../language/trunk"
6
+ end
7
+
8
+ require 'puppet'
9
+ require 'cgi'
10
+ require 'test/unit'
11
+ require 'fileutils'
12
+ require 'puppettest'
13
+
14
+ # $Id: $
15
+
16
+ class TestFileIgnoreSources < Test::Unit::TestCase
17
+ include FileTesting
18
+
19
+ def setup
20
+ super
21
+ begin
22
+ initstorage
23
+ rescue
24
+ system("rm -rf %s" % Puppet[:checksumfile])
25
+ end
26
+ end
27
+
28
+ def teardown
29
+ super
30
+ clearstorage
31
+ end
32
+
33
+ #This is not needed unless using md5 (correct me if I'm wrong)
34
+ def initstorage
35
+ Puppet::Storage.init
36
+ Puppet::Storage.load
37
+ end
38
+
39
+ def clearstorage
40
+ Puppet::Storage.store
41
+ Puppet::Storage.clear
42
+ end
43
+
44
+ def test_ignore_simple_source
45
+
46
+ #Temp directory to run tests in
47
+ path = "/tmp/Fileignoresourcetest"
48
+ @@tmpfiles.push path
49
+
50
+ #source directory
51
+ sourcedir = "sourcedir"
52
+ sourcefile1 = "sourcefile1"
53
+ sourcefile2 = "sourcefile2"
54
+
55
+ frompath = File.join(path,sourcedir)
56
+ FileUtils.mkdir_p frompath
57
+
58
+ topath = File.join(path,"destdir")
59
+ FileUtils.mkdir topath
60
+
61
+ #initialize variables before block
62
+ tofile = nil
63
+ trans = nil
64
+
65
+ #create source files
66
+
67
+ File.open(File.join(frompath,sourcefile1),
68
+ File::WRONLY|File::CREAT|File::APPEND) { |of|
69
+ of.puts "yayness"
70
+ }
71
+
72
+ File.open(File.join(frompath,sourcefile2),
73
+ File::WRONLY|File::CREAT|File::APPEND) { |of|
74
+ of.puts "even yayer"
75
+ }
76
+
77
+
78
+ #makes Puppet file Object
79
+ assert_nothing_raised {
80
+ tofile = Puppet::Type::PFile.create(
81
+ :name => topath,
82
+ :source => frompath,
83
+ :recurse => true,
84
+ :ignore => "sourcefile2"
85
+ )
86
+ }
87
+
88
+ #make a component and adds the file
89
+ comp = Puppet::Type::Component.create(
90
+ :name => "component"
91
+ )
92
+ comp.push tofile
93
+
94
+ #make, evaluate transaction and sync the component
95
+ assert_nothing_raised {
96
+ trans = comp.evaluate
97
+ }
98
+ assert_nothing_raised {
99
+ trans.evaluate
100
+ }
101
+
102
+
103
+ #topath should exist as a directory with sourcedir as a directory
104
+
105
+ #This file should exist
106
+ assert(FileTest.exists?(File.join(topath,sourcefile1)))
107
+
108
+ #This file should not
109
+ assert(!(FileTest.exists?(File.join(topath,sourcefile2))))
110
+
111
+ Puppet::Type.allclear
112
+ end
113
+
114
+ def test_ignore_with_wildcard
115
+ #Temp directory to run tests in
116
+ path = "/tmp/Fileignoresourcetest"
117
+ @@tmpfiles.push path
118
+
119
+ #source directory
120
+ sourcedir = "sourcedir"
121
+ subdir = "subdir"
122
+ subdir2 = "subdir2"
123
+ sourcefile1 = "sourcefile1"
124
+ sourcefile2 = "sourcefile2"
125
+
126
+ frompath = File.join(path,sourcedir)
127
+ FileUtils.mkdir_p frompath
128
+
129
+ FileUtils.mkdir_p(File.join(frompath, subdir))
130
+ FileUtils.mkdir_p(File.join(frompath, subdir2))
131
+ dir = Dir.glob(File.join(path,"**/*"))
132
+
133
+ topath = File.join(path,"destdir")
134
+ FileUtils.mkdir topath
135
+
136
+ #initialize variables before block
137
+ tofile = nil
138
+ trans = nil
139
+
140
+ #create source files
141
+
142
+ dir.each { |dir|
143
+ File.open(File.join(dir,sourcefile1),
144
+ File::WRONLY|File::CREAT|File::APPEND) { |of|
145
+ of.puts "yayness"
146
+ }
147
+
148
+ File.open(File.join(dir,sourcefile2),
149
+ File::WRONLY|File::CREAT|File::APPEND) { |of|
150
+ of.puts "even yayer"
151
+ }
152
+
153
+ }
154
+
155
+ #makes Puppet file Object
156
+ assert_nothing_raised {
157
+ tofile = Puppet::Type::PFile.create(
158
+ :name => topath,
159
+ :source => frompath,
160
+ :recurse => true,
161
+ :ignore => "*2"
162
+ )
163
+ }
164
+
165
+ #make a component and adds the file
166
+ comp = Puppet::Type::Component.create(
167
+ :name => "component"
168
+ )
169
+ comp.push tofile
170
+
171
+ #make, evaluate transaction and sync the component
172
+ assert_nothing_raised {
173
+ trans = comp.evaluate
174
+ }
175
+ assert_nothing_raised {
176
+ trans.evaluate
177
+ }
178
+
179
+ #topath should exist as a directory with sourcedir as a directory
180
+
181
+ #This file should exist
182
+ assert(FileTest.exists?(File.join(topath,sourcefile1)))
183
+ assert(FileTest.exists?(File.join(topath,subdir)))
184
+ assert(FileTest.exists?(File.join(File.join(topath,subdir),sourcefile1)))
185
+ #This file should not
186
+ assert(!(FileTest.exists?(File.join(topath,sourcefile2))))
187
+ assert(!(FileTest.exists?(File.join(topath,subdir2))))
188
+ assert(!(FileTest.exists?(File.join(File.join(topath,subdir),sourcefile2))))
189
+ Puppet::Type.allclear
190
+
191
+ end
192
+
193
+ def test_ignore_array
194
+ #Temp directory to run tests in
195
+ path = "/tmp/Fileignoresourcetest"
196
+ @@tmpfiles.push path
197
+
198
+ #source directory
199
+ sourcedir = "sourcedir"
200
+ subdir = "subdir"
201
+ subdir2 = "subdir2"
202
+ subdir3 = "anotherdir"
203
+ sourcefile1 = "sourcefile1"
204
+ sourcefile2 = "sourcefile2"
205
+
206
+ frompath = File.join(path,sourcedir)
207
+ FileUtils.mkdir_p frompath
208
+
209
+ FileUtils.mkdir_p(File.join(frompath, subdir))
210
+ FileUtils.mkdir_p(File.join(frompath, subdir2))
211
+ FileUtils.mkdir_p(File.join(frompath, subdir3))
212
+ sourcedir = Dir.glob(File.join(path,"**/*"))
213
+
214
+ topath = File.join(path,"destdir")
215
+ FileUtils.mkdir topath
216
+
217
+ #initialize variables before block
218
+ tofile = nil
219
+ trans = nil
220
+
221
+ #create source files
222
+
223
+
224
+
225
+ sourcedir.each { |dir|
226
+ File.open(File.join(dir,sourcefile1),
227
+ File::WRONLY|File::CREAT|File::APPEND) { |of|
228
+ of.puts "yayness"
229
+ }
230
+
231
+ File.open(File.join(dir,sourcefile2),
232
+ File::WRONLY|File::CREAT|File::APPEND) { |of|
233
+ of.puts "even yayer"
234
+ }
235
+
236
+ }
237
+
238
+
239
+ #makes Puppet file Object
240
+ assert_nothing_raised {
241
+ tofile = Puppet::Type::PFile.create(
242
+ :name => topath,
243
+ :source => frompath,
244
+ :recurse => true,
245
+ :ignore => ["*2", "an*"]
246
+ # :ignore => ["*2", "an*", "nomatch"]
247
+ )
248
+ }
249
+
250
+ #make a component and adds the file
251
+ comp = Puppet::Type::Component.create(
252
+ :name => "component"
253
+ )
254
+ comp.push tofile
255
+
256
+ #make, evaluate transaction and sync the component
257
+ assert_nothing_raised {
258
+ trans = comp.evaluate
259
+ }
260
+ assert_nothing_raised {
261
+ trans.evaluate
262
+ }
263
+
264
+ #topath should exist as a directory with sourcedir as a directory
265
+
266
+ # This file should exist
267
+ # proper files in destination
268
+ assert(FileTest.exists?(File.join(topath,sourcefile1)), "file1 not in destdir")
269
+ assert(FileTest.exists?(File.join(topath,subdir)), "subdir1 not in destdir")
270
+ assert(FileTest.exists?(File.join(File.join(topath,subdir),sourcefile1)), "file1 not in subdir")
271
+ # proper files in source
272
+ assert(FileTest.exists?(File.join(frompath,subdir)), "subdir not in source")
273
+ assert(FileTest.exists?(File.join(frompath,subdir2)), "subdir2 not in source")
274
+ assert(FileTest.exists?(File.join(frompath,subdir3)), "subdir3 not in source")
275
+
276
+ # This file should not
277
+ assert(!(FileTest.exists?(File.join(topath,sourcefile2))), "file2 in dest")
278
+ assert(!(FileTest.exists?(File.join(topath,subdir2))), "subdir2 in dest")
279
+ assert(!(FileTest.exists?(File.join(topath,subdir3))), "anotherdir in dest")
280
+ assert(!(FileTest.exists?(File.join(File.join(topath,subdir),sourcefile2))), "file2 in dest/sub")
281
+
282
+
283
+ Puppet::Type.allclear
284
+
285
+ end
286
+
287
+ end