puppet 0.9.2 → 0.13.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 (213) hide show
  1. data/CHANGELOG +58 -0
  2. data/README +21 -18
  3. data/Rakefile +176 -36
  4. data/bin/puppet +34 -48
  5. data/bin/puppetca +41 -28
  6. data/bin/puppetd +87 -65
  7. data/bin/puppetdoc +99 -23
  8. data/bin/puppetmasterd +72 -91
  9. data/conf/redhat/client.init +80 -0
  10. data/conf/redhat/client.sysconfig +11 -0
  11. data/conf/redhat/fileserver.conf +12 -0
  12. data/conf/redhat/puppet.spec +130 -0
  13. data/conf/redhat/server.init +89 -0
  14. data/conf/redhat/server.sysconfig +9 -0
  15. data/examples/code/allatonce +2 -2
  16. data/examples/code/assignments +1 -1
  17. data/examples/code/classing +2 -2
  18. data/examples/code/components +2 -2
  19. data/examples/code/file.bl +5 -5
  20. data/examples/code/filedefaults +2 -2
  21. data/examples/code/fileparsing +1 -1
  22. data/examples/code/filerecursion +1 -1
  23. data/examples/code/functions +1 -1
  24. data/examples/code/groups +1 -1
  25. data/examples/code/importing +1 -1
  26. data/examples/code/nodes +1 -1
  27. data/examples/code/one +1 -1
  28. data/examples/code/relationships +2 -2
  29. data/examples/code/simpletests +5 -5
  30. data/examples/code/snippets/argumentdefaults +2 -2
  31. data/examples/code/snippets/casestatement +16 -8
  32. data/examples/code/snippets/classheirarchy.pp +4 -4
  33. data/examples/code/snippets/classincludes.pp +4 -4
  34. data/examples/code/snippets/classpathtest +2 -2
  35. data/examples/code/snippets/componentmetaparams.pp +11 -0
  36. data/examples/code/snippets/dirchmod +5 -5
  37. data/examples/code/snippets/emptyclass.pp +9 -0
  38. data/examples/code/snippets/failmissingexecpath.pp +1 -1
  39. data/examples/code/snippets/falsevalues.pp +1 -1
  40. data/examples/code/snippets/filecreate +5 -5
  41. data/examples/code/snippets/implicititeration +5 -5
  42. data/examples/code/snippets/multipleinstances +4 -4
  43. data/examples/code/snippets/namevartest +3 -3
  44. data/examples/code/snippets/scopetest +1 -1
  45. data/examples/code/snippets/selectorvalues.pp +3 -3
  46. data/examples/code/snippets/simpledefaults +2 -2
  47. data/examples/code/snippets/simpleselector +5 -5
  48. data/examples/code/snippets/singleary.pp +19 -0
  49. data/examples/root/etc/init.d/sleeper +3 -2
  50. data/ext/emacs/puppet-mode-init.el +6 -0
  51. data/ext/emacs/puppet-mode.el +189 -0
  52. data/ext/ldap/puppet.schema +17 -0
  53. data/ext/{module:puppet → module_puppet} +30 -31
  54. data/ext/vim/filetype.vim +9 -0
  55. data/ext/vim/puppet.vim +87 -0
  56. data/install.rb +63 -30
  57. data/lib/puppet.rb +216 -122
  58. data/lib/puppet/client.rb +51 -416
  59. data/lib/puppet/client/ca.rb +17 -0
  60. data/lib/puppet/client/dipper.rb +78 -0
  61. data/lib/puppet/client/file.rb +20 -0
  62. data/lib/puppet/client/log.rb +17 -0
  63. data/lib/puppet/client/master.rb +246 -0
  64. data/lib/puppet/client/proxy.rb +27 -0
  65. data/lib/puppet/client/status.rb +7 -0
  66. data/lib/puppet/config.rb +563 -13
  67. data/lib/puppet/daemon.rb +50 -22
  68. data/lib/puppet/element.rb +4 -4
  69. data/lib/puppet/event-loop.rb +1 -0
  70. data/lib/puppet/event-loop/better-definers.rb +367 -0
  71. data/lib/puppet/event-loop/event-loop.rb +355 -0
  72. data/lib/puppet/event-loop/signal-system.rb +220 -0
  73. data/lib/puppet/event.rb +9 -11
  74. data/lib/puppet/filetype.rb +195 -0
  75. data/lib/puppet/log.rb +35 -12
  76. data/lib/puppet/metric.rb +2 -2
  77. data/lib/puppet/networkclient.rb +145 -0
  78. data/lib/puppet/parameter.rb +335 -0
  79. data/lib/puppet/parser/ast.rb +42 -1453
  80. data/lib/puppet/parser/ast/astarray.rb +88 -0
  81. data/lib/puppet/parser/ast/branch.rb +47 -0
  82. data/lib/puppet/parser/ast/caseopt.rb +66 -0
  83. data/lib/puppet/parser/ast/casestatement.rb +78 -0
  84. data/lib/puppet/parser/ast/classdef.rb +78 -0
  85. data/lib/puppet/parser/ast/compdef.rb +111 -0
  86. data/lib/puppet/parser/ast/component.rb +105 -0
  87. data/lib/puppet/parser/ast/hostclass.rb +82 -0
  88. data/lib/puppet/parser/ast/leaf.rb +86 -0
  89. data/lib/puppet/parser/ast/node.rb +103 -0
  90. data/lib/puppet/parser/ast/nodedef.rb +68 -0
  91. data/lib/puppet/parser/ast/objectdef.rb +336 -0
  92. data/lib/puppet/parser/ast/objectparam.rb +30 -0
  93. data/lib/puppet/parser/ast/objectref.rb +76 -0
  94. data/lib/puppet/parser/ast/selector.rb +60 -0
  95. data/lib/puppet/parser/ast/typedefaults.rb +45 -0
  96. data/lib/puppet/parser/ast/vardef.rb +44 -0
  97. data/lib/puppet/parser/interpreter.rb +31 -14
  98. data/lib/puppet/parser/lexer.rb +2 -4
  99. data/lib/puppet/parser/parser.rb +332 -242
  100. data/lib/puppet/parser/scope.rb +55 -38
  101. data/lib/puppet/server.rb +43 -44
  102. data/lib/puppet/server/authstore.rb +3 -6
  103. data/lib/puppet/server/ca.rb +5 -2
  104. data/lib/puppet/server/filebucket.rb +2 -4
  105. data/lib/puppet/server/fileserver.rb +28 -12
  106. data/lib/puppet/server/logger.rb +15 -4
  107. data/lib/puppet/server/master.rb +62 -7
  108. data/lib/puppet/sslcertificates.rb +41 -607
  109. data/lib/puppet/sslcertificates/ca.rb +291 -0
  110. data/lib/puppet/sslcertificates/certificate.rb +283 -0
  111. data/lib/puppet/statechange.rb +6 -1
  112. data/lib/puppet/storage.rb +67 -56
  113. data/lib/puppet/transaction.rb +25 -9
  114. data/lib/puppet/transportable.rb +102 -22
  115. data/lib/puppet/type.rb +1096 -315
  116. data/lib/puppet/type/component.rb +30 -21
  117. data/lib/puppet/type/cron.rb +409 -448
  118. data/lib/puppet/type/exec.rb +234 -174
  119. data/lib/puppet/type/group.rb +65 -82
  120. data/lib/puppet/type/nameservice.rb +247 -3
  121. data/lib/puppet/type/nameservice/netinfo.rb +29 -40
  122. data/lib/puppet/type/nameservice/objectadd.rb +52 -66
  123. data/lib/puppet/type/nameservice/posix.rb +6 -194
  124. data/lib/puppet/type/package.rb +447 -295
  125. data/lib/puppet/type/package/apt.rb +51 -50
  126. data/lib/puppet/type/package/bsd.rb +82 -0
  127. data/lib/puppet/type/package/dpkg.rb +85 -88
  128. data/lib/puppet/type/package/rpm.rb +67 -63
  129. data/lib/puppet/type/package/sun.rb +119 -98
  130. data/lib/puppet/type/package/yum.rb +41 -37
  131. data/lib/puppet/type/parsedtype.rb +295 -0
  132. data/lib/puppet/type/parsedtype/host.rb +143 -0
  133. data/lib/puppet/type/parsedtype/port.rb +232 -0
  134. data/lib/puppet/type/parsedtype/sshkey.rb +129 -0
  135. data/lib/puppet/type/pfile.rb +484 -460
  136. data/lib/puppet/type/pfile/checksum.rb +237 -181
  137. data/lib/puppet/type/pfile/content.rb +67 -0
  138. data/lib/puppet/type/pfile/ensure.rb +212 -0
  139. data/lib/puppet/type/pfile/group.rb +106 -105
  140. data/lib/puppet/type/pfile/mode.rb +98 -101
  141. data/lib/puppet/type/pfile/source.rb +228 -209
  142. data/lib/puppet/type/pfile/type.rb +18 -21
  143. data/lib/puppet/type/pfile/uid.rb +127 -130
  144. data/lib/puppet/type/pfilebucket.rb +68 -63
  145. data/lib/puppet/type/schedule.rb +341 -0
  146. data/lib/puppet/type/service.rb +351 -255
  147. data/lib/puppet/type/service/base.rb +9 -14
  148. data/lib/puppet/type/service/debian.rb +32 -38
  149. data/lib/puppet/type/service/init.rb +130 -130
  150. data/lib/puppet/type/service/smf.rb +48 -20
  151. data/lib/puppet/type/state.rb +229 -16
  152. data/lib/puppet/type/symlink.rb +51 -63
  153. data/lib/puppet/type/tidy.rb +105 -102
  154. data/lib/puppet/type/user.rb +118 -180
  155. data/lib/puppet/util.rb +100 -6
  156. data/test/certmgr/certmgr.rb +0 -1
  157. data/test/client/client.rb +4 -4
  158. data/test/executables/puppetbin.rb +7 -14
  159. data/test/executables/puppetca.rb +18 -24
  160. data/test/executables/puppetd.rb +7 -16
  161. data/test/executables/puppetmasterd.rb +7 -9
  162. data/test/executables/puppetmodule.rb +11 -16
  163. data/test/language/ast.rb +11 -7
  164. data/test/language/interpreter.rb +1 -1
  165. data/test/language/scope.rb +2 -0
  166. data/test/language/snippets.rb +30 -5
  167. data/test/language/transportable.rb +77 -0
  168. data/test/other/config.rb +316 -0
  169. data/test/other/events.rb +22 -21
  170. data/test/other/log.rb +14 -14
  171. data/test/other/metrics.rb +4 -8
  172. data/test/other/overrides.rb +5 -5
  173. data/test/other/relationships.rb +4 -2
  174. data/test/other/storage.rb +64 -3
  175. data/test/other/transactions.rb +20 -20
  176. data/test/parser/parser.rb +7 -4
  177. data/test/puppet/conffiles.rb +12 -12
  178. data/test/puppet/defaults.rb +13 -11
  179. data/test/puppet/utiltest.rb +14 -11
  180. data/test/puppettest.rb +156 -48
  181. data/test/server/bucket.rb +2 -2
  182. data/test/server/fileserver.rb +6 -6
  183. data/test/server/logger.rb +19 -11
  184. data/test/server/master.rb +33 -4
  185. data/test/server/server.rb +2 -7
  186. data/test/types/basic.rb +5 -7
  187. data/test/types/component.rb +22 -18
  188. data/test/types/cron.rb +111 -44
  189. data/test/types/exec.rb +116 -59
  190. data/test/types/file.rb +262 -137
  191. data/test/types/filebucket.rb +13 -15
  192. data/test/types/fileignoresource.rb +12 -16
  193. data/test/types/filesources.rb +73 -48
  194. data/test/types/filetype.rb +13 -15
  195. data/test/types/group.rb +15 -13
  196. data/test/types/host.rb +146 -0
  197. data/test/types/package.rb +74 -63
  198. data/test/types/port.rb +139 -0
  199. data/test/types/query.rb +8 -8
  200. data/test/types/schedule.rb +335 -0
  201. data/test/types/service.rb +137 -21
  202. data/test/types/sshkey.rb +140 -0
  203. data/test/types/symlink.rb +3 -5
  204. data/test/types/tidy.rb +5 -14
  205. data/test/types/type.rb +67 -11
  206. data/test/types/user.rb +25 -23
  207. metadata +186 -122
  208. data/lib/puppet/type/pfile/create.rb +0 -108
  209. data/lib/puppet/type/pprocess.rb +0 -97
  210. data/lib/puppet/type/typegen.rb +0 -149
  211. data/lib/puppet/type/typegen/filerecord.rb +0 -243
  212. data/lib/puppet/type/typegen/filetype.rb +0 -316
  213. data/test/other/state.rb +0 -106
