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
@@ -55,7 +55,7 @@ class TestLocalService < Test::Unit::TestCase
55
55
  }
56
56
 
57
57
  comp = newcomp("servicetst", service)
58
- service[:ensure] = true
58
+ service[:ensure] = :running
59
59
 
60
60
  Puppet.info "Starting %s" % service.name
61
61
  assert_apply(service)
@@ -63,10 +63,15 @@ class TestLocalService < Test::Unit::TestCase
63
63
  # Some package systems background the work, so we need to give them
64
64
  # time to do their work.
65
65
  sleep(1.5)
66
+ props = nil
66
67
  assert_nothing_raised() {
67
- service.retrieve
68
+ props = service.retrieve
68
69
  }
69
- assert(service.insync?, "Service %s is not running" % service.name)
70
+ props.each do |prop, value|
71
+ if prop.name == :ensure
72
+ assert_equal(:running, value, "Service %s is not running" % service.name)
73
+ end
74
+ end
70
75
 
71
76
  # test refreshing it
72
77
  assert_nothing_raised() {
@@ -77,17 +82,22 @@ class TestLocalService < Test::Unit::TestCase
77
82
  assert_nothing_raised() {
78
83
  service[:ensure] = :stopped
79
84
  }
80
- assert_nothing_raised() {
81
- service.retrieve
82
- }
83
- assert(!service.insync?(), "Service %s is not running" % service.name)
85
+ props.each do |prop, value|
86
+ if prop.name == :ensure
87
+ assert_equal(:running, value, "Service %s is not running" % service.name)
88
+ end
89
+ end
84
90
  Puppet.info "stopping %s" % service.name
85
91
  assert_events([:service_stopped], comp)
86
92
  sleep(1.5)
87
93
  assert_nothing_raised() {
88
- service.retrieve
94
+ props = service.retrieve
89
95
  }
90
- assert(service.insync?, "Service %s has not stopped" % service.name)
96
+ props.each do |prop, value|
97
+ if prop.name == :ensure
98
+ assert_equal(:stopped, value, "Service %s is not running" % service.name)
99
+ end
100
+ end
91
101
  end
92
102
 
93
103
  def cycleenable(service)
@@ -104,26 +114,35 @@ class TestLocalService < Test::Unit::TestCase
104
114
  # Some package systems background the work, so we need to give them
105
115
  # time to do their work.
106
116
  sleep(1.5)
117
+ props = nil
107
118
  assert_nothing_raised() {
108
- service.retrieve
119
+ props = service.retrieve
109
120
  }
110
- assert(service.insync?, "Service %s is not enabled" % service.name)
121
+ props.each do |prop, value|
122
+ if prop.name == :enable
123
+ assert_equal(value, :true, "Service %s is not enabled" % service.name)
124
+ end
125
+ end
111
126
 
112
- # now stop it
127
+ # now disable it
113
128
  assert_nothing_raised() {
114
129
  service[:enable] = false
115
130
  }
116
131
  assert_nothing_raised() {
117
- service.retrieve
132
+ props = service.retrieve
118
133
  }
119
- assert(!service.insync?(), "Service %s is not enabled" % service.name)
134
+ props.each do |prop, value|
135
+ assert_equal(value, :true, "Service %s is already disabled" % service.name)
136
+ end
120
137
  Puppet.info "disabling %s" % service.name
121
138
  assert_events([:service_disabled], comp)
122
139
  sleep(1.5)
123
140
  assert_nothing_raised() {
124
- service.retrieve
141
+ props = service.retrieve
125
142
  }
126
- assert(service.insync?, "Service %s has not been disabled" % service.name)
143
+ props.each do |prop, value|
144
+ assert_equal(value, :false, "Service %s is still enabled" % service.name)
145
+ end
127
146
  end
128
147
 
129
148
  def test_status
@@ -174,30 +193,37 @@ class TestLocalService < Test::Unit::TestCase
174
193
  startenable = nil
175
194
  startensure = nil
176
195
  svc[:check] = [:ensure, :enable]
177
- svc.retrieve
196
+ properties = nil
178
197
  assert_nothing_raised("Could not get status") {
179
- startenable = svc.property(:enable).is
180
- startensure = svc.property(:ensure).is
198
+ properties = svc.retrieve
181
199
  }
200
+ initial = properties.dup
182
201
 
183
202
  svc[:enable] = false
184
203
  svc[:ensure] = :stopped
185
204
  assert_apply(svc)
186
205
 
187
206
  sleep 1
188
- svc.retrieve
189
- assert(svc.insync?, "Service did not sync both properties")
207
+ assert_nothing_raised("Could not get status") {
208
+ properties = svc.retrieve
209
+ }
210
+ properties.each do |prop, value|
211
+ assert(prop.insync?(value), "Service did not sync %s property" % prop.name)
212
+ end
190
213
 
191
214
  svc[:enable] = true
192
215
  svc[:ensure] = :running
193
216
  assert_apply(svc)
194
217
 
195
218
  sleep 1
196
- svc.retrieve
197
- assert(svc.insync?, "Service did not sync both properties")
219
+ assert_nothing_raised("Could not get status") {
220
+ properties = svc.retrieve
221
+ }
222
+ assert(svc.insync?(properties), "Service did not sync both properties")
198
223
 
199
- svc[:enable] = startenable
200
- svc[:ensure] = startensure
224
+ initial.each do |prop, value|
225
+ svc[prop.name] = value
226
+ end
201
227
  assert_apply(svc)
202
228
  Puppet.type(:component).clear
203
229
  end
@@ -206,4 +232,4 @@ class TestLocalService < Test::Unit::TestCase
206
232
  end
207
233
  end
208
234
 
209
- # $Id: service.rb 2236 2007-02-27 23:57:55Z luke $
235
+ # $Id: service.rb 2555 2007-06-08 17:20:00Z luke $
@@ -38,9 +38,9 @@ class TestParsedSSHKey < Test::Unit::TestCase
38
38
  :ensure => :present
39
39
  }
