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
@@ -31,10 +31,10 @@ Puppet::Type.newtype(:resources) do
31
31
 
32
32
  validate do |value|
33
33
  if [:true, true, "true"].include?(value)
34
- unless @parent.resource_type.respond_to?(:list)
35
- raise ArgumentError, "Purging resources of type %s is not supported, since they cannot be listed" % @parent[:name]
34
+ unless @resource.resource_type.respond_to?(:instances)
35
+ raise ArgumentError, "Purging resources of type %s is not supported, since they cannot be queried from the system" % @resource[:name]
36
36
  end
37
- unless @parent.resource_type.validproperty?(:ensure)
37
+ unless @resource.resource_type.validproperty?(:ensure)
38
38
  raise ArgumentError, "Purging is only supported on types that accept 'ensure'"
39
39
  end
40
40
  end
@@ -63,7 +63,7 @@ Puppet::Type.newtype(:resources) do
63
63
  end
64
64
 
65
65
  defaultto {
66
- if @parent[:name] == "user"
66
+ if @resource[:name] == "user"
67
67
  500
68
68
  else
69
69
  nil
@@ -91,7 +91,7 @@ Puppet::Type.newtype(:resources) do
91
91
  return [] unless self.purge?
92
92
  hascheck = false
93
93
  method =
94
- resource_type.list.find_all do |resource|
94
+ resource_type.instances.find_all do |resource|
95
95
  ! resource.managed?
96
96
  end.find_all do |resource|
97
97
  check(resource)
@@ -124,18 +124,22 @@ Puppet::Type.newtype(:resources) do
124
124
  @resource_type
125
125
  end
126
126
 
127
+ # Make sure we don't purge users below a certain uid, if the check
128
+ # is enabled.
127
129
  def user_check(resource)
128
130
  return true unless self[:name] == "user"
129
131
  return true unless self[:unless_system_user]
130
132
 
131
133
  resource[:check] = :uid
132
- resource.retrieve
134
+ current_values = resource.retrieve
133
135
 
134
136
  if system_users().include?(resource[:name])
135
137
  return false
136
138
  end
139
+
140
+ resource.info current_values.inspect
137
141
 
138
- if resource.is(:uid) <= self[:unless_system_user]
142
+ if current_values[resource.property(:uid)] <= self[:unless_system_user]
139
143
  return false
140
144
  else
141
145
  return true
@@ -147,4 +151,4 @@ Puppet::Type.newtype(:resources) do
147
151
  end
148
152
  end
149
153
 
150
- # $Id: resources.rb 2286 2007-03-17 23:16:37Z luke $
154
+ # $Id: resources.rb 2551 2007-06-04 20:37:14Z luke $
@@ -249,7 +249,7 @@ module Puppet
249
249
  return false if value == :never
250
250
 
251
251
  value = self.value
252
- case @parent[:periodmatch]
252
+ case @resource[:periodmatch]
253
253
  when :number
254
254
  method = @@methods[value]
255
255
  if method.is_a?(Proc)
@@ -266,7 +266,7 @@ module Puppet
266
266
  # than the unit of time, we match. We divide the scale
267
267
  # by the repeat, so that we'll repeat that often within
268
268
  # the scale.
269
- return (now.to_i - previous.to_i) >= (scale / @parent[:repeat])
269
+ return (now.to_i - previous.to_i) >= (scale / @resource[:repeat])
270
270
  end
271
271
  end
272
272
  end
@@ -285,12 +285,12 @@ module Puppet
285
285
 
286
286
  # This implicitly assumes that 'periodmatch' is distance -- that
287
287
  # is, if there's no value, we assume it's a valid value.
288
- return unless @parent[:periodmatch]
288
+ return unless @resource[:periodmatch]
289
289
 
290
- if value != 1 and @parent[:periodmatch] != :distance
290
+ if value != 1 and @resource[:periodmatch] != :distance
291
291
  raise Puppet::Error,
292
292
  "Repeat must be 1 unless periodmatch is 'distance', not '%s'" %
293
- @parent[:periodmatch]
293
+ @resource[:periodmatch]
294
294
  end
295
295
  end
296
296
 
@@ -307,8 +307,8 @@ module Puppet
307
307
  end
308
308
  end
309
309
 
310
- def self.list
311
- self.collect do |obj| obj end
310
+ def self.instances
311
+ []
312
312
  end
313
313
 
314
314
  def self.mkdefaultschedules
@@ -358,4 +358,4 @@ module Puppet
358
358
  end
359
359
  end
360
360
 
361
- # $Id: schedule.rb 2408 2007-04-24 02:41:16Z luke $
361
+ # $Id: schedule.rb 2551 2007-06-04 20:37:14Z luke $
@@ -37,7 +37,7 @@ module Puppet
37
37
  newvalue(:true, :event => :service_enabled) do
38
38
  unless provider.respond_to?(:enable)
39
39
  raise Puppet::Error, "Service %s does not support enabling" %
40
- @parent.name
40
+ @resource.name
41
41
  end
42
42
  provider.enable
43
43
  end
@@ -45,7 +45,7 @@ module Puppet
45
45
  newvalue(:false, :event => :service_disabled) do
46
46
  unless provider.respond_to?(:disable)
47
47
  raise Puppet::Error, "Service %s does not support enabling" %
48
- @parent.name
48
+ @resource.name
49
49
  end
50
50
  provider.disable
51
51
  end
@@ -53,9 +53,9 @@ module Puppet
53
53
  def retrieve
54
54
  unless provider.respond_to?(:enabled?)
55
55
  raise Puppet::Error, "Service %s does not support enabling" %
56
- @parent.name
56
+ @resource.name
57
57
  end
58
- @is = provider.enabled?
58
+ return provider.enabled?
59
59
  end
60
60
 
61
61
  validate do |value|
@@ -67,15 +67,15 @@ module Puppet
67
67
  munge do |should|
68
68
  @runlevel = nil
69
69
  if should =~ /^\d+$/
70
- arity = @parent.method(:enable)
70
+ arity = @resource.method(:enable)
71
71
  if @runlevel and arity != 1
72
72
  raise Puppet::Error,
73
73
  "Services on %s do not accept runlevel specs" %
74
- @parent.type
74
+ @resource.type
75
75
  elsif arity != 0
76
76
  raise Puppet::Error,
77
77
  "Services on %s must specify runlevels" %
78
- @parent.type
78
+ @resource.type
79
79
  end
80
80
  @runlevel = should
81
81
  return :true
@@ -116,7 +116,7 @@ module Puppet
116
116
  aliasvalue(:true, :running)
117
117
 
118
118
  def retrieve
119
- self.is = provider.status
119
+ return provider.status
120
120
  end
121
121
 
122
122
  def sync
@@ -133,9 +133,9 @@ module Puppet
133
133
  # self
134
134
  # end
135
135
 
136
- if property = @parent.property(:enable)
137
- property.retrieve
138
- unless property.insync?
136
+ if property = @resource.property(:enable)
137
+ val = property.retrieve
138
+ unless property.insync?(val)
139
139
  property.sync
140
140
  end
141
141
  end
@@ -152,8 +152,8 @@ module Puppet
152
152
  warning."
153
153
 
154
154
  munge do |value|
155
- @parent.warning "'running' is deprecated; please use 'ensure'"
156
- @parent[:ensure] = value
155
+ @resource.warning "'running' is deprecated; please use 'ensure'"
156
+ @resource[:ensure] = value
157
157
  end
158
158
  end
159
159
 
@@ -188,7 +188,7 @@ module Puppet
188
188
 
189
189
  munge do |value|
190
190
  warning "'type' is deprecated; use 'provider' instead"
191
- @parent[:provider] = value
191
+ @resource[:provider] = value
192
192
  end
193
193
  end
194
194
 
@@ -211,11 +211,11 @@ module Puppet
211
211
  end
212
212
  if FileTest.exists?(path)
213
213
  unless FileTest.directory?(path)
214
- @parent.debug "Search path %s is not a directory" %
214
+ @resource.debug "Search path %s is not a directory" %
215
215
  [path]
216
216
  end
217
217
  else
218
- @parent.debug("Search path %s does not exist" % [path])
218
+ @resource.debug("Search path %s does not exist" % [path])
219
219
  end
220
220
  paths.delete(path)
221
221
  end
@@ -236,7 +236,7 @@ module Puppet
236
236
  The pattern can be a simple string or any legal Ruby pattern."
237
237
 
238
238
  defaultto {
239
- @parent[:binary] || @parent[:name]
239
+ @resource[:binary] || @resource[:name]
240
240
  }
241
241
  end
242
242
  newparam(:restart) do
@@ -265,20 +265,6 @@ module Puppet
265
265
  newvalues(:true, :false)
266
266
  end
267
267
 
268
- # List all available services
269
- def self.list
270
- defprov = defaultprovider
271
-
272
- names = []
273
- if defprov.respond_to? :list
274
- defprov.list(defprov.name)
275
- else
276
- Puppet.debug "Type %s does not respond to list" % defprov.name
277
- end
278
-
279
- self.collect { |s| s }
280
- end
281
-
282
268
  # Add a new path to our list of paths that services could be in.
283
269
  def self.newpath(type, path)
284
270
  type = type.intern if type.is_a? String
@@ -307,17 +293,24 @@ module Puppet
307
293
  if self.respond_to?(:configchk)
308
294
  self.configchk
309
295
  end
296
+
297
+ unless @parameters.include?(:ensure) or @parameters.include?(:enable)
298
+ warning "No properties specified; 'enable' or 'ensure' should be specified"
299
+ end
310
300
  end
311
301
 
312
302
  # Basically just a synonym for restarting. Used to respond
313
303
  # to events.
314
304
  def refresh
315
305
  # Only restart if we're supposed to be running
316
- if ens = @parameters[:ensure] and ens.should == :running and ens.is == :running
306
+
307
+ if ens = @parameters[:ensure] and ens.should == :running and ens.retrieve == :running
317
308
  provider.restart
309
+ else
310
+ debug "Skipping restart; 'ensure' is not set to 'running'"
318
311
  end
319
312
  end
320
313
  end
321
314
  end
322
315
 
323
- # $Id: service.rb 2409 2007-04-24 06:20:21Z luke $
316
+ # $Id: service.rb 2555 2007-06-08 17:20:00Z luke $
@@ -28,11 +28,10 @@ module Puppet
28
28
  make those aliases available in your Puppet scripts."
29
29
 
30
30
  attr_accessor :meta
31
-
32
- def insync?
33
- @is == @should
34
- end
35
31
 
32
+ def insync?(is)
33
+ is == @should
34
+ end
36
35
  # We actually want to return the whole array here, not just the first
37
36
  # value.
38
37
  def should
@@ -63,8 +62,8 @@ module Puppet
63
62
  desc "The file in which to store the mount table. Only used by
64
63
  those providers that write to disk (i.e., not NetInfo)."
65
64
 
66
- defaultto { if @parent.class.defaultprovider.ancestors.include?(Puppet::Provider::ParsedFile)
67
- @parent.class.defaultprovider.default_target
65
+ defaultto { if @resource.class.defaultprovider.ancestors.include?(Puppet::Provider::ParsedFile)
66
+ @resource.class.defaultprovider.default_target
68
67
  else
69
68
  nil
70
69
  end
@@ -73,4 +72,4 @@ module Puppet
73
72
  end
74
73
  end
75
74
 
76
- # $Id: sshkey.rb 2169 2007-02-07 06:47:10Z luke $
75
+ # $Id: sshkey.rb 2500 2007-05-09 22:05:32Z luke $
@@ -27,21 +27,21 @@ module Puppet
27
27
 
28
28
  defaultto :anything # just so we always get this property
29
29
 
30
- def change_to_s
30
+ def change_to_s(currentvalue, newvalue)
31
31
  start = "Tidying"
32
32
  if @out.include?(:age)
33
- start += ", older than %s seconds" % @parent.should(:age)
33
+ start += ", older than %s seconds" % @resource.should(:age)
34
34
  end
35
35
  if @out.include?(:size)
36
- start += ", larger than %s bytes" % @parent.should(:size)
36
+ start += ", larger than %s bytes" % @resource.should(:size)
37
37
  end
38
38
 
39
39
  start
40
40
  end
41
41
 
42
- def insync?
43
- if @is.is_a?(Symbol)
44
- if [:absent, :notidy].include?(@is)
42
+ def insync?(is)
43
+ if is.is_a?(Symbol)
44
+ if [:absent, :notidy].include?(is)
45
45
  return true
46
46
  else
47
47
  return false
@@ -49,12 +49,14 @@ module Puppet
49
49
  else
50
50
  @out = []
51
51
  TATTRS.each do |param|
52
- if property = @parent.property(param)
53
- unless property.insync?
52
+ if property = @resource.property(param)
53
+ self.debug "No is value for %s", [param] if is[property].nil?
54
+ unless property.insync?(is[property])
54
55
  @out << param
55
56
  end
56
57
  end
57
58
  end
59
+
58
60
  if @out.length > 0
59
61
  return false
60
62
  else
@@ -62,47 +64,47 @@ module Puppet
62
64
  end
63
65
  end
64
66
  end
65
-
67
+
66
68
  def retrieve
67
69
  stat = nil
68
- unless stat = @parent.stat
69
- @is = :absent
70
- return
70
+ unless stat = @resource.stat
71
+ return { self => :absent}
71
72
  end
72
73
 
73
- if stat.ftype == "directory" and ! @parent[:rmdirs]
74
- @is = :notidy
75
- return
74
+ if stat.ftype == "directory" and ! @resource[:rmdirs]
75
+ return {self => :notidy}
76
76
  end
77
77
 
78
- TATTRS.each { |param|
79
- if property = @parent.property(param)
80
- property.is = property.assess(stat)
78
+ allprops = TATTRS.inject({}) { |prophash, param|
79
+ if property = @resource.property(param)
80
+ prophash[property] = property.assess(stat)
81
81
  end
82
+ prophash
82
83
  }
84
+ return { self => allprops }
83
85
  end
84
86
 
85
87
  def sync
86
- file = @parent[:path]
88
+ file = @resource[:path]
87
89
  case File.lstat(file).ftype
88
90
  when "directory":
89
- if @parent[:rmdirs]
90
- subs = Dir.entries(@parent[:path]).reject { |d|
91
+ if @resource[:rmdirs]
92
+ subs = Dir.entries(@resource[:path]).reject { |d|
91
93
  d == "." or d == ".."
92
94
  }.length
93
95
  if subs > 0
94
96
  self.info "%s has %s children; not tidying" %
95
- [@parent[:path], subs]
96
- self.info Dir.entries(@parent[:path]).inspect
97
+ [@resource[:path], subs]
98
+ self.info Dir.entries(@resource[:path]).inspect
97
99
  else
98
- Dir.rmdir(@parent[:path])
100
+ Dir.rmdir(@resource[:path])
99
101
  end
100
102
  else
101
103
  self.debug "Not tidying directories"
102
104
  return nil
103
105
  end
104
106
  when "file":
105
- @parent.handlebackup(file)
107
+ @resource.handlebackup(file)
106
108
  File.unlink(file)
107
109
  when "link":
108
110
  File.unlink(file)
@@ -135,7 +137,7 @@ module Puppet
135
137
  if stat.ftype == "directory"
136
138
  type = :mtime
137
139
  else
138
- type = @parent[:type] || :atime
140
+ type = @resource[:type] || :atime
139
141
  end
140
142
 
141
143
  #return Integer(Time.now - stat.send(type))
@@ -150,8 +152,8 @@ module Puppet
150
152
  end
151
153
  end
152
154
 
153
- def insync?
154
- if (Time.now.to_i - @is) > self.should
155
+ def insync?(is)
156
+ if (Time.now.to_i - is) > self.should
155
157
  return false
156
158
  end
157
159
 
@@ -204,8 +206,8 @@ module Puppet
204
206
  end
205
207
  end
206
208
 
207
- def insync?
208
- if @is > self.should
209
+ def insync?(is)
210
+ if is > self.should
209
211
  return false
210
212
  end
211
213
 
@@ -252,8 +254,8 @@ module Puppet
252
254
  validate do
253
255
  end
254
256
 
255
- def self.list
256
- self.collect { |t| t }
257
+ def self.instances
258
+ []
257
259
  end
258
260
 
259
261
  @depthfirst = true
@@ -270,14 +272,18 @@ module Puppet
270
272
  end
271
273
 
272
274
  # only allow backing up into filebuckets
273
- unless self[:backup].is_a? Puppet::Network::Client::Dipper
275
+ unless self[:backup].is_a? Puppet::Network::Client.dipper
274
276
  self[:backup] = false
275
277
  end
276
278
  end
277
279
 
278
280
  def retrieve
279
281
  # Our ensure property knows how to retrieve everything for us.
280
- obj = @parameters[:ensure] and obj.retrieve
282
+ if obj = @parameters[:ensure]
283
+ return obj.retrieve
284
+ else
285
+ return {}
286
+ end
281
287
  end
282
288
 
283
289
  # Hack things a bit so we only ever check the ensure property.
@@ -287,4 +293,4 @@ module Puppet
287
293
  end
288
294
  end
289
295
 
290
- # $Id: tidy.rb 2179 2007-02-08 01:39:39Z luke $
296
+ # $Id: tidy.rb 2551 2007-06-04 20:37:14Z luke $