@@ -1,31 +1,28 @@
1
1
  module Puppet
2
- class State
3
- class PFileType < Puppet::State
4
- require 'etc'
5
- @doc = "A read-only state to check the file type."
6
- @name = :type
2
+ Puppet.type(:file).newstate(:type) do
3
+ require 'etc'
4
+ desc "A read-only state to check the file type."
7
5
 
8
- def shouldprocess(value)
9
- raise Puppet::Error, ":type is read-only"
6
+ #munge do |value|
7
+ # raise Puppet::Error, ":type is read-only"
8
+ #end
9
+
10
+ def retrieve
11
+ if stat = @parent.stat(false)
12
+ @is = stat.ftype
13
+ else
14
+ @is = :absent
10
15
  end
11
-
12
- def retrieve
13
- if stat = @parent.stat(true)
14
- @is = stat.ftype
15
- else
16
- @is = :notfound
17
- end
18
16
 
19
- # so this state is never marked out of sync
20
- @should = [@is]
21
- end
17
+ # so this state is never marked out of sync
18
+ @should = [@is]
19
+ end
22
20
 
23
21
 
24
- def sync
25
- raise Puppet::Error, ":type is read-only"
26
- end
22
+ def sync
23
+ raise Puppet::Error, ":type is read-only"
27
24
  end
