puppet 0.22.4 → 0.23.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 (266) hide show
  1. data/CHANGELOG +156 -0
  2. data/README +2 -2
  3. data/Rakefile +6 -6
  4. data/bin/filebucket +212 -0
  5. data/bin/puppet +2 -0
  6. data/bin/puppetca +2 -4
  7. data/bin/puppetd +16 -15
  8. data/bin/puppetdoc +46 -496
  9. data/bin/puppetmasterd +3 -5
  10. data/bin/puppetrun +8 -3
  11. data/bin/ralsh +271 -0
  12. data/conf/redhat/client.init +1 -1
  13. data/conf/redhat/puppet.spec +13 -2
  14. data/conf/solaris/pkginfo +1 -1
  15. data/ext/puppet-test +374 -0
  16. data/install.rb +40 -31
  17. data/lib/puppet.rb +39 -4
  18. data/lib/puppet/config_stores/rest.rb +60 -0
  19. data/lib/puppet/configuration.rb +312 -17
  20. data/lib/puppet/external/event-loop/event-loop.rb +4 -0
  21. data/lib/puppet/external/gratr/rdot.rb +1 -1
  22. data/lib/puppet/fact_stores/yaml.rb +42 -0
  23. data/lib/puppet/feature/base.rb +4 -1
  24. data/lib/puppet/metatype/attributes.rb +20 -43
  25. data/lib/puppet/metatype/container.rb +1 -36
  26. data/lib/puppet/metatype/evaluation.rb +48 -19
  27. data/lib/puppet/metatype/instances.rb +35 -1
  28. data/lib/puppet/metatype/metaparams.rb +23 -19
  29. data/lib/puppet/metatype/providers.rb +25 -38
  30. data/lib/puppet/network/client/ca.rb +8 -5
  31. data/lib/puppet/network/client/master.rb +59 -17
  32. data/lib/puppet/network/handler.rb +18 -1
  33. data/lib/puppet/network/handler/ca.rb +9 -3
  34. data/lib/puppet/network/handler/facts.rb +70 -0
  35. data/lib/puppet/network/handler/filebucket.rb +4 -1
  36. data/lib/puppet/network/handler/fileserver.rb +65 -21
  37. data/lib/puppet/network/handler/master.rb +6 -3
  38. data/lib/puppet/network/handler/report.rb +12 -26
  39. data/lib/puppet/network/handler/resource.rb +14 -2
  40. data/lib/puppet/network/handler/runner.rb +5 -1
  41. data/lib/puppet/network/handler/status.rb +5 -1
  42. data/lib/puppet/network/server/mongrel.rb +4 -4
  43. data/lib/puppet/network/server/webrick.rb +14 -3
  44. data/lib/puppet/parameter.rb +30 -25
  45. data/lib/puppet/parser/ast.rb +1 -6
  46. data/lib/puppet/parser/ast/component.rb +23 -20
  47. data/lib/puppet/parser/ast/hostclass.rb +7 -11
  48. data/lib/puppet/parser/ast/leaf.rb +4 -1
  49. data/lib/puppet/parser/ast/node.rb +6 -8
  50. data/lib/puppet/parser/functions.rb +7 -4
  51. data/lib/puppet/parser/interpreter.rb +155 -205
  52. data/lib/puppet/parser/lexer.rb +35 -2
  53. data/lib/puppet/parser/parser.rb +705 -612
  54. data/lib/puppet/parser/resource.rb +91 -48
  55. data/lib/puppet/parser/resource/param.rb +52 -29
  56. data/lib/puppet/parser/scope.rb +28 -23
  57. data/lib/puppet/pgraph.rb +26 -21
  58. data/lib/puppet/propertychange.rb +12 -12
  59. data/lib/puppet/provider.rb +102 -31
  60. data/lib/puppet/provider/cron/crontab.rb +7 -8
  61. data/lib/puppet/provider/group/groupadd.rb +4 -4
  62. data/lib/puppet/provider/group/pw.rb +3 -3
  63. data/lib/puppet/provider/mount.rb +8 -8
  64. data/lib/puppet/provider/mount/netinfo.rb +5 -5
  65. data/lib/puppet/provider/mount/parsed.rb +2 -2
  66. data/lib/puppet/provider/nameservice.rb +19 -31
  67. data/lib/puppet/provider/nameservice/netinfo.rb +14 -14
  68. data/lib/puppet/provider/nameservice/objectadd.rb +4 -4
  69. data/lib/puppet/provider/nameservice/pw.rb +4 -4
  70. data/lib/puppet/provider/package.rb +31 -0
  71. data/lib/puppet/provider/package/appdmg.rb +118 -0
  72. data/lib/puppet/provider/package/apple.rb +18 -16
  73. data/lib/puppet/provider/package/apt.rb +13 -15
  74. data/lib/puppet/provider/package/aptitude.rb +5 -3
  75. data/lib/puppet/provider/package/aptrpm.rb +9 -11
  76. data/lib/puppet/provider/package/blastwave.rb +9 -9
  77. data/lib/puppet/provider/package/darwinport.rb +12 -11
  78. data/lib/puppet/provider/package/dpkg.rb +20 -12
  79. data/lib/puppet/provider/package/fink.rb +87 -0
  80. data/lib/puppet/provider/package/freebsd.rb +10 -11
  81. data/lib/puppet/provider/package/gem.rb +15 -15
  82. data/lib/puppet/provider/package/openbsd.rb +12 -17
  83. data/lib/puppet/provider/package/pkgdmg.rb +90 -16
  84. data/lib/puppet/provider/package/portage.rb +20 -14
  85. data/lib/puppet/provider/package/ports.rb +15 -13
  86. data/lib/puppet/provider/package/rpm.rb +20 -23
  87. data/lib/puppet/provider/package/rug.rb +6 -8
  88. data/lib/puppet/provider/package/sun.rb +20 -18
  89. data/lib/puppet/provider/package/sunfreeware.rb +2 -2
  90. data/lib/puppet/provider/package/up2date.rb +6 -10
  91. data/lib/puppet/provider/package/urpmi.rb +51 -0
  92. data/lib/puppet/provider/package/yum.rb +15 -13
  93. data/lib/puppet/provider/parsedfile.rb +53 -63
  94. data/lib/puppet/provider/service/base.rb +13 -15
  95. data/lib/puppet/provider/service/debian.rb +4 -4
  96. data/lib/puppet/provider/service/gentoo.rb +4 -4
  97. data/lib/puppet/provider/service/init.rb +22 -15
  98. data/lib/puppet/provider/service/redhat.rb +6 -6
  99. data/lib/puppet/provider/service/smf.rb +6 -6
  100. data/lib/puppet/provider/user/netinfo.rb +5 -5
  101. data/lib/puppet/provider/user/pw.rb +10 -5
  102. data/lib/puppet/provider/user/useradd.rb +9 -14
  103. data/lib/puppet/provider/zone/solaris.rb +80 -45
  104. data/lib/puppet/rails.rb +3 -34
  105. data/lib/puppet/rails/database/schema.rb +45 -24
  106. data/lib/puppet/rails/fact_value.rb +1 -0
  107. data/lib/puppet/rails/host.rb +69 -40
  108. data/lib/puppet/rails/param_name.rb +3 -8
  109. data/lib/puppet/rails/param_value.rb +2 -1
  110. data/lib/puppet/rails/puppet_class.rb +0 -2
  111. data/lib/puppet/rails/puppet_tag.rb +5 -0
  112. data/lib/puppet/rails/resource.rb +41 -17
  113. data/lib/puppet/rails/resource_tag.rb +4 -0
  114. data/lib/puppet/reference/configuration.rb +149 -0
  115. data/lib/puppet/reference/function.rb +13 -0
  116. data/lib/puppet/reference/network.rb +37 -0
  117. data/lib/puppet/reference/providers.rb +118 -0
  118. data/lib/puppet/reference/report.rb +21 -0
  119. data/lib/puppet/reference/type.rb +152 -0
  120. data/lib/puppet/reports/rrdgraph.rb +21 -7
  121. data/lib/puppet/reports/tagmail.rb +4 -1
  122. data/lib/puppet/sslcertificates.rb +1 -49
  123. data/lib/puppet/sslcertificates/ca.rb +2 -79
  124. data/lib/puppet/sslcertificates/inventory.rb +0 -10
  125. data/lib/puppet/transaction.rb +24 -41
  126. data/lib/puppet/transaction/report.rb +27 -1
  127. data/lib/puppet/type.rb +7 -43
  128. data/lib/puppet/type/component.rb +198 -124
  129. data/lib/puppet/type/cron.rb +51 -42
  130. data/lib/puppet/type/exec.rb +20 -19
  131. data/lib/puppet/type/group.rb +6 -55
  132. data/lib/puppet/type/host.rb +16 -37
  133. data/lib/puppet/type/mount.rb +30 -17
  134. data/lib/puppet/type/notify.rb +7 -8
  135. data/lib/puppet/type/package.rb +44 -80
  136. data/lib/puppet/type/pfile.rb +50 -41
  137. data/lib/puppet/type/pfile/checksum.rb +82 -95
  138. data/lib/puppet/type/pfile/content.rb +21 -25
  139. data/lib/puppet/type/pfile/ensure.rb +32 -30
  140. data/lib/puppet/type/pfile/group.rb +21 -26
  141. data/lib/puppet/type/pfile/mode.rb +25 -32
  142. data/lib/puppet/type/pfile/owner.rb +23 -27
  143. data/lib/puppet/type/pfile/source.rb +42 -33
  144. data/lib/puppet/type/pfile/target.rb +20 -18
  145. data/lib/puppet/type/pfile/type.rb +6 -7
  146. data/lib/puppet/type/pfilebucket.rb +3 -3
  147. data/lib/puppet/type/port.rb +5 -7
  148. data/lib/puppet/type/property.rb +58 -61
  149. data/lib/puppet/type/resources.rb +12 -8
  150. data/lib/puppet/type/schedule.rb +8 -8
  151. data/lib/puppet/type/service.rb +26 -33
  152. data/lib/puppet/type/sshkey.rb +6 -7
  153. data/lib/puppet/type/tidy.rb +41 -35
  154. data/lib/puppet/type/user.rb +34 -67
  155. data/lib/puppet/type/yumrepo.rb +27 -12
  156. data/lib/puppet/type/zone.rb +71 -110
  157. data/lib/puppet/util.rb +46 -61
  158. data/lib/puppet/util/autoload.rb +59 -47
  159. data/lib/puppet/util/config.rb +160 -18
  160. data/lib/puppet/util/config_store.rb +61 -0
  161. data/lib/puppet/util/fact_store.rb +60 -0
  162. data/lib/puppet/util/instance_loader.rb +74 -0
  163. data/lib/puppet/util/loadedfile.rb +5 -8
  164. data/lib/puppet/util/metric.rb +17 -25
  165. data/lib/puppet/util/posix.rb +39 -7
  166. data/lib/puppet/util/provider_features.rb +9 -1
  167. data/lib/puppet/util/rails/collection_merger.rb +16 -1
  168. data/lib/puppet/util/reference.rb +189 -0
  169. data/lib/puppet/util/storage.rb +2 -2
  170. data/lib/puppet/util/subclass_loader.rb +9 -2
  171. data/test/language/ast.rb +4 -148
  172. data/test/language/ast/component.rb +10 -1
  173. data/test/language/collector.rb +1 -191
  174. data/test/language/interpreter.rb +284 -327
  175. data/test/language/lexer.rb +13 -1
  176. data/test/language/node.rb +1 -1
  177. data/test/language/parser.rb +17 -4
  178. data/test/language/resource.rb +67 -101
  179. data/test/language/scope.rb +18 -3
  180. data/test/language/snippets.rb +114 -151
  181. data/test/lib/puppettest.rb +13 -0
  182. data/test/lib/puppettest/exetest.rb +7 -0
  183. data/test/lib/puppettest/fakes.rb +39 -28
  184. data/test/lib/puppettest/railstesting.rb +1 -1
  185. data/test/lib/puppettest/support/assertions.rb +2 -2
  186. data/test/lib/puppettest/support/collection.rb +30 -0
  187. data/test/network/client/ca.rb +27 -1
  188. data/test/network/client/client.rb +3 -3
  189. data/test/network/client/master.rb +102 -1
  190. data/test/network/handler/ca.rb +35 -1
  191. data/test/network/handler/facts.rb +112 -0
  192. data/test/network/handler/fileserver.rb +25 -1
  193. data/test/network/handler/handler.rb +2 -2
  194. data/test/network/handler/master.rb +2 -49
  195. data/test/network/handler/resource.rb +5 -6
  196. data/test/network/server/mongrel_test.rb +65 -0
  197. data/test/network/server/webrick.rb +2 -2
  198. data/test/network/xmlrpc/client.rb +2 -1
  199. data/test/network/xmlrpc/processor.rb +2 -1
  200. data/test/other/pgraph.rb +6 -5
  201. data/test/other/propertychange.rb +11 -12
  202. data/test/other/report.rb +44 -27
  203. data/test/other/transactions.rb +17 -16
  204. data/test/puppet/tc_suidmanager.rb +2 -2
  205. data/test/rails/ast.rb +74 -0
  206. data/test/rails/collection.rb +214 -0
  207. data/test/rails/host.rb +49 -24
  208. data/test/rails/interpreter.rb +91 -0
  209. data/test/rails/railsparameter.rb +22 -11
  210. data/test/rails/railsresource.rb +140 -7
  211. data/test/ral/manager/attributes.rb +37 -13
  212. data/test/ral/manager/instances.rb +82 -0
  213. data/test/ral/manager/provider.rb +60 -22
  214. data/test/ral/manager/type.rb +9 -6
  215. data/test/ral/providers/cron/crontab.rb +59 -7
  216. data/test/ral/providers/group.rb +7 -7
  217. data/test/ral/providers/host/netinfo.rb +5 -6
  218. data/test/ral/providers/host/parsed.rb +4 -4
  219. data/test/ral/providers/mount/parsed.rb +11 -6
  220. data/test/ral/providers/nameservice.rb +2 -2
  221. data/test/ral/providers/package.rb +39 -14
  222. data/test/ral/providers/package/apt.rb +72 -3
  223. data/test/ral/providers/package/aptitude.rb +15 -12
  224. data/test/ral/providers/package/aptrpm.rb +3 -3
  225. data/test/ral/providers/package/dpkg.rb +2 -2
  226. data/test/ral/providers/parsedfile.rb +114 -88
  227. data/test/ral/providers/{parsedport.rb → port/parsed.rb} +1 -1
  228. data/test/ral/providers/provider.rb +93 -13
  229. data/test/ral/providers/service.rb +52 -26
  230. data/test/ral/providers/sshkey/parsed.rb +3 -3
  231. data/test/ral/providers/user.rb +19 -20
  232. data/test/ral/providers/user/useradd.rb +1 -5
  233. data/test/ral/types/cron.rb +49 -36
  234. data/test/ral/types/file.rb +38 -35
  235. data/test/ral/types/file/target.rb +4 -4
  236. data/test/ral/types/filesources.rb +24 -22
  237. data/test/ral/types/group.rb +4 -2
  238. data/test/ral/types/host.rb +17 -10
  239. data/test/ral/types/mount.rb +40 -23
  240. data/test/ral/types/package.rb +62 -5
  241. data/test/ral/types/parameter.rb +2 -2
  242. data/test/ral/types/property.rb +27 -20
  243. data/test/ral/types/resources.rb +4 -16
  244. data/test/ral/types/schedule.rb +2 -2
  245. data/test/ral/types/service.rb +2 -3
  246. data/test/ral/types/sshkey.rb +3 -3
  247. data/test/ral/types/tidy.rb +6 -15
  248. data/test/ral/types/user.rb +17 -17
  249. data/test/ral/types/yumrepo.rb +2 -2
  250. data/test/ral/types/zone.rb +71 -87
  251. data/test/util/autoload.rb +6 -21
  252. data/test/util/config.rb +201 -101
  253. data/test/util/fact_store.rb +67 -0
  254. data/test/util/features.rb +9 -6
  255. data/test/util/instance_loader.rb +53 -0
  256. data/test/util/loadedfile.rb +17 -1
  257. data/test/util/metrics.rb +54 -57
  258. data/test/util/posixtest.rb +8 -11
  259. data/test/util/utiltest.rb +31 -2
  260. metadata +520 -492
  261. data/TODO +0 -4
  262. data/lib/puppet/network/client/logger.rb +0 -6
  263. data/lib/puppet/network/handler/logger.rb +0 -52
  264. data/lib/puppet/rails/database/001_add_indexes.rb +0 -38
  265. data/lib/puppet/type/parsedtype.rb +0 -219
  266. data/test/network/handler/logger.rb +0 -183
