puppet 0.13.6 → 0.16.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 (149) hide show
  1. data/CHANGELOG +57 -0
  2. data/Rakefile +38 -410
  3. data/bin/puppet +14 -12
  4. data/bin/puppetca +1 -3
  5. data/bin/puppetd +25 -7
  6. data/bin/puppetdoc +161 -104
  7. data/bin/puppetmasterd +4 -4
  8. data/conf/epm.list +8 -0
  9. data/conf/redhat/client.init +6 -1
  10. data/conf/redhat/no-chuser-0.15.1.patch +38 -0
  11. data/conf/redhat/puppet.spec +20 -5
  12. data/conf/redhat/puppetd.conf +1 -1
  13. data/conf/redhat/puppetmasterd.conf +1 -1
  14. data/conf/redhat/server.init +2 -4
  15. data/examples/code/snippets/{casestatement → casestatement.pp} +12 -1
  16. data/examples/code/snippets/selectorvalues.pp +15 -0
  17. data/examples/code/snippets/singleselector.pp +22 -0
  18. data/examples/code/snippets/tag.pp +9 -0
  19. data/ext/module_puppet +1 -1
  20. data/install.rb +303 -303
  21. data/lib/puppet.rb +7 -9
  22. data/lib/puppet/client.rb +18 -5
  23. data/lib/puppet/client/dipper.rb +12 -10
  24. data/lib/puppet/client/master.rb +113 -41
  25. data/lib/puppet/client/pelement.rb +20 -0
  26. data/lib/puppet/config.rb +113 -6
  27. data/lib/puppet/element.rb +1 -3
  28. data/lib/puppet/event.rb +12 -23
  29. data/lib/puppet/filetype.rb +93 -5
  30. data/lib/puppet/inifile.rb +201 -0
  31. data/lib/puppet/log.rb +18 -6
  32. data/lib/puppet/parameter.rb +80 -29
  33. data/lib/puppet/parser/ast.rb +6 -4
  34. data/lib/puppet/parser/ast/caseopt.rb +13 -4
  35. data/lib/puppet/parser/ast/casestatement.rb +2 -2
  36. data/lib/puppet/parser/ast/component.rb +4 -14
  37. data/lib/puppet/parser/ast/hostclass.rb +1 -1
  38. data/lib/puppet/parser/ast/leaf.rb +12 -0
  39. data/lib/puppet/parser/ast/node.rb +4 -4
  40. data/lib/puppet/parser/ast/objectdef.rb +5 -51
  41. data/lib/puppet/parser/ast/selector.rb +2 -0
  42. data/lib/puppet/parser/ast/tag.rb +26 -0
  43. data/lib/puppet/parser/interpreter.rb +89 -74
  44. data/lib/puppet/parser/lexer.rb +4 -3
  45. data/lib/puppet/parser/parser.rb +440 -378
  46. data/lib/puppet/parser/scope.rb +844 -887
  47. data/lib/puppet/server.rb +12 -1
  48. data/lib/puppet/server/authconfig.rb +166 -0
  49. data/lib/puppet/server/authstore.rb +8 -6
  50. data/lib/puppet/server/ca.rb +23 -26
  51. data/lib/puppet/server/filebucket.rb +24 -23
  52. data/lib/puppet/server/fileserver.rb +116 -47
  53. data/lib/puppet/server/master.rb +58 -19
  54. data/lib/puppet/server/pelement.rb +176 -0
  55. data/lib/puppet/server/rights.rb +78 -0
  56. data/lib/puppet/server/servlet.rb +19 -6
  57. data/lib/puppet/sslcertificates.rb +4 -2
  58. data/lib/puppet/sslcertificates/ca.rb +66 -34
  59. data/lib/puppet/storage.rb +20 -26
  60. data/lib/puppet/transaction.rb +49 -92
  61. data/lib/puppet/type.rb +142 -35
  62. data/lib/puppet/type/cron.rb +29 -14
  63. data/lib/puppet/type/exec.rb +92 -35
  64. data/lib/puppet/type/group.rb +29 -11
  65. data/lib/puppet/type/nameservice.rb +50 -1
  66. data/lib/puppet/type/nameservice/netinfo.rb +68 -1
  67. data/lib/puppet/type/nameservice/objectadd.rb +1 -0
  68. data/lib/puppet/type/package.rb +150 -109
  69. data/lib/puppet/type/package/apple.rb +27 -0
  70. data/lib/puppet/type/package/apt.rb +1 -0
  71. data/lib/puppet/type/package/darwinport.rb +97 -0
  72. data/lib/puppet/type/package/dpkg.rb +10 -2
  73. data/lib/puppet/type/package/freebsd.rb +19 -0
  74. data/lib/puppet/type/package/{bsd.rb → openbsd.rb} +36 -7
  75. data/lib/puppet/type/package/ports.rb +98 -0
  76. data/lib/puppet/type/package/rpm.rb +43 -7
  77. data/lib/puppet/type/package/sun.rb +53 -36
  78. data/lib/puppet/type/package/yum.rb +5 -16
  79. data/lib/puppet/type/parsedtype.rb +41 -29
  80. data/lib/puppet/type/parsedtype/host.rb +13 -5
  81. data/lib/puppet/type/parsedtype/mount.rb +250 -0
  82. data/lib/puppet/type/parsedtype/port.rb +8 -6
  83. data/lib/puppet/type/pfile.rb +284 -30
  84. data/lib/puppet/type/pfile/checksum.rb +96 -68
  85. data/lib/puppet/type/pfile/content.rb +16 -13
  86. data/lib/puppet/type/pfile/ensure.rb +64 -126
  87. data/lib/puppet/type/pfile/group.rb +12 -5
  88. data/lib/puppet/type/pfile/mode.rb +16 -4
  89. data/lib/puppet/type/pfile/source.rb +47 -73
  90. data/lib/puppet/type/pfile/target.rb +81 -0
  91. data/lib/puppet/type/pfile/uid.rb +10 -3
  92. data/lib/puppet/type/pfilebucket.rb +12 -3
  93. data/lib/puppet/type/schedule.rb +5 -1
  94. data/lib/puppet/type/service.rb +138 -66
  95. data/lib/puppet/type/service/debian.rb +9 -3
  96. data/lib/puppet/type/service/init.rb +51 -56
  97. data/lib/puppet/type/service/smf.rb +16 -6
  98. data/lib/puppet/type/state.rb +71 -32
  99. data/lib/puppet/type/symlink.rb +12 -7
  100. data/lib/puppet/type/tidy.rb +5 -1
  101. data/lib/puppet/type/user.rb +116 -20
  102. data/lib/puppet/type/yumrepo.rb +314 -0
  103. data/lib/puppet/util.rb +84 -14
  104. data/test/client/client.rb +41 -18
  105. data/test/client/master.rb +50 -4
  106. data/test/executables/puppetbin.rb +31 -4
  107. data/test/executables/puppetca.rb +18 -2
  108. data/test/language/ast.rb +201 -31
  109. data/test/language/interpreter.rb +8 -2
  110. data/test/{parser → language}/lexer.rb +1 -1
  111. data/test/language/node.rb +84 -0
  112. data/test/{parser → language}/parser.rb +1 -1
  113. data/test/language/scope.rb +101 -2
  114. data/test/language/snippets.rb +23 -2
  115. data/test/other/config.rb +99 -1
  116. data/test/other/filetype.rb +95 -0
  117. data/test/other/inifile.rb +114 -0
  118. data/test/other/log.rb +3 -2
  119. data/test/other/transactions.rb +55 -10
  120. data/test/puppet/utiltest.rb +25 -1
  121. data/test/puppettest.rb +140 -46
  122. data/test/server/authconfig.rb +56 -0
  123. data/test/server/bucket.rb +32 -18
  124. data/test/server/fileserver.rb +75 -30
  125. data/test/server/master.rb +27 -4
  126. data/test/server/pelement.rb +298 -0
  127. data/test/server/rights.rb +41 -0
  128. data/test/server/server.rb +2 -2
  129. data/test/tagging/tagging.rb +100 -1
  130. data/test/types/basic.rb +3 -3
  131. data/test/types/cron.rb +24 -1
  132. data/test/types/exec.rb +99 -1
  133. data/test/types/file.rb +298 -2
  134. data/test/types/filebucket.rb +4 -15
  135. data/test/types/filesources.rb +43 -14
  136. data/test/types/group.rb +1 -13
  137. data/test/types/mount.rb +277 -0
  138. data/test/types/package.rb +164 -33
  139. data/test/types/parameter.rb +107 -0
  140. data/test/types/port.rb +2 -1
  141. data/test/types/service.rb +37 -2
  142. data/test/types/state.rb +92 -0
  143. data/test/types/symlink.rb +30 -2
  144. data/test/types/tidy.rb +2 -14
  145. data/test/types/type.rb +35 -1
  146. data/test/types/user.rb +110 -1
  147. data/test/types/yumrepo.rb +95 -0
  148. metadata +316 -290
  149. data/test/types/filetype.rb +0 -160