28
25
  end
29
26
  end
30
27
 
31
- # $Id: type.rb 713 2005-10-02 01:56:38Z luke $
28
+ # $Id: type.rb 862 2006-01-31 02:07:56Z luke $
@@ -1,166 +1,163 @@
1
1
  module Puppet
2
- class State
3
- class PFileUID < Puppet::State
4
- require 'etc'
5
- @doc = "To whom the file should belong. Argument can be user name or
6
- user ID."
7
- @name = :owner
8
- @event = :inode_changed
9
-
10
- def id2name(id)
11
- if id.is_a?(Symbol)
12
- return id.to_s
13
- end
14
- begin
15
- user = Etc.getpwuid(id)
16
- rescue TypeError
17
- return nil
18
- rescue ArgumentError
19
- return nil
20
- end
2
+ Puppet.type(:file).newstate(:owner) do
3
+ require 'etc'
4
+ desc "To whom the file should belong. Argument can be user name or
5
+ user ID."
6
+ @event = :file_changed
7
+
8
+ def id2name(id)
9
+ if id.is_a?(Symbol)
10
+ return id.to_s
11
+ end
12
+ begin
13
+ user = Etc.getpwuid(id)
14
+ rescue TypeError
15
+ return nil
16
+ rescue ArgumentError
17
+ return nil
18
+ end
19
+ if user.uid == ""
20
+ return nil
21
+ else
22
+ return user.name
23
+ end
24
+ end
25
+
26
+ def name2id(value)
27
+ if value.is_a?(Symbol)
28
+ return value.to_s
29
+ end
30
+ begin
31
+ user = Etc.getpwnam(value)
21
32
  if user.uid == ""