@@ -0,0 +1,112 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ $:.unshift("../../lib") if __FILE__ =~ /\.rb$/
4
+
5
+ require 'puppettest'
6
+ require 'mocha'
7
+ require 'puppet/network/handler/facts'
8
+
9
+ class TestFactsHandler < Test::Unit::TestCase
10
+ include PuppetTest::ServerTest
11
+
12
+ def setup
13
+ super
14
+
15
+ @class = Puppet::Network::Handler.handler(:facts)
16
+
17
+ @@client_facts = {}
18
+
19
+ unless Puppet::Util::FactStore.store(:testing)
20
+ Puppet::Util::FactStore.newstore(:testing) do
21
+ def get(node)
22
+ @@client_facts[node]
23
+ end
24
+
25
+ def set(node, facts)
26
+ @@client_facts[node] = facts
27
+ end
28
+ end
29
+ end
30
+
31
+ Puppet[:factstore] = :testing
32
+
33
+ @handler = @class.new
34
+
35
+ @facts = {:a => :b, :c => :d}
36
+ @name = "foo"
37
+
38
+ @backend = @handler.instance_variable_get("@backend")
39
+ end
40
+
41
+ def teardown
42
+ @@client_facts.clear
43
+ end
44
+
45
+ def test_strip_internal
46
+ @facts[:_puppet_one] = "yay"
47
+ @facts[:_puppet_two] = "boo"
48
+ @facts[:_puppetthree] = "foo"
49
+
50
+ newfacts = nil
51
+ assert_nothing_raised("Could not call strip_internal") do
52
+ newfacts = @handler.send(:strip_internal, @facts)
53
+ end
54
+
55
+ [:_puppet_one, :_puppet_two, :_puppetthree].each do |name|
56
+ assert(@facts.include?(name), "%s was removed in strip_internal from original hash" % name)
57
+ end
58
+ [:_puppet_one, :_puppet_two].each do |name|
59
+ assert(! newfacts.include?(name), "%s was not removed in strip_internal" % name)
60
+ end
61
+ assert_equal("foo", newfacts[:_puppetthree], "_puppetthree was removed in strip_internal")
62
+ end
63
+
64
+ def test_add_internal
65
+ newfacts = nil
66
+ assert_nothing_raised("Could not call strip_internal") do
67
+ newfacts = @handler.send(:add_internal, @facts)
68
+ end
69
+
70
+ assert_instance_of(Time, newfacts[:_puppet_timestamp], "Did not set timestamp in add_internal")
71
+ assert(! @facts.include?(:_puppet_timestamp), "Modified original hash in add_internal")
72
+ end
73
+
74
+ def test_set
75
+ newfacts = @facts.dup
76
+ newfacts[:_puppet_timestamp] = Time.now
77
+ @handler.expects(:add_internal).with(@facts).returns(newfacts)
78
+ @backend.expects(:set).with(@name, newfacts).returns(nil)
79
+
80
+ assert_nothing_raised("Could not set facts") do
81
+ assert_nil(@handler.set(@name, @facts), "handler.set did not return nil")
82
+ end
83
+ end
84
+
85
+ def test_get
86
+ prefacts = @facts.dup
87
+ prefacts[:_puppet_timestamp] = Time.now
88
+ @@client_facts[@name] = prefacts
89
+ @handler.expects(:strip_internal).with(prefacts).returns(@facts)
90
+ @backend.expects(:get).with(@name).returns(prefacts)
91
+
92
+ assert_nothing_raised("Could not retrieve facts") do
93
+ assert_equal(@facts, @handler.get(@name), "did not get correct answer from handler.get")
94
+ end
95
+
96
+ @handler = @class.new
97
+ assert_nothing_raised("Failed to call 'get' with no stored facts") do
98
+ @handler.get("nosuchname")
99
+ end
100
+ end
101
+
102
+ def test_store_date
103
+ time = Time.now
104
+ @facts[:_puppet_timestamp] = time
105
+
106
+ @handler.expects(:get).with(@name).returns(@facts)
107
+
108
+ assert_equal(time.to_i, @handler.store_date(@name), "Did not retrieve timestamp correctly")
109
+ end
110
+ end
111
+
112
+ # $Id: facts.rb 2457 2007-05-03 05:24:13Z luke $
@@ -702,6 +702,8 @@ class TestFileServer < Test::Unit::TestCase
702
702
  end