40
40
 
41
- fakemodel = fakemodel(:sshkey, args[:name])
41
+ fakeresource = fakeresource(:sshkey, args[:name])
42
42
 
43
- key = @provider.new(fakemodel)
43
+ key = @provider.new(fakeresource)
44
44
  args.each do |p,v|
45
45
  key.send(p.to_s + "=", v)
46
46
  end
@@ -108,4 +108,4 @@ class TestParsedSSHKey < Test::Unit::TestCase
108
108
  end
109
109
  end
110
110
 
111
- # $Id: parsed.rb 2281 2007-03-14 17:49:19Z luke $
111
+ # $Id: parsed.rb 2501 2007-05-09 23:08:42Z luke $
@@ -128,11 +128,11 @@ class TestUserProvider < Test::Unit::TestCase
128
128
  end
129
129
  end
130
130
 
131
- def fakemodel(*args)
132
- model = super
131
+ def fakeresource(*args)
132
+ resource = super
133
133
 
134
134
  # Set boolean methods as necessary.
135
- class << model
135
+ class << resource
136
136
  def allowdupe?
137
137
  self[:allowdupe]
138
138
  end
@@ -140,14 +140,14 @@ class TestUserProvider < Test::Unit::TestCase
140
140
  self[:managehome]
141
141
  end
142
142
  end
143
- model
143
+ resource
144
144
  end
145
145
 
146
146
  def mkuser(name)
147
- fakemodel = fakemodel(:user, name)
147
+ fakeresource = fakeresource(:user, name)
148
148
  user = nil
149
149
  assert_nothing_raised {
150
- user = @provider.new(fakemodel)
150
+ user = @provider.new(fakeresource)
151
151
  }
152
152
  assert(user, "Could not create provider user")
153
153
 
@@ -164,29 +164,28 @@ class TestUserProvider < Test::Unit::TestCase
164
164
 
165
165
  # Now try it by object
166
166
  assert_nothing_raised {
167
- names = @provider.list
167
+ names = @provider.instances
168
168
  }
169
169
  assert(names.length > 0, "Listed no users as objects")
170
170
 
171
171
  names.each do |obj|
172
- assert_instance_of(Puppet::Type.type(:user), obj)
173
- assert(obj[:provider], "Provider was not set")
172
+ assert_instance_of(@provider, obj)
174
173
  end
175
174
  end
176
175
 
177
176
  def test_infocollection
178
- fakemodel = fakemodel(:user, @me)
177
+ fakeresource = fakeresource(:user, @me)
179
178
 
180
179
  user = nil
181
180
  assert_nothing_raised {
182
- user = @provider.new(fakemodel)
181
+ user = @provider.new(fakeresource)
183
182
  }