22
33
  return nil
23
- else
24
- return user.name
25
34
  end
35
+ return user.uid
36
+ rescue ArgumentError => detail
37
+ return nil
26
38
  end
39
+ end
27
40
 
28
- def name2id(value)
29
- if value.is_a?(Symbol)
30
- return value.to_s
31
- end
32
- begin
33
- user = Etc.getpwnam(value)
34
- if user.uid == ""
35
- return nil
36
- end
37
- return user.uid
38
- rescue ArgumentError => detail
39
- return nil
40
- end
41
+ # Determine if the user is valid, and if so, return the UID
42
+ def validuser?(value)
43
+ if value =~ /^\d+$/
44
+ value = value.to_i
41
45
  end
42
46
 
43
- # Determine if the user is valid, and if so, return the UID
44
- def validuser?(value)
45
- if value =~ /^\d+$/
46
- value = value.to_i
47
+ if value.is_a?(Integer)
48
+ # verify the user is a valid user
49
+ if tmp = id2name(value)
50
+ return value
51
+ else
52
+ return false
47
53
  end
48
-
49
- if value.is_a?(Integer)
50
- # verify the user is a valid user
51
- if tmp = id2name(value)
52
- return value
53
- else
54
- return false
55
- end
54
+ else
55
+ if tmp = name2id(value)
56
+ return tmp
56
57
  else
