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.
- data/CHANGELOG +58 -0
- data/README +21 -18
- data/Rakefile +176 -36
- data/bin/puppet +34 -48
- data/bin/puppetca +41 -28
- data/bin/puppetd +87 -65
- data/bin/puppetdoc +99 -23
- data/bin/puppetmasterd +72 -91
- data/conf/redhat/client.init +80 -0
- data/conf/redhat/client.sysconfig +11 -0
- data/conf/redhat/fileserver.conf +12 -0
- data/conf/redhat/puppet.spec +130 -0
- data/conf/redhat/server.init +89 -0
- data/conf/redhat/server.sysconfig +9 -0
- data/examples/code/allatonce +2 -2
- data/examples/code/assignments +1 -1
- data/examples/code/classing +2 -2
- data/examples/code/components +2 -2
- data/examples/code/file.bl +5 -5
- data/examples/code/filedefaults +2 -2
- data/examples/code/fileparsing +1 -1
- data/examples/code/filerecursion +1 -1
- data/examples/code/functions +1 -1
- data/examples/code/groups +1 -1
- data/examples/code/importing +1 -1
- data/examples/code/nodes +1 -1
- data/examples/code/one +1 -1
- data/examples/code/relationships +2 -2
- data/examples/code/simpletests +5 -5
- data/examples/code/snippets/argumentdefaults +2 -2
- data/examples/code/snippets/casestatement +16 -8
- data/examples/code/snippets/classheirarchy.pp +4 -4
- data/examples/code/snippets/classincludes.pp +4 -4
- data/examples/code/snippets/classpathtest +2 -2
- data/examples/code/snippets/componentmetaparams.pp +11 -0
- data/examples/code/snippets/dirchmod +5 -5
- data/examples/code/snippets/emptyclass.pp +9 -0
- data/examples/code/snippets/failmissingexecpath.pp +1 -1
- data/examples/code/snippets/falsevalues.pp +1 -1
- data/examples/code/snippets/filecreate +5 -5
- data/examples/code/snippets/implicititeration +5 -5
- data/examples/code/snippets/multipleinstances +4 -4
- data/examples/code/snippets/namevartest +3 -3
- data/examples/code/snippets/scopetest +1 -1
- data/examples/code/snippets/selectorvalues.pp +3 -3
- data/examples/code/snippets/simpledefaults +2 -2
- data/examples/code/snippets/simpleselector +5 -5
- data/examples/code/snippets/singleary.pp +19 -0
- data/examples/root/etc/init.d/sleeper +3 -2
- data/ext/emacs/puppet-mode-init.el +6 -0
- data/ext/emacs/puppet-mode.el +189 -0
- data/ext/ldap/puppet.schema +17 -0
- data/ext/{module:puppet → module_puppet} +30 -31
- data/ext/vim/filetype.vim +9 -0
- data/ext/vim/puppet.vim +87 -0
- data/install.rb +63 -30
- data/lib/puppet.rb +216 -122
- data/lib/puppet/client.rb +51 -416
- data/lib/puppet/client/ca.rb +17 -0
- data/lib/puppet/client/dipper.rb +78 -0
- data/lib/puppet/client/file.rb +20 -0
- data/lib/puppet/client/log.rb +17 -0
- data/lib/puppet/client/master.rb +246 -0
- data/lib/puppet/client/proxy.rb +27 -0
- data/lib/puppet/client/status.rb +7 -0
- data/lib/puppet/config.rb +563 -13
- data/lib/puppet/daemon.rb +50 -22
- data/lib/puppet/element.rb +4 -4
- data/lib/puppet/event-loop.rb +1 -0
- data/lib/puppet/event-loop/better-definers.rb +367 -0
- data/lib/puppet/event-loop/event-loop.rb +355 -0
- data/lib/puppet/event-loop/signal-system.rb +220 -0
- data/lib/puppet/event.rb +9 -11
- data/lib/puppet/filetype.rb +195 -0
- data/lib/puppet/log.rb +35 -12
- data/lib/puppet/metric.rb +2 -2
- data/lib/puppet/networkclient.rb +145 -0
- data/lib/puppet/parameter.rb +335 -0
- data/lib/puppet/parser/ast.rb +42 -1453
- data/lib/puppet/parser/ast/astarray.rb +88 -0
- data/lib/puppet/parser/ast/branch.rb +47 -0
- data/lib/puppet/parser/ast/caseopt.rb +66 -0
- data/lib/puppet/parser/ast/casestatement.rb +78 -0
- data/lib/puppet/parser/ast/classdef.rb +78 -0
- data/lib/puppet/parser/ast/compdef.rb +111 -0
- data/lib/puppet/parser/ast/component.rb +105 -0
- data/lib/puppet/parser/ast/hostclass.rb +82 -0
- data/lib/puppet/parser/ast/leaf.rb +86 -0
- data/lib/puppet/parser/ast/node.rb +103 -0
- data/lib/puppet/parser/ast/nodedef.rb +68 -0
- data/lib/puppet/parser/ast/objectdef.rb +336 -0
- data/lib/puppet/parser/ast/objectparam.rb +30 -0
- data/lib/puppet/parser/ast/objectref.rb +76 -0
- data/lib/puppet/parser/ast/selector.rb +60 -0
- data/lib/puppet/parser/ast/typedefaults.rb +45 -0
- data/lib/puppet/parser/ast/vardef.rb +44 -0
- data/lib/puppet/parser/interpreter.rb +31 -14
- data/lib/puppet/parser/lexer.rb +2 -4
- data/lib/puppet/parser/parser.rb +332 -242
- data/lib/puppet/parser/scope.rb +55 -38
- data/lib/puppet/server.rb +43 -44
- data/lib/puppet/server/authstore.rb +3 -6
- data/lib/puppet/server/ca.rb +5 -2
- data/lib/puppet/server/filebucket.rb +2 -4
- data/lib/puppet/server/fileserver.rb +28 -12
- data/lib/puppet/server/logger.rb +15 -4
- data/lib/puppet/server/master.rb +62 -7
- data/lib/puppet/sslcertificates.rb +41 -607
- data/lib/puppet/sslcertificates/ca.rb +291 -0
- data/lib/puppet/sslcertificates/certificate.rb +283 -0
- data/lib/puppet/statechange.rb +6 -1
- data/lib/puppet/storage.rb +67 -56
- data/lib/puppet/transaction.rb +25 -9
- data/lib/puppet/transportable.rb +102 -22
- data/lib/puppet/type.rb +1096 -315
- data/lib/puppet/type/component.rb +30 -21
- data/lib/puppet/type/cron.rb +409 -448
- data/lib/puppet/type/exec.rb +234 -174
- data/lib/puppet/type/group.rb +65 -82
- data/lib/puppet/type/nameservice.rb +247 -3
- data/lib/puppet/type/nameservice/netinfo.rb +29 -40
- data/lib/puppet/type/nameservice/objectadd.rb +52 -66
- data/lib/puppet/type/nameservice/posix.rb +6 -194
- data/lib/puppet/type/package.rb +447 -295
- data/lib/puppet/type/package/apt.rb +51 -50
- data/lib/puppet/type/package/bsd.rb +82 -0
- data/lib/puppet/type/package/dpkg.rb +85 -88
- data/lib/puppet/type/package/rpm.rb +67 -63
- data/lib/puppet/type/package/sun.rb +119 -98
- data/lib/puppet/type/package/yum.rb +41 -37
- data/lib/puppet/type/parsedtype.rb +295 -0
- data/lib/puppet/type/parsedtype/host.rb +143 -0
- data/lib/puppet/type/parsedtype/port.rb +232 -0
- data/lib/puppet/type/parsedtype/sshkey.rb +129 -0
- data/lib/puppet/type/pfile.rb +484 -460
- data/lib/puppet/type/pfile/checksum.rb +237 -181
- data/lib/puppet/type/pfile/content.rb +67 -0
- data/lib/puppet/type/pfile/ensure.rb +212 -0
- data/lib/puppet/type/pfile/group.rb +106 -105
- data/lib/puppet/type/pfile/mode.rb +98 -101
- data/lib/puppet/type/pfile/source.rb +228 -209
- data/lib/puppet/type/pfile/type.rb +18 -21
- data/lib/puppet/type/pfile/uid.rb +127 -130
- data/lib/puppet/type/pfilebucket.rb +68 -63
- data/lib/puppet/type/schedule.rb +341 -0
- data/lib/puppet/type/service.rb +351 -255
- data/lib/puppet/type/service/base.rb +9 -14
- data/lib/puppet/type/service/debian.rb +32 -38
- data/lib/puppet/type/service/init.rb +130 -130
- data/lib/puppet/type/service/smf.rb +48 -20
- data/lib/puppet/type/state.rb +229 -16
- data/lib/puppet/type/symlink.rb +51 -63
- data/lib/puppet/type/tidy.rb +105 -102
- data/lib/puppet/type/user.rb +118 -180
- data/lib/puppet/util.rb +100 -6
- data/test/certmgr/certmgr.rb +0 -1
- data/test/client/client.rb +4 -4
- data/test/executables/puppetbin.rb +7 -14
- data/test/executables/puppetca.rb +18 -24
- data/test/executables/puppetd.rb +7 -16
- data/test/executables/puppetmasterd.rb +7 -9
- data/test/executables/puppetmodule.rb +11 -16
- data/test/language/ast.rb +11 -7
- data/test/language/interpreter.rb +1 -1
- data/test/language/scope.rb +2 -0
- data/test/language/snippets.rb +30 -5
- data/test/language/transportable.rb +77 -0
- data/test/other/config.rb +316 -0
- data/test/other/events.rb +22 -21
- data/test/other/log.rb +14 -14
- data/test/other/metrics.rb +4 -8
- data/test/other/overrides.rb +5 -5
- data/test/other/relationships.rb +4 -2
- data/test/other/storage.rb +64 -3
- data/test/other/transactions.rb +20 -20
- data/test/parser/parser.rb +7 -4
- data/test/puppet/conffiles.rb +12 -12
- data/test/puppet/defaults.rb +13 -11
- data/test/puppet/utiltest.rb +14 -11
- data/test/puppettest.rb +156 -48
- data/test/server/bucket.rb +2 -2
- data/test/server/fileserver.rb +6 -6
- data/test/server/logger.rb +19 -11
- data/test/server/master.rb +33 -4
- data/test/server/server.rb +2 -7
- data/test/types/basic.rb +5 -7
- data/test/types/component.rb +22 -18
- data/test/types/cron.rb +111 -44
- data/test/types/exec.rb +116 -59
- data/test/types/file.rb +262 -137
- data/test/types/filebucket.rb +13 -15
- data/test/types/fileignoresource.rb +12 -16
- data/test/types/filesources.rb +73 -48
- data/test/types/filetype.rb +13 -15
- data/test/types/group.rb +15 -13
- data/test/types/host.rb +146 -0
- data/test/types/package.rb +74 -63
- data/test/types/port.rb +139 -0
- data/test/types/query.rb +8 -8
- data/test/types/schedule.rb +335 -0
- data/test/types/service.rb +137 -21
- data/test/types/sshkey.rb +140 -0
- data/test/types/symlink.rb +3 -5
- data/test/types/tidy.rb +5 -14
- data/test/types/type.rb +67 -11
- data/test/types/user.rb +25 -23
- metadata +186 -122
- data/lib/puppet/type/pfile/create.rb +0 -108
- data/lib/puppet/type/pprocess.rb +0 -97
- data/lib/puppet/type/typegen.rb +0 -149
- data/lib/puppet/type/typegen/filerecord.rb +0 -243
- data/lib/puppet/type/typegen/filetype.rb +0 -316
- data/test/other/state.rb +0 -106
@@ -1,31 +1,28 @@
|
|
1
1
|
module Puppet
|
2
|
-
|
3
|
-
|
4
|
-
|
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
|
-
|
9
|
-
|
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
|
-
|
20
|
-
|
21
|
-
|
17
|
+
# so this state is never marked out of sync
|
18
|
+
@should = [@is]
|
19
|
+
end
|
22
20
|
|
23
21
|
|
24
|
-
|
25
|
-
|
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
|
28
|
+
# $Id: type.rb 862 2006-01-31 02:07:56Z luke $
|
@@ -1,166 +1,163 @@
|
|
1
1
|
module Puppet
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
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
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
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
|
-
|
44
|
-
|
45
|
-
if
|
46
|
-
|
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
|
50
|
-
|
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
|
-
|
58
|
-
return tmp
|
59
|
-
else
|
60
|
-
return false
|
61
|
-
end
|
58
|
+
return false
|
62
59
|
end
|
63
60
|
end
|
61
|
+
end
|
64
62
|
|
65
|
-
|
66
|
-
|
67
|
-
|
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
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
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
|
-
|
85
|
-
unless stat = @parent.stat(true)
|
86
|
-
@is = :notfound
|
87
|
-
return
|
88
|
-
end
|
88
|
+
self.is = stat.uid
|
89
89
|
|
90
|
-
|
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
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
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
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
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
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
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
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
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
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
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
|
-
|
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
|
-
|
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
|
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
|
-
|
9
|
-
|
10
|
-
|
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
|
-
|
21
|
+
@states = []
|
13
22
|
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
:port
|
19
|
-
]
|
23
|
+
newparam(:name) do
|
24
|
+
desc "The name of the filebucket."
|
25
|
+
isnamevar
|
26
|
+
end
|
20
27
|
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
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
|
-
|
30
|
-
|
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
|
-
|
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
|
-
|
39
|
-
|
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
|
-
|
42
|
-
|
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
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
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
|
-
|
77
|
-
end
|
81
|
+
end
|
82
|
+
end
|
78
83
|
end
|
79
84
|
|
80
|
-
# $Id: pfilebucket.rb
|
85
|
+
# $Id: pfilebucket.rb 841 2006-01-18 17:24:15Z luke $
|