@@ -0,0 +1,56 @@
1
+ if __FILE__ == $0
2
+ $:.unshift '../../lib'
3
+ $:.unshift '..'
4
+ $puppetbase = "../.."
5
+ end
6
+
7
+ require 'puppet'
8
+ require 'puppet/server/authconfig'
9
+ require 'test/unit'
10
+ require 'puppettest.rb'
11
+
12
+ class TestAuthConfig < Test::Unit::TestCase
13
+ include TestPuppet
14
+
15
+ def test_parsingconfigfile
16
+ file = tempfile()
17
+ assert(Puppet[:authconfig], "No config path")
18
+
19
+ Puppet[:authconfig] = file
20
+
21
+ File.open(file, "w") { |f|
22
+ f.puts "[pelementserver.describe]
23
+ allow *.madstop.com
24
+ deny 10.10.1.1
25
+
26
+ [fileserver]
27
+ allow *.madstop.com
28
+ deny 10.10.1.1
29
+
30
+ [fileserver.list]
31
+ allow 10.10.1.1
32
+ "
33
+ }
34
+
35
+ config = nil
36
+ assert_nothing_raised {
37
+ config = Puppet::Server::AuthConfig.new(file)
38
+ }
39
+
40
+ assert_nothing_raised {
41
+ assert(config.allowed?("pelementserver.describe",
42
+ "culain.madstop.com", "1.1.1.1"), "Did not allow host")
43
+ assert(! config.allowed?("pelementserver.describe",
44
+ "culain.madstop.com", "10.10.1.1"), "Allowed host")
45
+ assert(config.allowed?("fileserver.yay",
46
+ "culain.madstop.com", "10.1.1.1"), "Did not allow host to fs")
47
+ assert(! config.allowed?("fileserver.yay",
48
+ "culain.madstop.com", "10.10.1.1"), "Allowed host to fs")
49
+ assert(config.allowed?("fileserver.list",
50
+ "culain.madstop.com", "10.10.1.1"), "Did not allow host to fs.list")
51
+ }
52
+ end
53
+ end
54
+
55
+ # $Id: authconfig.rb 1129 2006-04-21 19:14:59Z luke $
56
+
@@ -14,25 +14,36 @@ require 'base64'
14
14
 