57
- if tmp = name2id(value)
58
- return tmp
59
- else
60
- return false
61
- end
58
+ return false
62
59
  end
63
60
  end
61
+ end
64
62
 
65
- # We want to print names, not numbers
66
- def is_to_s
67
- id2name(@is) || @is
63
+ # We want to print names, not numbers
64
+ def is_to_s
65
+ id2name(@is) || @is
66
+ end
67
+
68
+ def should_to_s
69
+ case self.should
70
+ when Symbol
71
+ self.should.to_s
72
+ when Integer
73
+ id2name(self.should) || self.should
74
+ when String
75
+ self.should
76
+ else
77
+ raise Puppet::DevError, "Invalid uid type %s(%s)" %
78
+ [self.should.class, self.should]
68
79
  end
80
+ end
69
81
 
70
- def should_to_s
71
- case self.should
72
- when Symbol
73
- self.should.to_s
74
- when Integer
75
- id2name(self.should) || self.should
76
- when String
77
- self.should
78
- else
79
- raise Puppet::DevError, "Invalid uid type %s(%s)" %
80
- [self.should.class, self.should]
81
- end
82
+ def retrieve
83
+ unless stat = @parent.stat(false)
84
+ @is = :absent
85
+ return
82
86
  end
83
87
 
84
- def retrieve
85
- unless stat = @parent.stat(true)
86
- @is = :notfound
87
- return
88
- end
88
+ self.is = stat.uid
89
89
 
90
- self.is = stat.uid
90
+ # On OS X, files that are owned by -2 get returned as really
91
+ # large UIDs instead of negative ones. This isn't a Ruby bug,
92
+ # it's an OS X bug, since it shows up in perl, too.
93
+ if @is > 120000
94
+ self.warning "current state is silly: %s" % @is
95
+ @is = :absent
96
+ end
97
+ end
91
98
 
92
- # On OS X, files that are owned by -2 get returned as really
93
- # large UIDs instead of negative ones. This isn't a Ruby bug,
94
- # it's an OS X bug, since it shows up in perl, too.
95
- if @is > 120000
96
- self.warning "current state is silly: %s" % @is
97
- @is = :notfound
98
- end
99
+ # If we're not root, we can check the values but we cannot change
100
+ # them. We can't really do any processing here, because users
101
+ # might not exist yet. FIXME There's still a bit of a problem here
102
+ # if the user's UID changes at run time, but we're just going to
103
+ # have to be okay with that for now, unfortunately.
104
+ munge do |value|
105
+ if tmp = self.validuser?(value)
106
+ return tmp
107
+ else
108
+ return value
99
109
  end
110
+ end
100
111
 
101
- # If we're not root, we can check the values but we cannot change
102
- # them. We can't really do any processing here, because users
103
- # might not exist yet. FIXME There's still a bit of a problem here
104
- # if the user's UID changes at run time, but we're just going to
105
- # have to be okay with that for now, unfortunately.
106
- def shouldprocess(value)
107
- if tmp = self.validuser?(value)
108
- return tmp
109
- else
110
- return value
112
+ def sync
113
+ unless Process.uid == 0
114
+ unless defined? @@notifieduid
115
+ self.notice "Cannot manage ownership unless running as root"
116
+ #@parent.delete(self.name)
117
+ @@notifieduid = true
111
118
  end
