puppet 0.24.6 → 0.24.7
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 +115 -0
- data/Rakefile +43 -14
- data/bin/puppetca +6 -5
- data/bin/puppetdoc +109 -15
- data/bin/ralsh +3 -1
- data/conf/redhat/puppet.spec +74 -48
- data/examples/mcx_dock_absent.pp +4 -0
- data/examples/mcx_dock_default.pp +118 -0
- data/examples/mcx_dock_full.pp +125 -0
- data/examples/mcx_dock_invalid.pp +9 -0
- data/examples/mcx_nogroup.pp +118 -0
- data/examples/mcx_notexists_absent.pp +4 -0
- data/ext/emacs/puppet-mode.el +1 -1
- data/lib/puppet.rb +1 -1
- data/lib/puppet/external/nagios/base.rb +114 -71
- data/lib/puppet/feature/base.rb +6 -0
- data/lib/puppet/indirector/yaml.rb +12 -3
- data/lib/puppet/module.rb +1 -1
- data/lib/puppet/network/client/master.rb +1 -1
- data/lib/puppet/network/xmlrpc/client.rb +3 -1
- data/lib/puppet/parameter.rb +1 -1
- data/lib/puppet/parser/ast.rb +15 -0
- data/lib/puppet/parser/ast/astarray.rb +1 -2
- data/lib/puppet/parser/ast/casestatement.rb +2 -0
- data/lib/puppet/parser/ast/collection.rb +2 -0
- data/lib/puppet/parser/ast/comparison_operator.rb +4 -0
- data/lib/puppet/parser/ast/definition.rb +2 -0
- data/lib/puppet/parser/ast/else.rb +3 -0
- data/lib/puppet/parser/ast/function.rb +19 -12
- data/lib/puppet/parser/ast/hostclass.rb +9 -1
- data/lib/puppet/parser/ast/ifstatement.rb +3 -0
- data/lib/puppet/parser/ast/node.rb +3 -0
- data/lib/puppet/parser/ast/resource.rb +3 -0
- data/lib/puppet/parser/ast/resource_defaults.rb +2 -0
- data/lib/puppet/parser/ast/resource_override.rb +3 -0
- data/lib/puppet/parser/ast/vardef.rb +3 -0
- data/lib/puppet/parser/functions.rb +14 -0
- data/lib/puppet/parser/functions/inline_template.rb +21 -0
- data/lib/puppet/parser/functions/template.rb +3 -2
- data/lib/puppet/parser/lexer.rb +56 -7
- data/lib/puppet/parser/parser.rb +114 -98
- data/lib/puppet/parser/parser_support.rb +24 -4
- data/lib/puppet/parser/resource/reference.rb +4 -3
- data/lib/puppet/parser/templatewrapper.rb +30 -22
- data/lib/puppet/property.rb +1 -1
- data/lib/puppet/property/list.rb +7 -2
- data/lib/puppet/property/ordered_list.rb +22 -0
- data/lib/puppet/provider/augeas/augeas.rb +189 -0
- data/lib/puppet/provider/computer/computer.rb +22 -0
- data/lib/puppet/provider/confine.rb +4 -1
- data/lib/puppet/provider/confine/variable.rb +13 -2
- data/lib/puppet/provider/confine_collection.rb +4 -1
- data/lib/puppet/provider/confiner.rb +1 -1
- data/lib/puppet/provider/group/directoryservice.rb +6 -3
- data/lib/puppet/provider/group/groupadd.rb +5 -2
- data/lib/puppet/provider/group/ldap.rb +11 -9
- data/lib/puppet/provider/group/netinfo.rb +8 -4
- data/lib/puppet/provider/group/pw.rb +5 -1
- data/lib/puppet/provider/host/netinfo.rb +5 -2
- data/lib/puppet/provider/macauthorization/macauthorization.rb +315 -0
- data/lib/puppet/provider/mcx/mcxcontent.rb +201 -0
- data/lib/puppet/provider/nameservice/directoryservice.rb +210 -107
- data/lib/puppet/provider/nameservice/netinfo.rb +7 -2
- data/lib/puppet/provider/package/appdmg.rb +0 -3
- data/lib/puppet/provider/package/apt.rb +6 -0
- data/lib/puppet/provider/package/rpm.rb +2 -0
- data/lib/puppet/provider/package/yum.rb +5 -1
- data/lib/puppet/provider/package/yumhelper.py +9 -0
- data/lib/puppet/provider/service/base.rb +9 -6
- data/lib/puppet/provider/service/daemontools.rb +25 -15
- data/lib/puppet/provider/service/debian.rb +6 -2
- data/lib/puppet/provider/service/freebsd.rb +5 -2
- data/lib/puppet/provider/service/gentoo.rb +6 -3
- data/lib/puppet/provider/service/init.rb +31 -21
- data/lib/puppet/provider/service/launchd.rb +195 -0
- data/lib/puppet/provider/service/redhat.rb +5 -2
- data/lib/puppet/provider/service/runit.rb +30 -20
- data/lib/puppet/provider/service/smf.rb +7 -4
- data/lib/puppet/provider/ssh_authorized_key/parsed.rb +21 -1
- data/lib/puppet/provider/user/directoryservice.rb +1 -0
- data/lib/puppet/provider/user/netinfo.rb +9 -3
- data/lib/puppet/provider/user/user_role_add.rb +43 -6
- data/lib/puppet/provider/zfs/solaris.rb +45 -0
- data/lib/puppet/provider/zone/solaris.rb +8 -4
- data/lib/puppet/provider/zpool/solaris.rb +116 -0
- data/lib/puppet/rails/database/003_add_environment_to_host.rb +9 -0
- data/lib/puppet/rails/database/schema.rb +1 -0
- data/lib/puppet/rails/host.rb +4 -0
- data/lib/puppet/reference/configuration.rb +1 -1
- data/lib/puppet/reports/tagmail.rb +15 -6
- data/lib/puppet/transaction/change.rb +3 -5
- data/lib/puppet/transportable.rb +1 -0
- data/lib/puppet/type/augeas.rb +155 -0
- data/lib/puppet/type/computer.rb +62 -0
- data/lib/puppet/type/exec.rb +2 -1
- data/lib/puppet/type/file.rb +1 -1
- data/lib/puppet/type/file/ensure.rb +8 -5
- data/lib/puppet/type/file/mode.rb +0 -14
- data/lib/puppet/type/file/owner.rb +32 -64
- data/lib/puppet/type/file/selcontext.rb +3 -8
- data/lib/puppet/type/group.rb +27 -45
- data/lib/puppet/type/k5login.rb +1 -1
- data/lib/puppet/type/macauthorization.rb +141 -0
- data/lib/puppet/type/mcx.rb +115 -0
- data/lib/puppet/type/mount.rb +1 -1
- data/lib/puppet/type/nagios_hostdependency.rb +3 -0
- data/lib/puppet/type/ssh_authorized_key.rb +16 -0
- data/lib/puppet/type/tidy.rb +43 -14
- data/lib/puppet/type/user.rb +25 -1
- data/lib/puppet/type/zfs.rb +51 -0
- data/lib/puppet/type/zone.rb +8 -0
- data/lib/puppet/type/zpool.rb +93 -0
- data/lib/puppet/util.rb +17 -38
- data/lib/puppet/util/file_locking.rb +44 -0
- data/lib/puppet/util/filetype.rb +3 -3
- data/lib/puppet/util/log.rb +1 -16
- data/lib/puppet/util/metric.rb +0 -5
- data/lib/puppet/util/rdoc.rb +85 -0
- data/lib/puppet/util/rdoc/code_objects.rb +219 -0
- data/lib/puppet/util/rdoc/generators/puppet_generator.rb +829 -0
- data/lib/puppet/util/rdoc/generators/template/puppet/puppet.rb +1051 -0
- data/lib/puppet/util/rdoc/parser.rb +437 -0
- data/lib/puppet/util/selinux.rb +135 -63
- data/lib/puppet/util/settings.rb +136 -126
- data/lib/puppet/util/storage.rb +4 -2
- data/spec/Rakefile +91 -0
- data/spec/integration/checksum.rb +47 -0
- data/spec/integration/defaults.rb +47 -0
- data/spec/integration/file_serving/configuration.rb +43 -0
- data/spec/integration/file_serving/content.rb +18 -0
- data/spec/integration/file_serving/metadata.rb +18 -0
- data/spec/integration/indirector/direct_file_server.rb +80 -0
- data/spec/integration/indirector/file_content/file_server.rb +18 -0
- data/spec/integration/indirector/file_metadata/file_server.rb +18 -0
- data/spec/integration/indirector/module_files.rb +57 -0
- data/spec/integration/indirector/node/ldap.rb +15 -0
- data/spec/integration/indirector/rest.rb +464 -0
- data/spec/integration/network/server/mongrel.rb +48 -0
- data/spec/integration/network/server/webrick.rb +48 -0
- data/spec/integration/node.rb +93 -0
- data/spec/integration/node/catalog.rb +54 -0
- data/spec/integration/node/facts.rb +45 -0
- data/spec/integration/provider/package.rb +26 -0
- data/spec/integration/provider/service/init.rb +32 -0
- data/spec/integration/reference/providers.rb +17 -0
- data/spec/integration/reports.rb +14 -0
- data/spec/integration/transaction/report.rb +26 -0
- data/spec/integration/type/package.rb +22 -0
- data/spec/integration/util/file_locking.rb +36 -0
- data/spec/monkey_patches/add_confine_and_runnable_to_rspec_dsl.rb +46 -0
- data/spec/monkey_patches/alias_should_to_must.rb +5 -0
- data/spec/shared_behaviours/file_server_terminus.rb +42 -0
- data/spec/shared_behaviours/file_serving.rb +64 -0
- data/spec/shared_behaviours/memory_terminus.rb +32 -0
- data/spec/spec.opts +5 -0
- data/spec/spec_helper.rb +36 -0
- data/spec/unit/executables/client/certhandler.rb +122 -0
- data/spec/unit/file_serving/configuration.rb +224 -0
- data/spec/unit/file_serving/configuration/parser.rb +135 -0
- data/spec/unit/file_serving/content.rb +71 -0
- data/spec/unit/file_serving/file_base.rb +124 -0
- data/spec/unit/file_serving/fileset.rb +239 -0
- data/spec/unit/file_serving/indirection_hooks.rb +124 -0
- data/spec/unit/file_serving/metadata.rb +187 -0
- data/spec/unit/file_serving/mount.rb +143 -0
- data/spec/unit/file_serving/terminus_helper.rb +76 -0
- data/spec/unit/indirector.rb +152 -0
- data/spec/unit/indirector/catalog/compiler.rb +156 -0
- data/spec/unit/indirector/catalog/yaml.rb +25 -0
- data/spec/unit/indirector/checksum/file.rb +139 -0
- data/spec/unit/indirector/code.rb +33 -0
- data/spec/unit/indirector/direct_file_server.rb +89 -0
- data/spec/unit/indirector/envelope.rb +47 -0
- data/spec/unit/indirector/exec.rb +51 -0
- data/spec/unit/indirector/facts/facter.rb +76 -0
- data/spec/unit/indirector/facts/yaml.rb +26 -0
- data/spec/unit/indirector/file.rb +154 -0
- data/spec/unit/indirector/file_content/file.rb +18 -0
- data/spec/unit/indirector/file_content/file_server.rb +18 -0
- data/spec/unit/indirector/file_content/modules.rb +18 -0
- data/spec/unit/indirector/file_content/rest.rb +11 -0
- data/spec/unit/indirector/file_metadata/file.rb +52 -0
- data/spec/unit/indirector/file_metadata/file_server.rb +18 -0
- data/spec/unit/indirector/file_metadata/modules.rb +42 -0
- data/spec/unit/indirector/file_metadata/rest.rb +9 -0
- data/spec/unit/indirector/file_server.rb +184 -0
- data/spec/unit/indirector/indirection.rb +731 -0
- data/spec/unit/indirector/ldap.rb +143 -0
- data/spec/unit/indirector/memory.rb +29 -0
- data/spec/unit/indirector/module_files.rb +259 -0
- data/spec/unit/indirector/node/exec.rb +69 -0
- data/spec/unit/indirector/node/ldap.rb +424 -0
- data/spec/unit/indirector/node/memory.rb +19 -0
- data/spec/unit/indirector/node/plain.rb +19 -0
- data/spec/unit/indirector/node/rest.rb +13 -0
- data/spec/unit/indirector/node/yaml.rb +25 -0
- data/spec/unit/indirector/plain.rb +29 -0
- data/spec/unit/indirector/report/processor.rb +81 -0
- data/spec/unit/indirector/request.rb +87 -0
- data/spec/unit/indirector/rest.rb +372 -0
- data/spec/unit/indirector/ssl_rsa/file.rb +116 -0
- data/spec/unit/indirector/terminus.rb +245 -0
- data/spec/unit/indirector/yaml.rb +145 -0
- data/spec/unit/module.rb +247 -0
- data/spec/unit/network/client.rb +45 -0
- data/spec/unit/network/client/master.rb +442 -0
- data/spec/unit/network/handler/fileserver.rb +179 -0
- data/spec/unit/network/http.rb +35 -0
- data/spec/unit/network/http/mongrel.rb +117 -0
- data/spec/unit/network/http/mongrel/rest.rb +377 -0
- data/spec/unit/network/http/mongrel/xmlrpc.rb +0 -0
- data/spec/unit/network/http/webrick.rb +127 -0
- data/spec/unit/network/http/webrick/rest.rb +323 -0
- data/spec/unit/network/http/webrick/xmlrpc.rb +0 -0
- data/spec/unit/network/http_pool.rb +238 -0
- data/spec/unit/network/server.rb +316 -0
- data/spec/unit/network/xmlrpc/client.rb +13 -0
- data/spec/unit/node.rb +167 -0
- data/spec/unit/node/catalog.rb +864 -0
- data/spec/unit/node/environment.rb +37 -0
- data/spec/unit/node/facts.rb +44 -0
- data/spec/unit/other/checksum.rb +92 -0
- data/spec/unit/other/pgraph.rb +210 -0
- data/spec/unit/other/transaction.rb +33 -0
- data/spec/unit/other/transbucket.rb +172 -0
- data/spec/unit/other/transobject.rb +92 -0
- data/spec/unit/parameter.rb +24 -0
- data/spec/unit/parser/ast.rb +37 -0
- data/spec/unit/parser/ast/arithmetic_operator.rb +73 -0
- data/spec/unit/parser/ast/astarray.rb +66 -0
- data/spec/unit/parser/ast/boolean_operator.rb +53 -0
- data/spec/unit/parser/ast/collexpr.rb +92 -0
- data/spec/unit/parser/ast/comparison_operator.rb +92 -0
- data/spec/unit/parser/ast/definition.rb +195 -0
- data/spec/unit/parser/ast/function.rb +77 -0
- data/spec/unit/parser/ast/hostclass.rb +148 -0
- data/spec/unit/parser/ast/minus.rb +36 -0
- data/spec/unit/parser/ast/node.rb +125 -0
- data/spec/unit/parser/ast/nop.rb +20 -0
- data/spec/unit/parser/ast/not.rb +30 -0
- data/spec/unit/parser/ast/resource_override.rb +51 -0
- data/spec/unit/parser/ast/resource_reference.rb +63 -0
- data/spec/unit/parser/ast/vardef.rb +47 -0
- data/spec/unit/parser/collector.rb +426 -0
- data/spec/unit/parser/compiler.rb +561 -0
- data/spec/unit/parser/functions.rb +83 -0
- data/spec/unit/parser/functions/inline_template.rb +59 -0
- data/spec/unit/parser/functions/template.rb +62 -0
- data/spec/unit/parser/interpreter.rb +138 -0
- data/spec/unit/parser/lexer.rb +646 -0
- data/spec/unit/parser/parser.rb +228 -0
- data/spec/unit/parser/resource.rb +336 -0
- data/spec/unit/parser/resource/reference.rb +95 -0
- data/spec/unit/parser/scope.rb +87 -0
- data/spec/unit/parser/templatewrapper.rb +129 -0
- data/spec/unit/property.rb +35 -0
- data/spec/unit/property/keyvalue.rb +168 -0
- data/spec/unit/property/list.rb +156 -0
- data/spec/unit/property/ordered_list.rb +64 -0
- data/spec/unit/provider/augeas/augeas.rb +238 -0
- data/spec/unit/provider/confine.rb +78 -0
- data/spec/unit/provider/confine/exists.rb +81 -0
- data/spec/unit/provider/confine/false.rb +53 -0
- data/spec/unit/provider/confine/feature.rb +60 -0
- data/spec/unit/provider/confine/true.rb +53 -0
- data/spec/unit/provider/confine/variable.rb +107 -0
- data/spec/unit/provider/confine_collection.rb +134 -0
- data/spec/unit/provider/confiner.rb +63 -0
- data/spec/unit/provider/group/groupadd.rb +31 -0
- data/spec/unit/provider/group/ldap.rb +105 -0
- data/spec/unit/provider/ldap.rb +248 -0
- data/spec/unit/provider/macauthorization.rb +147 -0
- data/spec/unit/provider/mcx/mcxcontent.rb +175 -0
- data/spec/unit/provider/mount.rb +130 -0
- data/spec/unit/provider/mount/parsed.rb +185 -0
- data/spec/unit/provider/package/apt.rb +138 -0
- data/spec/unit/provider/package/dpkg.rb +163 -0
- data/spec/unit/provider/package/gem.rb +87 -0
- data/spec/unit/provider/package/hpux.rb +52 -0
- data/spec/unit/provider/selboolean.rb +37 -0
- data/spec/unit/provider/selmodule-example.pp +0 -0
- data/spec/unit/provider/selmodule.rb +66 -0
- data/spec/unit/provider/service/daemontools.rb +124 -0
- data/spec/unit/provider/service/launchd.rb +134 -0
- data/spec/unit/provider/service/runit.rb +117 -0
- data/spec/unit/provider/ssh_authorized_key/parsed.rb +102 -0
- data/spec/unit/provider/user/hpux.rb +25 -0
- data/spec/unit/provider/user/ldap.rb +279 -0
- data/spec/unit/provider/user/user_role_add.rb +249 -0
- data/spec/unit/provider/user/useradd.rb +115 -0
- data/spec/unit/provider/zfs/solaris.rb +87 -0
- data/spec/unit/provider/zone/solaris.rb +42 -0
- data/spec/unit/provider/zpool/solaris.rb +179 -0
- data/spec/unit/rails.rb +125 -0
- data/spec/unit/relationship.rb +149 -0
- data/spec/unit/reports.rb +61 -0
- data/spec/unit/resource_reference.rb +73 -0
- data/spec/unit/simple_graph.rb +280 -0
- data/spec/unit/transaction/change.rb +187 -0
- data/spec/unit/transaction/event.rb +25 -0
- data/spec/unit/transaction/report.rb +40 -0
- data/spec/unit/type.rb +64 -0
- data/spec/unit/type/augeas.rb +113 -0
- data/spec/unit/type/computer.rb +82 -0
- data/spec/unit/type/exec.rb +91 -0
- data/spec/unit/type/file.rb +155 -0
- data/spec/unit/type/file/ensure.rb +21 -0
- data/spec/unit/type/file/group.rb +118 -0
- data/spec/unit/type/file/owner.rb +132 -0
- data/spec/unit/type/file/selinux.rb +82 -0
- data/spec/unit/type/group.rb +40 -0
- data/spec/unit/type/macauthorization.rb +78 -0
- data/spec/unit/type/mcx.rb +108 -0
- data/spec/unit/type/mount.rb +219 -0
- data/spec/unit/type/nagios.rb +63 -0
- data/spec/unit/type/noop_metaparam.rb +38 -0
- data/spec/unit/type/package.rb +246 -0
- data/spec/unit/type/resources.rb +27 -0
- data/spec/unit/type/schedule.rb +339 -0
- data/spec/unit/type/selboolean.rb +47 -0
- data/spec/unit/type/selmodule.rb +18 -0
- data/spec/unit/type/service.rb +254 -0
- data/spec/unit/type/ssh_authorized_key.rb +106 -0
- data/spec/unit/type/tidy.rb +68 -0
- data/spec/unit/type/user.rb +260 -0
- data/spec/unit/type/zfs.rb +45 -0
- data/spec/unit/type/zone.rb +20 -0
- data/spec/unit/type/zpool.rb +110 -0
- data/spec/unit/util/checksums.rb +99 -0
- data/spec/unit/util/constant_inflector.rb +70 -0
- data/spec/unit/util/file_locking.rb +115 -0
- data/spec/unit/util/ldap/connection.rb +169 -0
- data/spec/unit/util/ldap/generator.rb +54 -0
- data/spec/unit/util/ldap/manager.rb +654 -0
- data/spec/unit/util/loadedfile.rb +65 -0
- data/spec/unit/util/log.rb +107 -0
- data/spec/unit/util/metric.rb +95 -0
- data/spec/unit/util/nagios_maker.rb +128 -0
- data/spec/unit/util/posix.rb +256 -0
- data/spec/unit/util/resource_template.rb +58 -0
- data/spec/unit/util/selinux.rb +219 -0
- data/spec/unit/util/settings.rb +847 -0
- data/spec/unit/util/storage.rb +248 -0
- data/spec/unit/util/tagging.rb +92 -0
- data/spec/unit/util/uri_helper.rb +41 -0
- data/spec/unit/util/user_attr.rb +47 -0
- data/spec/unit/util/warnings.rb +35 -0
- data/test/certmgr/support.rb +0 -6
- data/test/data/providers/ssh_authorized_key/parsed/authorized_keys +1 -0
- data/test/data/snippets/multilinecomments.pp +6 -0
- data/test/data/snippets/multipleclass.pp +9 -0
- data/test/language/functions.rb +11 -1
- data/test/language/snippets.rb +16 -0
- data/test/lib/puppettest/runnable_test.rb +1 -1
- data/test/network/handler/fileserver.rb +5 -0
- data/test/other/report.rb +0 -4
- data/test/ral/type/resources.rb +2 -19
- data/test/util/settings.rb +4 -4
- data/test/util/storage.rb +0 -24
- data/test/util/utiltest.rb +0 -33
- metadata +319 -26
- data/conf/debian/README.source +0 -2
- data/conf/debian/TODO.Debian +0 -1
- data/conf/debian/changelog +0 -257
- data/conf/debian/compat +0 -1
- data/conf/debian/control +0 -45
- data/conf/debian/copyright +0 -17
- data/conf/debian/docs +0 -1
- data/conf/debian/fileserver.conf +0 -12
- data/conf/debian/puppet.NEWS +0 -63
- data/conf/debian/puppet.conf +0 -8
- data/conf/debian/puppet.dirs +0 -7
- data/conf/debian/puppet.files +0 -6
- data/conf/debian/puppet.init +0 -64
- data/conf/debian/puppet.logrotate +0 -11
- data/conf/debian/puppet.postinst +0 -9
- data/conf/debian/puppet.postrm +0 -21
- data/conf/debian/puppet.preinst +0 -25
- data/conf/debian/puppetmaster.files +0 -4
- data/conf/debian/puppetmaster.init +0 -58
- data/conf/debian/rules +0 -115
- data/conf/debian/watch +0 -2
- data/lib/puppet/type/nagios_hostgroupescalation.rb +0 -3
@@ -1,5 +1,7 @@
|
|
1
|
-
# Manage NetInfo POSIX objects.
|
2
|
-
#
|
1
|
+
# Manage NetInfo POSIX objects.
|
2
|
+
#
|
3
|
+
# This provider has been deprecated. You should be using the directoryservice
|
4
|
+
# nameservice provider instead.
|
3
5
|
|
4
6
|
require 'puppet'
|
5
7
|
require 'puppet/provider/nameservice'
|
@@ -46,6 +48,7 @@ class NetInfo < Puppet::Provider::NameService
|
|
46
48
|
end
|
47
49
|
|
48
50
|
def self.instances
|
51
|
+
warnonce "The NetInfo provider is deprecated; use directoryservice instead"
|
49
52
|
report(@resource_type.validproperties).collect do |hash|
|
50
53
|
self.new(hash)
|
51
54
|
end
|
@@ -131,6 +134,7 @@ class NetInfo < Puppet::Provider::NameService
|
|
131
134
|
end
|
132
135
|
|
133
136
|
def ensure=(arg)
|
137
|
+
warnonce "The NetInfo provider is deprecated; use directoryservice instead"
|
134
138
|
super
|
135
139
|
|
136
140
|
# Because our stupid type can't create the whole thing at once,
|
@@ -202,6 +206,7 @@ class NetInfo < Puppet::Provider::NameService
|
|
202
206
|
|
203
207
|
# Get a report for a single resource, not the whole table
|
204
208
|
def single_report(*properties)
|
209
|
+
warnonce "The NetInfo provider is deprecated; use directoryservice instead"
|
205
210
|
self.class.report(*properties).find do |hash| hash[:name] == self.name end
|
206
211
|
end
|
207
212
|
|
@@ -12,9 +12,6 @@
|
|
12
12
|
# As a result, we store installed .app.dmg file names
|
13
13
|
# in /var/db/.puppet_appdmg_installed_<name>
|
14
14
|
|
15
|
-
# require 'ruby-debug'
|
16
|
-
# Debugger.start
|
17
|
-
|
18
15
|
require 'puppet/provider/package'
|
19
16
|
Puppet::Type.type(:package).provide(:appdmg, :parent => Puppet::Provider::Package) do
|
20
17
|
desc "Package management which copies application bundles to a target."
|
@@ -99,10 +99,16 @@ Puppet::Type.type(:package).provide :apt, :parent => :dpkg, :source => :dpkg do
|
|
99
99
|
end
|
100
100
|
|
101
101
|
def uninstall
|
102
|
+
if @resource[:responsefile]
|
103
|
+
self.run_preseed
|
104
|
+
end
|
102
105
|
aptget "-y", "-q", :remove, @resource[:name]
|
103
106
|
end
|
104
107
|
|
105
108
|
def purge
|
109
|
+
if @resource[:responsefile]
|
110
|
+
self.run_preseed
|
111
|
+
end
|
106
112
|
aptget '-y', '-q', :remove, '--purge', @resource[:name]
|
107
113
|
# workaround a "bug" in apt, that already removed packages are not purged
|
108
114
|
super
|
@@ -4,6 +4,8 @@ Puppet::Type.type(:package).provide :rpm, :source => :rpm, :parent => Puppet::Pr
|
|
4
4
|
desc "RPM packaging support; should work anywhere with a working ``rpm``
|
5
5
|
binary."
|
6
6
|
|
7
|
+
has_feature :versionable
|
8
|
+
|
7
9
|
# The query format by which we identify installed packages
|
8
10
|
NEVRAFORMAT = "%{NAME} %|EPOCH?{%{EPOCH}}:{0}| %{VERSION} %{RELEASE} %{ARCH}"
|
9
11
|
NEVRA_FIELDS = [:name, :epoch, :version, :release, :arch]
|
@@ -39,6 +39,15 @@ def pkg_lists(my):
|
|
39
39
|
|
40
40
|
my.doTsSetup()
|
41
41
|
my.doRpmDBSetup()
|
42
|
+
|
43
|
+
# Yum 2.2/2.3 python libraries require a couple of extra function calls to setup package sacks.
|
44
|
+
# They also don't have a __version__ attribute
|
45
|
+
try:
|
46
|
+
yumver = yum.__version__
|
47
|
+
except AttributeError:
|
48
|
+
my.doRepoSetup()
|
49
|
+
my.doSackSetup()
|
50
|
+
|
42
51
|
return my.doPackageLists('updates')
|
43
52
|
|
44
53
|
def shell_out():
|
@@ -1,10 +1,13 @@
|
|
1
1
|
Puppet::Type.type(:service).provide :base do
|
2
|
-
desc "The simplest form of service support.
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
2
|
+
desc "The simplest form of service support.
|
3
|
+
|
4
|
+
You have to specify enough about your service for this to work; the
|
5
|
+
minimum you can specify is a binary for starting the process, and this
|
6
|
+
same binary will be searched for in the process table to stop the
|
7
|
+
service. It is preferable to specify start, stop, and status commands,
|
8
|
+
akin to how you would do so using ``init``.
|
9
|
+
|
10
|
+
"
|
8
11
|
|
9
12
|
commands :kill => "kill"
|
10
13
|
|
@@ -2,27 +2,37 @@
|
|
2
2
|
#
|
3
3
|
# author Brice Figureau <brice-puppet@daysofwonder.com>
|
4
4
|
Puppet::Type.type(:service).provide :daemontools, :parent => :base do
|
5
|
-
desc "Daemontools service management.
|
5
|
+
desc """Daemontools service management.
|
6
|
+
|
6
7
|
This provider manages daemons running supervised by D.J.Bernstein daemontools.
|
7
8
|
It tries to detect the service directory, with by order of preference:
|
8
|
-
|
9
|
-
|
10
|
-
|
9
|
+
|
10
|
+
* /service
|
11
|
+
* /etc/service
|
12
|
+
* /var/lib/svscan
|
13
|
+
|
11
14
|
The daemon directory should be placed in a directory that can be
|
12
15
|
by default in:
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
16
|
+
|
17
|
+
* /var/lib/service
|
18
|
+
* /etc
|
19
|
+
|
20
|
+
or this can be overriden in the service resource parameters::
|
21
|
+
|
22
|
+
service {
|
23
|
+
\"myservice\":
|
24
|
+
provider => \"daemontools\", path => \"/path/to/daemons\";
|
25
|
+
}
|
20
26
|
|
21
27
|
This provider supports out of the box:
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
28
|
+
|
29
|
+
* start/stop (mapped to enable/disable)
|
30
|
+
* enable/disable
|
31
|
+
* restart
|
32
|
+
* status
|
33
|
+
|
34
|
+
|
35
|
+
"""
|
26
36
|
|
27
37
|
commands :svc => "/usr/bin/svc"
|
28
38
|
commands :svstat => "/usr/bin/svstat"
|
@@ -1,8 +1,12 @@
|
|
1
1
|
# Manage debian services. Start/stop is the same as InitSvc, but enable/disable
|
2
2
|
# is special.
|
3
3
|
Puppet::Type.type(:service).provide :debian, :parent => :init do
|
4
|
-
desc "Debian's form of ``init``-style management.
|
5
|
-
|
4
|
+
desc "Debian's form of ``init``-style management.
|
5
|
+
|
6
|
+
The only difference is that this supports service enabling and disabling
|
7
|
+
via ``update-rc.d``.
|
8
|
+
|
9
|
+
"
|
6
10
|
|
7
11
|
commands :update => "/usr/sbin/update-rc.d"
|
8
12
|
defaultfor :operatingsystem => [:debian, :ubuntu]
|
@@ -1,7 +1,10 @@
|
|
1
1
|
# Manage FreeBSD services.
|
2
2
|
Puppet::Type.type(:service).provide :freebsd, :parent => :init do
|
3
|
-
desc "FreeBSD's (and probably NetBSD?) form of ``init``-style service
|
4
|
-
|
3
|
+
desc "FreeBSD's (and probably NetBSD?) form of ``init``-style service management.
|
4
|
+
|
5
|
+
Uses ``rc.conf.d`` for service enabling and disabling.
|
6
|
+
|
7
|
+
"
|
5
8
|
|
6
9
|
confine :operatingsystem => [:freebsd, :netbsd, :openbsd]
|
7
10
|
|
@@ -1,8 +1,11 @@
|
|
1
1
|
# Manage gentoo services. Start/stop is the same as InitSvc, but enable/disable
|
2
2
|
# is special.
|
3
3
|
Puppet::Type.type(:service).provide :gentoo, :parent => :init do
|
4
|
-
desc "Gentoo's form of ``init``-style service
|
5
|
-
|
4
|
+
desc "Gentoo's form of ``init``-style service management.
|
5
|
+
|
6
|
+
Uses ``rc-update`` for service enabling and disabling.
|
7
|
+
|
8
|
+
"
|
6
9
|
|
7
10
|
commands :update => "/sbin/rc-update"
|
8
11
|
|
@@ -35,7 +38,7 @@ Puppet::Type.type(:service).provide :gentoo, :parent => :init do
|
|
35
38
|
return :false unless line
|
36
39
|
|
37
40
|
# If it's enabled then it will print output showing service | runlevel
|
38
|
-
if output =~ /#{@resource[:name]}\s
|
41
|
+
if output =~ /#{@resource[:name]}\s*\|\s*default/
|
39
42
|
return :true
|
40
43
|
else
|
41
44
|
return :false
|
@@ -1,10 +1,14 @@
|
|
1
1
|
# The standard init-based service type. Many other service types are
|
2
2
|
# customizations of this module.
|
3
3
|
Puppet::Type.type(:service).provide :init, :parent => :base do
|
4
|
-
desc "Standard init service management.
|
5
|
-
|
6
|
-
|
7
|
-
|
4
|
+
desc "Standard init service management.
|
5
|
+
|
6
|
+
This provider assumes that the init script has no ``status`` command,
|
7
|
+
because so few scripts do, so you need to either provide a status
|
8
|
+
command or specify via ``hasstatus`` that one already exists in the
|
9
|
+
init script.
|
10
|
+
|
11
|
+
"
|
8
12
|
|
9
13
|
class << self
|
10
14
|
attr_accessor :defpath
|
@@ -24,24 +28,30 @@ Puppet::Type.type(:service).provide :init, :parent => :base do
|
|
24
28
|
|
25
29
|
# List all services of this type.
|
26
30
|
def self.instances
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
31
|
+
self.defpath = [self.defpath] unless self.defpath.is_a? Array
|
32
|
+
|
33
|
+
instances = []
|
34
|
+
|
35
|
+
self.defpath.each do |path|
|
36
|
+
unless FileTest.directory?(path)
|
37
|
+
Puppet.debug "Service path %s does not exist" % path
|
38
|
+
next
|
39
|
+
end
|
40
|
+
|
41
|
+
check = [:ensure]
|
42
|
+
|
43
|
+
if public_method_defined? :enabled?
|
44
|
+
check << :enable
|
45
|
+
end
|
46
|
+
|
47
|
+
Dir.entries(path).each do |name|
|
48
|
+
fullpath = File.join(path, name)
|
49
|
+
next if name =~ /^\./
|
50
|
+
next if not FileTest.executable?(fullpath)
|
51
|
+
instances << new(:name => name, :path => path)
|
52
|
+
end
|
44
53
|
end
|
54
|
+
instances
|
45
55
|
end
|
46
56
|
|
47
57
|
# Mark that our init script supports 'status' commands.
|
@@ -0,0 +1,195 @@
|
|
1
|
+
require 'facter/util/plist'
|
2
|
+
|
3
|
+
Puppet::Type.type(:service).provide :launchd, :parent => :base do
|
4
|
+
desc "launchd service management framework.
|
5
|
+
|
6
|
+
This provider manages launchd jobs, the default service framework for
|
7
|
+
Mac OS X, that has also been open sourced by Apple for possible use on
|
8
|
+
other platforms.
|
9
|
+
|
10
|
+
See:
|
11
|
+
* http://developer.apple.com/macosx/launchd.html
|
12
|
+
* http://launchd.macosforge.org/
|
13
|
+
|
14
|
+
This provider reads plists out of the following directories:
|
15
|
+
* /System/Library/LaunchDaemons
|
16
|
+
* /System/Library/LaunchAgents
|
17
|
+
* /Library/LaunchDaemons
|
18
|
+
* /Library/LaunchAgents
|
19
|
+
|
20
|
+
and builds up a list of services based upon each plists \"Label\" entry.
|
21
|
+
|
22
|
+
This provider supports:
|
23
|
+
* ensure => running/stopped,
|
24
|
+
* enable => true/false
|
25
|
+
* status
|
26
|
+
* restart
|
27
|
+
|
28
|
+
Here is how the Puppet states correspond to launchd states:
|
29
|
+
* stopped => job unloaded
|
30
|
+
* started => job loaded
|
31
|
+
* enabled => 'Disable' removed from job plist file
|
32
|
+
* disabled => 'Disable' added to job plist file
|
33
|
+
|
34
|
+
Note that this allows you to do something launchctl can't do, which is to
|
35
|
+
be in a state of \"stopped/enabled\ or \"running/disabled\".
|
36
|
+
|
37
|
+
"
|
38
|
+
|
39
|
+
commands :launchctl => "/bin/launchctl"
|
40
|
+
|
41
|
+
defaultfor :operatingsystem => :darwin
|
42
|
+
confine :operatingsystem => :darwin
|
43
|
+
|
44
|
+
has_feature :enableable
|
45
|
+
|
46
|
+
Launchd_Paths = ["/Library/LaunchAgents",
|
47
|
+
"/Library/LaunchDaemons",
|
48
|
+
"/System/Library/LaunchAgents",
|
49
|
+
"/System/Library/LaunchDaemons",]
|
50
|
+
|
51
|
+
|
52
|
+
# returns a label => path map for either all jobs, or just a single
|
53
|
+
# job if the label is specified
|
54
|
+
def self.jobsearch(label=nil)
|
55
|
+
label_to_path_map = {}
|
56
|
+
Launchd_Paths.each do |path|
|
57
|
+
if FileTest.exists?(path)
|
58
|
+
Dir.entries(path).each do |f|
|
59
|
+
next if f =~ /^\..*$/
|
60
|
+
next if FileTest.directory?(f)
|
61
|
+
fullpath = File.join(path, f)
|
62
|
+
job = Plist::parse_xml(fullpath)
|
63
|
+
if job and job.has_key?("Label")
|
64
|
+
if job["Label"] == label
|
65
|
+
return { label => fullpath }
|
66
|
+
else
|
67
|
+
label_to_path_map[job["Label"]] = fullpath
|
68
|
+
end
|
69
|
+
end
|
70
|
+
end
|
71
|
+
end
|
72
|
+
end
|
73
|
+
|
74
|
+
# if we didn't find the job above and we should have, error.
|
75
|
+
if label
|
76
|
+
raise Puppet::Error.new("Unable to find launchd plist for job: #{label}")
|
77
|
+
end
|
78
|
+
# if returning all jobs
|
79
|
+
label_to_path_map
|
80
|
+
end
|
81
|
+
|
82
|
+
|
83
|
+
def self.instances
|
84
|
+
jobs = self.jobsearch
|
85
|
+
jobs.keys.collect do |job|
|
86
|
+
new(:name => job, :provider => :launchd, :path => jobs[job])
|
87
|
+
end
|
88
|
+
end
|
89
|
+
|
90
|
+
|
91
|
+
# finds the path for a given label and returns the path and parsed plist
|
92
|
+
# as an array of [path, plist]. Note plist is really a Hash here.
|
93
|
+
def plist_from_label(label)
|
94
|
+
job = self.class.jobsearch(label)
|
95
|
+
job_path = job[label]
|
96
|
+
job_plist = Plist::parse_xml(job_path)
|
97
|
+
if not job_plist
|
98
|
+
raise Puppet::Error.new("Unable to parse launchd plist at path: #{job_path}")
|
99
|
+
end
|
100
|
+
[job_path, job_plist]
|
101
|
+
end
|
102
|
+
|
103
|
+
|
104
|
+
def status
|
105
|
+
# launchctl list <jobname> exits zero if the job is loaded
|
106
|
+
# and non-zero if it isn't. Simple way to check...
|
107
|
+
begin
|
108
|
+
launchctl :list, resource[:name]
|
109
|
+
return :running
|
110
|
+
rescue Puppet::ExecutionFailure
|
111
|
+
return :stopped
|
112
|
+
end
|
113
|
+
end
|
114
|
+
|
115
|
+
|
116
|
+
# start the service. To get to a state of running/enabled, we need to
|
117
|
+
# conditionally enable at load, then disable by modifying the plist file
|
118
|
+
# directly.
|
119
|
+
def start
|
120
|
+
job_path, job_plist = plist_from_label(resource[:name])
|
121
|
+
did_enable_job = false
|
122
|
+
cmds = []
|
123
|
+
cmds << :launchctl << :load
|
124
|
+
if self.enabled? == :false # launchctl won't load disabled jobs
|
125
|
+
cmds << "-w"
|
126
|
+
did_enable_job = true
|
127
|
+
end
|
128
|
+
cmds << job_path
|
129
|
+
begin
|
130
|
+
execute(cmds)
|
131
|
+
rescue Puppet::ExecutionFailure
|
132
|
+
raise Puppet::Error.new("Unable to start service: %s at path: %s" % [resource[:name], job_path])
|
133
|
+
end
|
134
|
+
# As load -w clears the Disabled flag, we need to add it in after
|
135
|
+
if did_enable_job and resource[:enable] == :false
|
136
|
+
self.disable
|
137
|
+
end
|
138
|
+
end
|
139
|
+
|
140
|
+
|
141
|
+
def stop
|
142
|
+
job_path, job_plist = plist_from_label(resource[:name])
|
143
|
+
did_disable_job = false
|
144
|
+
cmds = []
|
145
|
+
cmds << :launchctl << :unload
|
146
|
+
if self.enabled? == :true # keepalive jobs can't be stopped without disabling
|
147
|
+
cmds << "-w"
|
148
|
+
did_disable_job = true
|
149
|
+
end
|
150
|
+
cmds << job_path
|
151
|
+
begin
|
152
|
+
execute(cmds)
|
153
|
+
rescue Puppet::ExecutionFailure
|
154
|
+
raise Puppet::Error.new("Unable to stop service: %s at path: %s" % [resource[:name], job_path])
|
155
|
+
end
|
156
|
+
# As unload -w sets the Disabled flag, we need to add it in after
|
157
|
+
if did_disable_job and resource[:enable] == :true
|
158
|
+
self.enable
|
159
|
+
end
|
160
|
+
end
|
161
|
+
|
162
|
+
|
163
|
+
# launchd jobs are enabled by default. They are only disabled if the key
|
164
|
+
# "Disabled" is set to true, but it can also be set to false to enable it.
|
165
|
+
def enabled?
|
166
|
+
job_path, job_plist = plist_from_label(resource[:name])
|
167
|
+
if job_plist.has_key?("Disabled")
|
168
|
+
if job_plist["Disabled"] # inverse of disabled is enabled
|
169
|
+
return :false
|
170
|
+
end
|
171
|
+
end
|
172
|
+
return :true
|
173
|
+
end
|
174
|
+
|
175
|
+
|
176
|
+
# enable and disable are a bit hacky. We write out the plist with the appropriate value
|
177
|
+
# rather than dealing with launchctl as it is unable to change the Disabled flag
|
178
|
+
# without actually loading/unloading the job.
|
179
|
+
def enable
|
180
|
+
job_path, job_plist = plist_from_label(resource[:name])
|
181
|
+
if self.enabled? == :false
|
182
|
+
job_plist.delete("Disabled")
|
183
|
+
Plist::Emit.save_plist(job_plist, job_path)
|
184
|
+
end
|
185
|
+
end
|
186
|
+
|
187
|
+
|
188
|
+
def disable
|
189
|
+
job_path, job_plist = plist_from_label(resource[:name])
|
190
|
+
job_plist["Disabled"] = true
|
191
|
+
Plist::Emit.save_plist(job_plist, job_path)
|
192
|
+
end
|
193
|
+
|
194
|
+
|
195
|
+
end
|