184
183
  assert(user, "Could not create user provider")
185
184
 
186
185
  Puppet::Type.type(:user).validproperties.each do |property|
187
186
  next if property == :ensure
188
187
  # This is mostly in place for the 'password' stuff.
189
- next unless user.class.supports_parameter?(property)
188
+ next unless user.class.supports_parameter?(property) and Puppet.features.root?
190
189
  val = nil
191
190
  assert_nothing_raised {
192
191
  val = user.send(property)
@@ -392,7 +391,7 @@ class TestUserProvider < Test::Unit::TestCase
392
391
 
393
392
  # Now add some of them to our user
394
393
  assert_nothing_raised {
395
- user.model[:groups] = extra.join(",")
394
+ user.resource[:groups] = extra.join(",")
396
395
  }
397
396
 
398
397
  # Some tests to verify that groups work correctly startig from nothing
@@ -428,7 +427,7 @@ class TestUserProvider < Test::Unit::TestCase
428
427
 
429
428
  eachproperty do |property|
430
429
  if val = fakedata(user.name, property)
431
- user.model[property] = val
430
+ user.resource[property] = val
432
431
  end
433
432
  end
434
433
 
@@ -459,7 +458,7 @@ class TestUserProvider < Test::Unit::TestCase
459
458
 
460
459
  eachproperty do |property|
461
460
  if val = fakedata(user.name, property)
462
- user.model[property] = val
461
+ user.resource[property] = val
463
462
  end
464
463
  end
465
464
 
@@ -494,7 +493,7 @@ class TestUserProvider < Test::Unit::TestCase
494
493
  user1.create
495
494
  user1.uid = 125
496
495
  user2 = mkuser("user2")
497
- user2.model[:uid] = 125
496
+ user2.resource[:uid] = 125
498
497
 
499
498
  cleanup do
500
499
  user1.ensure = :absent
@@ -504,7 +503,7 @@ class TestUserProvider < Test::Unit::TestCase
504
503
  # Not all OSes fail here, so we can't test that it doesn't work with
505
504
  # it off, only that it does work with it on.
506
505
  assert_nothing_raised {
507
- user2.model[:allowdupe] = :true
506
+ user2.resource[:allowdupe] = :true
508
507
  }
509
508
  assert_nothing_raised { user2.create }
510
509
  assert_equal(:present, user2.ensure,
@@ -524,8 +523,8 @@ class TestUserProvider < Test::Unit::TestCase
524
523
 
525
524
  user = nil
526
525
  assert_nothing_raised {
527
- fakemodel = fakemodel(:user, @me)
528
- user = useradd.new(fakemodel)
526
+ fakeresource = fakeresource(:user, @me)
527
+ user = useradd.new(fakeresource)
529
528
  }
530
529
 
531
530
  assert_equal("-d", user.send(:flag, :home),
@@ -564,4 +563,4 @@ class TestUserProvider < Test::Unit::TestCase
564
563
  end
565
564
  end
566
565
 
567
- # $Id: user.rb 2444 2007-05-01 03:14:09Z luke $
566
+ # $Id: user.rb 2555 2007-06-08 17:20:00Z luke $
@@ -29,7 +29,6 @@ class UserAddProviderTest < PuppetTest::TestCase
29
29
 
30
30
  @vals.each do |name, val|
31
31
  next unless @user.class.validproperty?(name)
32
- @user.is = [name, :absent]
33
32
  end
34
33
  @user
35
34
  end
@@ -46,7 +45,6 @@ class UserAddProviderTest < PuppetTest::TestCase
46
45
 
47
46
  @vals.each do |name, val|
48
47
  next unless user.class.validproperty?(name)
49
- user.is = [name, :absent]
50
48
  end
51
49
 
52
50
  user.expects(:allowdupe?).returns(false)
@@ -204,8 +202,6 @@ class UserAddProviderTest < PuppetTest::TestCase
204
202
 
205
203
  # Now mark the user made, and make sure the right command is called
206
204
  setup_user
207
- @user.is = [:ensure, :present]
208
- @user.is = [:password, :present]
209
205
  @vals[:password] = "somethingelse"
210
206
 
211
207
  @user.provider.expects(:execute).with do |params|
@@ -247,4 +243,4 @@ class UserRootAddProviderTest < PuppetTest::TestCase
247
243
  end
248
244
 
249
245
 
250
- # $Id: useradd.rb 2444 2007-05-01 03:14:09Z luke $
246
+ # $Id: useradd.rb 2487 2007-05-09 01:51:20Z ballman $
@@ -97,9 +97,9 @@ class TestCron < Test::Unit::TestCase
97
97
 
98
98
  assert_events([:cron_created], comp)
99
99
  cron.provider.class.prefetch
100
- cron.retrieve
100
+ currentvalue = cron.retrieve
101
101
 
102
- assert(cron.insync?, "Cron is not in sync")
102
+ assert(cron.insync?(currentvalue), "Cron is not in sync")
103
103
 
104
104
  assert_events([], comp)
105
105
 
@@ -114,9 +114,9 @@ class TestCron < Test::Unit::TestCase
114
114
  assert_events([:cron_removed], comp)
115
115
 
116
116
  cron.provider.class.prefetch
117
- cron.retrieve
117
+ currentvalue = cron.retrieve
118
118
 
119
- assert(cron.insync?, "Cron is not in sync")
119
+ assert(cron.insync?(currentvalue), "Cron is not in sync")
120
120
  assert_events([], comp)
121
121
  end
122
122
 
@@ -137,10 +137,12 @@ class TestCron < Test::Unit::TestCase
137
137
  }
138
138
  property = cron.send(:property, :command)
139
139
  cron.provider.command = command
140
+ cron.provider.ensure = :present
141
+ cron.provider.month = ["4"]
140
142
  cron.provider.class.prefetch
141
- cron.retrieve
143
+ currentvalue = cron.retrieve
142
144
 
143
- assert(property.insync?, "command parsing removes trailing whitespace")
145
+ assert(cron.insync?(currentvalue), "command parsing removes trailing whitespace")
144
146
  @crontype.clear
145
147
  end
146
148
  end
@@ -230,12 +232,14 @@ class TestCron < Test::Unit::TestCase
230
232
  )
231
233
  }