15
15
  class TestBucket < Test::Unit::TestCase
16
16
  include ServerTest
17
+
18
+ def out
19
+ if defined? @num
20
+ @num += 1
21
+ else
22
+ @num = 1
23
+ end
24
+
25
+ Puppet.err "#{Process.pid}: %s: %s" % [@num, memory()]
26
+ GC.start
27
+ end
17
28
  # run through all of the files and exercise the filebucket methods
18
29
  def checkfiles(client)
19
30
  files = filelist()
31
+ #files = %w{/usr/local/bin/vim /etc/motd /etc/motd /etc/motd /etc/motd}
32
+ #files = %w{/usr/local/bin/vim}
20
33
 
21
34
  # iterate across all of the files
22
35
  files.each { |file|
23
- spin
36
+ Puppet.warning file
37
+ out
24
38
  tempdir = tempfile()
25
39
  Dir.mkdir(tempdir)
26
40
  name = File.basename(file)
27
41
  tmppath = File.join(tempdir,name)
28
42
  @@tmpfiles << tmppath
29
43
 
44
+ out
30
45
  # copy the files to our tmp directory so we can modify them...
31
- File.open(tmppath,File::WRONLY|File::TRUNC|File::CREAT) { |wf|
32
- File.open(file) { |rf|
33
- wf.print(rf.read)
34
- }
35
- }
46
+ FileUtils.cp(file, tmppath)
36
47
 
37
48
  # make sure the copy worked
38
49
  assert(FileTest.exists?(tmppath))
@@ -41,14 +52,15 @@ class TestBucket < Test::Unit::TestCase
41
52
  osum = nil
42
53
  tsum = nil
43
54
  nsum = nil
44
- spin
55
+ out
45
56
  assert_nothing_raised {
46
57
  osum = client.backup(file)
47
58
  }
48
- spin
59
+ out
49
60
  assert_nothing_raised {
50
61
  tsum = client.backup(tmppath)
51
62
  }
63
+ out
52
64
 
53
65
  # verify you got the same sum back for both
54
66
  assert(tsum == osum)
@@ -57,30 +69,32 @@ class TestBucket < Test::Unit::TestCase
57
69
  File.open(tmppath,File::WRONLY|File::TRUNC) { |wf|
58
70
  wf.print "This is some test text\n"
59
71
  }
72
+ out
60
73
 
61
74
  # back it up
62
- spin
63
75
  assert_nothing_raised {
64
76
  #STDERR.puts("backing up %s" % tmppath) if $debug
65
77
  nsum = client.backup(tmppath)
66
78
  }
79
+ out
67
80
 
68
81
  # and verify the sum changed
69
82
  assert(tsum != nsum)
70
83
 
71
84
  # restore the orig
72
- spin
73
85
  assert_nothing_raised {
74
86
  nsum = client.restore(tmppath,tsum)
75
87
  }
88
+ out
76
89
 
77
90
  # and verify it actually got restored
78
- spin
79
91
  contents = File.open(tmppath) { |rf|
80
92
  #STDERR.puts("reading %s" % tmppath) if $debug
81
93
  rf.read
82
94
  }
95
+ out
83
96
  csum = Digest::MD5.hexdigest(contents)
97
+ out
84
98
  assert(tsum == csum)
85
99
  }
