puppet 0.22.4 → 0.23.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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
@@ -2,7 +2,6 @@ require 'etc'
2
2
  require 'facter'
3
3
  require 'puppet/type/property'
4
4
  require 'puppet/util/filetype'
5
- require 'puppet/type/parsedtype'
6
5
 
7
6
  Puppet::Type.newtype(:cron) do
8
7
  @doc = "Installs and manages cron jobs. All fields except the command
@@ -29,9 +28,7 @@ Puppet::Type.newtype(:cron) do
29
28
  ensurable
30
29
 
31
30
  # A base class for all of the Cron parameters, since they all have
32
- # similar argument checking going on. We're stealing the base class
33
- # from parsedtype, and we should probably subclass Cron from there,
34
- # but it was just too annoying to do.
31
+ # similar argument checking going on.
35
32
  class CronParam < Puppet::Property
36
33
  class << self
37
34
  attr_accessor :boundaries, :default
@@ -39,9 +36,9 @@ Puppet::Type.newtype(:cron) do
39
36
 
40
37
  # We have to override the parent method, because we consume the entire
41
38
  # "should" array
42
- def insync?
39
+ def insync?(is)
43
40
  if defined? @should and @should
44
- self.is_to_s == self.should_to_s
41
+ self.is_to_s(is) == self.should_to_s
45
42
  else
46
43
  true
47
44
  end
@@ -93,36 +90,28 @@ Puppet::Type.newtype(:cron) do
93
90
  return false
94
91
  end
95
92
 
96
- def should_to_s
97
- if @should
98
- if self.name == :command or @should[0].is_a? Symbol
99
- @should[0]
93
+ def should_to_s(newvalue = @should)
94
+ if newvalue
95
+ if self.name == :command or newvalue[0].is_a? Symbol
96
+ newvalue[0]
100
97
  else
101
- @should.join(",")
98
+ newvalue.join(",")
102
99
  end
103
100
  else
104
101
  nil
105
102
  end
106
103
  end
107
104
 
108
- def is=(val)
109
- if val.is_a?(Array)
110
- @is = val
111
- else
112
- @is = [val]
113
- end
114
- end
115
-
116
- def is_to_s
117
- if @is
118
- unless @is.is_a?(Array)
119
- return @is
105
+ def is_to_s(currentvalue = @is)
106
+ if currentvalue
107
+ unless currentvalue.is_a?(Array)
108
+ return currentvalue
120
109
  end
121
110
 
122
- if self.name == :command or @is[0].is_a? Symbol
123
- @is[0]
111
+ if self.name == :command or currentvalue[0].is_a? Symbol
112
+ currentvalue[0]
124
113
  else
125
- @is.join(",")
114
+ currentvalue.join(",")
126
115
  end
127
116
  else
128
117
  nil
@@ -190,7 +179,7 @@ Puppet::Type.newtype(:cron) do
190
179
  end
191
180
 
192
181
  # Somewhat uniquely, this property does not actually change anything -- it
193
- # just calls +@parent.sync+, which writes out the whole cron tab for
182
+ # just calls +@resource.sync+, which writes out the whole cron tab for
194
183
  # the user in question. There is no real way to change individual cron
195
184
  # jobs without rewriting the entire cron file.
196
185
  #
@@ -206,12 +195,13 @@ Puppet::Type.newtype(:cron) do
206
195
  All cron parameters support ``absent`` as a value; this will
207
196
  remove any existing values for that field."
208
197
 
209
- def is
210
- if @is
211
- @is[0]
212
- else
213
- nil
214
- end
198
+ def retrieve
199
+ return_value = super
200
+ if return_value && return_value.is_a?(Array)
201
+ return_value = return_value[0]
202
+ end
203
+
204
+ return return_value
215
205
  end
216
206
 
217
207
  def should
@@ -286,6 +276,7 @@ Puppet::Type.newtype(:cron) do
286
276
  can be no guarantees that other, earlier settings will not also
287
277
  affect a given cron job.
288
278
 
279
+
289
280
  Also, Puppet cannot automatically determine whether an existing,
290
281
  unmanaged environment setting is associated with a given cron
291
282
  job. If you already have cron jobs with environment settings,