703
703
 
704
704
  def test_servinglinks
705
+ # Disable the checking, so changes propagate immediately.
706
+ Puppet[:filetimeout] = -5
705
707
  server = nil
706
708
  source = tempfile()
707
709
  file = File.join(source, "file")
@@ -1124,7 +1126,29 @@ allow *
1124
1126
  'allow.example.com', "192.168.0.1")
1125
1127
  }
1126
1128
  end
1129
+
1130
+ # Make sure we successfully throw errors -- someone ran into this with
1131
+ # 0.22.4.
1132
+ def test_failures
1133
+ # create a server with the file
1134
+ server = nil
1135
+
1136
+ config = tempfile
1137
+ [
1138
+ "[this is invalid]\nallow one.two.com", # invalid name
1139
+ "[valid]\nallow *.testing something.com", # invalid allow
1140
+ "[valid]\nallow one.two.com\ndeny *.testing something.com", # invalid deny
1141
+ ].each do |failer|
1142
+ File.open(config, "w") { |f| f.puts failer }
1143
+ assert_raise(Puppet::Network::Handler::FileServerError, "Did not fail on %s" % failer.inspect) {
1144
+ server = Puppet::Network::Handler::FileServer.new(
1145
+ :Local => false,
1146
+ :Config => config
1147
+ )
1148
+ }
1149
+ end
1150
+ end
1127
1151
  end
