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.
- data/CHANGELOG +156 -0
- data/README +2 -2
- data/Rakefile +6 -6
- data/bin/filebucket +212 -0
- data/bin/puppet +2 -0
- data/bin/puppetca +2 -4
- data/bin/puppetd +16 -15
- data/bin/puppetdoc +46 -496
- data/bin/puppetmasterd +3 -5
- data/bin/puppetrun +8 -3
- data/bin/ralsh +271 -0
- data/conf/redhat/client.init +1 -1
- data/conf/redhat/puppet.spec +13 -2
- data/conf/solaris/pkginfo +1 -1
- data/ext/puppet-test +374 -0
- data/install.rb +40 -31
- data/lib/puppet.rb +39 -4
- data/lib/puppet/config_stores/rest.rb +60 -0
- data/lib/puppet/configuration.rb +312 -17
- data/lib/puppet/external/event-loop/event-loop.rb +4 -0
- data/lib/puppet/external/gratr/rdot.rb +1 -1
- data/lib/puppet/fact_stores/yaml.rb +42 -0
- data/lib/puppet/feature/base.rb +4 -1
- data/lib/puppet/metatype/attributes.rb +20 -43
- data/lib/puppet/metatype/container.rb +1 -36
- data/lib/puppet/metatype/evaluation.rb +48 -19
- data/lib/puppet/metatype/instances.rb +35 -1
- data/lib/puppet/metatype/metaparams.rb +23 -19
- data/lib/puppet/metatype/providers.rb +25 -38
- data/lib/puppet/network/client/ca.rb +8 -5
- data/lib/puppet/network/client/master.rb +59 -17
- data/lib/puppet/network/handler.rb +18 -1
- data/lib/puppet/network/handler/ca.rb +9 -3
- data/lib/puppet/network/handler/facts.rb +70 -0
- data/lib/puppet/network/handler/filebucket.rb +4 -1
- data/lib/puppet/network/handler/fileserver.rb +65 -21
- data/lib/puppet/network/handler/master.rb +6 -3
- data/lib/puppet/network/handler/report.rb +12 -26
- data/lib/puppet/network/handler/resource.rb +14 -2
- data/lib/puppet/network/handler/runner.rb +5 -1
- data/lib/puppet/network/handler/status.rb +5 -1
- data/lib/puppet/network/server/mongrel.rb +4 -4
- data/lib/puppet/network/server/webrick.rb +14 -3
- data/lib/puppet/parameter.rb +30 -25
- data/lib/puppet/parser/ast.rb +1 -6
- data/lib/puppet/parser/ast/component.rb +23 -20
- data/lib/puppet/parser/ast/hostclass.rb +7 -11
- data/lib/puppet/parser/ast/leaf.rb +4 -1
- data/lib/puppet/parser/ast/node.rb +6 -8
- data/lib/puppet/parser/functions.rb +7 -4
- data/lib/puppet/parser/interpreter.rb +155 -205
- data/lib/puppet/parser/lexer.rb +35 -2
- data/lib/puppet/parser/parser.rb +705 -612
- data/lib/puppet/parser/resource.rb +91 -48
- data/lib/puppet/parser/resource/param.rb +52 -29
- data/lib/puppet/parser/scope.rb +28 -23
- data/lib/puppet/pgraph.rb +26 -21
- data/lib/puppet/propertychange.rb +12 -12
- data/lib/puppet/provider.rb +102 -31
- data/lib/puppet/provider/cron/crontab.rb +7 -8
- data/lib/puppet/provider/group/groupadd.rb +4 -4
- data/lib/puppet/provider/group/pw.rb +3 -3
- data/lib/puppet/provider/mount.rb +8 -8
- data/lib/puppet/provider/mount/netinfo.rb +5 -5
- data/lib/puppet/provider/mount/parsed.rb +2 -2
- data/lib/puppet/provider/nameservice.rb +19 -31
- data/lib/puppet/provider/nameservice/netinfo.rb +14 -14
- data/lib/puppet/provider/nameservice/objectadd.rb +4 -4
- data/lib/puppet/provider/nameservice/pw.rb +4 -4
- data/lib/puppet/provider/package.rb +31 -0
- data/lib/puppet/provider/package/appdmg.rb +118 -0
- data/lib/puppet/provider/package/apple.rb +18 -16
- data/lib/puppet/provider/package/apt.rb +13 -15
- data/lib/puppet/provider/package/aptitude.rb +5 -3
- data/lib/puppet/provider/package/aptrpm.rb +9 -11
- data/lib/puppet/provider/package/blastwave.rb +9 -9
- data/lib/puppet/provider/package/darwinport.rb +12 -11
- data/lib/puppet/provider/package/dpkg.rb +20 -12
- data/lib/puppet/provider/package/fink.rb +87 -0
- data/lib/puppet/provider/package/freebsd.rb +10 -11
- data/lib/puppet/provider/package/gem.rb +15 -15
- data/lib/puppet/provider/package/openbsd.rb +12 -17
- data/lib/puppet/provider/package/pkgdmg.rb +90 -16
- data/lib/puppet/provider/package/portage.rb +20 -14
- data/lib/puppet/provider/package/ports.rb +15 -13
- data/lib/puppet/provider/package/rpm.rb +20 -23
- data/lib/puppet/provider/package/rug.rb +6 -8
- data/lib/puppet/provider/package/sun.rb +20 -18
- data/lib/puppet/provider/package/sunfreeware.rb +2 -2
- data/lib/puppet/provider/package/up2date.rb +6 -10
- data/lib/puppet/provider/package/urpmi.rb +51 -0
- data/lib/puppet/provider/package/yum.rb +15 -13
- data/lib/puppet/provider/parsedfile.rb +53 -63
- data/lib/puppet/provider/service/base.rb +13 -15
- data/lib/puppet/provider/service/debian.rb +4 -4
- data/lib/puppet/provider/service/gentoo.rb +4 -4
- data/lib/puppet/provider/service/init.rb +22 -15
- data/lib/puppet/provider/service/redhat.rb +6 -6
- data/lib/puppet/provider/service/smf.rb +6 -6
- data/lib/puppet/provider/user/netinfo.rb +5 -5
- data/lib/puppet/provider/user/pw.rb +10 -5
- data/lib/puppet/provider/user/useradd.rb +9 -14
- data/lib/puppet/provider/zone/solaris.rb +80 -45
- data/lib/puppet/rails.rb +3 -34
- data/lib/puppet/rails/database/schema.rb +45 -24
- data/lib/puppet/rails/fact_value.rb +1 -0
- data/lib/puppet/rails/host.rb +69 -40
- data/lib/puppet/rails/param_name.rb +3 -8
- data/lib/puppet/rails/param_value.rb +2 -1
- data/lib/puppet/rails/puppet_class.rb +0 -2
- data/lib/puppet/rails/puppet_tag.rb +5 -0
- data/lib/puppet/rails/resource.rb +41 -17
- data/lib/puppet/rails/resource_tag.rb +4 -0
- data/lib/puppet/reference/configuration.rb +149 -0
- data/lib/puppet/reference/function.rb +13 -0
- data/lib/puppet/reference/network.rb +37 -0
- data/lib/puppet/reference/providers.rb +118 -0
- data/lib/puppet/reference/report.rb +21 -0
- data/lib/puppet/reference/type.rb +152 -0
- data/lib/puppet/reports/rrdgraph.rb +21 -7
- data/lib/puppet/reports/tagmail.rb +4 -1
- data/lib/puppet/sslcertificates.rb +1 -49
- data/lib/puppet/sslcertificates/ca.rb +2 -79
- data/lib/puppet/sslcertificates/inventory.rb +0 -10
- data/lib/puppet/transaction.rb +24 -41
- data/lib/puppet/transaction/report.rb +27 -1
- data/lib/puppet/type.rb +7 -43
- data/lib/puppet/type/component.rb +198 -124
- data/lib/puppet/type/cron.rb +51 -42
- data/lib/puppet/type/exec.rb +20 -19
- data/lib/puppet/type/group.rb +6 -55
- data/lib/puppet/type/host.rb +16 -37
- data/lib/puppet/type/mount.rb +30 -17
- data/lib/puppet/type/notify.rb +7 -8
- data/lib/puppet/type/package.rb +44 -80
- data/lib/puppet/type/pfile.rb +50 -41
- data/lib/puppet/type/pfile/checksum.rb +82 -95
- data/lib/puppet/type/pfile/content.rb +21 -25
- data/lib/puppet/type/pfile/ensure.rb +32 -30
- data/lib/puppet/type/pfile/group.rb +21 -26
- data/lib/puppet/type/pfile/mode.rb +25 -32
- data/lib/puppet/type/pfile/owner.rb +23 -27
- data/lib/puppet/type/pfile/source.rb +42 -33
- data/lib/puppet/type/pfile/target.rb +20 -18
- data/lib/puppet/type/pfile/type.rb +6 -7
- data/lib/puppet/type/pfilebucket.rb +3 -3
- data/lib/puppet/type/port.rb +5 -7
- data/lib/puppet/type/property.rb +58 -61
- data/lib/puppet/type/resources.rb +12 -8
- data/lib/puppet/type/schedule.rb +8 -8
- data/lib/puppet/type/service.rb +26 -33
- data/lib/puppet/type/sshkey.rb +6 -7
- data/lib/puppet/type/tidy.rb +41 -35
- data/lib/puppet/type/user.rb +34 -67
- data/lib/puppet/type/yumrepo.rb +27 -12
- data/lib/puppet/type/zone.rb +71 -110
- data/lib/puppet/util.rb +46 -61
- data/lib/puppet/util/autoload.rb +59 -47
- data/lib/puppet/util/config.rb +160 -18
- data/lib/puppet/util/config_store.rb +61 -0
- data/lib/puppet/util/fact_store.rb +60 -0
- data/lib/puppet/util/instance_loader.rb +74 -0
- data/lib/puppet/util/loadedfile.rb +5 -8
- data/lib/puppet/util/metric.rb +17 -25
- data/lib/puppet/util/posix.rb +39 -7
- data/lib/puppet/util/provider_features.rb +9 -1
- data/lib/puppet/util/rails/collection_merger.rb +16 -1
- data/lib/puppet/util/reference.rb +189 -0
- data/lib/puppet/util/storage.rb +2 -2
- data/lib/puppet/util/subclass_loader.rb +9 -2
- data/test/language/ast.rb +4 -148
- data/test/language/ast/component.rb +10 -1
- data/test/language/collector.rb +1 -191
- data/test/language/interpreter.rb +284 -327
- data/test/language/lexer.rb +13 -1
- data/test/language/node.rb +1 -1
- data/test/language/parser.rb +17 -4
- data/test/language/resource.rb +67 -101
- data/test/language/scope.rb +18 -3
- data/test/language/snippets.rb +114 -151
- data/test/lib/puppettest.rb +13 -0
- data/test/lib/puppettest/exetest.rb +7 -0
- data/test/lib/puppettest/fakes.rb +39 -28
- data/test/lib/puppettest/railstesting.rb +1 -1
- data/test/lib/puppettest/support/assertions.rb +2 -2
- data/test/lib/puppettest/support/collection.rb +30 -0
- data/test/network/client/ca.rb +27 -1
- data/test/network/client/client.rb +3 -3
- data/test/network/client/master.rb +102 -1
- data/test/network/handler/ca.rb +35 -1
- data/test/network/handler/facts.rb +112 -0
- data/test/network/handler/fileserver.rb +25 -1
- data/test/network/handler/handler.rb +2 -2
- data/test/network/handler/master.rb +2 -49
- data/test/network/handler/resource.rb +5 -6
- data/test/network/server/mongrel_test.rb +65 -0
- data/test/network/server/webrick.rb +2 -2
- data/test/network/xmlrpc/client.rb +2 -1
- data/test/network/xmlrpc/processor.rb +2 -1
- data/test/other/pgraph.rb +6 -5
- data/test/other/propertychange.rb +11 -12
- data/test/other/report.rb +44 -27
- data/test/other/transactions.rb +17 -16
- data/test/puppet/tc_suidmanager.rb +2 -2
- data/test/rails/ast.rb +74 -0
- data/test/rails/collection.rb +214 -0
- data/test/rails/host.rb +49 -24
- data/test/rails/interpreter.rb +91 -0
- data/test/rails/railsparameter.rb +22 -11
- data/test/rails/railsresource.rb +140 -7
- data/test/ral/manager/attributes.rb +37 -13
- data/test/ral/manager/instances.rb +82 -0
- data/test/ral/manager/provider.rb +60 -22
- data/test/ral/manager/type.rb +9 -6
- data/test/ral/providers/cron/crontab.rb +59 -7
- data/test/ral/providers/group.rb +7 -7
- data/test/ral/providers/host/netinfo.rb +5 -6
- data/test/ral/providers/host/parsed.rb +4 -4
- data/test/ral/providers/mount/parsed.rb +11 -6
- data/test/ral/providers/nameservice.rb +2 -2
- data/test/ral/providers/package.rb +39 -14
- data/test/ral/providers/package/apt.rb +72 -3
- data/test/ral/providers/package/aptitude.rb +15 -12
- data/test/ral/providers/package/aptrpm.rb +3 -3
- data/test/ral/providers/package/dpkg.rb +2 -2
- data/test/ral/providers/parsedfile.rb +114 -88
- data/test/ral/providers/{parsedport.rb → port/parsed.rb} +1 -1
- data/test/ral/providers/provider.rb +93 -13
- data/test/ral/providers/service.rb +52 -26
- data/test/ral/providers/sshkey/parsed.rb +3 -3
- data/test/ral/providers/user.rb +19 -20
- data/test/ral/providers/user/useradd.rb +1 -5
- data/test/ral/types/cron.rb +49 -36
- data/test/ral/types/file.rb +38 -35
- data/test/ral/types/file/target.rb +4 -4
- data/test/ral/types/filesources.rb +24 -22
- data/test/ral/types/group.rb +4 -2
- data/test/ral/types/host.rb +17 -10
- data/test/ral/types/mount.rb +40 -23
- data/test/ral/types/package.rb +62 -5
- data/test/ral/types/parameter.rb +2 -2
- data/test/ral/types/property.rb +27 -20
- data/test/ral/types/resources.rb +4 -16
- data/test/ral/types/schedule.rb +2 -2
- data/test/ral/types/service.rb +2 -3
- data/test/ral/types/sshkey.rb +3 -3
- data/test/ral/types/tidy.rb +6 -15
- data/test/ral/types/user.rb +17 -17
- data/test/ral/types/yumrepo.rb +2 -2
- data/test/ral/types/zone.rb +71 -87
- data/test/util/autoload.rb +6 -21
- data/test/util/config.rb +201 -101
- data/test/util/fact_store.rb +67 -0
- data/test/util/features.rb +9 -6
- data/test/util/instance_loader.rb +53 -0
- data/test/util/loadedfile.rb +17 -1
- data/test/util/metrics.rb +54 -57
- data/test/util/posixtest.rb +8 -11
- data/test/util/utiltest.rb +31 -2
- metadata +520 -492
- data/TODO +0 -4
- data/lib/puppet/network/client/logger.rb +0 -6
- data/lib/puppet/network/handler/logger.rb +0 -52
- data/lib/puppet/rails/database/001_add_indexes.rb +0 -38
- data/lib/puppet/type/parsedtype.rb +0 -219
- data/test/network/handler/logger.rb +0 -183
|
@@ -11,16 +11,16 @@ Puppet::Type.type(:service).provide :base do
|
|
|
11
11
|
# Get the process ID for a running process. Requires the 'pattern'
|
|
12
12
|
# parameter.
|
|
13
13
|
def getpid
|
|
14
|
-
unless @
|
|
15
|
-
@
|
|
14
|
+
unless @resource[:pattern]
|
|
15
|
+
@resource.fail "Either a stop command or a pattern must be specified"
|
|
16
16
|
end
|
|
17
17
|
ps = Facter["ps"].value
|
|
18
18
|
unless ps and ps != ""
|
|
19
|
-
@
|
|
19
|
+
@resource.fail(
|
|
20
20
|
"You must upgrade Facter to a version that includes 'ps'"
|
|
21
21
|
)
|
|
22
22
|
end
|
|
23
|
-
regex = Regexp.new(@
|
|
23
|
+
regex = Regexp.new(@resource[:pattern])
|
|
24
24
|
self.debug "Executing '#{ps}'"
|
|
25
25
|
IO.popen(ps) { |table|
|
|
26
26
|
table.each { |line|
|
|
@@ -36,7 +36,7 @@ Puppet::Type.type(:service).provide :base do
|
|
|
36
36
|
|
|
37
37
|
# How to restart the process.
|
|
38
38
|
def restart
|
|
39
|
-
if @
|
|
39
|
+
if @resource[:restart] or self.respond_to?(:restartcmd)
|
|
40
40
|
ucommand(:restart)
|
|
41
41
|
else
|
|
42
42
|
self.stop
|
|
@@ -50,14 +50,12 @@ Puppet::Type.type(:service).provide :base do
|
|
|
50
50
|
# happen if, for instance, it has an init script (and thus responds to
|
|
51
51
|
# 'statuscmd') but does not have 'hasstatus' enabled.
|
|
52
52
|
def status
|
|
53
|
-
if @
|
|
53
|
+
if @resource[:status] or (
|
|
54
54
|
self.respond_to?(:statuscmd) and self.statuscmd
|
|
55
55
|
)
|
|
56
56
|
# Don't fail when the exit status is not 0.
|
|
57
57
|
output = ucommand(:status, false)
|
|
58
58
|
|
|
59
|
-
self.debug "%s status returned %s" %
|
|
60
|
-
[self.name, output.inspect]
|
|
61
59
|
if $? == 0
|
|
62
60
|
return :running
|
|
63
61
|
else
|
|
@@ -79,8 +77,8 @@ Puppet::Type.type(:service).provide :base do
|
|
|
79
77
|
# The command used to start. Generated if the 'binary' argument
|
|
80
78
|
# is passed.
|
|
81
79
|
def startcmd
|
|
82
|
-
if @
|
|
83
|
-
return @
|
|
80
|
+
if @resource[:binary]
|
|
81
|
+
return @resource[:binary]
|
|
84
82
|
else
|
|
85
83
|
raise Puppet::Error,
|
|
86
84
|
"Services must specify a start command or a binary"
|
|
@@ -93,7 +91,7 @@ Puppet::Type.type(:service).provide :base do
|
|
|
93
91
|
# for the process in the process table.
|
|
94
92
|
# This method will generally not be overridden by submodules.
|
|
95
93
|
def stop
|
|
96
|
-
if @
|
|
94
|
+
if @resource[:stop] or self.respond_to?(:stopcmd)
|
|
97
95
|
ucommand(:stop)
|
|
98
96
|
else
|
|
99
97
|
pid = getpid
|
|
@@ -104,7 +102,7 @@ Puppet::Type.type(:service).provide :base do
|
|
|
104
102
|
begin
|
|
105
103
|
output = kill pid
|
|
106
104
|
rescue Puppet::ExecutionFailure => detail
|
|
107
|
-
@
|
|
105
|
+
@resource.fail "Could not kill %s, PID %s: %s" %
|
|
108
106
|
[self.name, pid, output]
|
|
109
107
|
end
|
|
110
108
|
return true
|
|
@@ -117,14 +115,14 @@ Puppet::Type.type(:service).provide :base do
|
|
|
117
115
|
# #565: Services generally produce no output, so squelch them.
|
|
118
116
|
execute(command, :failonfail => fof, :squelch => true)
|
|
119
117
|
rescue Puppet::ExecutionFailure => detail
|
|
120
|
-
@
|
|
118
|
+
@resource.fail "Could not %s %s: %s" % [type, @resource.ref, detail]
|
|
121
119
|
end
|
|
122
120
|
return nil
|
|
123
121
|
end
|
|
124
122
|
|
|
125
123
|
# Use either a specified command or the default for our provider.
|
|
126
124
|
def ucommand(type, fof = true)
|
|
127
|
-
if c = @
|
|
125
|
+
if c = @resource[type]
|
|
128
126
|
cmd = [c]
|
|
129
127
|
else
|
|
130
128
|
cmd = self.send("%scmd" % type)
|
|
@@ -133,4 +131,4 @@ Puppet::Type.type(:service).provide :base do
|
|
|
133
131
|
end
|
|
134
132
|
end
|
|
135
133
|
|
|
136
|
-
# $Id: base.rb
|
|
134
|
+
# $Id: base.rb 2589 2007-06-15 15:37:03Z luke $
|
|
@@ -9,11 +9,11 @@ Puppet::Type.type(:service).provide :debian, :parent => :init do
|
|
|
9
9
|
|
|
10
10
|
# Remove the symlinks
|
|
11
11
|
def disable
|
|
12
|
-
update "-f", @
|
|
12
|
+
update "-f", @resource[:name], "remove"
|
|
13
13
|
end
|
|
14
14
|
|
|
15
15
|
def enabled?
|
|
16
|
-
output = update "-n", "-f", @
|
|
16
|
+
output = update "-n", "-f", @resource[:name], "remove"
|
|
17
17
|
|
|
18
18
|
# If it's enabled, then it will print output showing removal of
|
|
19
19
|
# links.
|
|
@@ -25,8 +25,8 @@ Puppet::Type.type(:service).provide :debian, :parent => :init do
|
|
|
25
25
|
end
|
|
26
26
|
|
|
27
27
|
def enable
|
|
28
|
-
update @
|
|
28
|
+
update @resource[:name], "defaults"
|
|
29
29
|
end
|
|
30
30
|
end
|
|
31
31
|
|
|
32
|
-
# $Id: debian.rb
|
|
32
|
+
# $Id: debian.rb 2501 2007-05-09 23:08:42Z luke $
|
|
@@ -10,7 +10,7 @@ Puppet::Type.type(:service).provide :gentoo, :parent => :init do
|
|
|
10
10
|
|
|
11
11
|
def disable
|
|
12
12
|
begin
|
|
13
|
-
output = update :del, @
|
|
13
|
+
output = update :del, @resource[:name], :default
|
|
14
14
|
rescue Puppet::ExecutionFailure
|
|
15
15
|
raise Puppet::Error, "Could not disable %s: %s" %
|
|
16
16
|
[self.name, output]
|
|
@@ -24,12 +24,12 @@ Puppet::Type.type(:service).provide :gentoo, :parent => :init do
|
|
|
24
24
|
return :false
|
|
25
25
|
end
|
|
26
26
|
|
|
27
|
-
line = output.split(/\n/).find { |l| l.include?(@
|
|
27
|
+
line = output.split(/\n/).find { |l| l.include?(@resource[:name]) }
|
|
28
28
|
|
|
29
29
|
return :false unless line
|
|
30
30
|
|
|
31
31
|
# If it's enabled then it will print output showing service | runlevel
|
|
32
|
-
if output =~ /#{@
|
|
32
|
+
if output =~ /#{@resource[:name]}\s*|\s*default/
|
|
33
33
|
return :true
|
|
34
34
|
else
|
|
35
35
|
return :false
|
|
@@ -38,7 +38,7 @@ Puppet::Type.type(:service).provide :gentoo, :parent => :init do
|
|
|
38
38
|
|
|
39
39
|
def enable
|
|
40
40
|
begin
|
|
41
|
-
output = update :add, @
|
|
41
|
+
output = update :add, @resource[:name], :default
|
|
42
42
|
rescue Puppet::ExecutionFailure
|
|
43
43
|
raise Puppet::Error, "Could not enable %s: %s" %
|
|
44
44
|
[self.name, output]
|
|
@@ -29,7 +29,7 @@ Puppet::Type.type(:service).provide :init, :parent => :base do
|
|
|
29
29
|
end
|
|
30
30
|
|
|
31
31
|
# List all services of this type.
|
|
32
|
-
def self.
|
|
32
|
+
def self.instances(name)
|
|
33
33
|
# We need to find all paths specified for our type or any parent types
|
|
34
34
|
paths = Puppet.type(:service).paths(name)
|
|
35
35
|
|
|
@@ -44,7 +44,7 @@ Puppet::Type.type(:service).provide :init, :parent => :base do
|
|
|
44
44
|
end
|
|
45
45
|
end
|
|
46
46
|
|
|
47
|
-
paths.
|
|
47
|
+
paths.collect do |path|
|
|
48
48
|
unless FileTest.directory?(path)
|
|
49
49
|
Puppet.notice "Service path %s does not exist" % path
|
|
50
50
|
next
|
|
@@ -59,14 +59,8 @@ Puppet::Type.type(:service).provide :init, :parent => :base do
|
|
|
59
59
|
Dir.entries(path).reject { |e|
|
|
60
60
|
fullpath = File.join(path, e)
|
|
61
61
|
e =~ /^\./ or ! FileTest.executable?(fullpath)
|
|
62
|
-
}.
|
|
63
|
-
|
|
64
|
-
obj[:check] = check
|
|
65
|
-
else
|
|
66
|
-
Puppet::Type.type(:service).create(
|
|
67
|
-
:name => name, :check => check, :path => path
|
|
68
|
-
)
|
|
69
|
-
end
|
|
62
|
+
}.collect do |name|
|
|
63
|
+
new(:name => name, :path => path)
|
|
70
64
|
end
|
|
71
65
|
end
|
|
72
66
|
end
|
|
@@ -87,12 +81,12 @@ Puppet::Type.type(:service).provide :init, :parent => :base do
|
|
|
87
81
|
if defined? @initscript
|
|
88
82
|
return @initscript
|
|
89
83
|
else
|
|
90
|
-
@initscript = self.search(@
|
|
84
|
+
@initscript = self.search(@resource[:name])
|
|
91
85
|
end
|
|
92
86
|
end
|
|
93
87
|
|
|
94
88
|
def restart
|
|
95
|
-
if @
|
|
89
|
+
if @resource[:hasrestart] == :true
|
|
96
90
|
command = [self.initscript, :restart]
|
|
97
91
|
texecute("restart", command)
|
|
98
92
|
else
|
|
@@ -101,7 +95,7 @@ Puppet::Type.type(:service).provide :init, :parent => :base do
|
|
|
101
95
|
end
|
|
102
96
|
|
|
103
97
|
def search(name)
|
|
104
|
-
@
|
|
98
|
+
@resource[:path].each { |path|
|
|
105
99
|
fqname = File.join(path,name)
|
|
106
100
|
begin
|
|
107
101
|
stat = File.stat(fqname)
|
|
@@ -114,6 +108,19 @@ Puppet::Type.type(:service).provide :init, :parent => :base do
|
|
|
114
108
|
# if we've gotten this far, we found a valid script
|
|
115
109
|
return fqname
|
|
116
110
|
}
|
|
111
|
+
@model[:path].each { |path|
|
|
112
|
+
fqname_sh = File.join(path,"#{name}.sh")
|
|
113
|
+
begin
|
|
114
|
+
stat = File.stat(fqname_sh)
|
|
115
|
+
rescue
|
|
116
|
+
# should probably rescue specific errors...
|
|
117
|
+
self.debug("Could not find %s.sh in %s" % [name,path])
|
|
118
|
+
next
|
|
119
|
+
end
|
|
120
|
+
|
|
121
|
+
# if we've gotten this far, we found a valid script
|
|
122
|
+
return fqname_sh
|
|
123
|
+
}
|
|
117
124
|
raise Puppet::Error, "Could not find init script for '%s'" % name
|
|
118
125
|
end
|
|
119
126
|
|
|
@@ -126,7 +133,7 @@ Puppet::Type.type(:service).provide :init, :parent => :base do
|
|
|
126
133
|
# we just return that; otherwise, we return false, which causes it to
|
|
127
134
|
# fallback to other mechanisms.
|
|
128
135
|
def statuscmd
|
|
129
|
-
if @
|
|
136
|
+
if @resource[:hasstatus]
|
|
130
137
|
return [self.initscript, :status]
|
|
131
138
|
else
|
|
132
139
|
return false
|
|
@@ -139,4 +146,4 @@ Puppet::Type.type(:service).provide :init, :parent => :base do
|
|
|
139
146
|
end
|
|
140
147
|
end
|
|
141
148
|
|
|
142
|
-
# $Id: init.rb
|
|
149
|
+
# $Id: init.rb 2619 2007-06-18 21:26:04Z luke $
|
|
@@ -19,8 +19,8 @@ Puppet::Type.type(:service).provide :redhat, :parent => :init do
|
|
|
19
19
|
# Remove the symlinks
|
|
20
20
|
def disable
|
|
21
21
|
begin
|
|
22
|
-
output = chkconfig(@
|
|
23
|
-
output += chkconfig("--del", @
|
|
22
|
+
output = chkconfig(@resource[:name], :off)
|
|
23
|
+
output += chkconfig("--del", @resource[:name])
|
|
24
24
|
rescue Puppet::ExecutionFailure
|
|
25
25
|
raise Puppet::Error, "Could not disable %s: %s" %
|
|
26
26
|
[self.name, output]
|
|
@@ -29,7 +29,7 @@ Puppet::Type.type(:service).provide :redhat, :parent => :init do
|
|
|
29
29
|
|
|
30
30
|
def enabled?
|
|
31
31
|
begin
|
|
32
|
-
output = chkconfig(@
|
|
32
|
+
output = chkconfig(@resource[:name])
|
|
33
33
|
rescue Puppet::ExecutionFailure
|
|
34
34
|
return :false
|
|
35
35
|
end
|
|
@@ -47,8 +47,8 @@ Puppet::Type.type(:service).provide :redhat, :parent => :init do
|
|
|
47
47
|
# in the init scripts.
|
|
48
48
|
def enable
|
|
49
49
|
begin
|
|
50
|
-
output = chkconfig("--add", @
|
|
51
|
-
output += chkconfig(@
|
|
50
|
+
output = chkconfig("--add", @resource[:name])
|
|
51
|
+
output += chkconfig(@resource[:name], :on)
|
|
52
52
|
rescue Puppet::ExecutionFailure => detail
|
|
53
53
|
raise Puppet::Error, "Could not enable %s: %s" %
|
|
54
54
|
[self.name, detail]
|
|
@@ -56,4 +56,4 @@ Puppet::Type.type(:service).provide :redhat, :parent => :init do
|
|
|
56
56
|
end
|
|
57
57
|
end
|
|
58
58
|
|
|
59
|
-
# $Id: redhat.rb
|
|
59
|
+
# $Id: redhat.rb 2501 2007-05-09 23:08:42Z luke $
|
|
@@ -27,20 +27,20 @@ Puppet::Type.type(:service).provide :smf, :parent => :base do
|
|
|
27
27
|
end
|
|
28
28
|
|
|
29
29
|
def restartcmd
|
|
30
|
-
[command(:adm), :restart, @
|
|
30
|
+
[command(:adm), :restart, @resource[:name]]
|
|
31
31
|
end
|
|
32
32
|
|
|
33
33
|
def startcmd
|
|
34
|
-
[command(:adm), :enable, @
|
|
34
|
+
[command(:adm), :enable, @resource[:name]]
|
|
35
35
|
end
|
|
36
36
|
|
|
37
37
|
def status
|
|
38
|
-
if @
|
|
38
|
+
if @resource[:status]
|
|
39
39
|
super
|
|
40
40
|
return
|
|
41
41
|
end
|
|
42
42
|
begin
|
|
43
|
-
output = svcs "-l", @
|
|
43
|
+
output = svcs "-l", @resource[:name]
|
|
44
44
|
rescue Puppet::ExecutionFailure
|
|
45
45
|
warning "Could not get status on service %s" % self.name
|
|
46
46
|
return :stopped
|
|
@@ -78,8 +78,8 @@ Puppet::Type.type(:service).provide :smf, :parent => :base do
|
|
|
78
78
|
end
|
|
79
79
|
|
|
80
80
|
def stopcmd
|
|
81
|
-
[command(:adm), :disable, @
|
|
81
|
+
[command(:adm), :disable, @resource[:name]]
|
|
82
82
|
end
|
|
83
83
|
end
|
|
84
84
|
|
|
85
|
-
# $Id: smf.rb
|
|
85
|
+
# $Id: smf.rb 2501 2007-05-09 23:08:42Z luke $
|
|
@@ -19,7 +19,7 @@ Puppet::Type.type(:user).provide :netinfo, :parent => Puppet::Provider::NameServ
|
|
|
19
19
|
|
|
20
20
|
autogen_defaults :home => "/var/empty", :shell => "/usr/bin/false", :password => '********'
|
|
21
21
|
|
|
22
|
-
|
|
22
|
+
has_feature :manages_passwords
|
|
23
23
|
|
|
24
24
|
verify :gid, "GID must be an integer" do |value|
|
|
25
25
|
value.is_a? Integer
|
|
@@ -30,7 +30,7 @@ Puppet::Type.type(:user).provide :netinfo, :parent => Puppet::Provider::NameServ
|
|
|
30
30
|
end
|
|
31
31
|
|
|
32
32
|
def autogen_comment
|
|
33
|
-
return @
|
|
33
|
+
return @resource[:name].capitalize
|
|
34
34
|
end
|
|
35
35
|
|
|
36
36
|
# The list of all groups the user is a member of. Different
|
|
@@ -38,7 +38,7 @@ Puppet::Type.type(:user).provide :netinfo, :parent => Puppet::Provider::NameServ
|
|
|
38
38
|
def groups
|
|
39
39
|
groups = []
|
|
40
40
|
|
|
41
|
-
user = @
|
|
41
|
+
user = @resource[:name]
|
|
42
42
|
# Retrieve them all from netinfo
|
|
43
43
|
open("| #{command(:nireport)} / /groups name users") do |file|
|
|
44
44
|
file.each do |line|
|
|
@@ -84,7 +84,7 @@ Puppet::Type.type(:user).provide :netinfo, :parent => Puppet::Provider::NameServ
|
|
|
84
84
|
end
|
|
85
85
|
end
|
|
86
86
|
|
|
87
|
-
user = @
|
|
87
|
+
user = @resource[:name]
|
|
88
88
|
data.each do |name, members|
|
|
89
89
|
if members.include? user and groups.include? name
|
|
90
90
|
# I'm in the group and should be
|
|
@@ -103,4 +103,4 @@ Puppet::Type.type(:user).provide :netinfo, :parent => Puppet::Provider::NameServ
|
|
|
103
103
|
end
|
|
104
104
|
end
|
|
105
105
|
|
|
106
|
-
# $Id: netinfo.rb
|
|
106
|
+
# $Id: netinfo.rb 2542 2007-05-30 20:36:29Z mpalmer $
|
|
@@ -4,6 +4,7 @@ Puppet::Type.type(:user).provide :pw, :parent => Puppet::Provider::NameService::
|
|
|
4
4
|
desc "User management via ``pw`` on FreeBSD."
|
|
5
5
|
|
|
6
6
|
commands :pw => "pw"
|
|
7
|
+
has_features :manages_homedir, :allows_duplicates
|
|
7
8
|
|
|
8
9
|
defaultfor :operatingsystem => :freebsd
|
|
9
10
|
|
|
@@ -20,22 +21,26 @@ Puppet::Type.type(:user).provide :pw, :parent => Puppet::Provider::NameService::
|
|
|
20
21
|
end
|
|
21
22
|
|
|
22
23
|
def addcmd
|
|
23
|
-
cmd = [command(:pw), "useradd", @
|
|
24
|
-
@
|
|
24
|
+
cmd = [command(:pw), "useradd", @resource[:name]]
|
|
25
|
+
@resource.class.validproperties.each do |property|
|
|
25
26
|
next if property == :ensure
|
|
26
27
|
# the value needs to be quoted, mostly because -c might
|
|
27
28
|
# have spaces in it
|
|
28
|
-
if value = @
|
|
29
|
+
if value = @resource.should(property) and value != ""
|
|
29
30
|
cmd << flag(property) << value
|
|
30
31
|
end
|
|
31
32
|
end
|
|
32
33
|
|
|
33
|
-
if @
|
|
34
|
+
if @resource.allowdupe?
|
|
34
35
|
cmd << "-o"
|
|
35
36
|
end
|
|
36
37
|
|
|
38
|
+
if @resource.managehome?
|
|
39
|
+
cmd << "-m"
|
|
40
|
+
end
|
|
41
|
+
|
|
37
42
|
return cmd
|
|
38
43
|
end
|
|
39
44
|
end
|
|
40
45
|
|
|
41
|
-
# $Id: pw.rb
|
|
46
|
+
# $Id: pw.rb 2600 2007-06-18 06:42:07Z luke $
|
|
@@ -19,44 +19,39 @@ Puppet::Type.type(:user).provide :useradd, :parent => Puppet::Provider::NameServ
|
|
|
19
19
|
|
|
20
20
|
has_features :manages_homedir, :allows_duplicates
|
|
21
21
|
|
|
22
|
-
if Puppet.features.libshadow? and
|
|
23
|
-
|
|
24
|
-
else
|
|
25
|
-
false
|
|
26
|
-
end
|
|
27
|
-
|
|
28
|
-
has_features :manages_passwords
|
|
22
|
+
if Puppet.features.libshadow? and (Facter.value(:kernel) == "Linux")
|
|
23
|
+
has_feature :manages_passwords
|
|
29
24
|
end
|
|
30
25
|
|
|
31
26
|
def addcmd
|
|
32
27
|
cmd = [command(:add)]
|
|
33
|
-
@
|
|
28
|
+
@resource.class.validproperties.each do |property|
|
|
34
29
|
next if property == :ensure
|
|
35
30
|
# the value needs to be quoted, mostly because -c might
|
|
36
31
|
# have spaces in it
|
|
37
|
-
if value = @
|
|
32
|
+
if value = @resource.should(property) and value != ""
|
|
38
33
|
cmd << flag(property) << value
|
|
39
34
|
end
|
|
40
35
|
end
|
|
41
36
|
|
|
42
|
-
if @
|
|
37
|
+
if @resource.allowdupe?
|
|
43
38
|
cmd << "-o"
|
|
44
39
|
end
|
|
45
40
|
|
|
46
|
-
if @
|
|
41
|
+
if @resource.managehome?
|
|
47
42
|
cmd << "-m"
|
|
48
43
|
elsif %w{Fedora RedHat}.include?(Facter.value("operatingsystem"))
|
|
49
44
|
cmd << "-M"
|
|
50
45
|
end
|
|
51
46
|
|
|
52
|
-
cmd << @
|
|
47
|
+
cmd << @resource[:name]
|
|
53
48
|
|
|
54
49
|
cmd
|
|
55
50
|
end
|
|
56
51
|
|
|
57
52
|
# Retrieve the password using the Shadow Password library
|
|
58
53
|
def password
|
|
59
|
-
if ent = Shadow::Passwd.getspnam(@
|
|
54
|
+
if ent = Shadow::Passwd.getspnam(@resource.name)
|
|
60
55
|
return ent.sp_pwdp
|
|
61
56
|
else
|
|
62
57
|
return :absent
|
|
@@ -64,4 +59,4 @@ Puppet::Type.type(:user).provide :useradd, :parent => Puppet::Provider::NameServ
|
|
|
64
59
|
end
|
|
65
60
|
end
|
|
66
61
|
|
|
67
|
-
# $Id: useradd.rb
|
|
62
|
+
# $Id: useradd.rb 2542 2007-05-30 20:36:29Z mpalmer $
|