232
234
 
233
- minute = cron.send(:property, :minute)
235
+ #minute = cron.send(:property, :minute)
236
+ cron.provider.ensure = :present
237
+ cron.provider.command = '/bin/date > /dev/null'
234
238
  cron.provider.minute = %w{0 30}
235
239
  cron.provider.class.prefetch
236
- cron.retrieve
240
+ currentvalue = cron.retrieve
237
241
 
238
- assert(minute.insync?, "minute is out of sync with %s" % provider.name)
242
+ assert(cron.insync?(currentvalue), "minute is out of sync with %s" % provider.name)
239
243
  @crontype.clear
240
244
  end
241
245
  end
@@ -256,11 +260,13 @@ class TestCron < Test::Unit::TestCase
256
260
 
257
261
  cron[:minute] = :absent
258
262
  assert_events([:cron_changed], cron)
263
+
264
+ current_values = nil
259
265
  assert_nothing_raised {
260
266
  cron.provider.class.prefetch
261
- cron.retrieve
267
+ current_values = cron.retrieve
262
268
  }
263
- assert_equal(:absent, cron.is(:minute))
269
+ assert_equal(:absent, current_values[cron.property(:minute)])
264
270
  end
265
271
 
266
272
  def test_listing
@@ -281,9 +287,11 @@ class TestCron < Test::Unit::TestCase
281
287
  # Write it to our file
282
288
  assert_apply(cron)
283
289
 
290
+ @crontype.clear
291
+
284
292
  crons = []
285
293
  assert_nothing_raised {
286
- @crontype.list.each do |cron|
294
+ @crontype.instances.each do |cron|
287
295
  crons << cron
288
296
  end
289
297
  }
@@ -325,9 +333,9 @@ class TestCron < Test::Unit::TestCase
325
333
  assert_apply(cron)
326
334
 
327
335
  cron.provider.class.prefetch
328
- cron.retrieve
336
+ currentvalue = cron.retrieve
329
337
 
330
- assert_equal(["*/5"], cron.is(:minute))
338
+ assert_equal(["*/5"], currentvalue[cron.property(:minute)])
331
339
  end
332
340
 
333
341
  def test_ranges
@@ -336,10 +344,22 @@ class TestCron < Test::Unit::TestCase
336
344
 
337
345
  assert_apply(cron)
338
346
 