1128
1152
 
1129
- # $Id: fileserver.rb 2443 2007-04-30 21:08:06Z luke $
1153
+ # $Id: fileserver.rb 2629 2007-06-19 22:18:55Z luke $
1130
1154
 
@@ -48,7 +48,7 @@ class TestHandler < Test::Unit::TestCase
48
48
  end
49
49
 
50
50
  def test_handlers_by_name
51
- %w{ca filebucket fileserver logger master report resource runner status}.each do |name|
51
+ %w{ca filebucket fileserver master report resource runner status}.each do |name|
52
52
  handler = nil
53
53
  assert_nothing_raised do
54
54
  handler = Puppet::Network::Handler.handler(name)
@@ -61,4 +61,4 @@ class TestHandler < Test::Unit::TestCase
61
61
  end
62
62
  end
63
63
 
64
- # $Id: handler.rb 2259 2007-03-06 19:03:05Z luke $
64
+ # $Id: handler.rb 2497 2007-05-09 16:21:56Z luke $
@@ -7,10 +7,6 @@ require 'puppet/network/handler/master'
7
7
 
8
8
  class TestMaster < Test::Unit::TestCase
9
9
  include PuppetTest::ServerTest
10
- def teardown
11
- super
12
- #print "\n\n\n\n" if Puppet[:debug]
13
- end
14
10
 