86
100
  end
@@ -127,6 +141,11 @@ class TestBucket < Test::Unit::TestCase
127
141
  @@tmpfiles << @bucket
128
142
  end
129
143
 
144
+ #def teardown
145
+ # system("lsof -p %s" % Process.pid)
146
+ # super
147
+ #end
148
+
130
149
  # test operating against the local filebucket object
131
150
  # this calls the direct server methods, which are different than the
132
151
  # Dipper methods
@@ -141,7 +160,6 @@ class TestBucket < Test::Unit::TestCase
141
160
 
142
161
  # iterate across them...
143
162
  files.each { |file|
144
- spin
145
163
  contents = File.open(file) { |of| of.read }
146
164
 
147
165
  md5 = nil
@@ -170,10 +188,6 @@ class TestBucket < Test::Unit::TestCase
170
188
  def test_localboth
171
189
  files = filelist()
172
190
 
173
- tmpdir = File.join(tmpdir(),"tmpfiledir")
174
- @@tmpfiles << tmpdir
175
- FileUtils.mkdir_p(tmpdir)
176
-
177
191
  bucket = nil
178
192
  client = nil
179
193
  threads = []
@@ -190,8 +204,8 @@ class TestBucket < Test::Unit::TestCase
190
204
  )
191
205
  }
192
206
 