@@ -296,23 +287,39 @@ Puppet::Type.newtype(:cron) do
296
287
  the crontab, e.g., ``PATH=/bin:/usr/bin:/usr/sbin``."
297
288
 
298
289
  validate do |value|
299
- unless value =~ /^\s*(\w+)\s*=\s*(.+)\s*$/
290
+ unless value =~ /^\s*(\w+)\s*=\s*(.+)\s*$/ or value == :absent or value == "absent"
300
291
  raise ArgumentError, "Invalid environment setting %s" %
301
292
  value.inspect
302
293
  end
303
294
  end
304
295
 
305
- def insync?
306
- if @is.is_a? Array
307
- return @is.sort == @should.sort
296
+ def insync?(is)
297
+ if is.is_a? Array
298
+ return is.sort == @should.sort
308
299
  else
309
- return @is == @should
300
+ return is == @should
301
+ end
302
+ end
303
+
304
+ def is_to_s(newvalue)
305
+ if newvalue
306
+ newvalue.join(",")
307
+ else
308
+ nil
310
309
  end
311
310
  end
312
311
 
313
312
  def should
314
313
  @should
315
314
  end
315
+
316
+ def should_to_s(newvalue = @should)
317
+ if newvalue
318
+ newvalue.join(",")
319
+ else
320
+ nil
321
+ end
322
+ end
316
323
  end
317
324
 
318
325
  newparam(:name) do
@@ -344,8 +351,8 @@ Puppet::Type.newtype(:cron) do
344
351
  Other providers default accordingly."
345
352
 
346
353
  defaultto {
347
- if provider.is_a?(@parent.class.provider(:crontab))
348
- if val = @parent.should(:user)
354
+ if provider.is_a?(@resource.class.provider(:crontab))
355
+ if val = @resource.should(:user)
349
356
  val
350
357
  else
351
358
  raise ArgumentError,
@@ -370,7 +377,7 @@ Puppet::Type.newtype(:cron) do
370
377
  ret = obj.should
371
378
 
372
379
  if ret.nil?
373
- ret = obj.is
380
+ ret = obj.retrieve
374
381
  end
375
382
 
376
383
  if ret == :absent
@@ -394,4 +401,6 @@ Puppet::Type.newtype(:cron) do
394
401
  end
395
402
  end
396
403
 
397
- # $Id: cron.rb 2408 2007-04-24 02:41:16Z luke $
404
+
405
+ # $Id: cron.rb 2621 2007-06-18 21:56:11Z luke $
406
+
@@ -79,7 +79,7 @@ module Puppet
79
79
  executed command returns something else. Defaults to 0."
80
80
 
81
81
  # Make output a bit prettier
82
- def change_to_s
82
+ def change_to_s(currentvalue, newvalue)
83
83
  return "executed successfully"
84
84
  end
85
85
 
@@ -87,10 +87,10 @@ module Puppet
87
87
  def retrieve
88
88
  # Default to somethinng
89
89
 
90
- if @parent.check
91
- self.is = :notrun
90
+ if @resource.check
91
+ return :notrun
92
92
  else
93
- self.is = self.should
93
+ return self.should
94
94
  end
95
95
  end
96
96
 
@@ -99,25 +99,25 @@ module Puppet
99
99
  olddir = nil
100
100
 
101
101
  # We need a dir to change to, even if it's just the cwd
102
- dir = self.parent[:cwd] || Dir.pwd
102
+ dir = self.resource[:cwd] || Dir.pwd
103
103
 
104
104
  event = :executed_command
105
105
 
106
106
  begin
107
- @output, status = @parent.run(self.parent[:command])
107
+ @output, status = @resource.run(self.resource[:command])
108
108
  rescue Timeout::Error
109
109
  self.fail "Command exceeded timeout" % value.inspect
110
110
  end
111
111
 
112
- loglevel = @parent[:loglevel]
112
+ loglevel = @resource[:loglevel]
113
113
  if status.exitstatus.to_s != self.should.to_s
114
114
  self.fail("%s returned %s instead of %s" %
115
- [self.parent[:command], status.exitstatus, self.should.to_s])
115
+ [self.resource[:command], status.exitstatus, self.should.to_s])
116
116
  end
117
117
 
118
- if log = @parent[:logoutput]
118
+ if log = @resource[:logoutput]
119
119
  if log == :true