15
11
  # run through all of the existing test files and make sure everything
16
12
  # works
@@ -124,7 +120,7 @@ class TestMaster < Test::Unit::TestCase
124
120
  assert(! client.fresh?(facts),
125
121
  "Client is incorrectly up to date")
126
122
 
127
- Puppet.config.use(:puppet)
123
+ Puppet.config.use(:main)
128
124
  assert_nothing_raised {
129
125
  client.getconfig
130
126
  client.apply
@@ -303,50 +299,7 @@ class TestMaster < Test::Unit::TestCase
303
299
  assert_equal(fakename, name)
304
300
  assert_equal(fakeip, ip)
305
301
  end
306
-
307
- if Puppet.features.rails?
308
- def test_freshness_connect_update
309
- Puppet::Rails.init
310
- Puppet[:storeconfigs] = true
311
-
312
- # this is the default server setup
313
- master = Puppet::Network::Handler.master.new(
314
- :Code => "",
315
- :UseNodes => true,
316
- :Local => true
317
- )
318
-
319
- # Create a host
320
- Puppet::Rails::Host.new(:name => "test", :ip => "192.168.0.3").save
321
-
322
- assert_nothing_raised("Failed to update last_connect for unknown host") do
323
- master.freshness("created",'192.168.0.1')
324
- end
325
-
326
- # Make sure it created the host
327
- created = Puppet::Rails::Host.find_by_name("created")
328
- assert(created, "Freshness did not create host")
329
- assert(created.last_freshcheck,
330
- "Did not set last_freshcheck on created host")
331
- assert_equal("192.168.0.1", created.ip,
332
- "Did not set IP address on created host")
333
-
334
- # Now check on the existing host
335
- assert_nothing_raised("Failed to update last_connect for unknown host") do
336
- master.freshness("test",'192.168.0.2')
337
- end
338
-
339
- # Recreate it, so we're not using the cached object.
340
- host = Puppet::Rails::Host.find_by_name("test")
341
-
342
- # Make sure it created the host
343
- assert(host.last_freshcheck,
344
- "Did not set last_freshcheck on existing host")
345
- assert_equal("192.168.0.3", host.ip,
346
- "Overrode IP on found host")
347
- end
348
- end
349
302
  end
350
303
 
351
- # $Id: master.rb 2316 2007-03-19 16:42:41Z luke $
304
+ # $Id: master.rb 2616 2007-06-18 21:03:18Z luke $
352
305
 
@@ -89,9 +89,8 @@ class TestResourceServer < Test::Unit::TestCase
89
89
  assert_events([:file_created], object)
90
90
  else
91
91
  assert_nothing_raised {
92
- object.retrieve
92
+ assert(object.insync?(object.retrieve), "Object was not in sync")
93
93
  }
94
- assert(object.insync?, "Object was not in sync")
95
94
  end
96
95
 
97
96
  assert(FileTest.exists?(file), "File did not get recreated")
@@ -184,8 +183,8 @@ class TestResourceServer < Test::Unit::TestCase
184
183
  Puppet::Type.type(:schedule).mkdefaultschedules
185
184
 
186
185
  Puppet::Type.eachtype do |type|
187
- unless type.respond_to? :list
188
- Puppet.warning "%s does not respond to :list" % type.name
186
+ unless type.respond_to? :instances
187
+ Puppet.warning "%s does not respond to :instances" % type.name
189
188
  next
190
189
  end
191
190
  next unless type.name == :package
@@ -213,7 +212,7 @@ class TestResourceServer < Test::Unit::TestCase
213
212
  count = 0
214
213
  described = {}
215
214
  Puppet.info "listing again"
216
- type.list.each do |obj|
215
+ type.instances.each do |obj|
217
216
  assert_instance_of(type, obj)
218
217
 
219
218
  break if count > 5
@@ -292,4 +291,4 @@ class TestResourceServer < Test::Unit::TestCase
292
291
  end
293
292
  end
294
293
 
295
- # $Id: resource.rb 2296 2007-03-18 22:48:57Z luke $
294
+ # $Id: resource.rb 2551 2007-06-04 20:37:14Z luke $
@@ -0,0 +1,65 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ $:.unshift("../../lib") if __FILE__ =~ /\.rb$/
4
+
5
+ require 'puppettest'
6
+
7
+ class TestMongrelServer < PuppetTest::TestCase
8
+ confine "Missing mongrel" => Puppet.features.mongrel?
9
+
10
+ include PuppetTest::ServerTest
11
+
12
+ def mkserver(handlers = nil)
13
+ handlers ||= { :Status => nil }
14
+ mongrel = Puppet::Network::Server::Mongrel.new(handlers)
15
+ end
16
+
17
+ # Make sure client info is correctly extracted.
18
+ def test_client_info
19
+ obj = Object.new
20
+ obj.metaclass.send(:attr_accessor, :params)
21
+ params = {}
22
+ obj.params = params
23
+
24
+ mongrel = mkserver
25
+
26
+ ip = Facter.value(:ipaddress)
27
+ params["REMOTE_ADDR"] = ip
28
+ params[Puppet[:ssl_client_header]] = "/CN=host.domain.com"
29
+
30
+ info = nil
31
+ assert_nothing_raised("Could not call client_info") do
32
+ info = mongrel.send(:client_info, obj)
33
+ end
34
+
35
+ assert(info.authenticated?, "Client info object was not marked valid even though the header was present")
36
+ assert_equal(ip, info.ip, "Did not copy over ip correctly")
37
+ assert_equal("host.domain.com", info.name, "Did not copy over hostname correctly")
38
+
39
+ # Now try it with a different header name
40
+ params.delete(Puppet[:ssl_client_header])
41
+ Puppet[:ssl_client_header] = "header_testing"
42
+ params["header_testing"] = "/CN=other.domain.com"
43
+ info = nil
44
+ assert_nothing_raised("Could not call client_info with other header") do
45
+ info = mongrel.send(:client_info, obj)
46
+ end
47
+
48
+ assert(info.authenticated?, "Client info object was not marked valid even though the header was present")
49
+ assert_equal(ip, info.ip, "Did not copy over ip correctly")
50
+ assert_equal("other.domain.com", info.name, "Did not copy over hostname correctly")
51
+
52
+ # Now make sure it's considered invalid without that header
53
+ params.delete("header_testing")
54
+ info = nil
55
+ assert_nothing_raised("Could not call client_info with no header") do
56
+ info = mongrel.send(:client_info, obj)
57
+ end
58
+
59
+ assert(! info.authenticated?, "Client info object was marked valid without header")
60
+ assert_equal(ip, info.ip, "Did not copy over ip correctly")
61
+ assert_equal(Resolv.getname(ip), info.name, "Did not look up hostname correctly")
62
+ end
63
+ end
64
+
65
+ # $Id: mongrel_test.rb 2570 2007-06-13 16:14:52Z luke $
@@ -5,7 +5,7 @@ $:.unshift("../../lib") if __FILE__ =~ /\.rb$/
5
5
  require 'puppettest'
6
6
  require 'puppet/network/server/webrick'
7
7
 
8
- class TestServer < Test::Unit::TestCase
8
+ class TestWebrickServer < Test::Unit::TestCase
9
9
  include PuppetTest::ServerTest
10
10
 
11
11
  # Make sure we can create a server, and that it knows how to create its
@@ -137,4 +137,4 @@ class TestServer < Test::Unit::TestCase
137
137
  end
138
138
  end
139
139
 
140
- # $Id: webrick.rb 2259 2007-03-06 19:03:05Z luke $
140
+ # $Id: webrick.rb 2558 2007-06-11 18:07:34Z luke $
@@ -7,6 +7,7 @@ require 'puppet/network/xmlrpc/client'
7
7
  require 'mocha'
8
8
 
9
9
  class TestXMLRPCClient < Test::Unit::TestCase
10
+ include PuppetTest
10
11
  def test_set_backtrace
11
12
  error = Puppet::Network::XMLRPCClientError.new("An error")
12
13
  assert_nothing_raised do
@@ -64,5 +65,5 @@ class TestXMLRPCClient < Test::Unit::TestCase
64
65
  end
65
66
  end
66
67
 
67
- # $Id: client.rb 2259 2007-03-06 19:03:05Z luke $
68
+ # $Id: client.rb 2624 2007-06-19 01:49:19Z luke $
68
69
 
@@ -7,6 +7,7 @@ require 'puppet/network/xmlrpc/processor'
7
7
  require 'mocha'
8
8
 
9
9
  class TestXMLRPCProcessor < Test::Unit::TestCase
10
+ include PuppetTest
10
11
  class BaseProcessor
11
12
  def add_handler(interface, handler)
12
13
  @handlers ||= {}
@@ -76,5 +77,5 @@ class TestXMLRPCProcessor < Test::Unit::TestCase
76
77
  end
77
78
  end
78
79
 
79
- # $Id: processor.rb 2259 2007-03-06 19:03:05Z luke $
80
+ # $Id: processor.rb 2624 2007-06-19 01:49:19Z luke $
80
81
 
@@ -189,10 +189,11 @@ class TestPGraph < Test::Unit::TestCase
189
189
  graph.edge_label(:a, :b), "lost label")