119
+ return nil
112
120
  end
113
121
 
114
- def sync
115
- unless Process.uid == 0
116
- unless defined? @@notifieduid
117
- self.notice "Cannot manage ownership unless running as root"
118
- #@parent.delete(self.name)
119
- @@notifieduid = true
120
- end
121
- return nil
122
+ user = nil
123
+ unless user = self.validuser?(self.should)
124
+ tmp = self.should
125
+ unless defined? @@usermissing
126
+ @@usermissing = {}
122
127
  end
123
128
 
124
- user = nil
125
- unless user = self.validuser?(self.should)
126
- tmp = self.should
127
- unless defined? @@usermissing
128
- @@usermissing = {}
129
- end
130
-
131
- if @@usermissing.include?(tmp)
132
- @@usermissing[tmp] += 1
133
- else
134
- self.notice "user %s does not exist" % tmp
135
- @@usermissing[tmp] = 1
136
- return nil
137
- end
129
+ if @@usermissing.include?(tmp)
130
+ @@usermissing[tmp] += 1
131
+ else
132
+ self.notice "user %s does not exist" % tmp
133
+ @@usermissing[tmp] = 1
138
134
  end
135
+ return nil
136
+ end
139
137
 
140
- if @is == :notfound
141
- @parent.stat(true)
142
- self.retrieve
143
- if @is == :notfound
144
- self.info "File does not exist; cannot set owner"
145
- return nil
146
- end
147
- if self.insync?
148
- return nil
149
- end
150
- #self.debug "%s: after refresh, is '%s'" % [self.class.name,@is]
138
+ if @is == :absent
139
+ @parent.stat(true)
140
+ self.retrieve
141
+ if @is == :absent
142
+ self.info "File does not exist; cannot set owner"
143
+ return nil
151
144
  end
152
-
153
- begin
154
- File.chown(user, nil, @parent[:path])
155
- rescue => detail
156
- raise Puppet::Error, "Failed to set owner to '%s': %s" %
157
- [user, detail]
145
+ if self.insync?
146
+ return nil
158
147
  end
148
+ #self.debug "%s: after refresh, is '%s'" % [self.class.name,@is]
149
+ end
159
150
 
160
- return :inode_changed
151
+ begin
152
+ File.chown(user, nil, @parent[:path])
153
+ rescue => detail
154
+ raise Puppet::Error, "Failed to set owner to '%s': %s" %
155
+ [user, detail]
161
156
  end
157
+
158
+ return :file_changed
162
159
  end
163
160
  end
164
161
  end
165
162
 
166
- # $Id: uid.rb 749 2005-11-22 05:33:42Z luke $
163
+ # $Id: uid.rb 862 2006-01-31 02:07:56Z luke $
@@ -1,80 +1,85 @@
1
- # An interface for managing filebuckets from puppet
2
-
3
- # $Id: pfilebucket.rb 632 2005-09-07 05:28:28Z luke $
4
-
5
1
  require 'puppet/server/filebucket'
6
2
 
7
3
  module Puppet
8
- class Type
9
- class PFileBucket < Type
10
- attr_reader :bucket
4
+ newtype(:filebucket) do
5
+ attr_reader :bucket
6
+
7
+ @doc = "A repository for backing up files. If no filebucket is
8
+ defined, then files will be backed up in their current directory,
9
+ but the filebucket can be either a host- or site-global repository
10
+ for backing up. It stores files and returns the MD5 sum, which
11
+ can later be used to retrieve the file if restoration becomes
12
+ necessary. A filebucket does not do any work itself; instead,
13
+ it can be specified as the value of *backup* in a **file** object.
14
+
15
+ Currently, filebuckets are only useful for manual retrieval of
16
+ accidentally removed files (e.g., you look in the log for the md5
17
+ sum and retrieve the file with that sum from the filebucket), but
18
+ when transactions are fully supported filebuckets will be used to
19
+ undo transactions."
11
20
 