120
- log = @parent[:loglevel]
120
+ log = @resource[:loglevel]
121
121
  end
122
122
  unless log == :false
123
123
  @output.split(/\n/).each { |line|
@@ -213,7 +213,7 @@ module Puppet
213
213
  for refreshing."
214
214
 
215
215
  validate do |command|
216
- @parent.validatecmd(command)
216
+ @resource.validatecmd(command)
217
217
  end
218
218
  end
219
219
 
@@ -236,7 +236,8 @@ module Puppet
236
236
  newparam(:timeout) do
237
237
  desc "The maximum time the command should take. If the command takes
238
238
  longer than the timeout, the command is considered to have failed
239
- and will be stopped. Use any negative number to disable the timeout."
239
+ and will be stopped. Use any negative number to disable the timeout.
240
+ The time is specified in seconds."
240
241
 
241
242
  munge do |value|
242
243
  value = value.shift if value.is_a?(Array)
@@ -342,14 +343,14 @@ module Puppet
342
343
  cmds = [cmds] unless cmds.is_a? Array
343
344
 
344
345
  cmds.each do |cmd|
345
- @parent.validatecmd(cmd)
346
+ @resource.validatecmd(cmd)
346
347
  end
347
348
  end
348
349
 
349
350
  # Return true if the command does not return 0.
350
351
  def check(value)
351
352
  begin
352
- output, status = @parent.run(value, true)
353
+ output, status = @resource.run(value, true)
353
354
  rescue Timeout::Error
354
355
  err "Check %s exceeded timeout" % value.inspect
355
356
  return false
@@ -378,14 +379,14 @@ module Puppet
378
379
  cmds = [cmds] unless cmds.is_a? Array
379
380
 
380
381
  cmds.each do |cmd|
381
- @parent.validatecmd(cmd)
382
+ @resource.validatecmd(cmd)
382
383
  end
383
384
  end
384
385
 
385
386
  # Return true if the command returns 0.
386
387
  def check(value)
387
388
  begin
388
- output, status = @parent.run(value, true)
389
+ output, status = @resource.run(value, true)
389
390
  rescue Timeout::Error
390
391
  err "Check %s exceeded timeout" % value.inspect
391
392
  return false
@@ -443,8 +444,8 @@ module Puppet
443
444
  end
444
445
  end
445
446
 
446
- def self.list
447
- self.collect { |i| i }
447
+ def self.instances
448
+ []
448
449
  end
449
450
 
450
451
  # Verify that we pass all of the checks. The argument determines whether
@@ -597,4 +598,4 @@ module Puppet
597
598
  end
598
599
  end
599
600
 
600
- # $Id: exec.rb 2442 2007-04-30 19:42:58Z luke $
601
+ # $Id: exec.rb 2551 2007-06-04 20:37:14Z luke $
@@ -40,49 +40,20 @@ module Puppet
40
40
  # If they're talking about the thing at all, they generally want to
41
41
  # say it should exist.
42
42
  defaultto do
43
- if @parent.managed?
43
+ if @resource.managed?
44
44
  :present
45
45
  else
46
46
  nil
47
47
  end
48
48
  end
49
49
 
50
- def change_to_s
51
- begin
52
- if @is == :absent
53
- return "created"
54
- elsif self.should == :absent
55
- return "removed"
56
- else
57
- return "%s changed '%s' to '%s'" %
58
- [self.name, self.is_to_s, self.should_to_s]
59
- end
60
- rescue Puppet::Error, Puppet::DevError
61
- raise
62
- rescue => detail
63
- raise Puppet::DevError,
64
- "Could not convert change %s to string: %s" %
65
- [self.name, detail]
66
- end
67
- end
68
-
69
50
  def retrieve
70
- if provider.exists?
71
- @is = :present
72
- else
73
- @is = :absent
74
- end
51
+ return provider.exists? ? :present : :absent
75
52
  end
76
53
 
77
54
  # The default 'sync' method only selects among a list of registered
78
55
  # values.
79
56
  def sync
80
- if self.insync?
81
- self.info "already in sync"
82
- return nil
83
- #else
84
- #self.info "%s vs %s" % [self.is.inspect, self.should.inspect]
85
- end
86
57
  unless self.class.values
87
58
  self.devfail "No values defined for %s" %
88
59
  self.class.name
@@ -101,7 +72,7 @@ module Puppet
101
72
  GID is picked according to local system standards."
102
73
 
103
74
  def retrieve
104
- @is = provider.gid
75
+ return provider.gid
105
76
  end
106
77
 
107
78
  def sync
@@ -149,34 +120,14 @@ module Puppet
149
120
  defaultto false
150
121
  end
151
122
 
152
- def self.list_by_name
153
- users = []
154
- defaultprovider.listbyname do |user|
155
- users << user
156
- end
157
- return users
158
- end
159
-
160
- def self.list
161
- defaultprovider.list
162
-
163
- self.collect do |user|
164
- user
165
- end
166
- end
167
-
168
123
  def retrieve
169
124
  if self.provider and @provider.exists?
170
- super
125
+ return super
171
126
  else
172
- properties().each { |property|
173
- property.is = :absent
174
- }
175
-
176
- return
127
+ return currentpropvalues(:absent)
177
128
  end
178
129
  end
179
130
  end
180
131
  end
181
132
 
182
- # $Id: group.rb 2408 2007-04-24 02:41:16Z luke $
133
+ # $Id: group.rb 2551 2007-06-04 20:37:14Z luke $
@@ -1,5 +1,3 @@
1
- require 'puppet/type/parsedtype'
2
-
3
1
  module Puppet
4
2
  newtype(:host) do
5
3
  ensurable
@@ -15,47 +13,28 @@ module Puppet
15
13
  make those aliases available in your Puppet scripts and also on
16
14
  disk."
17
15
 
18
- def insync?
19
- @is == @should
16
+ def insync?(is)
17
+ is == @should
20
18
  end
21
19
 
22
- # Make sure our "is" value is always an array.
23
- def is
24
- current = super
25
- current = [current] unless current.is_a? Array
26
- current
27
- end
28
-
29
- def is_to_s
30
- self.is.join(" ")
20
+ def is_to_s(currentvalue = @is)
21
+ currentvalue = [currentvalue] unless currentvalue.is_a? Array
22
+ currentvalue.join(" ")
31
23
  end
32
24
 
33
- # We have to override the feeding mechanism; it might be nil or
34
- # white-space separated
35
- def is=(value)
36
- # If it's just whitespace, ignore it
37
- case value
38
- when /^\s+$/
39
- @is = nil
40
- when String
41
- @is = value.split(/\s+/)
42
- else
43
- @is = value
44
- end
45
- end
46
-
47
25
  def retrieve
48
- super
49
- case @is
26
+ is = super
27
+ case is
50
28
  when String
51
- @is = @is.split(/\s*,\s*/)
29
+ is = is.split(/\s*,\s*/)
52
30
  when Symbol:
53
- @is = [@is]
31
+ is = [is]
54
32
  when Array
55
33
  # nothing
56
34
  else
57
- raise Puppet::DevError, "Invalid @is type %s" % @is.class
35
+ raise Puppet::DevError, "Invalid @is type %s" % is.class
58
36
  end
37
+ return is
59
38
  end
60
39
 
61
40
  # We actually want to return the whole array here, not just the first
@@ -72,8 +51,8 @@ module Puppet
72
51
  end
73
52
  end
74
53
 
75
- def should_to_s
76
- @should.join(" ")
54
+ def should_to_s(newvalue = @should)
55
+ newvalue.join(" ")
77
56
  end
78
57
 
79
58
  validate do |value|
@@ -87,8 +66,8 @@ module Puppet
87
66
  desc "The file in which to store service information. Only used by
88
67
  those providers that write to disk (i.e., not NetInfo)."
89
68
 
90
- defaultto { if @parent.class.defaultprovider.ancestors.include?(Puppet::Provider::ParsedFile)
91
- @parent.class.defaultprovider.default_target
69
+ defaultto { if @resource.class.defaultprovider.ancestors.include?(Puppet::Provider::ParsedFile)
70
+ @resource.class.defaultprovider.default_target
92
71
  else
93
72
  nil
94
73
  end
@@ -107,4 +86,4 @@ module Puppet
107
86
  end
108
87
  end
109
88
 
110
- # $Id: host.rb 2408 2007-04-24 02:41:16Z luke $
89
+ # $Id: host.rb 2517 2007-05-15 19:22:36Z luke $