190
190
  end
191
191
 
192
- def test_check_cycle
192
+ def test_fail_on_cycle
193
193
  {
194
- {:a => :b, :b => :a} => true,
194
+ {:a => :b, :b => :a, :c => :a, :d => :c} => true, # larger tree involving a smaller cycle
195
195
  {:a => :b, :b => :c, :c => :a} => true,
196
+ {:a => :b, :b => :a, :c => :d, :d => :c} => true,
196
197
  {:a => :b, :b => :c} => false,
197
198
  }.each do |hash, result|
198
199
  graph = Puppet::PGraph.new
@@ -202,11 +203,11 @@ class TestPGraph < Test::Unit::TestCase
202
203
 
203
204
  if result
204
205
  assert_raise(Puppet::Error, "%s did not fail" % hash.inspect) do
205
- graph.check_cycle(graph.topsort)
206
+ graph.topsort
206
207
  end
207
208
  else
208
209
  assert_nothing_raised("%s failed" % hash.inspect) do
209
- graph.check_cycle(graph.topsort)
210
+ graph.topsort
210
211
  end
211
212
  end
212
213
  end
@@ -286,4 +287,4 @@ class TestPGraph < Test::Unit::TestCase
286
287
  end
287
288
  end
288
289
 
289
- # $Id: pgraph.rb 2230 2007-02-27 20:34:32Z luke $
290
+ # $Id: pgraph.rb 2521 2007-05-17 20:57:24Z luke $
@@ -10,13 +10,13 @@ require 'puppettest'
10
10
  class TestPropertyChange < Test::Unit::TestCase