12
- @states = []
21
+ @states = []
13
22
 
14
- @parameters = [
15
- :name,
16
- :server,
17
- :path,
18
- :port
19
- ]
23
+ newparam(:name) do
24
+ desc "The name of the filebucket."
25
+ isnamevar
26
+ end
20
27
 
21
- @doc = "A repository for backing up files. If no filebucket is
22
- defined, then files will be backed up in their current directory,
23
- but the filebucket can be either a host- or site-global repository
24
- for backing up. It stores files and returns the MD5 sum, which
25
- can later be used to retrieve the file if restoration becomes
26
- necessary. A filebucket does not do any work itself; instead,
27
- it can be specified as the value of *backup* in a **file** object."
28
+ newparam(:server) do
29
+ desc "The server providing the filebucket. If this is
30
+ not specified, then the bucket is local and *path* must be
31
+ specified."
32
+ end
28
33
 
29
- @paramdoc[:name] = "The name of the filebucket."
30
- @paramdoc[:server] = "The server providing the filebucket. If this is
31
- not specified, then the bucket is local and *path* must be specified."
32
- @paramdoc[:port] = "The port on which the remote server is listening.
34
+ newparam(:port) do
35
+ desc "The port on which the remote server is listening.
33
36
  Defaults to the normal Puppet port, %s." % Puppet[:masterport]
34
- @paramdoc[:path] = "The path to the local filebucket. If this is
37
+
38
+ defaultto Puppet[:masterport]
39
+ end
40
+
41
+ newparam(:path) do
42
+ desc "The path to the local filebucket. If this is
35
43
  not specified, then the bucket is remote and *server* must be
36
44
  specified."
45
+ end
37
46
 
38
- @name = :filebucket
39
- @namevar = :name
47
+ # get the actual filebucket object
48
+ def self.bucket(name)
49
+ oname, object = @objects.find { |oname, o| oname == name }
50
+ return object.bucket
51
+ end
40
52
 
41
- # get the actual filebucket object
42
- def self.bucket(name)
43
- oname, object = @objects.find { |oname, o| oname == name }
44
- return object.bucket
45
- end
46
-
47
- def initialize(hash)
48
- super
53
+ def initialize(hash)
54
+ super
49
55
 
50
- if @parameters.include?(:server)
51
- @parameters[:port] ||= FileBucket::DEFAULTPORT
52
- begin
53
- @bucket = Puppet::Client::Dipper.new(
54
- :Server => @parameters[:server],
55
- :Port => @parameters[:port]
56
- )
57
- rescue => detail
58
- raise Puppet::Error.new(
59
- "Could not create remote filebucket: %s" % detail
60
- )
61
- end
62
- else
63
- @parameters[:path] ||= Puppet[:bucketdir]
64
- begin
65
- @bucket = Puppet::Client::Dipper.new(
66
- :Path => @parameters[:path]
67
- )
68
- rescue => detail
69
- raise Puppet::Error.new(
70
- "Could not create local filebucket: %s" % detail
71
- )
72
- end
56
+ if self[:server]
57
+ begin
58
+ @bucket = Puppet::Client::Dipper.new(
59
+ :Server => self[:server],
60
+ :Port => self[:port]
61
+ )
62
+ rescue => detail
63
+ self.fail(
64
+ "Could not create remote filebucket: %s" % detail
65
+ )
66
+ end
67
+ else
68
+ unless self[:path]
69
+ self[:path] = Puppet[:bucketdir]
70
+ end
71
+ begin
72
+ @bucket = Puppet::Client::Dipper.new(
73
+ :Path => self[:path]
74
+ )
75
+ rescue => detail
76
+ self.fail(
77
+ "Could not create local filebucket: %s" % detail
78
+ )
73
79
  end
74
80
  end
75
-
76
- end
77
- end
81
+ end
82
+ end
78
83
  end
79
84
 
80
- # $Id: pfilebucket.rb 632 2005-09-07 05:28:28Z luke $
85
+ # $Id: pfilebucket.rb 841 2006-01-18 17:24:15Z luke $