puppet 0.24.9 → 0.25.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 +18680 -1241
- data/CHANGELOG.old +1705 -0
- data/LICENSE +2 -2
- data/README +1 -1
- data/README.queueing +126 -0
- data/README.rst +4 -4
- data/Rakefile +62 -216
- data/bin/filebucket +6 -117
- data/bin/pi +50 -0
- data/bin/puppet +7 -188
- data/bin/puppetdoc +7 -198
- data/bin/ralsh +4 -191
- data/conf/auth.conf +94 -0
- data/conf/gentoo/init.d/puppetmaster +30 -30
- data/conf/osx/PackageInfo.plist +30 -30
- data/conf/osx/createpackage.sh +23 -18
- data/conf/osx/preflight +8 -0
- data/conf/puppet-queue.conf +10 -0
- data/conf/redhat/client.init +52 -41
- data/conf/redhat/logrotate +1 -0
- data/conf/redhat/puppet.spec +74 -36
- data/conf/redhat/rundir-perms.patch +28 -0
- data/conf/redhat/server.init +48 -43
- data/conf/redhat/server.sysconfig +4 -4
- data/conf/solaris/smf/puppetd.xml +53 -53
- data/conf/solaris/smf/puppetmasterd.xml +53 -53
- data/conf/solaris/smf/svc-puppetd +4 -4
- data/conf/solaris/smf/svc-puppetmasterd +3 -3
- data/conf/suse/client.init +4 -4
- data/conf/suse/puppet.spec +14 -14
- data/conf/suse/server.init +17 -17
- data/examples/etc/init.d/sleeper +8 -8
- data/examples/mac_dscl.pp +2 -2
- data/examples/mac_dscl_revert.pp +1 -1
- data/examples/mcx_dock_default.pp +108 -108
- data/examples/mcx_dock_full.pp +108 -108
- data/examples/mcx_nogroup.pp +108 -108
- data/examples/modules/sample-module/lib/puppet/parser/functions/hostname_to_dn.rb +5 -5
- data/examples/modules/sample-module/manifests/init.pp +2 -2
- data/examples/relationships +1 -1
- data/ext/autotest/config +6 -6
- data/ext/bin/sleeper +12 -12
- data/ext/dbfix.sql +21 -21
- data/ext/emacs/puppet-mode.el +42 -41
- data/ext/extlookup.rb +183 -0
- data/ext/ldap/puppet.schema +2 -1
- data/ext/logcheck/puppet +1 -1
- data/ext/module_puppet +7 -7
- data/ext/nagios/check_puppet.rb +83 -83
- data/ext/nagios/naggen +302 -0
- data/ext/puppet-test +61 -18
- data/ext/puppetlisten/puppetlisten.rb +76 -0
- data/ext/puppetlisten/puppetrun.rb +39 -0
- data/ext/puppetstoredconfigclean.rb +29 -29
- data/ext/rack/README +73 -0
- data/ext/rack/files/apache2.conf +38 -0
- data/ext/rack/files/config.ru +18 -0
- data/ext/rack/manifest.pp +59 -0
- data/ext/vim/syntax/puppet.vim +54 -35
- data/install.rb +37 -26
- data/lib/puppet.rb +15 -227
- data/lib/puppet/agent.rb +134 -0
- data/lib/puppet/agent/locker.rb +42 -0
- data/lib/puppet/agent/runner.rb +65 -0
- data/lib/puppet/application.rb +313 -0
- data/lib/puppet/application/filebucket.rb +87 -0
- data/lib/puppet/application/pi.rb +214 -0
- data/lib/puppet/application/puppet.rb +177 -0
- data/lib/puppet/application/puppetca.rb +71 -0
- data/lib/puppet/application/puppetd.rb +256 -0
- data/lib/puppet/application/puppetdoc.rb +222 -0
- data/lib/puppet/application/puppetmasterd.rb +168 -0
- data/lib/puppet/application/puppetqd.rb +96 -0
- data/lib/puppet/application/puppetrun.rb +219 -0
- data/lib/puppet/application/ralsh.rb +168 -0
- data/lib/puppet/configurer.rb +177 -0
- data/lib/puppet/configurer/downloader.rb +79 -0
- data/lib/puppet/configurer/fact_handler.rb +68 -0
- data/lib/puppet/configurer/plugin_handler.rb +26 -0
- data/lib/puppet/daemon.rb +78 -28
- data/lib/puppet/defaults.rb +239 -166
- data/lib/puppet/dsl.rb +7 -7
- data/lib/puppet/external/dot.rb +271 -271
- data/lib/puppet/external/event-loop/better-definers.rb +298 -298
- data/lib/puppet/external/event-loop/event-loop.rb +274 -274
- data/lib/puppet/external/event-loop/signal-system.rb +163 -163
- data/lib/puppet/external/lock.rb +1 -1
- data/lib/puppet/external/nagios.rb +20 -20
- data/lib/puppet/external/nagios/base.rb +3 -3
- data/lib/puppet/external/nagios/grammar.ry +185 -0
- data/lib/puppet/external/nagios/makefile +9 -0
- data/lib/puppet/external/nagios/parser.rb +1 -1
- data/lib/puppet/feature/json.rb +2 -0
- data/lib/puppet/feature/rack.rb +24 -0
- data/lib/puppet/feature/rails.rb +23 -33
- data/lib/puppet/feature/rubygems.rb +6 -0
- data/lib/puppet/feature/stomp.rb +6 -0
- data/lib/puppet/file_serving/{file_base.rb → base.rb} +10 -9
- data/lib/puppet/file_serving/configuration.rb +61 -61
- data/lib/puppet/file_serving/configuration/parser.rb +24 -29
- data/lib/puppet/file_serving/content.rb +26 -11
- data/lib/puppet/file_serving/fileset.rb +54 -19
- data/lib/puppet/file_serving/indirection_hooks.rb +12 -24
- data/lib/puppet/file_serving/metadata.rb +8 -8
- data/lib/puppet/file_serving/mount.rb +9 -151
- data/lib/puppet/file_serving/mount/file.rb +126 -0
- data/lib/puppet/file_serving/mount/modules.rb +25 -0
- data/lib/puppet/file_serving/mount/plugins.rb +27 -0
- data/lib/puppet/file_serving/terminus_helper.rb +9 -4
- data/lib/puppet/indirector.rb +6 -4
- data/lib/puppet/indirector/active_record.rb +28 -0
- data/lib/puppet/indirector/catalog/active_record.rb +36 -0
- data/lib/puppet/indirector/catalog/compiler.rb +50 -24
- data/lib/puppet/indirector/catalog/queue.rb +5 -0
- data/lib/puppet/indirector/catalog/rest.rb +6 -0
- data/lib/puppet/indirector/catalog/yaml.rb +2 -4
- data/lib/puppet/indirector/certificate/ca.rb +9 -0
- data/lib/puppet/indirector/certificate/file.rb +9 -0
- data/lib/puppet/indirector/certificate/rest.rb +9 -0
- data/lib/puppet/indirector/certificate_request/ca.rb +14 -0
- data/lib/puppet/indirector/certificate_request/file.rb +8 -0
- data/lib/puppet/indirector/certificate_request/rest.rb +9 -0
- data/lib/puppet/indirector/certificate_revocation_list/ca.rb +8 -0
- data/lib/puppet/indirector/certificate_revocation_list/file.rb +8 -0
- data/lib/puppet/indirector/certificate_revocation_list/rest.rb +9 -0
- data/lib/puppet/indirector/direct_file_server.rb +4 -8
- data/lib/puppet/indirector/exec.rb +2 -6
- data/lib/puppet/indirector/facts/active_record.rb +36 -0
- data/lib/puppet/indirector/facts/facter.rb +30 -22
- data/lib/puppet/indirector/facts/rest.rb +6 -0
- data/lib/puppet/indirector/file.rb +1 -0
- data/lib/puppet/indirector/file_content/rest.rb +0 -1
- data/lib/puppet/indirector/file_metadata/file.rb +2 -2
- data/lib/puppet/indirector/file_metadata/rest.rb +0 -1
- data/lib/puppet/indirector/file_server.rb +31 -18
- data/lib/puppet/indirector/indirection.rb +46 -33
- data/lib/puppet/indirector/key/ca.rb +12 -0
- data/lib/puppet/indirector/key/file.rb +42 -0
- data/lib/puppet/indirector/node/active_record.rb +13 -0
- data/lib/puppet/indirector/node/ldap.rb +1 -1
- data/lib/puppet/indirector/queue.rb +83 -0
- data/lib/puppet/indirector/report/processor.rb +1 -1
- data/lib/puppet/indirector/report/rest.rb +7 -0
- data/lib/puppet/indirector/request.rb +158 -15
- data/lib/puppet/indirector/rest.rb +74 -36
- data/lib/puppet/indirector/runner/rest.rb +7 -0
- data/lib/puppet/indirector/ssl_file.rb +174 -0
- data/lib/puppet/indirector/terminus.rb +4 -4
- data/lib/puppet/indirector/yaml.rb +1 -1
- data/lib/puppet/metatype/manager.rb +3 -3
- data/lib/puppet/module.rb +99 -124
- data/lib/puppet/network/authconfig.rb +57 -42
- data/lib/puppet/network/authstore.rb +58 -10
- data/lib/puppet/network/client.rb +0 -2
- data/lib/puppet/network/client/ca.rb +1 -1
- data/lib/puppet/network/client/dipper.rb +7 -2
- data/lib/puppet/network/format.rb +123 -0
- data/lib/puppet/network/format_handler.rb +156 -0
- data/lib/puppet/network/formats.rb +123 -0
- data/lib/puppet/network/handler/filebucket.rb +1 -1
- data/lib/puppet/network/handler/fileserver.rb +43 -35
- data/lib/puppet/network/handler/master.rb +4 -4
- data/lib/puppet/network/handler/report.rb +1 -1
- data/lib/puppet/network/handler/resource.rb +16 -20
- data/lib/puppet/network/handler/runner.rb +9 -42
- data/lib/puppet/network/http.rb +4 -4
- data/lib/puppet/network/http/api.rb +4 -0
- data/lib/puppet/network/http/api/v1.rb +65 -0
- data/lib/puppet/network/http/handler.rb +163 -56
- data/lib/puppet/network/http/mongrel.rb +19 -15
- data/lib/puppet/network/http/mongrel/rest.rb +35 -17
- data/lib/puppet/network/http/rack.rb +62 -0
- data/lib/puppet/network/http/rack/httphandler.rb +34 -0
- data/lib/puppet/network/http/rack/rest.rb +79 -0
- data/lib/puppet/network/http/rack/xmlrpc.rb +65 -0
- data/lib/puppet/network/http/webrick.rb +89 -16
- data/lib/puppet/network/http/webrick/rest.rb +24 -11
- data/lib/puppet/network/http_pool.rb +28 -29
- data/lib/puppet/network/http_server/mongrel.rb +8 -10
- data/lib/puppet/network/http_server/webrick.rb +1 -3
- data/lib/puppet/network/rest_authconfig.rb +89 -0
- data/lib/puppet/network/rest_authorization.rb +25 -0
- data/lib/puppet/network/rights.rb +230 -27
- data/lib/puppet/network/server.rb +133 -31
- data/lib/puppet/network/xmlrpc/client.rb +5 -5
- data/lib/puppet/network/xmlrpc/webrick_servlet.rb +6 -6
- data/lib/puppet/node.rb +28 -21
- data/lib/puppet/node/environment.rb +48 -0
- data/lib/puppet/node/facts.rb +21 -0
- data/lib/puppet/parameter.rb +291 -219
- data/lib/puppet/parser/ast.rb +1 -0
- data/lib/puppet/parser/ast/astarray.rb +5 -1
- data/lib/puppet/parser/ast/boolean_operator.rb +3 -3
- data/lib/puppet/parser/ast/caseopt.rb +10 -0
- data/lib/puppet/parser/ast/casestatement.rb +12 -27
- data/lib/puppet/parser/ast/collection.rb +31 -0
- data/lib/puppet/parser/ast/collexpr.rb +18 -11
- data/lib/puppet/parser/ast/comparison_operator.rb +1 -1
- data/lib/puppet/parser/ast/definition.rb +6 -2
- data/lib/puppet/parser/ast/function.rb +7 -2
- data/lib/puppet/parser/ast/ifstatement.rb +11 -6
- data/lib/puppet/parser/ast/leaf.rb +106 -3
- data/lib/puppet/parser/ast/match_operator.rb +31 -0
- data/lib/puppet/parser/ast/node.rb +10 -6
- data/lib/puppet/parser/ast/resource_defaults.rb +2 -2
- data/lib/puppet/parser/ast/resource_override.rb +1 -1
- data/lib/puppet/parser/ast/resource_reference.rb +11 -3
- data/lib/puppet/parser/ast/selector.rb +14 -32
- data/lib/puppet/parser/ast/vardef.rb +1 -1
- data/lib/puppet/parser/collector.rb +67 -15
- data/lib/puppet/parser/compiler.rb +21 -53
- data/lib/puppet/parser/files.rb +92 -0
- data/lib/puppet/parser/functions.rb +3 -3
- data/lib/puppet/parser/functions/defined.rb +3 -3
- data/lib/puppet/parser/functions/fqdn_rand.rb +3 -3
- data/lib/puppet/parser/functions/inline_template.rb +4 -4
- data/lib/puppet/parser/functions/regsubst.rb +37 -35
- data/lib/puppet/parser/functions/require.rb +34 -0
- data/lib/puppet/parser/functions/shellquote.rb +41 -0
- data/lib/puppet/parser/functions/split.rb +29 -0
- data/lib/puppet/parser/functions/sprintf.rb +6 -6
- data/lib/puppet/parser/functions/template.rb +4 -4
- data/lib/puppet/parser/functions/versioncmp.rb +22 -1
- data/lib/puppet/parser/grammar.ra +812 -0
- data/lib/puppet/parser/interpreter.rb +4 -4
- data/lib/puppet/parser/lexer.rb +44 -15
- data/lib/puppet/parser/loaded_code.rb +115 -0
- data/lib/puppet/parser/makefile +8 -0
- data/lib/puppet/parser/parser.rb +1080 -928
- data/lib/puppet/parser/parser_support.rb +118 -96
- data/lib/puppet/parser/resource.rb +56 -126
- data/lib/puppet/parser/resource/param.rb +2 -76
- data/lib/puppet/parser/resource/reference.rb +15 -8
- data/lib/puppet/parser/scope.rb +68 -35
- data/lib/puppet/parser/templatewrapper.rb +8 -8
- data/lib/puppet/parser/yaml_trimmer.rb +11 -0
- data/lib/puppet/property.rb +69 -124
- data/lib/puppet/property/list.rb +3 -3
- data/lib/puppet/provider.rb +5 -5
- data/lib/puppet/provider/augeas/augeas.rb +119 -118
- data/lib/puppet/provider/computer/computer.rb +3 -3
- data/lib/puppet/provider/confine/variable.rb +1 -1
- data/lib/puppet/provider/cron/crontab.rb +8 -7
- data/lib/puppet/provider/group/directoryservice.rb +2 -2
- data/lib/puppet/provider/group/groupadd.rb +1 -1
- data/lib/puppet/provider/group/ldap.rb +3 -3
- data/lib/puppet/provider/group/pw.rb +1 -1
- data/lib/puppet/provider/host/parsed.rb +3 -3
- data/lib/puppet/provider/ldap.rb +1 -3
- data/lib/puppet/provider/macauthorization/macauthorization.rb +62 -55
- data/lib/puppet/provider/mailalias/aliases.rb +9 -1
- data/lib/puppet/provider/maillist/mailman.rb +8 -4
- data/lib/puppet/provider/mcx/mcxcontent.rb +11 -11
- data/lib/puppet/provider/mount/parsed.rb +2 -2
- data/lib/puppet/provider/nameservice.rb +6 -6
- data/lib/puppet/provider/nameservice/directoryservice.rb +83 -87
- data/lib/puppet/provider/package/appdmg.rb +10 -9
- data/lib/puppet/provider/package/apple.rb +1 -3
- data/lib/puppet/provider/package/apt.rb +5 -5
- data/lib/puppet/provider/package/aptitude.rb +1 -1
- data/lib/puppet/provider/package/aptrpm.rb +1 -1
- data/lib/puppet/provider/package/darwinport.rb +1 -1
- data/lib/puppet/provider/package/dpkg.rb +2 -2
- data/lib/puppet/provider/package/fink.rb +6 -6
- data/lib/puppet/provider/package/freebsd.rb +1 -1
- data/lib/puppet/provider/package/gem.rb +2 -2
- data/lib/puppet/provider/package/hpux.rb +5 -5
- data/lib/puppet/provider/package/pkgdmg.rb +30 -22
- data/lib/puppet/provider/package/portage.rb +1 -1
- data/lib/puppet/provider/package/ports.rb +1 -1
- data/lib/puppet/provider/package/rpm.rb +5 -5
- data/lib/puppet/provider/package/rug.rb +1 -1
- data/lib/puppet/provider/package/sun.rb +7 -7
- data/lib/puppet/provider/package/up2date.rb +1 -1
- data/lib/puppet/provider/package/yum.rb +2 -2
- data/lib/puppet/provider/package/yumhelper.py +2 -2
- data/lib/puppet/provider/port/parsed.rb +1 -1
- data/lib/puppet/provider/selmodule/semodule.rb +3 -3
- data/lib/puppet/provider/service/base.rb +21 -12
- data/lib/puppet/provider/service/daemontools.rb +86 -49
- data/lib/puppet/provider/service/debian.rb +20 -12
- data/lib/puppet/provider/service/freebsd.rb +5 -5
- data/lib/puppet/provider/service/gentoo.rb +2 -2
- data/lib/puppet/provider/service/init.rb +21 -33
- data/lib/puppet/provider/service/launchd.rb +120 -48
- data/lib/puppet/provider/service/redhat.rb +12 -21
- data/lib/puppet/provider/service/runit.rb +19 -9
- data/lib/puppet/provider/service/smf.rb +49 -34
- data/lib/puppet/provider/ssh_authorized_key/parsed.rb +34 -0
- data/lib/puppet/provider/sshkey/parsed.rb +2 -2
- data/lib/puppet/provider/user/directoryservice.rb +12 -29
- data/lib/puppet/provider/user/hpux.rb +3 -3
- data/lib/puppet/provider/user/ldap.rb +2 -2
- data/lib/puppet/provider/zfs/solaris.rb +1 -1
- data/lib/puppet/provider/zone/solaris.rb +4 -4
- data/lib/puppet/provider/zpool/solaris.rb +3 -3
- data/lib/puppet/rails.rb +9 -9
- data/lib/puppet/rails/benchmark.rb +69 -0
- data/lib/puppet/rails/database/001_add_created_at_to_all_tables.rb +5 -5
- data/lib/puppet/rails/database/002_remove_duplicated_index_on_all_tables.rb +2 -2
- data/lib/puppet/rails/database/003_add_environment_to_host.rb +1 -1
- data/lib/puppet/rails/database/schema.rb +8 -8
- data/lib/puppet/rails/fact_value.rb +1 -1
- data/lib/puppet/rails/host.rb +211 -93
- data/lib/puppet/rails/param_name.rb +5 -1
- data/lib/puppet/rails/param_value.rb +29 -2
- data/lib/puppet/rails/puppet_tag.rb +5 -0
- data/lib/puppet/rails/resource.rb +120 -20
- data/lib/puppet/rails/resource_tag.rb +1 -1
- data/lib/puppet/rails/source_file.rb +1 -1
- data/lib/puppet/reference/configuration.rb +14 -14
- data/lib/puppet/reference/function.rb +1 -1
- data/lib/puppet/reference/metaparameter.rb +48 -0
- data/lib/puppet/reference/providers.rb +6 -6
- data/lib/puppet/reference/type.rb +1 -37
- data/lib/puppet/relationship.rb +57 -30
- data/lib/puppet/reports/rrdgraph.rb +4 -4
- data/lib/puppet/reports/store.rb +3 -3
- data/lib/puppet/reports/tagmail.rb +15 -15
- data/lib/puppet/resource.rb +265 -0
- data/lib/puppet/{node → resource}/catalog.rb +188 -112
- data/lib/puppet/{resource_reference.rb → resource/reference.rb} +46 -24
- data/lib/puppet/simple_graph.rb +165 -27
- data/lib/puppet/ssl.rb +7 -0
- data/lib/puppet/ssl/base.rb +62 -0
- data/lib/puppet/ssl/certificate.rb +34 -0
- data/lib/puppet/ssl/certificate_authority.rb +298 -0
- data/lib/puppet/ssl/certificate_authority/interface.rb +118 -0
- data/lib/puppet/ssl/certificate_factory.rb +145 -0
- data/lib/puppet/ssl/certificate_request.rb +51 -0
- data/lib/puppet/ssl/certificate_revocation_list.rb +86 -0
- data/lib/puppet/ssl/host.rb +271 -0
- data/lib/puppet/ssl/inventory.rb +52 -0
- data/lib/puppet/ssl/key.rb +56 -0
- data/lib/puppet/sslcertificates.rb +6 -6
- data/lib/puppet/sslcertificates/ca.rb +15 -15
- data/lib/puppet/sslcertificates/certificate.rb +4 -4
- data/lib/puppet/sslcertificates/inventory.rb +3 -3
- data/lib/puppet/transaction.rb +113 -139
- data/lib/puppet/transaction/change.rb +6 -6
- data/lib/puppet/transaction/event.rb +1 -1
- data/lib/puppet/transaction/report.rb +7 -1
- data/lib/puppet/transportable.rb +28 -28
- data/lib/puppet/type.rb +263 -688
- data/lib/puppet/type/augeas.rb +3 -2
- data/lib/puppet/type/component.rb +28 -95
- data/lib/puppet/type/computer.rb +10 -10
- data/lib/puppet/type/cron.rb +19 -14
- data/lib/puppet/type/exec.rb +21 -20
- data/lib/puppet/type/file.rb +306 -633
- data/lib/puppet/type/file/checksum.rb +10 -11
- data/lib/puppet/type/file/content.rb +83 -22
- data/lib/puppet/type/file/ensure.rb +15 -9
- data/lib/puppet/type/file/group.rb +7 -1
- data/lib/puppet/type/file/mode.rb +1 -1
- data/lib/puppet/type/file/owner.rb +9 -3
- data/lib/puppet/type/file/selcontext.rb +4 -4
- data/lib/puppet/type/file/source.rb +78 -179
- data/lib/puppet/type/file/target.rb +3 -3
- data/lib/puppet/type/file/type.rb +2 -2
- data/lib/puppet/type/filebucket.rb +33 -54
- data/lib/puppet/type/group.rb +8 -8
- data/lib/puppet/type/host.rb +7 -7
- data/lib/puppet/type/k5login.rb +2 -2
- data/lib/puppet/type/macauthorization.rb +77 -52
- data/lib/puppet/type/mailalias.rb +2 -2
- data/lib/puppet/type/maillist.rb +2 -2
- data/lib/puppet/type/mcx.rb +3 -3
- data/lib/puppet/type/mount.rb +16 -11
- data/lib/puppet/type/notify.rb +4 -4
- data/lib/puppet/type/package.rb +6 -28
- data/lib/puppet/type/port.rb +1 -1
- data/lib/puppet/type/resources.rb +19 -19
- data/lib/puppet/type/schedule.rb +18 -20
- data/lib/puppet/type/selmodule.rb +1 -1
- data/lib/puppet/type/service.rb +11 -7
- data/lib/puppet/type/ssh_authorized_key.rb +26 -9
- data/lib/puppet/type/sshkey.rb +2 -2
- data/lib/puppet/type/tidy.rb +285 -289
- data/lib/puppet/type/user.rb +9 -7
- data/lib/puppet/type/yumrepo.rb +17 -16
- data/lib/puppet/type/zone.rb +8 -7
- data/lib/puppet/util.rb +11 -36
- data/lib/puppet/util/autoload.rb +31 -19
- data/lib/puppet/util/autoload/file_cache.rb +115 -0
- data/lib/puppet/util/backups.rb +86 -0
- data/lib/puppet/util/cacher.rb +135 -0
- data/lib/puppet/util/checksums.rb +11 -1
- data/lib/puppet/util/classgen.rb +1 -1
- data/lib/puppet/util/config_store.rb +2 -2
- data/lib/puppet/util/constant_inflector.rb +1 -1
- data/lib/puppet/util/diff.rb +2 -2
- data/lib/puppet/util/docs.rb +9 -3
- data/lib/puppet/util/execution.rb +1 -1
- data/lib/puppet/util/feature.rb +27 -20
- data/lib/puppet/util/fileparsing.rb +3 -3
- data/lib/puppet/util/filetype.rb +8 -6
- data/lib/puppet/util/graph.rb +5 -5
- data/lib/puppet/util/inifile.rb +5 -5
- data/lib/puppet/util/json.rb +13 -0
- data/lib/puppet/util/ldap/connection.rb +2 -2
- data/lib/puppet/util/log.rb +48 -31
- data/lib/puppet/util/metric.rb +4 -4
- data/lib/puppet/util/monkey_patches.rb +43 -0
- data/lib/puppet/util/nagios_maker.rb +1 -1
- data/lib/puppet/util/package.rb +4 -4
- data/lib/puppet/util/pidlock.rb +59 -59
- data/lib/puppet/util/posix.rb +13 -52
- data/lib/puppet/util/provider_features.rb +3 -3
- data/lib/puppet/util/queue.rb +96 -0
- data/lib/puppet/util/queue/stomp.rb +47 -0
- data/lib/puppet/util/rails/cache_accumulator.rb +65 -0
- data/lib/puppet/util/rails/collection_merger.rb +0 -39
- data/lib/puppet/util/rails/reference_serializer.rb +17 -3
- data/lib/puppet/util/rdoc.rb +1 -0
- data/lib/puppet/util/rdoc/code_objects.rb +5 -1
- data/lib/puppet/util/rdoc/generators/puppet_generator.rb +5 -5
- data/lib/puppet/util/rdoc/generators/template/puppet/puppet.rb +13 -13
- data/lib/puppet/util/rdoc/parser.rb +28 -32
- data/lib/puppet/util/reference.rb +29 -8
- data/lib/puppet/util/resource_template.rb +1 -1
- data/lib/puppet/util/selinux.rb +12 -6
- data/lib/puppet/util/settings.rb +203 -578
- data/lib/puppet/util/settings/boolean_setting.rb +33 -0
- data/lib/puppet/util/settings/file_setting.rb +119 -0
- data/lib/puppet/util/settings/setting.rb +110 -0
- data/lib/puppet/util/subclass_loader.rb +1 -1
- data/lib/puppet/util/suidmanager.rb +2 -2
- data/lib/puppet/util/tagging.rb +1 -1
- data/lib/puppet/util/warnings.rb +17 -9
- data/man/man8/filebucket.8 +2 -2
- data/man/man8/pi.8 +2 -2
- data/man/man8/puppet.8 +3 -4
- data/man/man8/puppet.conf.8 +63 -63
- data/man/man8/puppetca.8 +2 -2
- data/man/man8/puppetd.8 +2 -2
- data/man/man8/puppetdoc.8 +2 -2
- data/man/man8/puppetmasterd.8 +2 -2
- data/man/man8/puppetrun.8 +2 -2
- data/man/man8/ralsh.8 +3 -3
- data/sbin/puppetca +102 -0
- data/sbin/puppetd +159 -0
- data/sbin/puppetmasterd +66 -0
- data/sbin/puppetqd +53 -0
- data/sbin/puppetrun +130 -0
- data/spec/Rakefile +2 -2
- data/spec/integration/application/puppet.rb +33 -0
- data/spec/integration/bin/puppetmasterd.rb +110 -0
- data/spec/integration/configurer.rb +18 -0
- data/spec/integration/defaults.rb +158 -7
- data/spec/integration/file_serving/content.rb +2 -0
- data/spec/integration/file_serving/fileset.rb +14 -0
- data/spec/integration/file_serving/metadata.rb +2 -0
- data/spec/integration/file_serving/terminus_helper.rb +22 -0
- data/spec/integration/indirector/catalog/compiler.rb +67 -0
- data/spec/integration/indirector/catalog/queue.rb +61 -0
- data/spec/integration/indirector/certificate/rest.rb +69 -0
- data/spec/integration/indirector/certificate_request/rest.rb +89 -0
- data/spec/integration/indirector/certificate_revocation_list/rest.rb +77 -0
- data/spec/integration/indirector/direct_file_server.rb +16 -23
- data/spec/integration/indirector/file_content/file_server.rb +75 -0
- data/spec/integration/indirector/report/rest.rb +95 -0
- data/spec/integration/indirector/rest.rb +207 -147
- data/spec/integration/network/client.rb +19 -0
- data/spec/integration/network/formats.rb +110 -0
- data/spec/integration/network/handler.rb +25 -0
- data/spec/integration/network/server/mongrel.rb +26 -8
- data/spec/integration/network/server/webrick.rb +49 -11
- data/spec/integration/node/environment.rb +58 -0
- data/spec/integration/node/facts.rb +4 -2
- data/spec/integration/parser/compiler.rb +29 -0
- data/spec/integration/parser/functions/require.rb +67 -0
- data/spec/integration/provider/mailalias/aliases.rb +25 -0
- data/spec/integration/{node → resource}/catalog.rb +17 -10
- data/spec/integration/ssl/certificate_authority.rb +135 -0
- data/spec/integration/ssl/certificate_request.rb +59 -0
- data/spec/integration/ssl/certificate_revocation_list.rb +42 -0
- data/spec/integration/ssl/host.rb +90 -0
- data/spec/integration/transaction.rb +66 -0
- data/spec/integration/transaction/report.rb +2 -5
- data/spec/integration/type.rb +22 -0
- data/spec/integration/type/file.rb +458 -0
- data/spec/integration/type/package.rb +1 -1
- data/spec/integration/type/tidy.rb +27 -0
- data/spec/integration/util/autoload.rb +114 -0
- data/spec/integration/util/feature.rb +54 -0
- data/spec/integration/util/file_locking.rb +2 -1
- data/spec/integration/util/settings.rb +27 -0
- data/spec/lib/puppet_spec/files.rb +9 -0
- data/spec/monkey_patches/add_confine_and_runnable_to_rspec_dsl.rb +1 -0
- data/spec/monkey_patches/alias_should_to_must.rb +1 -0
- data/spec/shared_behaviours/file_server_terminus.rb +14 -11
- data/spec/shared_behaviours/file_serving.rb +13 -17
- data/spec/spec_helper.rb +22 -5
- data/spec/unit/agent.rb +259 -0
- data/spec/unit/agent/locker.rb +100 -0
- data/spec/unit/agent/runner.rb +118 -0
- data/spec/unit/application.rb +420 -0
- data/spec/unit/application/filebucket.rb +220 -0
- data/spec/unit/application/pi.rb +84 -0
- data/spec/unit/application/puppet.rb +404 -0
- data/spec/unit/application/puppetca.rb +142 -0
- data/spec/unit/application/puppetd.rb +502 -0
- data/spec/unit/application/puppetdoc.rb +345 -0
- data/spec/unit/application/puppetmasterd.rb +456 -0
- data/spec/unit/application/puppetqd.rb +186 -0
- data/spec/unit/application/puppetrun.rb +279 -0
- data/spec/unit/application/ralsh.rb +237 -0
- data/spec/unit/configurer.rb +232 -0
- data/spec/unit/configurer/downloader.rb +188 -0
- data/spec/unit/configurer/fact_handler.rb +150 -0
- data/spec/unit/configurer/plugin_handler.rb +112 -0
- data/spec/unit/daemon.rb +287 -0
- data/spec/unit/file_serving/{file_base.rb → base.rb} +39 -31
- data/spec/unit/file_serving/configuration.rb +104 -93
- data/spec/unit/file_serving/configuration/parser.rb +64 -18
- data/spec/unit/file_serving/content.rb +65 -26
- data/spec/unit/file_serving/fileset.rb +116 -14
- data/spec/unit/file_serving/indirection_hooks.rb +34 -95
- data/spec/unit/file_serving/metadata.rb +27 -40
- data/spec/unit/file_serving/mount.rb +7 -118
- data/spec/unit/file_serving/mount/file.rb +188 -0
- data/spec/unit/file_serving/mount/modules.rb +63 -0
- data/spec/unit/file_serving/mount/plugins.rb +61 -0
- data/spec/unit/file_serving/terminus_helper.rb +39 -27
- data/spec/unit/indirector.rb +6 -1
- data/spec/unit/indirector/active_record.rb +76 -0
- data/spec/unit/indirector/catalog/active_record.rb +122 -0
- data/spec/unit/indirector/catalog/compiler.rb +222 -118
- data/spec/unit/indirector/catalog/queue.rb +20 -0
- data/spec/unit/indirector/catalog/rest.rb +11 -0
- data/spec/unit/indirector/catalog/yaml.rb +6 -6
- data/spec/unit/indirector/certificate/ca.rb +28 -0
- data/spec/unit/indirector/certificate/file.rb +28 -0
- data/spec/unit/indirector/certificate/rest.rb +23 -0
- data/spec/unit/indirector/certificate_request/ca.rb +19 -0
- data/spec/unit/indirector/certificate_request/file.rb +19 -0
- data/spec/unit/indirector/certificate_request/rest.rb +23 -0
- data/spec/unit/indirector/certificate_revocation_list/ca.rb +21 -0
- data/spec/unit/indirector/certificate_revocation_list/file.rb +20 -0
- data/spec/unit/indirector/certificate_revocation_list/rest.rb +23 -0
- data/spec/unit/indirector/direct_file_server.rb +3 -8
- data/spec/unit/indirector/exec.rb +6 -1
- data/spec/unit/indirector/facts/active_record.rb +104 -0
- data/spec/unit/indirector/facts/facter.rb +53 -12
- data/spec/unit/indirector/facts/rest.rb +11 -0
- data/spec/unit/indirector/file.rb +8 -1
- data/spec/unit/indirector/file_metadata/file.rb +5 -5
- data/spec/unit/indirector/file_server.rb +181 -98
- data/spec/unit/indirector/indirection.rb +102 -38
- data/spec/unit/indirector/key/ca.rb +28 -0
- data/spec/unit/indirector/key/file.rb +104 -0
- data/spec/unit/indirector/node/active_record.rb +34 -0
- data/spec/unit/indirector/node/ldap.rb +1 -1
- data/spec/unit/indirector/node/rest.rb +2 -2
- data/spec/unit/indirector/queue.rb +123 -0
- data/spec/unit/indirector/report/rest.rb +28 -0
- data/spec/unit/indirector/request.rb +221 -0
- data/spec/unit/indirector/rest.rb +343 -334
- data/spec/unit/indirector/runner/rest.rb +11 -0
- data/spec/unit/indirector/ssl_file.rb +280 -0
- data/spec/unit/module.rb +180 -180
- data/spec/unit/network/authconfig.rb +292 -0
- data/spec/unit/network/authstore.rb +94 -0
- data/spec/unit/network/client.rb +2 -2
- data/spec/unit/network/client/dipper.rb +16 -0
- data/spec/unit/network/format.rb +191 -0
- data/spec/unit/network/format_handler.rb +306 -0
- data/spec/unit/network/formats.rb +249 -0
- data/spec/unit/network/handler/fileserver.rb +2 -5
- data/spec/unit/network/http.rb +3 -3
- data/spec/unit/network/http/api/v1.rb +122 -0
- data/spec/unit/network/http/handler.rb +448 -0
- data/spec/unit/network/http/mongrel.rb +46 -32
- data/spec/unit/network/http/mongrel/rest.rb +174 -319
- data/spec/unit/network/http/rack.rb +102 -0
- data/spec/unit/network/http/rack/rest.rb +199 -0
- data/spec/unit/network/http/rack/xmlrpc.rb +157 -0
- data/spec/unit/network/http/webrick.rb +249 -37
- data/spec/unit/network/http/webrick/rest.rb +113 -279
- data/spec/unit/network/http_pool.rb +86 -110
- data/spec/unit/network/rest_authconfig.rb +146 -0
- data/spec/unit/network/rest_authorization.rb +43 -0
- data/spec/unit/network/rights.rb +519 -0
- data/spec/unit/network/server.rb +475 -257
- data/spec/unit/node.rb +43 -10
- data/spec/unit/node/environment.rb +143 -9
- data/spec/unit/node/facts.rb +77 -24
- data/spec/unit/other/selinux.rb +85 -0
- data/spec/unit/other/transbucket.rb +29 -13
- data/spec/unit/other/transobject.rb +35 -15
- data/spec/unit/parameter.rb +378 -5
- data/spec/unit/parser/ast.rb +1 -1
- data/spec/unit/parser/ast/arithmetic_operator.rb +17 -17
- data/spec/unit/parser/ast/astarray.rb +16 -10
- data/spec/unit/parser/ast/boolean_operator.rb +2 -2
- data/spec/unit/parser/ast/casestatement.rb +143 -0
- data/spec/unit/parser/ast/collection.rb +63 -0
- data/spec/unit/parser/ast/collexpr.rb +31 -8
- data/spec/unit/parser/ast/comparison_operator.rb +9 -9
- data/spec/unit/parser/ast/definition.rb +18 -0
- data/spec/unit/parser/ast/function.rb +6 -0
- data/spec/unit/parser/ast/ifstatement.rb +75 -0
- data/spec/unit/parser/ast/leaf.rb +261 -0
- data/spec/unit/parser/ast/match_operator.rb +50 -0
- data/spec/unit/parser/ast/minus.rb +1 -1
- data/spec/unit/parser/ast/node.rb +20 -0
- data/spec/unit/parser/ast/not.rb +1 -1
- data/spec/unit/parser/ast/resource_override.rb +5 -5
- data/spec/unit/parser/ast/resource_reference.rb +11 -5
- data/spec/unit/parser/ast/selector.rb +156 -0
- data/spec/unit/parser/ast/vardef.rb +11 -11
- data/spec/unit/parser/collector.rb +167 -48
- data/spec/unit/parser/compiler.rb +128 -104
- data/spec/unit/parser/files.rb +190 -0
- data/spec/unit/parser/functions/inline_template.rb +0 -0
- data/spec/unit/parser/functions/regsubst.rb +42 -42
- data/spec/unit/parser/functions/require.rb +36 -0
- data/spec/unit/parser/functions/shellquote.rb +92 -0
- data/spec/unit/parser/functions/split.rb +51 -0
- data/spec/unit/parser/functions/sprintf.rb +11 -11
- data/spec/unit/parser/functions/template.rb +0 -0
- data/spec/unit/parser/functions/versioncmp.rb +2 -2
- data/spec/unit/parser/interpreter.rb +16 -7
- data/spec/unit/parser/lexer.rb +72 -12
- data/spec/unit/parser/loaded_code.rb +198 -0
- data/spec/unit/parser/parser.rb +215 -28
- data/spec/unit/parser/resource.rb +131 -22
- data/spec/unit/parser/scope.rb +207 -12
- data/spec/unit/parser/templatewrapper.rb +8 -3
- data/spec/unit/property.rb +270 -16
- data/spec/unit/property/list.rb +12 -6
- data/spec/unit/provider.rb +31 -0
- data/spec/unit/provider/augeas/augeas.rb +61 -33
- data/spec/unit/provider/macauthorization.rb +29 -29
- data/spec/unit/provider/mcx/mcxcontent.rb +4 -4
- data/spec/unit/provider/mount/parsed.rb +5 -8
- data/spec/unit/provider/naginator.rb +0 -0
- data/spec/unit/provider/package/apt.rb +6 -6
- data/spec/unit/provider/package/pkgdmg.rb +73 -0
- data/spec/unit/provider/selboolean.rb +1 -1
- data/spec/unit/provider/selmodule.rb +2 -2
- data/spec/unit/provider/service/daemontools.rb +40 -15
- data/spec/unit/provider/service/debian.rb +89 -0
- data/spec/unit/provider/service/init.rb +106 -0
- data/spec/unit/provider/service/launchd.rb +71 -13
- data/spec/unit/provider/service/redhat.rb +94 -0
- data/spec/unit/provider/service/runit.rb +14 -2
- data/spec/unit/provider/ssh_authorized_key/parsed.rb +66 -2
- data/spec/unit/provider/user/ldap.rb +1 -1
- data/spec/unit/provider/user/user_role_add.rb +1 -1
- data/spec/unit/provider/zfs/solaris.rb +18 -6
- data/spec/unit/provider/zone/solaris.rb +1 -1
- data/spec/unit/rails.rb +16 -22
- data/spec/unit/rails/host.rb +163 -0
- data/spec/unit/rails/param_value.rb +49 -0
- data/spec/unit/rails/resource.rb +87 -0
- data/spec/unit/relationship.rb +141 -29
- data/spec/unit/resource.rb +504 -0
- data/spec/unit/resource/catalog.rb +1061 -0
- data/spec/unit/resource/reference.rb +111 -0
- data/spec/unit/simple_graph.rb +448 -191
- data/spec/unit/ssl/certificate.rb +124 -0
- data/spec/unit/ssl/certificate_authority.rb +741 -0
- data/spec/unit/ssl/certificate_authority/interface.rb +269 -0
- data/spec/unit/ssl/certificate_factory.rb +107 -0
- data/spec/unit/ssl/certificate_request.rb +193 -0
- data/spec/unit/ssl/certificate_revocation_list.rb +180 -0
- data/spec/unit/ssl/host.rb +704 -0
- data/spec/unit/ssl/inventory.rb +180 -0
- data/spec/unit/ssl/key.rb +198 -0
- data/spec/unit/transaction.rb +65 -2
- data/spec/unit/transaction/change.rb +1 -1
- data/spec/unit/transaction/report.rb +1 -1
- data/spec/unit/type.rb +361 -8
- data/spec/unit/type/augeas.rb +30 -37
- data/spec/unit/type/component.rb +63 -0
- data/spec/unit/type/computer.rb +17 -21
- data/spec/unit/type/exec.rb +27 -2
- data/spec/unit/type/file.rb +704 -83
- data/spec/unit/type/file/content.rb +253 -15
- data/spec/unit/type/file/ensure.rb +65 -2
- data/spec/unit/type/file/group.rb +5 -0
- data/spec/unit/type/file/owner.rb +5 -0
- data/spec/unit/type/file/selinux.rb +12 -16
- data/spec/unit/type/file/source.rb +264 -0
- data/spec/unit/type/filebucket.rb +74 -0
- data/spec/unit/type/group.rb +1 -5
- data/spec/unit/type/macauthorization.rb +59 -26
- data/spec/unit/type/mcx.rb +8 -16
- data/spec/unit/type/mount.rb +8 -16
- data/spec/unit/type/noop_metaparam.rb +0 -2
- data/spec/unit/type/package.rb +13 -23
- data/spec/unit/type/resources.rb +4 -7
- data/spec/unit/type/schedule.rb +1 -7
- data/spec/unit/type/selboolean.rb +4 -6
- data/spec/unit/type/service.rb +23 -33
- data/spec/unit/type/ssh_authorized_key.rb +25 -14
- data/spec/unit/type/tidy.rb +329 -21
- data/spec/unit/type/user.rb +18 -10
- data/spec/unit/type/zfs.rb +6 -6
- data/spec/unit/util/autoload.rb +94 -3
- data/spec/unit/util/autoload/file_cache.rb +183 -0
- data/spec/unit/util/backups.rb +159 -0
- data/spec/unit/util/cache_accumulator.rb +69 -0
- data/spec/unit/util/cacher.rb +185 -0
- data/spec/unit/util/checksums.rb +9 -1
- data/spec/unit/util/feature.rb +72 -0
- data/spec/unit/util/filetype.rb +1 -11
- data/spec/unit/util/json.rb +21 -0
- data/spec/unit/util/log.rb +45 -0
- data/spec/unit/util/package.rb +2 -2
- data/spec/unit/util/queue.rb +88 -0
- data/spec/unit/util/queue/stomp.rb +140 -0
- data/spec/unit/util/reference_serializer.rb +52 -0
- data/spec/unit/util/selinux.rb +5 -3
- data/spec/unit/util/settings.rb +413 -264
- data/spec/unit/util/settings/file_setting.rb +223 -0
- data/spec/unit/util/storage.rb +11 -11
- data/spec/unit/util/warnings.rb +21 -17
- data/test/Rakefile +6 -5
- data/test/certmgr/ca.rb +5 -5
- data/test/certmgr/certmgr.rb +4 -4
- data/test/data/providers/cron/crontab.allthree +2 -2
- data/test/data/providers/cron/crontab.envNcomment +1 -1
- data/test/data/providers/cron/crontab.envNname +1 -1
- data/test/data/providers/cron/crontab.multirecords +1 -1
- data/test/data/providers/cron/crontab_collections.yaml +14 -14
- data/test/data/providers/cron/crontab_multiple_with_env.yaml +6 -6
- data/test/data/providers/cron/crontab_sample_records.yaml +102 -102
- data/test/data/providers/mailalias/aliases/test1 +28 -0
- data/test/data/providers/package/testpackages.yaml +6 -6
- data/test/data/reports/1.yaml +17 -17
- data/test/data/reports/tagmail_passers.conf +2 -2
- data/test/data/snippets/append.pp +5 -5
- data/test/data/snippets/casestatement.pp +9 -2
- data/test/data/snippets/classincludes.pp +1 -1
- data/test/data/snippets/collection_override.pp +8 -0
- data/test/data/snippets/fqparents.pp +2 -2
- data/test/data/snippets/ifexpression.pp +12 -0
- data/test/data/snippets/multilinecomments.pp +5 -1
- data/test/data/snippets/selectorvalues.pp +7 -0
- data/test/data/types/hosts/1 +1 -1
- data/test/data/types/hosts/2 +3 -3
- data/test/data/types/hosts/solaris +2 -2
- data/test/data/types/mount/freebsd.fstab +7 -7
- data/test/data/types/mount/solaris.fstab +10 -10
- data/test/data/types/port/1 +472 -472
- data/test/data/types/port/darwin +4347 -4347
- data/test/language/ast.rb +3 -2
- data/test/language/ast/casestatement.rb +12 -12
- data/test/language/ast/resource.rb +4 -4
- data/test/language/ast/resource_reference.rb +5 -5
- data/test/language/ast/selector.rb +11 -11
- data/test/language/ast/variable.rb +4 -4
- data/test/language/functions.rb +16 -16
- data/test/language/parser.rb +89 -111
- data/test/language/resource.rb +3 -88
- data/test/language/scope.rb +14 -55
- data/test/language/snippets.rb +31 -31
- data/test/lib/puppettest.rb +12 -12
- data/test/lib/puppettest/certificates.rb +2 -2
- data/test/lib/puppettest/exetest.rb +0 -1
- data/test/lib/puppettest/fakes.rb +1 -1
- data/test/lib/puppettest/parsertesting.rb +9 -4
- data/test/lib/puppettest/railstesting.rb +3 -3
- data/test/lib/puppettest/servertest.rb +1 -1
- data/test/lib/puppettest/support/assertions.rb +2 -2
- data/test/lib/puppettest/support/collection.rb +1 -1
- data/test/lib/puppettest/support/resources.rb +7 -7
- data/test/lib/puppettest/support/utils.rb +10 -16
- data/test/lib/puppettest/testcase.rb +2 -1
- data/test/network/authconfig.rb +1 -1
- data/test/network/authorization.rb +1 -1
- data/test/network/authstore.rb +57 -14
- data/test/network/client/ca.rb +1 -0
- data/test/network/client/resource.rb +12 -50
- data/test/network/client_request.rb +1 -1
- data/test/network/handler/bucket.rb +2 -2
- data/test/network/handler/fileserver.rb +17 -21
- data/test/network/handler/master.rb +5 -5
- data/test/network/handler/report.rb +3 -3
- data/test/network/handler/resource.rb +29 -75
- data/test/network/handler/runner.rb +8 -58
- data/test/network/rights.rb +1 -1
- data/test/network/server/mongrel_test.rb +15 -1
- data/test/network/server/webrick.rb +0 -36
- data/test/network/xmlrpc/webrick_servlet.rb +5 -5
- data/test/other/dsl.rb +3 -3
- data/test/other/events.rb +15 -15
- data/test/other/puppet.rb +2 -32
- data/test/other/relationships.rb +21 -148
- data/test/other/report.rb +20 -23
- data/test/other/transactions.rb +110 -298
- data/test/puppet/defaults.rb +1 -1
- data/test/puppet/tc_suidmanager.rb +1 -1
- data/test/rails/railsparameter.rb +4 -4
- data/test/ral/manager/attributes.rb +12 -68
- data/test/ral/manager/instances.rb +3 -19
- data/test/ral/manager/manager.rb +7 -7
- data/test/ral/manager/provider.rb +7 -7
- data/test/ral/manager/type.rb +54 -349
- data/test/ral/providers/cron/crontab.rb +14 -14
- data/test/ral/providers/group.rb +5 -6
- data/test/ral/providers/host/parsed.rb +3 -3
- data/test/ral/providers/mailalias/aliases.rb +4 -4
- data/test/ral/providers/package.rb +3 -3
- data/test/ral/providers/package/aptitude.rb +55 -55
- data/test/ral/providers/package/aptrpm.rb +7 -7
- data/test/ral/providers/parsedfile.rb +10 -14
- data/test/ral/providers/port/parsed.rb +6 -6
- data/test/ral/providers/provider.rb +10 -10
- data/test/ral/providers/service/base.rb +32 -32
- data/test/ral/providers/sshkey/parsed.rb +14 -14
- data/test/ral/providers/user.rb +16 -17
- data/test/ral/providers/user/useradd.rb +19 -22
- data/test/ral/type/cron.rb +21 -28
- data/test/ral/type/exec.rb +57 -60
- data/test/ral/type/file.rb +88 -862
- data/test/ral/type/file/target.rb +21 -70
- data/test/ral/type/fileignoresource.rb +37 -44
- data/test/ral/type/filesources.rb +43 -473
- data/test/ral/type/group.rb +6 -7
- data/test/ral/type/host.rb +14 -30
- data/test/ral/type/mailalias.rb +3 -3
- data/test/ral/type/port.rb +5 -5
- data/test/ral/type/resources.rb +37 -37
- data/test/ral/type/service.rb +3 -3
- data/test/ral/type/sshkey.rb +34 -39
- data/test/ral/type/user.rb +15 -14
- data/test/ral/type/yumrepo.rb +18 -17
- data/test/ral/type/zone.rb +4 -6
- data/test/test +9 -9
- data/test/util/fileparsing.rb +10 -10
- data/test/util/inifile.rb +6 -6
- data/test/util/instance_loader.rb +1 -1
- data/test/util/log.rb +2 -2
- data/test/util/metrics.rb +1 -6
- data/test/util/package.rb +1 -1
- data/test/util/pidlock.rb +116 -116
- data/test/util/settings.rb +40 -429
- data/test/util/storage.rb +5 -5
- data/test/util/subclass_loader.rb +0 -7
- data/test/util/utiltest.rb +10 -29
- metadata +1369 -941
- data/bin/puppetca +0 -363
- data/bin/puppetd +0 -439
- data/bin/puppetmasterd +0 -289
- data/bin/puppetrun +0 -369
- data/conf/redhat/lsb-config.patch +0 -51
- data/conf/redhat/no-chuser-0.15.1.patch +0 -38
- data/conf/redhat/no-lockdir.patch +0 -13
- data/examples/mac_netinfo.pp +0 -5
- data/ext/passenger/README +0 -63
- data/ext/passenger/apache2.conf +0 -29
- data/ext/passenger/config.ru +0 -40
- data/lib/puppet/config_stores/rest.rb +0 -60
- data/lib/puppet/executables/client/certhandler.rb +0 -82
- data/lib/puppet/indirector/file_content/modules.rb +0 -11
- data/lib/puppet/indirector/file_metadata/modules.rb +0 -17
- data/lib/puppet/indirector/module_files.rb +0 -82
- data/lib/puppet/indirector/ssl_rsa.rb +0 -5
- data/lib/puppet/indirector/ssl_rsa/file.rb +0 -33
- data/lib/puppet/network/client/master.rb +0 -524
- data/lib/puppet/network/http_server/rack.rb +0 -148
- data/lib/puppet/pgraph.rb +0 -121
- data/lib/puppet/provider/group/netinfo.rb +0 -15
- data/lib/puppet/provider/host/netinfo.rb +0 -19
- data/lib/puppet/provider/mount/netinfo.rb +0 -37
- data/lib/puppet/provider/nameservice/netinfo.rb +0 -224
- data/lib/puppet/provider/user/netinfo.rb +0 -111
- data/lib/puppet/util/fact_store.rb +0 -59
- data/lib/puppet/util/uri_helper.rb +0 -22
- data/spec/integration/file_serving/configuration.rb +0 -43
- data/spec/integration/indirector/module_files.rb +0 -57
- data/spec/unit/executables/client/certhandler.rb +0 -135
- data/spec/unit/indirector/file_content/modules.rb +0 -18
- data/spec/unit/indirector/file_metadata/modules.rb +0 -42
- data/spec/unit/indirector/module_files.rb +0 -259
- data/spec/unit/indirector/ssl_rsa/file.rb +0 -121
- data/spec/unit/network/client/master.rb +0 -442
- data/spec/unit/node/catalog.rb +0 -865
- data/spec/unit/other/pgraph.rb +0 -210
- data/spec/unit/resource_reference.rb +0 -73
- data/spec/unit/util/uri_helper.rb +0 -41
- data/test/data/snippets/ifexpression.rb +0 -6
- data/test/executables/filebucket.rb +0 -51
- data/test/executables/puppetbin.rb +0 -104
- data/test/executables/puppetca.rb +0 -115
- data/test/executables/puppetd.rb +0 -55
- data/test/executables/puppetmasterd.rb +0 -147
- data/test/network/client/client.rb +0 -195
- data/test/network/client/master.rb +0 -490
- data/test/network/daemon.rb +0 -70
- data/test/network/handler/handler.rb +0 -63
- data/test/other/overrides.rb +0 -107
- data/test/puppet/conffiles.rb +0 -107
- data/test/rails/ast.rb +0 -73
- data/test/rails/configuration.rb +0 -71
- data/test/rails/host.rb +0 -154
- data/test/rails/railsresource.rb +0 -251
- data/test/ral/providers/host/netinfo.rb +0 -56
- data/test/ral/providers/mount/netinfo.rb +0 -79
- data/test/ral/type/basic.rb +0 -85
- data/test/ral/type/filebucket.rb +0 -157
- data/test/ral/type/parameter.rb +0 -174
- data/test/ral/type/property.rb +0 -388
- data/test/ral/type/tidy.rb +0 -291
- data/test/util/autoload.rb +0 -145
- data/test/util/features.rb +0 -95
@@ -0,0 +1,26 @@
|
|
1
|
+
# Break out the code related to plugins. This module is
|
2
|
+
# just included into the agent, but having it here makes it
|
3
|
+
# easier to test.
|
4
|
+
module Puppet::Configurer::PluginHandler
|
5
|
+
def download_plugins?
|
6
|
+
Puppet[:pluginsync]
|
7
|
+
end
|
8
|
+
|
9
|
+
# Retrieve facts from the central server.
|
10
|
+
def download_plugins
|
11
|
+
return nil unless download_plugins?
|
12
|
+
Puppet::Configurer::Downloader.new("plugin", Puppet[:plugindest], Puppet[:pluginsource], Puppet[:pluginsignore]).evaluate.each { |file| load_plugin(file) }
|
13
|
+
end
|
14
|
+
|
15
|
+
def load_plugin(file)
|
16
|
+
return unless FileTest.exist?(file)
|
17
|
+
return if FileTest.directory?(file)
|
18
|
+
|
19
|
+
begin
|
20
|
+
Puppet.info "Loading downloaded plugin %s" % file
|
21
|
+
load file
|
22
|
+
rescue Exception => detail
|
23
|
+
Puppet.err "Could not load downloaded file %s: %s" % [file, detail]
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
data/lib/puppet/daemon.rb
CHANGED
@@ -1,10 +1,11 @@
|
|
1
1
|
require 'puppet'
|
2
2
|
require 'puppet/util/pidlock'
|
3
|
+
require 'puppet/external/event-loop'
|
3
4
|
|
4
5
|
# A module that handles operations common to all daemons. This is included
|
5
6
|
# into the Server and Client base classes.
|
6
|
-
|
7
|
-
|
7
|
+
class Puppet::Daemon
|
8
|
+
attr_accessor :agent, :server, :argv
|
8
9
|
|
9
10
|
def daemonname
|
10
11
|
Puppet[:name]
|
@@ -16,8 +17,8 @@ module Puppet::Daemon
|
|
16
17
|
Process.detach(pid)
|
17
18
|
exit(0)
|
18
19
|
end
|
19
|
-
|
20
|
-
|
20
|
+
|
21
|
+
create_pidfile()
|
21
22
|
|
22
23
|
# Get rid of console logging
|
23
24
|
Puppet::Util::Log.close(:console)
|
@@ -30,7 +31,7 @@ module Puppet::Daemon
|
|
30
31
|
$stderr.reopen $stdout
|
31
32
|
Puppet::Util::Log.reopen
|
32
33
|
rescue => detail
|
33
|
-
|
34
|
+
File.open("/tmp/daemonout", "w") { |f|
|
34
35
|
f.puts "Could not start %s: %s" % [Puppet[:name], detail]
|
35
36
|
}
|
36
37
|
Puppet.err "Could not start %s: %s" % [Puppet[:name], detail]
|
@@ -38,18 +39,42 @@ module Puppet::Daemon
|
|
38
39
|
end
|
39
40
|
end
|
40
41
|
|
41
|
-
#
|
42
|
+
# Create a pidfile for our daemon, so we can be stopped and others
|
43
|
+
# don't try to start.
|
44
|
+
def create_pidfile
|
45
|
+
Puppet::Util.sync(Puppet[:name]).synchronize(Sync::EX) do
|
46
|
+
unless Puppet::Util::Pidlock.new(pidfile).lock
|
47
|
+
raise "Could not create PID file: %s" % [pidfile]
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
51
|
+
|
52
|
+
# Provide the path to our pidfile.
|
42
53
|
def pidfile
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
54
|
+
Puppet[:pidfile]
|
55
|
+
end
|
56
|
+
|
57
|
+
def reexec
|
58
|
+
raise Puppet::DevError, "Cannot reexec unless ARGV arguments are set" unless argv
|
59
|
+
command = $0 + " " + argv.join(" ")
|
60
|
+
Puppet.notice "Restarting with '%s'" % command
|
61
|
+
stop(:exit => false)
|
62
|
+
exec(command)
|
63
|
+
end
|
64
|
+
|
65
|
+
def reload
|
66
|
+
return unless agent
|
67
|
+
if agent.running?
|
68
|
+
Puppet.notice "Not triggering already-running agent"
|
69
|
+
return
|
47
70
|
end
|
71
|
+
|
72
|
+
agent.run
|
48
73
|
end
|
49
74
|
|
50
|
-
# Remove the pid file
|
51
|
-
def
|
52
|
-
|
75
|
+
# Remove the pid file for our daemon.
|
76
|
+
def remove_pidfile
|
77
|
+
Puppet::Util.sync(Puppet[:name]).synchronize(Sync::EX) do
|
53
78
|
locker = Puppet::Util::Pidlock.new(pidfile)
|
54
79
|
if locker.locked?
|
55
80
|
locker.unlock or Puppet.err "Could not remove PID file %s" % [pidfile]
|
@@ -57,27 +82,52 @@ module Puppet::Daemon
|
|
57
82
|
end
|
58
83
|
end
|
59
84
|
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
exit(74)
|
66
|
-
end
|
85
|
+
def restart
|
86
|
+
if agent and agent.running?
|
87
|
+
agent.configure_delayed_restart
|
88
|
+
else
|
89
|
+
reexec
|
67
90
|
end
|
68
91
|
end
|
69
92
|
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
rmpidfile()
|
93
|
+
def reopen_logs
|
94
|
+
Puppet::Util::Log.reopen
|
95
|
+
end
|
74
96
|
|
75
|
-
|
76
|
-
|
77
|
-
|
97
|
+
# Trap a couple of the main signals. This should probably be handled
|
98
|
+
# in a way that anyone else can register callbacks for traps, but, eh.
|
99
|
+
def set_signal_traps
|
100
|
+
{:INT => :stop, :TERM => :stop, :HUP => :restart, :USR1 => :reload, :USR2 => :reopen_logs}.each do |signal, method|
|
101
|
+
trap(signal) do
|
102
|
+
Puppet.notice "Caught #{signal}; calling #{method}"
|
103
|
+
send(method)
|
104
|
+
end
|
78
105
|
end
|
106
|
+
end
|
107
|
+
|
108
|
+
# Stop everything
|
109
|
+
def stop(args = {:exit => true})
|
110
|
+
server.stop if server
|
111
|
+
|
112
|
+
agent.stop if agent
|
113
|
+
|
114
|
+
remove_pidfile()
|
115
|
+
|
116
|
+
Puppet::Util::Log.close_all
|
117
|
+
|
118
|
+
exit if args[:exit]
|
119
|
+
end
|
120
|
+
|
121
|
+
def start
|
122
|
+
set_signal_traps
|
123
|
+
|
124
|
+
create_pidfile
|
125
|
+
|
126
|
+
raise Puppet::DevError, "Daemons must have an agent, server, or both" unless agent or server
|
127
|
+
agent.start if agent
|
128
|
+
server.start if server
|
79
129
|
|
80
|
-
|
130
|
+
EventLoop.current.run
|
81
131
|
end
|
82
132
|
end
|
83
133
|
|
data/lib/puppet/defaults.rb
CHANGED
@@ -31,15 +31,15 @@ module Puppet
|
|
31
31
|
if name == "puppetmasterd"
|
32
32
|
logopts = {:default => "$vardir/log",
|
33
33
|
:mode => 0750,
|
34
|
-
:owner => "
|
35
|
-
:group => "
|
34
|
+
:owner => "service",
|
35
|
+
:group => "service",
|
36
36
|
:desc => "The Puppet log directory."
|
37
37
|
}
|
38
38
|
else
|
39
39
|
logopts = ["$vardir/log", "The Puppet log directory."]
|
40
40
|
end
|
41
41
|
setdefaults(:main, :logdir => logopts)
|
42
|
-
|
42
|
+
|
43
43
|
# This name hackery is necessary so that the rundir is set reasonably during
|
44
44
|
# unit tests.
|
45
45
|
if Process.uid == 0 and %w{puppetd puppetmasterd}.include?(self.name)
|
@@ -60,13 +60,7 @@ module Puppet
|
|
60
60
|
this directory can be removed without causing harm (although it
|
61
61
|
might result in spurious service restarts)."
|
62
62
|
},
|
63
|
-
:
|
64
|
-
:default => "$confdir/ssl",
|
65
|
-
:mode => 0771,
|
66
|
-
:owner => "root",
|
67
|
-
:desc => "Where SSL certificates are kept."
|
68
|
-
},
|
69
|
-
:rundir => {
|
63
|
+
:rundir => {
|
70
64
|
:default => rundir,
|
71
65
|
:mode => 01777,
|
72
66
|
:desc => "Where Puppet PID files are kept."
|
@@ -97,8 +91,8 @@ module Puppet
|
|
97
91
|
from the parent process.",
|
98
92
|
:call_on_define => true, # Call our hook with the default value, so we always get the libdir set.
|
99
93
|
:hook => proc do |value|
|
94
|
+
ENV["PATH"] = "" if ENV["PATH"].nil?
|
100
95
|
ENV["PATH"] = value unless value == "none"
|
101
|
-
|
102
96
|
paths = ENV["PATH"].split(File::PATH_SEPARATOR)
|
103
97
|
%w{/usr/sbin /sbin}.each do |path|
|
104
98
|
unless paths.include?(path)
|
@@ -137,7 +131,7 @@ module Puppet
|
|
137
131
|
``puppetmasterd``) this provides the default environment for nodes
|
138
132
|
we know nothing about."
|
139
133
|
},
|
140
|
-
:diff_args => ["", "Which arguments to pass to the diff command when printing differences between files."],
|
134
|
+
:diff_args => ["-u", "Which arguments to pass to the diff command when printing differences between files."],
|
141
135
|
:diff => ["diff", "Which diff command to use when printing differences between files."],
|
142
136
|
:show_diff => [false, "Whether to print a contextual diff when files are being replaced. The diff
|
143
137
|
is printed on stdout, so this option is meaningless unless you are running Puppet interactively.
|
@@ -150,7 +144,55 @@ module Puppet
|
|
150
144
|
but then ship with tools that do not know how to handle signed ints, so the UIDs show up as
|
151
145
|
huge numbers that can then not be fed back into the system. This is a hackish way to fail in a
|
152
146
|
slightly more useful way when that happens."],
|
153
|
-
:node_terminus => ["plain", "Where to find information about nodes."]
|
147
|
+
:node_terminus => ["plain", "Where to find information about nodes."],
|
148
|
+
:httplog => { :default => "$logdir/http.log",
|
149
|
+
:owner => "root",
|
150
|
+
:mode => 0640,
|
151
|
+
:desc => "Where the puppetd web server logs."
|
152
|
+
},
|
153
|
+
:http_proxy_host => ["none",
|
154
|
+
"The HTTP proxy host to use for outgoing connections. Note: You
|
155
|
+
may need to use a FQDN for the server hostname when using a proxy."],
|
156
|
+
:http_proxy_port => [3128,
|
157
|
+
"The HTTP proxy port to use for outgoing connections"],
|
158
|
+
:http_enable_post_connection_check => [true,
|
159
|
+
"Boolean; wheter or not puppetd should validate the server
|
160
|
+
SSL certificate against the request hostname."],
|
161
|
+
:filetimeout => [ 15,
|
162
|
+
"The minimum time to wait (in seconds) between checking for updates in
|
163
|
+
configuration files. This timeout determines how quickly Puppet checks whether
|
164
|
+
a file (such as manifests or templates) has changed on disk."
|
165
|
+
],
|
166
|
+
:queue_type => ["stomp", "Which type of queue to use for asynchronous processing."],
|
167
|
+
:queue_type => ["stomp", "Which type of queue to use for asynchronous processing."],
|
168
|
+
:queue_source => ["stomp://localhost:61613/", "Which type of queue to use for asynchronous processing. If your stomp server requires
|
169
|
+
authentication, you can include it in the URI as long as your stomp client library is at least 1.1.1"],
|
170
|
+
:async_storeconfigs => {:default => false, :desc => "Whether to use a queueing system to provide asynchronous database integration.
|
171
|
+
Requires that ``puppetqd`` be running and that 'JSON' support for ruby be installed.",
|
172
|
+
:hook => proc do |value|
|
173
|
+
if value
|
174
|
+
# This reconfigures the terminii for Node, Facts, and Catalog
|
175
|
+
Puppet.settings[:storeconfigs] = true
|
176
|
+
|
177
|
+
# But then we modify the configuration
|
178
|
+
Puppet::Resource::Catalog.cache_class = :queue
|
179
|
+
else
|
180
|
+
raise "Cannot disable asynchronous storeconfigs in a running process"
|
181
|
+
end
|
182
|
+
end
|
183
|
+
},
|
184
|
+
:thin_storeconfigs => {:default => false, :desc =>
|
185
|
+
"Boolean; wether storeconfigs store in the database only the facts and exported resources.
|
186
|
+
If true, then storeconfigs performance will be higher and still allow exported/collected
|
187
|
+
resources, but other usage external to Puppet might not work",
|
188
|
+
:hook => proc do |value|
|
189
|
+
Puppet.settings[:storeconfigs] = true if value
|
190
|
+
end
|
191
|
+
},
|
192
|
+
:config_version => ["", "How to determine the configuration version. By default, it will be the
|
193
|
+
time that the configuration is parsed, but you can provide a shell script to override how the
|
194
|
+
version is determined. The output of this script will be added to every log message in the
|
195
|
+
reports, allowing you to correlate changes on your hosts to the source version on the server."]
|
154
196
|
)
|
155
197
|
|
156
198
|
hostname = Facter["hostname"].value
|
@@ -161,8 +203,8 @@ module Puppet
|
|
161
203
|
fqdn = hostname
|
162
204
|
end
|
163
205
|
|
164
|
-
Puppet.setdefaults(:
|
165
|
-
# We have to downcase the fqdn, because the current ssl stuff (as oppsed to in master) doesn't have good facilities for
|
206
|
+
Puppet.setdefaults(:main,
|
207
|
+
# We have to downcase the fqdn, because the current ssl stuff (as oppsed to in master) doesn't have good facilities for
|
166
208
|
# manipulating naming.
|
167
209
|
:certname => {:default => fqdn.downcase, :desc => "The name to use when handling certificates. Defaults
|
168
210
|
to the fully qualified domain name.",
|
@@ -171,100 +213,138 @@ module Puppet
|
|
171
213
|
:certdnsnames => ['', "The DNS names on the Server certificate as a colon-separated list.
|
172
214
|
If it's anything other than an empty string, it will be used as an alias in the created
|
173
215
|
certificate. By default, only the server gets an alias set up, and only for 'puppet'."],
|
174
|
-
:certdir =>
|
175
|
-
|
216
|
+
:certdir => {
|
217
|
+
:default => "$ssldir/certs",
|
218
|
+
:owner => "service",
|
219
|
+
:desc => "The certificate directory."
|
220
|
+
},
|
221
|
+
:ssldir => {
|
222
|
+
:default => "$confdir/ssl",
|
223
|
+
:mode => 0771,
|
224
|
+
:owner => "service",
|
225
|
+
:desc => "Where SSL certificates are kept."
|
226
|
+
},
|
227
|
+
:publickeydir => {
|
228
|
+
:default => "$ssldir/public_keys",
|
229
|
+
:owner => "service",
|
230
|
+
:desc => "The public key directory."
|
231
|
+
},
|
232
|
+
:requestdir => {
|
233
|
+
:default => "$ssldir/certificate_requests",
|
234
|
+
:owner => "service",
|
235
|
+
:desc => "Where host certificate requests are stored."
|
236
|
+
},
|
176
237
|
:privatekeydir => { :default => "$ssldir/private_keys",
|
177
238
|
:mode => 0750,
|
239
|
+
:owner => "service",
|
178
240
|
:desc => "The private key directory."
|
179
241
|
},
|
180
242
|
:privatedir => { :default => "$ssldir/private",
|
181
243
|
:mode => 0750,
|
244
|
+
:owner => "service",
|
182
245
|
:desc => "Where the client stores private certificate information."
|
183
246
|
},
|
184
247
|
:passfile => { :default => "$privatedir/password",
|
185
248
|
:mode => 0640,
|
249
|
+
:owner => "service",
|
186
250
|
:desc => "Where puppetd stores the password for its private key.
|
187
251
|
Generally unused."
|
188
252
|
},
|
189
253
|
:hostcsr => { :default => "$ssldir/csr_$certname.pem",
|
190
254
|
:mode => 0644,
|
191
|
-
:
|
255
|
+
:owner => "service",
|
256
|
+
:desc => "Where individual hosts store and look for their certificate requests."
|
192
257
|
},
|
193
258
|
:hostcert => { :default => "$certdir/$certname.pem",
|
194
259
|
:mode => 0644,
|
260
|
+
:owner => "service",
|
195
261
|
:desc => "Where individual hosts store and look for their certificates."
|
196
262
|
},
|
197
263
|
:hostprivkey => { :default => "$privatekeydir/$certname.pem",
|
198
264
|
:mode => 0600,
|
265
|
+
:owner => "service",
|
199
266
|
:desc => "Where individual hosts store and look for their private key."
|
200
267
|
},
|
201
268
|
:hostpubkey => { :default => "$publickeydir/$certname.pem",
|
202
269
|
:mode => 0644,
|
270
|
+
:owner => "service",
|
203
271
|
:desc => "Where individual hosts store and look for their public key."
|
204
272
|
},
|
205
273
|
:localcacert => { :default => "$certdir/ca.pem",
|
206
274
|
:mode => 0644,
|
275
|
+
:owner => "service",
|
207
276
|
:desc => "Where each client stores the CA certificate."
|
277
|
+
},
|
278
|
+
:hostcrl => { :default => "$ssldir/crl.pem",
|
279
|
+
:mode => 0644,
|
280
|
+
:owner => "service",
|
281
|
+
:desc => "Where the host's certificate revocation list can be found.
|
282
|
+
This is distinct from the certificate authority's CRL."
|
208
283
|
}
|
209
284
|
)
|
210
285
|
|
211
286
|
setdefaults(:ca,
|
212
287
|
:cadir => { :default => "$ssldir/ca",
|
213
|
-
:owner => "
|
214
|
-
:group => "
|
288
|
+
:owner => "service",
|
289
|
+
:group => "service",
|
215
290
|
:mode => 0770,
|
216
291
|
:desc => "The root directory for the certificate authority."
|
217
292
|
},
|
218
293
|
:cacert => { :default => "$cadir/ca_crt.pem",
|
219
|
-
:owner => "
|
220
|
-
:group => "
|
294
|
+
:owner => "service",
|
295
|
+
:group => "service",
|
221
296
|
:mode => 0660,
|
222
297
|
:desc => "The CA certificate."
|
223
298
|
},
|
224
299
|
:cakey => { :default => "$cadir/ca_key.pem",
|
225
|
-
:owner => "
|
226
|
-
:group => "
|
300
|
+
:owner => "service",
|
301
|
+
:group => "service",
|
227
302
|
:mode => 0660,
|
228
303
|
:desc => "The CA private key."
|
229
304
|
},
|
230
305
|
:capub => { :default => "$cadir/ca_pub.pem",
|
231
|
-
:owner => "
|
232
|
-
:group => "
|
306
|
+
:owner => "service",
|
307
|
+
:group => "service",
|
233
308
|
:desc => "The CA public key."
|
234
309
|
},
|
235
310
|
:cacrl => { :default => "$cadir/ca_crl.pem",
|
236
|
-
:owner => "
|
237
|
-
:group => "
|
311
|
+
:owner => "service",
|
312
|
+
:group => "service",
|
238
313
|
:mode => 0664,
|
239
|
-
:desc => "The certificate revocation list (CRL) for the CA.
|
314
|
+
:desc => "The certificate revocation list (CRL) for the CA. Will be used if present but otherwise ignored.",
|
315
|
+
:hook => proc do |value|
|
316
|
+
if value == 'false'
|
317
|
+
Puppet.warning "Setting the :cacrl to 'false' is deprecated; Puppet will just ignore the crl if yours is missing"
|
318
|
+
end
|
319
|
+
end
|
240
320
|
},
|
241
321
|
:caprivatedir => { :default => "$cadir/private",
|
242
|
-
:owner => "
|
243
|
-
:group => "
|
322
|
+
:owner => "service",
|
323
|
+
:group => "service",
|
244
324
|
:mode => 0770,
|
245
325
|
:desc => "Where the CA stores private certificate information."
|
246
326
|
},
|
247
327
|
:csrdir => { :default => "$cadir/requests",
|
248
|
-
:owner => "
|
249
|
-
:group => "
|
328
|
+
:owner => "service",
|
329
|
+
:group => "service",
|
250
330
|
:desc => "Where the CA stores certificate requests"
|
251
331
|
},
|
252
332
|
:signeddir => { :default => "$cadir/signed",
|
253
|
-
:owner => "
|
254
|
-
:group => "
|
333
|
+
:owner => "service",
|
334
|
+
:group => "service",
|
255
335
|
:mode => 0770,
|
256
336
|
:desc => "Where the CA stores signed certificates."
|
257
337
|
},
|
258
338
|
:capass => { :default => "$caprivatedir/ca.pass",
|
259
|
-
:owner => "
|
260
|
-
:group => "
|
339
|
+
:owner => "service",
|
340
|
+
:group => "service",
|
261
341
|
:mode => 0660,
|
262
342
|
:desc => "Where the CA stores the password for the private key"
|
263
343
|
},
|
264
344
|
:serial => { :default => "$cadir/serial",
|
265
|
-
:owner => "
|
266
|
-
:group => "
|
267
|
-
:mode =>
|
345
|
+
:owner => "service",
|
346
|
+
:group => "service",
|
347
|
+
:mode => 0644,
|
268
348
|
:desc => "Where the serial number for certificates is stored."
|
269
349
|
},
|
270
350
|
:autosign => { :default => "$confdir/autosign.conf",
|
@@ -273,13 +353,13 @@ module Puppet
|
|
273
353
|
autosigns any key request, and is a very bad idea), false (which
|
274
354
|
never autosigns any key request), and the path to a file, which
|
275
355
|
uses that configuration file to determine which keys to sign."},
|
276
|
-
:ca_days => ["", "How long a certificate should be valid.
|
356
|
+
:ca_days => ["", "How long a certificate should be valid.
|
277
357
|
This parameter is deprecated, use ca_ttl instead"],
|
278
|
-
:ca_ttl => ["5y", "The default TTL for new certificates; valid values
|
279
|
-
must be an integer, optionally followed by one of the units
|
280
|
-
'y' (years of 365 days), 'd' (days), 'h' (hours), or
|
358
|
+
:ca_ttl => ["5y", "The default TTL for new certificates; valid values
|
359
|
+
must be an integer, optionally followed by one of the units
|
360
|
+
'y' (years of 365 days), 'd' (days), 'h' (hours), or
|
281
361
|
's' (seconds). The unit defaults to seconds. If this parameter
|
282
|
-
is set, ca_days is ignored. Examples are '3600' (one hour)
|
362
|
+
is set, ca_days is ignored. Examples are '3600' (one hour)
|
283
363
|
and '1825d', which is the same as '5y' (5 years) "],
|
284
364
|
:ca_md => ["md5", "The type of hash used in certificates."],
|
285
365
|
:req_bits => [2048, "The bit length of the certificates."],
|
@@ -287,8 +367,8 @@ module Puppet
|
|
287
367
|
:cert_inventory => {
|
288
368
|
:default => "$cadir/inventory.txt",
|
289
369
|
:mode => 0644,
|
290
|
-
:owner => "
|
291
|
-
:group => "
|
370
|
+
:owner => "service",
|
371
|
+
:group => "service",
|
292
372
|
:desc => "A Complete listing of all certificates"
|
293
373
|
}
|
294
374
|
)
|
@@ -297,13 +377,16 @@ module Puppet
|
|
297
377
|
self.setdefaults(self.settings[:name],
|
298
378
|
:config => ["$confdir/puppet.conf",
|
299
379
|
"The configuration file for #{Puppet[:name]}."],
|
300
|
-
:pidfile => ["", "The pid file"],
|
301
|
-
:bindaddress => ["", "The address
|
380
|
+
:pidfile => ["$rundir/$name.pid", "The pid file"],
|
381
|
+
:bindaddress => ["", "The address a listening server should bind to. Mongrel servers
|
302
382
|
default to 127.0.0.1 and WEBrick defaults to 0.0.0.0."],
|
303
|
-
:servertype =>
|
383
|
+
:servertype => {:default => "webrick", :desc => "The type of server to use. Currently supported
|
304
384
|
options are webrick and mongrel. If you use mongrel, you will need
|
305
385
|
a proxy in front of the process or processes, since Mongrel cannot
|
306
|
-
speak SSL."
|
386
|
+
speak SSL.",
|
387
|
+
:call_on_define => true, # Call our hook with the default value, so we always get the correct bind address set.
|
388
|
+
:hook => proc { |value| value == "webrick" ? Puppet.settings[:bindaddress] = "0.0.0.0" : Puppet.settings[:bindaddress] = "127.0.0.1" if Puppet.settings[:bindaddress] == "" }
|
389
|
+
}
|
307
390
|
)
|
308
391
|
|
309
392
|
self.setdefaults(:puppetmasterd,
|
@@ -317,38 +400,43 @@ module Puppet
|
|
317
400
|
by ``puppet``, and should only be set if you're writing your own Puppet
|
318
401
|
executable"],
|
319
402
|
:masterlog => { :default => "$logdir/puppetmaster.log",
|
320
|
-
:owner => "
|
321
|
-
:group => "
|
403
|
+
:owner => "service",
|
404
|
+
:group => "service",
|
322
405
|
:mode => 0660,
|
323
406
|
:desc => "Where puppetmasterd logs. This is generally not used,
|
324
407
|
since syslog is the default log destination."
|
325
408
|
},
|
326
409
|
:masterhttplog => { :default => "$logdir/masterhttp.log",
|
327
|
-
:owner => "
|
328
|
-
:group => "
|
410
|
+
:owner => "service",
|
411
|
+
:group => "service",
|
329
412
|
:mode => 0660,
|
330
413
|
:create => true,
|
331
414
|
:desc => "Where the puppetmasterd web server logs."
|
332
415
|
},
|
333
416
|
:masterport => [8140, "Which port puppetmasterd listens on."],
|
334
417
|
:parseonly => [false, "Just check the syntax of the manifests."],
|
335
|
-
:node_name => ["cert", "How the puppetmaster determines the client's identity
|
336
|
-
and sets the 'hostname', 'fqdn' and 'domain' facts for use in the manifest,
|
337
|
-
in particular for determining which 'node' statement applies to the client.
|
338
|
-
Possible values are 'cert' (use the subject's CN in the client's
|
339
|
-
certificate) and 'facter' (use the hostname that the client
|
418
|
+
:node_name => ["cert", "How the puppetmaster determines the client's identity
|
419
|
+
and sets the 'hostname', 'fqdn' and 'domain' facts for use in the manifest,
|
420
|
+
in particular for determining which 'node' statement applies to the client.
|
421
|
+
Possible values are 'cert' (use the subject's CN in the client's
|
422
|
+
certificate) and 'facter' (use the hostname that the client
|
340
423
|
reported in its facts)"],
|
341
424
|
:bucketdir => {
|
342
425
|
:default => "$vardir/bucket",
|
343
426
|
:mode => 0750,
|
344
|
-
:owner => "
|
345
|
-
:group => "
|
427
|
+
:owner => "service",
|
428
|
+
:group => "service",
|
346
429
|
:desc => "Where FileBucket files are stored."
|
347
430
|
},
|
431
|
+
:rest_authconfig => [ "$confdir/auth.conf",
|
432
|
+
"The configuration file that defines the rights to the different
|
433
|
+
rest indirections. This can be used as a fine-grained
|
434
|
+
authorization system for ``puppetmasterd``."
|
435
|
+
],
|
348
436
|
:ca => [true, "Wether the master should function as a certificate authority."],
|
349
|
-
:modulepath =>
|
350
|
-
"The search path for modules as a colon-separated list of
|
351
|
-
directories."
|
437
|
+
:modulepath => {:default => "$confdir/modules:/usr/share/puppet/modules",
|
438
|
+
:desc => "The search path for modules as a colon-separated list of
|
439
|
+
directories.", :type => :setting }, # We don't want this to be considered a file, since it's multiple files.
|
352
440
|
:ssl_client_header => ["HTTP_X_CLIENT_DN", "The header containing an authenticated
|
353
441
|
client's SSL DN. Only used with Mongrel. This header must be set by the proxy
|
354
442
|
to the authenticated client's SSL DN (e.g., ``/CN=puppet.reductivelabs.com``).
|
@@ -359,10 +447,34 @@ module Puppet
|
|
359
447
|
See http://reductivelabs.com/puppet/trac/wiki/UsingMongrel for more information."],
|
360
448
|
# To make sure this directory is created before we try to use it on the server, we need
|
361
449
|
# it to be in the server section (#1138).
|
362
|
-
:yamldir => {:default => "$vardir/yaml", :owner => "
|
450
|
+
:yamldir => {:default => "$vardir/yaml", :owner => "service", :group => "service", :mode => "750",
|
363
451
|
:desc => "The directory in which YAML data is stored, usually in a subdirectory."},
|
364
|
-
:
|
365
|
-
|
452
|
+
:reports => ["store",
|
453
|
+
"The list of reports to generate. All reports are looked for
|
454
|
+
in puppet/reports/<name>.rb, and multiple report names should be
|
455
|
+
comma-separated (whitespace is okay)."
|
456
|
+
],
|
457
|
+
:reportdir => {:default => "$vardir/reports",
|
458
|
+
:mode => 0750,
|
459
|
+
:owner => "service",
|
460
|
+
:group => "service",
|
461
|
+
:desc => "The directory in which to store reports
|
462
|
+
received from the client. Each client gets a separate
|
463
|
+
subdirectory."},
|
464
|
+
:fileserverconfig => ["$confdir/fileserver.conf",
|
465
|
+
"Where the fileserver configuration is stored."],
|
466
|
+
:rrddir => {:default => "$vardir/rrd",
|
467
|
+
:owner => "service",
|
468
|
+
:group => "service",
|
469
|
+
:desc => "The directory where RRD database files are stored.
|
470
|
+
Directories for each reporting host will be created under
|
471
|
+
this directory."
|
472
|
+
},
|
473
|
+
:rrdinterval => ["$runinterval", "How often RRD should expect data.
|
474
|
+
This should match how often the hosts report back to the server."],
|
475
|
+
:strict_hostname_checking => [false, "Whether to only search for the complete
|
476
|
+
hostname as it is in the certificate when searching for node information
|
477
|
+
in the catalogs."]
|
366
478
|
)
|
367
479
|
|
368
480
|
self.setdefaults(:puppetd,
|
@@ -378,6 +490,8 @@ module Puppet
|
|
378
490
|
this file reflects the state discovered through interacting
|
379
491
|
with clients."
|
380
492
|
},
|
493
|
+
:clientyamldir => {:default => "$vardir/client_yaml", :mode => "750",
|
494
|
+
:desc => "The directory in which client-side YAML data is stored."},
|
381
495
|
:classfile => { :default => "$statedir/classes.txt",
|
382
496
|
:owner => "root",
|
383
497
|
:mode => 0644,
|
@@ -390,19 +504,6 @@ module Puppet
|
|
390
504
|
:mode => 0640,
|
391
505
|
:desc => "The log file for puppetd. This is generally not used."
|
392
506
|
},
|
393
|
-
:httplog => { :default => "$logdir/http.log",
|
394
|
-
:owner => "root",
|
395
|
-
:mode => 0640,
|
396
|
-
:desc => "Where the puppetd web server logs."
|
397
|
-
},
|
398
|
-
:http_proxy_host => ["none",
|
399
|
-
"The HTTP proxy host to use for outgoing connections. Note: You
|
400
|
-
may need to use a FQDN for the server hostname when using a proxy."],
|
401
|
-
:http_proxy_port => [3128,
|
402
|
-
"The HTTP proxy port to use for outgoing connections"],
|
403
|
-
:http_enable_post_connection_check => [true,
|
404
|
-
"Boolean; wheter or not puppetd should validate the server
|
405
|
-
SSL certificate against the request hostname."],
|
406
507
|
:server => ["puppet",
|
407
508
|
"The server to which server puppetd should connect"],
|
408
509
|
:ignoreschedules => [false,
|
@@ -421,37 +522,11 @@ module Puppet
|
|
421
522
|
authority requests. It's a separate server because it cannot
|
422
523
|
and does not need to horizontally scale."],
|
423
524
|
:ca_port => ["$masterport", "The port to use for the certificate authority."],
|
424
|
-
:
|
425
|
-
|
426
|
-
|
427
|
-
|
428
|
-
|
429
|
-
self.setdefaults(:filebucket,
|
430
|
-
:clientbucketdir => {
|
431
|
-
:default => "$vardir/clientbucket",
|
432
|
-
:mode => 0750,
|
433
|
-
:desc => "Where FileBucket files are stored locally."
|
434
|
-
}
|
435
|
-
)
|
436
|
-
self.setdefaults(:fileserver,
|
437
|
-
:fileserverconfig => ["$confdir/fileserver.conf",
|
438
|
-
"Where the fileserver configuration is stored."]
|
439
|
-
)
|
440
|
-
self.setdefaults(:reporting,
|
441
|
-
:reports => ["store",
|
442
|
-
"The list of reports to generate. All reports are looked for
|
443
|
-
in puppet/reports/<name>.rb, and multiple report names should be
|
444
|
-
comma-separated (whitespace is okay)."
|
445
|
-
],
|
446
|
-
:reportdir => {:default => "$vardir/reports",
|
447
|
-
:mode => 0750,
|
448
|
-
:owner => "$user",
|
449
|
-
:group => "$group",
|
450
|
-
:desc => "The directory in which to store reports
|
451
|
-
received from the client. Each client gets a separate
|
452
|
-
subdirectory."}
|
453
|
-
)
|
454
|
-
self.setdefaults(:puppetd,
|
525
|
+
:preferred_serialization_format => ["json", "The preferred means of serializing
|
526
|
+
ruby instances for passing over the wire. This won't guarantee that all
|
527
|
+
instances will be serialized using this method, since not all classes
|
528
|
+
can be guaranteed to support this format, but it will be used for all
|
529
|
+
classes that support it."],
|
455
530
|
:puppetdlockfile => [ "$statedir/puppetdlock",
|
456
531
|
"A lock file to temporarily stop puppetd from doing anything."],
|
457
532
|
:usecacheonfailure => [true,
|
@@ -477,30 +552,44 @@ module Puppet
|
|
477
552
|
run interval."],
|
478
553
|
:splay => [false,
|
479
554
|
"Whether to sleep for a pseudo-random (but consistent) amount of time before
|
480
|
-
a run."]
|
481
|
-
|
482
|
-
|
483
|
-
|
555
|
+
a run."],
|
556
|
+
:clientbucketdir => {
|
557
|
+
:default => "$vardir/clientbucket",
|
558
|
+
:mode => 0750,
|
559
|
+
:desc => "Where FileBucket files are stored locally."
|
560
|
+
},
|
484
561
|
:configtimeout => [120,
|
485
562
|
"How long the client should wait for the configuration to be retrieved
|
486
563
|
before considering it a failure. This can help reduce flapping if too
|
487
564
|
many clients contact the server at one time."
|
488
565
|
],
|
489
|
-
:reportserver =>
|
490
|
-
|
566
|
+
:reportserver => {
|
567
|
+
:default => "$server",
|
568
|
+
:call_on_define => false,
|
569
|
+
:desc => "(Deprecated for 'report_server') The server to which to send transaction reports.",
|
570
|
+
:hook => proc do |value|
|
571
|
+
if value
|
572
|
+
Puppet.settings[:report_server] = value
|
573
|
+
end
|
574
|
+
end
|
575
|
+
},
|
576
|
+
:report_server => ["$server",
|
577
|
+
"The server to which to send transaction reports."
|
578
|
+
],
|
579
|
+
:report_port => ["$masterport",
|
580
|
+
"The port to communicate with the report_server."
|
491
581
|
],
|
492
582
|
:report => [false,
|
493
583
|
"Whether to send reports after every transaction."
|
494
|
-
]
|
584
|
+
],
|
585
|
+
:graph => [false, "Whether to create dot graph files for the different
|
586
|
+
configuration graphs. These dot files can be interpreted by tools
|
587
|
+
like OmniGraffle or dot (which is part of ImageMagick)."],
|
588
|
+
:graphdir => ["$statedir/graphs", "Where to store dot-outputted graphs."]
|
495
589
|
)
|
496
590
|
|
497
591
|
# Plugin information.
|
498
592
|
self.setdefaults(:main,
|
499
|
-
:pluginpath => ["$vardir/plugins",
|
500
|
-
"Where Puppet should look for plugins. Multiple directories should
|
501
|
-
be colon-separated, like normal PATH variables. As of 0.23.1, this
|
502
|
-
option is deprecated; download your custom libraries to the $libdir
|
503
|
-
instead."],
|
504
593
|
:plugindest => ["$libdir",
|
505
594
|
"Where Puppet should store plugins that it pulls down from the central
|
506
595
|
server."],
|
@@ -510,21 +599,22 @@ module Puppet
|
|
510
599
|
be used here."],
|
511
600
|
:pluginsync => [false,
|
512
601
|
"Whether plugins should be synced with the central server."],
|
513
|
-
:pluginsignore => [".svn CVS",
|
602
|
+
:pluginsignore => [".svn CVS .git",
|
514
603
|
"What files to ignore when pulling down plugins."]
|
515
604
|
)
|
516
605
|
|
517
606
|
# Central fact information.
|
518
607
|
self.setdefaults(:main,
|
519
|
-
:factpath => {:default => "$vardir/facts",
|
608
|
+
:factpath => {:default => "$vardir/facts/",
|
520
609
|
:desc => "Where Puppet should look for facts. Multiple directories should
|
521
610
|
be colon-separated, like normal PATH variables.",
|
522
611
|
:call_on_define => true, # Call our hook with the default value, so we always get the value added to facter.
|
612
|
+
:type => :setting, # Don't consider it a file, because it could be multiple colon-separated files
|
523
613
|
:hook => proc { |value| Facter.search(value) if Facter.respond_to?(:search) }},
|
524
|
-
:factdest => ["$vardir/facts",
|
614
|
+
:factdest => ["$vardir/facts/",
|
525
615
|
"Where Puppet should store facts that it pulls down from the central
|
526
616
|
server."],
|
527
|
-
:factsource => ["puppet://$server/facts",
|
617
|
+
:factsource => ["puppet://$server/facts/",
|
528
618
|
"From where to retrieve facts. The standard Puppet ``file`` type
|
529
619
|
is used for retrieval, so anything that is a valid file source can
|
530
620
|
be used here."],
|
@@ -548,8 +638,8 @@ module Puppet
|
|
548
638
|
self.setdefaults(:rails,
|
549
639
|
:dblocation => { :default => "$statedir/clientconfigs.sqlite3",
|
550
640
|
:mode => 0660,
|
551
|
-
:owner => "
|
552
|
-
:group => "
|
641
|
+
:owner => "service",
|
642
|
+
:group => "service",
|
553
643
|
:desc => "The database cache for client configurations. Used for
|
554
644
|
querying within the language."
|
555
645
|
},
|
@@ -566,8 +656,8 @@ module Puppet
|
|
566
656
|
databases are used. Will be ignored if the value is an empty string."],
|
567
657
|
:railslog => {:default => "$logdir/rails.log",
|
568
658
|
:mode => 0600,
|
569
|
-
:owner => "
|
570
|
-
:group => "
|
659
|
+
:owner => "service",
|
660
|
+
:group => "service",
|
571
661
|
:desc => "Where Rails-specific logs are sent"
|
572
662
|
},
|
573
663
|
:rails_loglevel => ["info", "The log level for Rails connections. The value must be
|
@@ -575,13 +665,6 @@ module Puppet
|
|
575
665
|
and other environments normally use ``debug``."]
|
576
666
|
)
|
577
667
|
|
578
|
-
setdefaults(:graphing,
|
579
|
-
:graph => [false, "Whether to create dot graph files for the different
|
580
|
-
configuration graphs. These dot files can be interpreted by tools
|
581
|
-
like OmniGraffle or dot (which is part of ImageMagick)."],
|
582
|
-
:graphdir => ["$statedir/graphs", "Where to store dot-outputted graphs."]
|
583
|
-
)
|
584
|
-
|
585
668
|
setdefaults(:transaction,
|
586
669
|
:tags => ["", "Tags to use to find resources. If this is set, then
|
587
670
|
only resources tagged with the specified tags will be applied.
|
@@ -598,7 +681,7 @@ module Puppet
|
|
598
681
|
:typecheck => [true, "Whether to validate types during parsing."],
|
599
682
|
:paramcheck => [true, "Whether to validate parameters during parsing."]
|
600
683
|
)
|
601
|
-
|
684
|
+
|
602
685
|
setdefaults(:main,
|
603
686
|
:casesensitive => [false,
|
604
687
|
"Whether matching in case statements and selectors
|
@@ -617,7 +700,7 @@ module Puppet
|
|
617
700
|
setdefaults(:ldap,
|
618
701
|
:ldapnodes => [false,
|
619
702
|
"Whether to search for node configurations in LDAP. See
|
620
|
-
http://reductivelabs.com/puppet/
|
703
|
+
http://reductivelabs.com/trac/puppet/wiki/LDAPNodes for more information."],
|
621
704
|
:ldapssl => [false,
|
622
705
|
"Whether SSL should be used when searching for nodes.
|
623
706
|
Defaults to false because SSL usually requires certificates
|
@@ -659,9 +742,21 @@ module Puppet
|
|
659
742
|
)
|
660
743
|
|
661
744
|
setdefaults(:puppetmasterd,
|
662
|
-
:storeconfigs =>
|
663
|
-
|
664
|
-
|
745
|
+
:storeconfigs => {:default => false, :desc => "Whether to store each client's configuration. This
|
746
|
+
requires ActiveRecord from Ruby on Rails.",
|
747
|
+
:call_on_define => true, # Call our hook with the default value, so we always get the libdir set.
|
748
|
+
:hook => proc do |value|
|
749
|
+
require 'puppet/node'
|
750
|
+
require 'puppet/node/facts'
|
751
|
+
require 'puppet/resource/catalog'
|
752
|
+
if value
|
753
|
+
raise "StoreConfigs not supported without ActiveRecord 2.1 or higher" unless Puppet.features.rails?
|
754
|
+
Puppet::Resource::Catalog.cache_class = :active_record unless Puppet.settings[:async_storeconfigs]
|
755
|
+
Puppet::Node::Facts.cache_class = :active_record
|
756
|
+
Puppet::Node.cache_class = :active_record
|
757
|
+
end
|
758
|
+
end
|
759
|
+
}
|
665
760
|
)
|
666
761
|
|
667
762
|
# This doesn't actually work right now.
|
@@ -672,26 +767,4 @@ module Puppet
|
|
672
767
|
directories."
|
673
768
|
]
|
674
769
|
)
|
675
|
-
|
676
|
-
setdefaults(:main,
|
677
|
-
:filetimeout => [ 15,
|
678
|
-
"The minimum time to wait (in seconds) between checking for updates in
|
679
|
-
configuration files. This timeout determines how quickly Puppet checks whether
|
680
|
-
a file (such as manifests or templates) has changed on disk."
|
681
|
-
]
|
682
|
-
)
|
683
|
-
|
684
|
-
setdefaults(:metrics,
|
685
|
-
:rrddir => {:default => "$vardir/rrd",
|
686
|
-
:owner => "$user",
|
687
|
-
:group => "$group",
|
688
|
-
:desc => "The directory where RRD database files are stored.
|
689
|
-
Directories for each reporting host will be created under
|
690
|
-
this directory."
|
691
|
-
},
|
692
|
-
:rrdgraph => [false, "Whether RRD information should be graphed."],
|
693
|
-
:rrdinterval => ["$runinterval", "How often RRD should expect data.
|
694
|
-
This should match how often the hosts report back to the server."]
|
695
|
-
)
|
696
770
|
end
|
697
|
-
|