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.
- 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
@@ -1,5 +1,7 @@
|
|
1
|
+
require 'puppet/provider/package'
|
2
|
+
|
1
3
|
# OS X Packaging sucks. We can install packages, but that's about it.
|
2
|
-
Puppet::Type.type(:package).provide :apple do
|
4
|
+
Puppet::Type.type(:package).provide :apple, :parent => Puppet::Provider::Package do
|
3
5
|
desc "Package management based on OS X's builtin packaging system. This is
|
4
6
|
essentially the simplest and least functional package system in existence --
|
5
7
|
it only supports installation; no deletion or upgrades. The provider will
|
@@ -11,7 +13,17 @@ Puppet::Type.type(:package).provide :apple do
|
|
11
13
|
|
12
14
|
defaultfor :operatingsystem => :darwin
|
13
15
|
|
14
|
-
def self.
|
16
|
+
def self.instances
|
17
|
+
instance_by_name.collect do |name|
|
18
|
+
self.new(
|
19
|
+
:name => name,
|
20
|
+
:provider => :apple,
|
21
|
+
:ensure => :installed
|
22
|
+
)
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
def self.instance_by_name
|
15
27
|
Dir.entries("/Library/Receipts").find_all { |f|
|
16
28
|
f =~ /\.pkg$/
|
17
29
|
}.collect { |f|
|
@@ -22,19 +34,9 @@ Puppet::Type.type(:package).provide :apple do
|
|
22
34
|
}
|
23
35
|
end
|
24
36
|
|
25
|
-
def self.list
|
26
|
-
listbyname.collect do |name|
|
27
|
-
Puppet.type(:package).installedpkg(
|
28
|
-
:name => name,
|
29
|
-
:provider => :apple,
|
30
|
-
:ensure => :installed
|
31
|
-
)
|
32
|
-
end
|
33
|
-
end
|
34
|
-
|
35
37
|
def query
|
36
|
-
if FileTest.exists?("/Library/Receipts/#{@
|
37
|
-
return {:name => @
|
38
|
+
if FileTest.exists?("/Library/Receipts/#{@resource[:name]}.pkg")
|
39
|
+
return {:name => @resource[:name], :ensure => :present}
|
38
40
|
else
|
39
41
|
return nil
|
40
42
|
end
|
@@ -42,7 +44,7 @@ Puppet::Type.type(:package).provide :apple do
|
|
42
44
|
|
43
45
|
def install
|
44
46
|
source = nil
|
45
|
-
unless source = @
|
47
|
+
unless source = @resource[:source]
|
46
48
|
self.fail "Mac OS X packages must specify a package source"
|
47
49
|
end
|
48
50
|
|
@@ -50,4 +52,4 @@ Puppet::Type.type(:package).provide :apple do
|
|
50
52
|
end
|
51
53
|
end
|
52
54
|
|
53
|
-
# $Id: apple.rb
|
55
|
+
# $Id: apple.rb 2555 2007-06-08 17:20:00Z luke $
|
@@ -1,9 +1,11 @@
|
|
1
|
-
Puppet::Type.type(:package).provide :apt, :parent => :dpkg do
|
1
|
+
Puppet::Type.type(:package).provide :apt, :parent => :dpkg, :source => :dpkg do
|
2
2
|
# Provide sorting functionality
|
3
3
|
include Puppet::Util::Package
|
4
4
|
|
5
5
|
desc "Package management via ``apt-get``."
|
6
6
|
|
7
|
+
has_feature :versionable
|
8
|
+
|
7
9
|
commands :aptget => "/usr/bin/apt-get"
|
8
10
|
commands :aptcache => "/usr/bin/apt-cache"
|
9
11
|
commands :preseed => "/usr/bin/debconf-set-selections"
|
@@ -31,7 +33,7 @@ Puppet::Type.type(:package).provide :apt, :parent => :dpkg do
|
|
31
33
|
end
|
32
34
|
end
|
33
35
|
|
34
|
-
if @@checkedforcdrom and @
|
36
|
+
if @@checkedforcdrom and @resource[:allowcdrom] != :true
|
35
37
|
raise Puppet::Error,
|
36
38
|
"/etc/apt/sources.list contains a cdrom source; not installing. Use 'allowcdrom' to override this failure."
|
37
39
|
end
|
@@ -40,14 +42,14 @@ Puppet::Type.type(:package).provide :apt, :parent => :dpkg do
|
|
40
42
|
# Install a package using 'apt-get'. This function needs to support
|
41
43
|
# installing a specific version.
|
42
44
|
def install
|
43
|
-
if @
|
45
|
+
if @resource[:responsefile]
|
44
46
|
self.run_preseed
|
45
47
|
end
|
46
|
-
should = @
|
48
|
+
should = @resource.should(:ensure)
|
47
49
|
|
48
50
|
checkforcdrom()
|
49
51
|
|
50
|
-
str = @
|
52
|
+
str = @resource[:name]
|
51
53
|
case should
|
52
54
|
when true, false, Symbol
|
53
55
|
# pass
|
@@ -58,7 +60,7 @@ Puppet::Type.type(:package).provide :apt, :parent => :dpkg do
|
|
58
60
|
cmd = %w{-q -y}
|
59
61
|
|
60
62
|
keep = ""
|
61
|
-
if config = @
|
63
|
+
if config = @resource[:configfiles]
|
62
64
|
case config
|
63
65
|
when :keep
|
64
66
|
cmd << "-o" << 'DPkg::Options::=--force-confold'
|
@@ -76,7 +78,7 @@ Puppet::Type.type(:package).provide :apt, :parent => :dpkg do
|
|
76
78
|
|
77
79
|
# What's the latest package version available?
|
78
80
|
def latest
|
79
|
-
output = aptcache :policy, @
|
81
|
+
output = aptcache :policy, @resource[:name]
|
80
82
|
|
81
83
|
if output =~ /Candidate:\s+(\S+)\s/
|
82
84
|
return $1
|
@@ -90,7 +92,7 @@ Puppet::Type.type(:package).provide :apt, :parent => :dpkg do
|
|
90
92
|
# preseeds answers to dpkg-set-selection from the "responsefile"
|
91
93
|
#
|
92
94
|
def run_preseed
|
93
|
-
if response = @
|
95
|
+
if response = @resource[:responsefile] and FileTest.exists?(response)
|
94
96
|
self.info("Preseeding %s to debconf-set-selections" % response)
|
95
97
|
|
96
98
|
preseed response
|
@@ -104,16 +106,12 @@ Puppet::Type.type(:package).provide :apt, :parent => :dpkg do
|
|
104
106
|
end
|
105
107
|
|
106
108
|
def uninstall
|
107
|
-
aptget "-y", "-q", :remove, @
|
109
|
+
aptget "-y", "-q", :remove, @resource[:name]
|
108
110
|
end
|
109
111
|
|
110
112
|
def purge
|
111
|
-
aptget '-y', '-q', 'remove', '--purge', @
|
112
|
-
end
|
113
|
-
|
114
|
-
def versionable?
|
115
|
-
true
|
113
|
+
aptget '-y', '-q', 'remove', '--purge', @resource[:name]
|
116
114
|
end
|
117
115
|
end
|
118
116
|
|
119
|
-
# $Id: apt.rb
|
117
|
+
# $Id: apt.rb 2618 2007-06-18 21:18:48Z luke $
|
@@ -1,6 +1,8 @@
|
|
1
|
-
Puppet::Type.type(:package).provide :aptitude, :parent => :apt do
|
1
|
+
Puppet::Type.type(:package).provide :aptitude, :parent => :apt, :source => :dpkg do
|
2
2
|
desc "Package management via ``aptitude``."
|
3
3
|
|
4
|
+
has_feature :versionable
|
5
|
+
|
4
6
|
commands :aptitude => "/usr/bin/aptitude"
|
5
7
|
commands :aptcache => "/usr/bin/apt-cache"
|
6
8
|
|
@@ -23,8 +25,8 @@ Puppet::Type.type(:package).provide :aptitude, :parent => :apt do
|
|
23
25
|
end
|
24
26
|
|
25
27
|
def purge
|
26
|
-
aptitude '-y', 'purge', @
|
28
|
+
aptitude '-y', 'purge', @resource[:name]
|
27
29
|
end
|
28
30
|
end
|
29
31
|
|
30
|
-
# $Id: aptitude.rb
|
32
|
+
# $Id: aptitude.rb 2618 2007-06-18 21:18:48Z luke $
|
@@ -1,9 +1,11 @@
|
|
1
|
-
Puppet::Type.type(:package).provide :aptrpm, :parent => :rpm do
|
1
|
+
Puppet::Type.type(:package).provide :aptrpm, :parent => :rpm, :source => :rpm do
|
2
2
|
# Provide sorting functionality
|
3
3
|
include Puppet::Util::Package
|
4
4
|
|
5
5
|
desc "Package management via ``apt-get`` ported to ``rpm``."
|
6
6
|
|
7
|
+
has_feature :versionable
|
8
|
+
|
7
9
|
commands :aptget => "/usr/bin/apt-get"
|
8
10
|
commands :aptcache => "/usr/bin/apt-cache"
|
9
11
|
commands :rpm => "/usr/bin/rpm"
|
@@ -11,9 +13,9 @@ Puppet::Type.type(:package).provide :aptrpm, :parent => :rpm do
|
|
11
13
|
# Install a package using 'apt-get'. This function needs to support
|
12
14
|
# installing a specific version.
|
13
15
|
def install
|
14
|
-
should = @
|
16
|
+
should = @resource.should(:ensure)
|
15
17
|
|
16
|
-
str = @
|
18
|
+
str = @resource[:name]
|
17
19
|
case should
|
18
20
|
when true, false, Symbol
|
19
21
|
# pass
|
@@ -30,7 +32,7 @@ Puppet::Type.type(:package).provide :aptrpm, :parent => :rpm do
|
|
30
32
|
|
31
33
|
# What's the latest package version available?
|
32
34
|
def latest
|
33
|
-
output = aptcache :showpkg, @
|
35
|
+
output = aptcache :showpkg, @resource[:name]
|
34
36
|
|
35
37
|
if output =~ /Versions:\s*\n((\n|.)+)^$/
|
36
38
|
versions = $1
|
@@ -64,16 +66,12 @@ Puppet::Type.type(:package).provide :aptrpm, :parent => :rpm do
|
|
64
66
|
end
|
65
67
|
|
66
68
|
def uninstall
|
67
|
-
aptget "-y", "-q", 'remove', @
|
69
|
+
aptget "-y", "-q", 'remove', @resource[:name]
|
68
70
|
end
|
69
71
|
|
70
72
|
def purge
|
71
|
-
aptget '-y', '-q', 'remove', '--purge', @
|
72
|
-
end
|
73
|
-
|
74
|
-
def versionable?
|
75
|
-
true
|
73
|
+
aptget '-y', '-q', 'remove', '--purge', @resource[:name]
|
76
74
|
end
|
77
75
|
end
|
78
76
|
|
79
|
-
# $Id: aptrpm.rb
|
77
|
+
# $Id: aptrpm.rb 2618 2007-06-18 21:18:48Z luke $
|
@@ -1,5 +1,5 @@
|
|
1
1
|
# Packaging using Blastwave's pkg-get program.
|
2
|
-
Puppet::Type.type(:package).provide :blastwave, :parent => :sun do
|
2
|
+
Puppet::Type.type(:package).provide :blastwave, :parent => :sun, :source => :sun do
|
3
3
|
desc "Package management using Blastwave.org's ``pkg-get`` command on Solaris."
|
4
4
|
pkgget = "pkg-get"
|
5
5
|
if FileTest.executable?("/opt/csw/bin/pkg-get")
|
@@ -23,10 +23,10 @@ Puppet::Type.type(:package).provide :blastwave, :parent => :sun do
|
|
23
23
|
end
|
24
24
|
end
|
25
25
|
|
26
|
-
def self.
|
26
|
+
def self.instances(hash = {})
|
27
27
|
blastlist(hash).collect do |bhash|
|
28
28
|
bhash.delete(:avail)
|
29
|
-
|
29
|
+
new(bhash)
|
30
30
|
end
|
31
31
|
end
|
32
32
|
|
@@ -86,29 +86,29 @@ Puppet::Type.type(:package).provide :blastwave, :parent => :sun do
|
|
86
86
|
end
|
87
87
|
|
88
88
|
def install
|
89
|
-
pkgget "-f", :install, @
|
89
|
+
pkgget "-f", :install, @resource[:name]
|
90
90
|
end
|
91
91
|
|
92
92
|
# Retrieve the version from the current package file.
|
93
93
|
def latest
|
94
|
-
hash = self.class.blastlist(:justme => @
|
94
|
+
hash = self.class.blastlist(:justme => @resource[:name])
|
95
95
|
hash[:avail]
|
96
96
|
end
|
97
97
|
|
98
98
|
def query
|
99
|
-
hash = self.class.blastlist(:justme => @
|
99
|
+
hash = self.class.blastlist(:justme => @resource[:name])
|
100
100
|
|
101
101
|
{:ensure => hash[:ensure]}
|
102
102
|
end
|
103
103
|
|
104
104
|
# Remove the old package, and install the new one
|
105
105
|
def update
|
106
|
-
pkgget "-f", :upgrade, @
|
106
|
+
pkgget "-f", :upgrade, @resource[:name]
|
107
107
|
end
|
108
108
|
|
109
109
|
def uninstall
|
110
|
-
pkgget "-f", :remove, @
|
110
|
+
pkgget "-f", :remove, @resource[:name]
|
111
111
|
end
|
112
112
|
end
|
113
113
|
|
114
|
-
# $Id: blastwave.rb
|
114
|
+
# $Id: blastwave.rb 2555 2007-06-08 17:20:00Z luke $
|
@@ -1,4 +1,6 @@
|
|
1
|
-
|
1
|
+
require 'puppet/provider/package'
|
2
|
+
|
3
|
+
Puppet::Type.type(:package).provide :darwinport, :parent => Puppet::Provider::Package do
|
2
4
|
desc "Package management using DarwinPorts on OS X."
|
3
5
|
|
4
6
|
commands :port => "/opt/local/bin/port"
|
@@ -31,31 +33,30 @@ Puppet::Type.type(:package).provide :darwinport do
|
|
31
33
|
}
|
32
34
|
end
|
33
35
|
|
34
|
-
def self.
|
36
|
+
def self.instances
|
35
37
|
packages = []
|
36
38
|
|
37
39
|
eachpkgashash do |hash|
|
38
|
-
|
39
|
-
packages << pkg
|
40
|
+
packages << new(hash)
|
40
41
|
end
|
41
42
|
|
42
43
|
return packages
|
43
44
|
end
|
44
45
|
|
45
46
|
def install
|
46
|
-
should = @
|
47
|
+
should = @resource.should(:ensure)
|
47
48
|
|
48
49
|
# Seems like you can always say 'upgrade'
|
49
|
-
output = port "upgrade", @
|
50
|
+
output = port "upgrade", @resource[:name]
|
50
51
|
if output =~ /^Error: No port/
|
51
|
-
raise Puppet::ExecutionFailure, "Could not find package %s" % @
|
52
|
+
raise Puppet::ExecutionFailure, "Could not find package %s" % @resource[:name]
|
52
53
|
end
|
53
54
|
end
|
54
55
|
|
55
56
|
def query
|
56
57
|
version = nil
|
57
58
|
self.class.eachpkgashash do |hash|
|
58
|
-
if hash[:name] == @
|
59
|
+
if hash[:name] == @resource[:name]
|
59
60
|
return hash
|
60
61
|
end
|
61
62
|
end
|
@@ -64,7 +65,7 @@ Puppet::Type.type(:package).provide :darwinport do
|
|
64
65
|
end
|
65
66
|
|
66
67
|
def latest
|
67
|
-
info = port :search, "^#{@
|
68
|
+
info = port :search, "^#{@resource[:name]}$"
|
68
69
|
|
69
70
|
if $? != 0 or info =~ /^Error/
|
70
71
|
return nil
|
@@ -77,7 +78,7 @@ Puppet::Type.type(:package).provide :darwinport do
|
|
77
78
|
end
|
78
79
|
|
79
80
|
def uninstall
|
80
|
-
port :uninstall, @
|
81
|
+
port :uninstall, @resource[:name]
|
81
82
|
end
|
82
83
|
|
83
84
|
def update
|
@@ -85,4 +86,4 @@ Puppet::Type.type(:package).provide :darwinport do
|
|
85
86
|
end
|
86
87
|
end
|
87
88
|
|
88
|
-
# $Id: darwinport.rb
|
89
|
+
# $Id: darwinport.rb 2555 2007-06-08 17:20:00Z luke $
|
@@ -1,12 +1,15 @@
|
|
1
|
-
|
1
|
+
require 'puppet/provider/package'
|
2
|
+
|
3
|
+
Puppet::Type.type(:package).provide :dpkg, :parent => Puppet::Provider::Package do
|
2
4
|
desc "Package management via ``dpkg``. Because this only uses ``dpkg``
|
3
5
|
and not ``apt``, you must specify the source of any packages you want
|
4
6
|
to manage."
|
5
7
|
|
6
8
|
commands :dpkg => "/usr/bin/dpkg"
|
9
|
+
commands :dpkg_deb => "/usr/bin/dpkg-deb"
|
7
10
|
commands :dpkgquery => "/usr/bin/dpkg-query"
|
8
11
|
|
9
|
-
def self.
|
12
|
+
def self.instances
|
10
13
|
packages = []
|
11
14
|
|
12
15
|
# list out all of the packages
|
@@ -29,7 +32,7 @@ Puppet::Type.type(:package).provide :dpkg do
|
|
29
32
|
|
30
33
|
hash[:provider] = self.name
|
31
34
|
|
32
|
-
packages
|
35
|
+
packages << new(hash)
|
33
36
|
else
|
34
37
|
Puppet.warning "Failed to match dpkg-query line %s" %
|
35
38
|
line.inspect
|
@@ -41,12 +44,17 @@ Puppet::Type.type(:package).provide :dpkg do
|
|
41
44
|
end
|
42
45
|
|
43
46
|
def install
|
44
|
-
unless file = @
|
47
|
+
unless file = @resource[:source]
|
45
48
|
raise ArgumentError, "You cannot install dpkg packages without a source"
|
46
49
|
end
|
47
50
|
dpkg "-i", file
|
48
51
|
end
|
49
52
|
|
53
|
+
# Return the version from the package.
|
54
|
+
def latest
|
55
|
+
output = dpkg_deb "--show", @resource[:source]
|
56
|
+
end
|
57
|
+
|
50
58
|
def query
|
51
59
|
packages = []
|
52
60
|
|
@@ -57,12 +65,12 @@ Puppet::Type.type(:package).provide :dpkg do
|
|
57
65
|
# list out our specific package
|
58
66
|
begin
|
59
67
|
output = dpkgquery("-W", "--showformat",
|
60
|
-
'${Status} ${Package} ${Version}\\n', @
|
68
|
+
'${Status} ${Package} ${Version}\\n', @resource[:name]
|
61
69
|
)
|
62
70
|
rescue Puppet::ExecutionFailure
|
63
71
|
# dpkg-query exits 1 if the package is not found.
|
64
|
-
return {:ensure => :
|
65
|
-
:name => @
|
72
|
+
return {:ensure => :purged, :status => 'missing',
|
73
|
+
:name => @resource[:name], :error => 'ok'}
|
66
74
|
|
67
75
|
end
|
68
76
|
# Our regex for matching dpkg-query output. We could probably just
|
@@ -79,7 +87,7 @@ Puppet::Type.type(:package).provide :dpkg do
|
|
79
87
|
else
|
80
88
|
notice "Failed to handle dpkg-query line %s" % line.inspect
|
81
89
|
return {:ensure => :absent, :status => 'missing',
|
82
|
-
:name => @
|
90
|
+
:name => @resource[:name], :error => 'ok'}
|
83
91
|
end
|
84
92
|
|
85
93
|
if hash[:error] != "ok"
|
@@ -98,12 +106,12 @@ Puppet::Type.type(:package).provide :dpkg do
|
|
98
106
|
end
|
99
107
|
|
100
108
|
def uninstall
|
101
|
-
dpkg "-r", @
|
109
|
+
dpkg "-r", @resource[:name]
|
102
110
|
end
|
103
111
|
|
104
112
|
def purge
|
105
|
-
dpkg "--purge", @
|
106
|
-
|
113
|
+
dpkg "--purge", @resource[:name]
|
114
|
+
end
|
107
115
|
end
|
108
116
|
|
109
|
-
# $Id: dpkg.rb
|
117
|
+
# $Id: dpkg.rb 2615 2007-06-18 20:10:35Z luke $
|
@@ -0,0 +1,87 @@
|
|
1
|
+
Puppet::Type.type(:package).provide :fink, :parent => :dpkg, :source => :dpkg do
|
2
|
+
# Provide sorting functionality
|
3
|
+
include Puppet::Util::Package
|
4
|
+
|
5
|
+
desc "Package management via ``fink``."
|
6
|
+
|
7
|
+
commands :fink => "/sw/bin/fink"
|
8
|
+
commands :aptget => "/sw/bin/apt-get"
|
9
|
+
commands :aptcache => "/sw/bin/apt-cache"
|
10
|
+
commands :dpkgquery => "/sw/bin/dpkg-query"
|
11
|
+
|
12
|
+
defaultfor :operatingsystem => :darwin
|
13
|
+
|
14
|
+
has_feature :versionable
|
15
|
+
|
16
|
+
# A derivative of DPKG; this is how most people actually manage
|
17
|
+
# Debian boxes, and the only thing that differs is that it can
|
18
|
+
# install packages from remote sites.
|
19
|
+
|
20
|
+
def finkcmd(*args)
|
21
|
+
fink(*args)
|
22
|
+
end
|
23
|
+
|
24
|
+
# Install a package using 'apt-get'. This function needs to support
|
25
|
+
# installing a specific version.
|
26
|
+
def install
|
27
|
+
if @resource[:responsefile]
|
28
|
+
self.run_preseed
|
29
|
+
end
|
30
|
+
should = @resource.should(:ensure)
|
31
|
+
|
32
|
+
str = @resource[:name]
|
33
|
+
case should
|
34
|
+
when true, false, Symbol
|
35
|
+
# pass
|
36
|
+
else
|
37
|
+
# Add the package version
|
38
|
+
str += "=%s" % should
|
39
|
+
end
|
40
|
+
cmd = %w{-b -q -y}
|
41
|
+
|
42
|
+
keep = ""
|
43
|
+
|
44
|
+
cmd << :install << str
|
45
|
+
|
46
|
+
finkcmd(cmd)
|
47
|
+
end
|
48
|
+
|
49
|
+
# What's the latest package version available?
|
50
|
+
def latest
|
51
|
+
output = aptcache :policy, @resource[:name]
|
52
|
+
|
53
|
+
if output =~ /Candidate:\s+(\S+)\s/
|
54
|
+
return $1
|
55
|
+
else
|
56
|
+
self.err "Could not find latest version"
|
57
|
+
return nil
|
58
|
+
end
|
59
|
+
end
|
60
|
+
|
61
|
+
#
|
62
|
+
# preseeds answers to dpkg-set-selection from the "responsefile"
|
63
|
+
#
|
64
|
+
def run_preseed
|
65
|
+
if response = @resource[:responsefile] and FileTest.exists?(response)
|
66
|
+
self.info("Preseeding %s to debconf-set-selections" % response)
|
67
|
+
|
68
|
+
preseed response
|
69
|
+
else
|
70
|
+
self.info "No responsefile specified or non existant, not preseeding anything"
|
71
|
+
end
|
72
|
+
end
|
73
|
+
|
74
|
+
def update
|
75
|
+
self.install
|
76
|
+
end
|
77
|
+
|
78
|
+
def uninstall
|
79
|
+
finkcmd "-y", "-q", :remove, @model[:name]
|
80
|
+
end
|
81
|
+
|
82
|
+
def purge
|
83
|
+
aptget '-y', '-q', 'remove', '--purge', @resource[:name]
|
84
|
+
end
|
85
|
+
end
|
86
|
+
|
87
|
+
# $Id: fink.rb 2617 2007-06-18 21:07:01Z luke $
|