207
+ #4.times { checkfiles(client) }
193
208
  checkfiles(client)
194
-
195
209
  end
196
210
 
197
211
  # test that things work over the wire
@@ -224,4 +238,4 @@ class TestBucket < Test::Unit::TestCase
224
238
  end
225
239
  end
226
240
 
227
- # $Id: bucket.rb 873 2006-02-07 23:12:33Z luke $
241
+ # $Id: bucket.rb 1129 2006-04-21 19:14:59Z luke $
@@ -72,19 +72,19 @@ class TestFileServer < Test::Unit::TestCase
72
72
  )
73
73
  }
74
74
 
75
- assert_raise(Puppet::Server::FileServerError) {
75
+ assert_raise(Puppet::FileServerError) {
76
76
  server.mount("/tmp", "invalid+name")
77
77
  }
78
78
 
79
- assert_raise(Puppet::Server::FileServerError) {
79
+ assert_raise(Puppet::FileServerError) {
80
80
  server.mount("/tmp", "invalid-name")
81
81
  }
82
82
 
83
- assert_raise(Puppet::Server::FileServerError) {
83
+ assert_raise(Puppet::FileServerError) {
84
84
  server.mount("/tmp", "invalid name")
85
85
  }
86
86
 
87
- assert_raise(Puppet::Server::FileServerError) {
87
+ assert_raise(Puppet::FileServerError) {
88
88
  server.mount("/tmp", "")
89
89
  }
90
90
  end
@@ -113,13 +113,13 @@ class TestFileServer < Test::Unit::TestCase
113
113
  # and verify different iterations of 'root' return the same value
114
114
  list = nil
115
115
  assert_nothing_raised {
116
- list = server.list("/test/", true, false)
116
+ list = server.list("/test/", :ignore, true, false)
117
117
  }
118
118
 
119
119
  assert(list =~ pattern)
120
120
 
121
121
  assert_nothing_raised {
122
- list = server.list("/test", true, false)
122
+ list = server.list("/test", :ignore, true, false)
123
123
  }
124
124
  assert(list =~ pattern)
125
125
 
@@ -147,7 +147,7 @@ class TestFileServer < Test::Unit::TestCase
147
147
  list = nil
148
148
  sfile = "/test/tmpfile"
149
149
  assert_nothing_raised {
150
- list = server.list(sfile, true, false)
150
+ list = server.list(sfile, :ignore, true, false)
151
151
  }
152
152
 
153
153
  assert_nothing_raised {
@@ -204,7 +204,7 @@ class TestFileServer < Test::Unit::TestCase
204
204
  list = nil
205
205
  sfile = "/test/"
206
206
  assert_nothing_raised {
207
- list = server.list(sfile, true, false)
207
+ list = server.list(sfile, :ignore, true, false)
208
208
  }
209
209
 
210
210
  # create the new file
@@ -214,7 +214,7 @@ class TestFileServer < Test::Unit::TestCase
214
214
 
215
215
  newlist = nil
216
216
  assert_nothing_raised {
217
- newlist = server.list(sfile, true, false)
217
+ newlist = server.list(sfile, :ignore, true, false)
218
218
  }
219
219
 
220
220
  # verify the list has changed
@@ -243,12 +243,12 @@ class TestFileServer < Test::Unit::TestCase
243
243
 
244
244
  list = nil
245
245
  assert_nothing_raised {
246
- list = server.list("/root/" + testdir, true, false)
246
+ list = server.list("/root/" + testdir, :ignore, true, false)
247
247
  }
248
248
 
249
249
  assert(list =~ pattern)
250
250
  assert_nothing_raised {
251
- list = server.list("/root" + testdir, true, false)
251
+ list = server.list("/root" + testdir, :ignore, true, false)
252
252
  }
253
253
 
254
254
  assert(list =~ pattern)
@@ -283,7 +283,7 @@ class TestFileServer < Test::Unit::TestCase
283
283
  # get our list
284
284
  list = nil
285
285
  assert_nothing_raised {
286
- list = server.list("/test/with", false, false)
286
+ list = server.list("/test/with", :ignore, false, false)
287
287
  }
288
288
 
289
289
  # make sure we only got one line, since we're not recursing
@@ -292,7 +292,7 @@ class TestFileServer < Test::Unit::TestCase
292
292
  # for each level of recursion, make sure we get the right list
293
293
  [0, 1, 2].each { |num|
294
294
  assert_nothing_raised {
295
- list = server.list("/test/with", num, false)
295
+ list = server.list("/test/with", :ignore, num, false)
296
296
  }
297
297
 
298
298
  count = 0
@@ -336,13 +336,13 @@ class TestFileServer < Test::Unit::TestCase
336
336
  list = nil
337
337
  # and then check a few dirs
338
338
  assert_nothing_raised {
339
- list = server.list("/localhost/with", false, false)
339
+ list = server.list("/localhost/with", :ignore, false, false)
340
340
  }
341
341
 
342
342
  assert(list !~ /with/)
343
343
 
344
344
  assert_nothing_raised {
345
- list = server.list("/localhost/with/some/sub", true, false)
345
+ list = server.list("/localhost/with/some/sub", :ignore, true, false)
346
346
  }
347
347
 
348
348
  assert(list !~ /sub/)
@@ -374,7 +374,7 @@ class TestFileServer < Test::Unit::TestCase
374
374
 
375
375
  list = nil
376
376
  assert_nothing_raised {
377
- list = server.list("/localhost/", 1, false)
377
+ list = server.list("/localhost/", :ignore, 1, false)
378
378
  }
379
379
  assert_instance_of(String, list, "Server returned %s instead of string")
380
380
  list = list.split("\n")
@@ -406,7 +406,7 @@ class TestFileServer < Test::Unit::TestCase
406
406
  list = nil
407
407
  sfile = "/test/"
408
408
  assert_nothing_raised {
409
- list = server.list(sfile, true, false)
409
+ list = server.list(sfile, :ignore, true, false)
410
410
  }
411
411
 
412
412
  # and describe each file in the list
@@ -433,7 +433,7 @@ class TestFileServer < Test::Unit::TestCase
433
433
 
434
434
  # Now try to describe some sources that don't even exist
435
435
  retval = nil
436
- assert_raise(Puppet::Server::FileServerError,
436
+ assert_raise(Puppet::FileServerError,
437
437
  "Describing non-existent mount did not raise an error") {
438
438
  retval = server.describe("/notmounted/" + "noexisties")
439
439
  }
@@ -495,7 +495,7 @@ class TestFileServer < Test::Unit::TestCase
495
495
  mounts.each { |mount, files|
496
496
  mount = "/#{mount}/"
497
497
  assert_nothing_raised {
498
- list = server.list(mount, true, false)
498
+ list = server.list(mount, :ignore, true, false)
499
499
  }
500
500
 
501
501
  assert_nothing_raised {
@@ -547,12 +547,12 @@ class TestFileServer < Test::Unit::TestCase
547
547
  assert_raise(Puppet::Server::AuthorizationError,
548
548
  "Host %s, ip %s, allowed %s" %
549
549
  [host, ip, mount]) {
550
- list = server.list(mount, true, false, host, ip)
550
+ list = server.list(mount, :ignore, true, false, host, ip)
551
551
  }
552
552
  when :allow:
553
553
  assert_nothing_raised("Host %s, ip %s, denied %s" %
554
554
  [host, ip, mount]) {
555
- list = server.list(mount, true, false, host, ip)
555
+ list = server.list(mount, :ignore, true, false, host, ip)
556
556
  }
557
557
  end
558
558
  }
@@ -603,9 +603,9 @@ class TestFileServer < Test::Unit::TestCase
603
603
  )
604
604
  }
605
605
 
606
- assert_raise(Puppet::Server::FileServerError,
606
+ assert_raise(Puppet::FileServerError,
607
607
  "Invalid mount was mounted") {
608
- server.list(mount)
608
+ server.list(mount, :ignore)
609
609
  }
610
610
  }
611
611
 
@@ -617,7 +617,7 @@ class TestFileServer < Test::Unit::TestCase
617
617
 
618
618
  # create a server with the file
619
619
  server = nil
620
- assert_raise(Puppet::Server::FileServerError,
620
+ assert_raise(Puppet::FileServerError,
621
621
  "Invalid config %s did not raise error" % i) {
622
622
  server = Puppet::Server::FileServer.new(
623
623
  :Local => true,
@@ -658,13 +658,13 @@ class TestFileServer < Test::Unit::TestCase
658
658
 
659
659
  list = nil
660
660
  assert_nothing_raised {
661
- list = server.list("/thing/", false, false,
661
+ list = server.list("/thing/", :ignore, false, false,
662
662
  "test1.domain.com", "127.0.0.1")
663
663
  }
664
664
  assert(list != "", "List returned nothing in rereard test")
665
665
 
666
666
  assert_raise(Puppet::Server::AuthorizationError, "List allowed invalid host") {
667
- list = server.list("/thing/", false, false,
667
+ list = server.list("/thing/", :ignore, false, false,
668
668
  "test2.domain.com", "127.0.0.1")
669
669
  }
670
670
 
@@ -679,12 +679,12 @@ class TestFileServer < Test::Unit::TestCase
679
679
  }
680
680
 
681
681
  assert_raise(Puppet::Server::AuthorizationError, "List allowed invalid host") {
682
- list = server.list("/thing/", false, false,
682
+ list = server.list("/thing/", :ignore, false, false,
683
683
  "test1.domain.com", "127.0.0.1")
684
684
  }
685
685
 
686
686
  assert_nothing_raised {
687
- list = server.list("/thing/", false, false,
687
+ list = server.list("/thing/", :ignore, false, false,
688
688
  "test2.domain.com", "127.0.0.1")
689
689
  }
690
690
 
@@ -702,9 +702,54 @@ class TestFileServer < Test::Unit::TestCase
702
702
  mount = Puppet::Server::FileServer::Mount.new(name, path)
703
703
  }
704
704
 
705
- assert_equal(name + ":" + path, mount.to_s)
705
+ assert_equal("mount[#{name}]", mount.to_s)
706
+ end
707
+
708
+ def test_servinglinks
709
+ server = nil
710
+ source = tempfile()
711
+ file = File.join(source, "file")
712
+ link = File.join(source, "link")
713
+ Dir.mkdir(source)
714
+ File.open(file, "w") { |f| f.puts "yay" }
715
+ File.symlink(file, link)
716
+ assert_nothing_raised {
717
+ server = Puppet::Server::FileServer.new(
718
+ :Local => true,
719
+ :Config => false
720
+ )
721
+ }
722
+
723
+ assert_nothing_raised {
724
+ server.mount(source, "mount")
725
+ }
726
+
727
+ # First describe the link when following
728
+ results = {}
729
+ assert_nothing_raised {
730
+ server.describe("/mount/link", :follow).split("\t").zip(
731
+ Puppet::Server::FileServer::CHECKPARAMS
732
+ ).each { |v,p| results[p] = v }
733
+ }
734
+
735
+ assert_equal("file", results[:type])
736
+
737
+ # Then not
738
+ results = {}
739
+ assert_nothing_raised {
740
+ server.describe("/mount/link", :ignore).split("\t").zip(
741
+ Puppet::Server::FileServer::CHECKPARAMS
742
+ ).each { |v,p| results[p] = v }
743
+ }
744
+
745
+ assert_equal("link", results[:type])
746
+
747
+ results.each { |p,v|
748
+ assert(v, "%s has no value" % p)
749
+ assert(v != "", "%s has no value" % p)
750
+ }
706
751
  end
707
752
  end
708
753
 
709
- # $Id: fileserver.rb 805 2006-01-12 01:58:19Z luke $
754
+ # $Id: fileserver.rb 1016 2006-03-12 03:29:13Z luke $
710
755