11
11
  include PuppetTest
12
12
  class FakeProperty < Puppet::Type::Property
13
- attr_accessor :is, :should, :parent
13
+ attr_accessor :is, :should, :resource
14
14
  attr_reader :noop
15
- def change_to_s
15
+ def change_to_s(currentvalue, newvalue)
16
16
  "fake change"
17
17
  end
18
- def insync?
19
- @is == @should
18
+ def insync?(is)
19
+ is == @should
20
20
  end
21
21
  def log(msg)
22
22
  Puppet::Util::Log.create(
@@ -35,11 +35,11 @@ class TestPropertyChange < Test::Unit::TestCase
35
35
  def path
36
36
  "fakechange"
37
37
  end
38
- def should_to_s
39
- @should.to_s
38
+ def should_to_s(newvalue)
39
+ newvalue.to_s
40
40
  end
41
41
  def sync
42
- if insync?
42
+ if insync?(@is)
43
43
  return nil
44
44
  else
45
45
  @is = @should
@@ -52,13 +52,13 @@ class TestPropertyChange < Test::Unit::TestCase
52
52
  end
53
53
 
54
54
  def mkchange
55
- property = FakeProperty.new :parent => "fakeparent"
55
+ property = FakeProperty.new :resource => "fakeparent"
56
56
  property.is = :start
57
57
  property.should = :finish
58
- property.parent = :parent
58
+ property.resource = :parent
59
59
  change = nil
60
60
  assert_nothing_raised do
61
- change = Puppet::PropertyChange.new(property)
61
+ change = Puppet::PropertyChange.new(property, :start)
62
62
  end
63
63
  change.transaction = :trans
64
64
 
@@ -125,7 +125,6 @@ class TestPropertyChange < Test::Unit::TestCase
125
125
  Puppet[:noop] = true
126
126
 
127
127
  change.property.noop = true
128
- p change.property.noop
129
128
  assert(change.noop, "did not set noop")
130
129
  assert(change.skip?, "setting noop did not mark change for skipping")
131
130
 
@@ -139,4 +138,4 @@ class TestPropertyChange < Test::Unit::TestCase
139
138
  end
140
139
  end
141
140
 
142
- # $Id: propertychange.rb 2286 2007-03-17 23:16:37Z luke $
141
+ # $Id: propertychange.rb 2517 2007-05-15 19:22:36Z luke $