339
- cron.provider.class.prefetch
340
- cron.retrieve
347
+ current_values = nil
348
+ assert_nothing_raised {
349
+ cron.provider.class.prefetch
350
+ current_values = cron.retrieve
351
+ }
341
352
 
342
- assert_equal(["2-4"], cron.is(:minute))
353
+ assert_equal(["2-4"], current_values[cron.property(:minute)])
354
+ end
355
+
356
+
357
+ def provider_set(cron, param, value)
358
+ unless param =~ /=$/
359
+ param = "%s=" % param
360
+ end
361
+
362
+ cron.provider.send(param, value)
343
363
  end
344
364
 
345
365
  def test_value
@@ -353,22 +373,19 @@ class TestCron < Test::Unit::TestCase
353
373
  assert(property, "Did not get %s property" % param)
354
374
 
355
375
  assert_nothing_raised {
356
- property.is = :absent
376
+ # property.is = :absent
377
+ provider_set(cron, param, :absent)
357
378
  }
358
379
 
359
- val = [:absent]
380
+ val = "*"
360
381
  assert_equal(val, cron.value(param))
361
382
 
362
- # Make sure we correctly get the "is" value if that's all there is
363
- cron.is = [param, "1"]
364
- assert_equal(%w{1}, cron.value(param))
365
-
366
383
  # Make sure arrays work, too
367
- cron.is = [param, ["1"]]
384
+ provider_set(cron, param, ["1"])
368
385
  assert_equal(%w{1}, cron.value(param))
369
386
 
370
387
  # Make sure values get comma-joined
371
- cron.is = [param, %w{2 3}]
388
+ provider_set(cron, param, %w{2 3})
372
389
  assert_equal(%w{2 3}, cron.value(param))
373
390
 
374
391
  # Make sure "should" values work, too
@@ -381,7 +398,7 @@ class TestCron < Test::Unit::TestCase
381
398
  cron[param] = ["4", "5"]
382
399
  assert_equal(%w{4 5}, cron.value(param))
383
400
 
384
- cron.is = [param, :absent]
401
+ provider_set(cron, param, :absent)
385
402
  assert_equal(%w{4 5}, cron.value(param))
386
403
  end
387
404
 
@@ -393,20 +410,16 @@ class TestCron < Test::Unit::TestCase
393
410
  property = cron.property(:command)
394
411
 
395
412
  assert_nothing_raised {
396
- property.is = :absent
413
+ provider_set(cron, :command, :absent)
397
414
  }
398
415
 
399
416
  param = :command
400
- # Make sure we correctly get the "is" value if that's all there is
401
- cron.is = [param, "/bin/echo"]
402
- assert_equal("/bin/echo", cron.value(param))
403
-
404
417
  # Make sure arrays work, too
405
- cron.is = [param, ["/bin/echo"]]
418
+ provider_set(cron, param, ["/bin/echo"])
406
419
  assert_equal("/bin/echo", cron.value(param))
407
420
 
408
421
  # Make sure values are not comma-joined
409
- cron.is = [param, %w{/bin/echo /bin/test}]
422
+ provider_set(cron, param, %w{/bin/echo /bin/test})
410
423
  assert_equal("/bin/echo", cron.value(param))
411
424
 
412
425
  # Make sure "should" values work, too
@@ -419,7 +432,7 @@ class TestCron < Test::Unit::TestCase
419
432
  cron[param] = %w{/bin/echo /bin/test}
420
433
  assert_equal("/bin/echo", cron.value(param))
421
434
 
422
- cron.is = [param, :absent]
435
+ provider_set(cron, param, :absent)
423
436
  assert_equal("/bin/echo", cron.value(param))
424
437
  end
425
438
 
@@ -455,7 +468,7 @@ class TestCron < Test::Unit::TestCase
455
468
  end
456
469
 
457
470
  # Make sure the user stuff defaults correctly.
458
- def test_default_user
471
+ def test_default_user
459
472
  crontab = @crontype.provider(:crontab)
460
473
  if crontab.suitable?
461
474
  inst = @crontype.create(
@@ -477,4 +490,4 @@ class TestCron < Test::Unit::TestCase
477
490
  end
478
491
 
479
492
 
480
- # $Id: cron.rb 2414 2007-04-25 20:59:00Z luke $
493
+ # $Id: cron.rb 2551 2007-06-04 20:37:14Z luke $