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
data/test/util/inifile.rb
CHANGED
@@ -7,13 +7,13 @@ require 'puppet/util/inifile'
|
|
7
7
|
require 'puppettest'
|
8
8
|
|
9
9
|
class TestFileType < Test::Unit::TestCase
|
10
|
-
|
10
|
+
include PuppetTest
|
11
11
|
|
12
12
|
def setup
|
13
13
|
super
|
14
14
|
@file = Puppet::Util::IniConfig::File.new
|
15
15
|
end
|
16
|
-
|
16
|
+
|
17
17
|
def teardown
|
18
18
|
@file = nil
|
19
19
|
super
|
@@ -43,7 +43,7 @@ class TestFileType < Test::Unit::TestCase
|
|
43
43
|
@file.read(fsub)
|
44
44
|
}
|
45
45
|
main = get_section('main')
|
46
|
-
assert_entries(main,
|
46
|
+
assert_entries(main,
|
47
47
|
{ 'key1' => 'main.value1', 'key2' => 'main.value2' })
|
48
48
|
sub1 = get_section('sub1')
|
49
49
|
assert_entries(sub1, { 'key1' => 'sub1 value1' })
|
@@ -106,9 +106,9 @@ class TestFileType < Test::Unit::TestCase
|
|
106
106
|
end
|
107
107
|
|
108
108
|
def assert_entries(section, hash)
|
109
|
-
hash.each do |k, v|
|
110
|
-
assert_equal(v, section[k],
|
111
|
-
"Expected <#{v}> for #{section.name}[#{k}] " +
|
109
|
+
hash.each do |k, v|
|
110
|
+
assert_equal(v, section[k],
|
111
|
+
"Expected <#{v}> for #{section.name}[#{k}] " +
|
112
112
|
"but got <#{section[k]}>")
|
113
113
|
end
|
114
114
|
end
|
data/test/util/log.rb
CHANGED
@@ -129,7 +129,7 @@ class TestLog < Test::Unit::TestCase
|
|
129
129
|
# Verify that the error and source are always strings
|
130
130
|
def test_argsAreStrings
|
131
131
|
msg = nil
|
132
|
-
file = Puppet.type(:file).
|
132
|
+
file = Puppet::Type.type(:file).new(
|
133
133
|
:path => tempfile(),
|
134
134
|
:check => %w{owner group}
|
135
135
|
)
|
@@ -195,7 +195,7 @@ class TestLog < Test::Unit::TestCase
|
|
195
195
|
Puppet.warning "A test"
|
196
196
|
assert(File.read(file) =~ /A test/,
|
197
197
|
"File did not flush")
|
198
|
-
# Rename the file
|
198
|
+
# Rename the file
|
199
199
|
newfile = file + ".old"
|
200
200
|
File.rename(file, newfile)
|
201
201
|
|
data/test/util/metrics.rb
CHANGED
@@ -17,7 +17,7 @@ class TestMetric < PuppetTest::TestCase
|
|
17
17
|
eventmax = 10
|
18
18
|
maxdiff = 10
|
19
19
|
|
20
|
-
types = [Puppet.type(:file), Puppet.type(:package), Puppet.type(:package)]
|
20
|
+
types = [Puppet::Type.type(:file), Puppet::Type.type(:package), Puppet::Type.type(:package)]
|
21
21
|
data = [:total, :managed, :outofsync, :changed, :totalchanges]
|
22
22
|
events = [:file_changed, :package_installed, :service_started]
|
23
23
|
|
@@ -49,11 +49,6 @@ class TestMetric < PuppetTest::TestCase
|
|
49
49
|
}
|
50
50
|
end
|
51
51
|
|
52
|
-
def setup
|
53
|
-
super
|
54
|
-
Puppet[:rrdgraph] = true
|
55
|
-
end
|
56
|
-
|
57
52
|
def test_fakedata
|
58
53
|
report = Puppet::Transaction::Report.new
|
59
54
|
time = Time.now.to_i
|
data/test/util/package.rb
CHANGED
@@ -11,7 +11,7 @@ class TestPuppetUtilPackage < Test::Unit::TestCase
|
|
11
11
|
include Puppet::Util::Package
|
12
12
|
|
13
13
|
def test_versioncmp
|
14
|
-
ary = %w{ 1.1.6 2.3 1.1a 3.0 1.5 1 2.4 1.1-4
|
14
|
+
ary = %w{ 1.1.6 2.3 1.1a 3.0 1.5 1 2.4 1.1-4
|
15
15
|
2.3.1 1.2 2.3.0 1.1-3 2.4b 2.4 2.40.2 2.3a.1 3.1 0002 1.1-5 1.1.a 1.06}
|
16
16
|
|
17
17
|
newary = nil
|
data/test/util/pidlock.rb
CHANGED
@@ -7,120 +7,120 @@ require 'fileutils'
|
|
7
7
|
Puppet.debug = false
|
8
8
|
|
9
9
|
class TestPuppetUtilPidlock < Test::Unit::TestCase
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
10
|
+
include PuppetTest
|
11
|
+
|
12
|
+
def setup
|
13
|
+
super
|
14
|
+
@workdir = tstdir
|
15
|
+
end
|
16
|
+
|
17
|
+
def teardown
|
18
|
+
super
|
19
|
+
FileUtils.rm_rf(@workdir)
|
20
|
+
end
|
21
|
+
|
22
|
+
def test_00_basic_create
|
23
|
+
l = nil
|
24
|
+
assert_nothing_raised { l = Puppet::Util::Pidlock.new(@workdir + '/nothingmuch') }
|
25
|
+
|
26
|
+
assert_equal Puppet::Util::Pidlock, l.class
|
27
|
+
|
28
|
+
assert_equal @workdir + '/nothingmuch', l.lockfile
|
29
|
+
end
|
30
|
+
|
31
|
+
def test_10_uncontended_lock
|
32
|
+
l = Puppet::Util::Pidlock.new(@workdir + '/test_lock')
|
33
|
+
|
34
|
+
assert !l.locked?
|
35
|
+
assert !l.mine?
|
36
|
+
assert l.lock
|
37
|
+
assert l.locked?
|
38
|
+
assert l.mine?
|
39
|
+
assert !l.anonymous?
|
40
|
+
# It's OK to call lock multiple times
|
41
|
+
assert l.lock
|
42
|
+
assert l.unlock
|
43
|
+
assert !l.locked?
|
44
|
+
assert !l.mine?
|
45
|
+
end
|
46
|
+
|
47
|
+
def test_20_someone_elses_lock
|
48
|
+
childpid = nil
|
49
|
+
l = Puppet::Util::Pidlock.new(@workdir + '/someone_elses_lock')
|
50
|
+
|
51
|
+
# First, we need a PID that's guaranteed to be (a) used, (b) someone
|
52
|
+
# else's, and (c) around for the life of this test.
|
53
|
+
childpid = fork { loop do; sleep 10; end }
|
54
|
+
|
55
|
+
File.open(l.lockfile, 'w') { |fd| fd.write(childpid) }
|
56
|
+
|
57
|
+
assert l.locked?
|
58
|
+
assert !l.mine?
|
59
|
+
assert !l.lock
|
60
|
+
assert l.locked?
|
61
|
+
assert !l.mine?
|
62
|
+
assert !l.unlock
|
63
|
+
assert l.locked?
|
64
|
+
assert !l.mine?
|
65
|
+
ensure
|
66
|
+
Process.kill("KILL", childpid) unless childpid.nil?
|
67
|
+
end
|
68
|
+
|
69
|
+
def test_30_stale_lock
|
70
|
+
# This is a bit hard to guarantee, but we need a PID that is definitely
|
71
|
+
# unused, and will stay so for the the life of this test. Our best
|
72
|
+
# bet is to create a process, get it's PID, let it die, and *then*
|
73
|
+
# lock on it.
|
74
|
+
childpid = fork { exit }
|
75
|
+
|
76
|
+
# Now we can't continue until we're sure that the PID is dead
|
77
|
+
Process.wait(childpid)
|
78
|
+
|
79
|
+
l = Puppet::Util::Pidlock.new(@workdir + '/stale_lock')
|
80
|
+
|
81
|
+
# locked? should clear the lockfile
|
82
|
+
File.open(l.lockfile, 'w') { |fd| fd.write(childpid) }
|
83
|
+
assert File.exists?(l.lockfile)
|
84
|
+
assert !l.locked?
|
85
|
+
assert !File.exists?(l.lockfile)
|
86
|
+
|
87
|
+
# lock should replace the lockfile with our own
|
88
|
+
File.open(l.lockfile, 'w') { |fd| fd.write(childpid) }
|
89
|
+
assert File.exists?(l.lockfile)
|
90
|
+
assert l.lock
|
91
|
+
assert l.locked?
|
92
|
+
assert l.mine?
|
93
|
+
|
94
|
+
# unlock should fail, and should *not* molest the existing lockfile,
|
95
|
+
# despite it being stale
|
96
|
+
File.open(l.lockfile, 'w') { |fd| fd.write(childpid) }
|
97
|
+
assert File.exists?(l.lockfile)
|
98
|
+
assert !l.unlock
|
99
|
+
assert File.exists?(l.lockfile)
|
100
|
+
end
|
101
|
+
|
102
|
+
def test_40_not_locked_at_all
|
103
|
+
l = Puppet::Util::Pidlock.new(@workdir + '/not_locked')
|
104
|
+
|
105
|
+
assert !l.locked?
|
106
|
+
# We can't unlock if we don't hold the lock
|
107
|
+
assert !l.unlock
|
108
|
+
end
|
109
|
+
|
110
|
+
def test_50_anonymous_lock
|
111
|
+
l = Puppet::Util::Pidlock.new(@workdir + '/anonymous_lock')
|
112
|
+
|
113
|
+
assert !l.locked?
|
114
|
+
assert l.lock(:anonymous => true)
|
115
|
+
assert l.locked?
|
116
|
+
assert l.anonymous?
|
117
|
+
assert !l.mine?
|
118
|
+
assert "", File.read(l.lockfile)
|
119
|
+
assert !l.unlock
|
120
|
+
assert l.locked?
|
121
|
+
assert l.anonymous?
|
122
|
+
assert l.unlock(:anonymous => true)
|
123
|
+
assert !File.exists?(l.lockfile)
|
124
|
+
end
|
125
125
|
end
|
126
|
-
|
126
|
+
|
data/test/util/settings.rb
CHANGED
@@ -8,10 +8,10 @@ require 'puppet/util/settings'
|
|
8
8
|
require 'puppettest/parsertesting'
|
9
9
|
|
10
10
|
class TestSettings < Test::Unit::TestCase
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
11
|
+
include PuppetTest
|
12
|
+
include PuppetTest::ParserTesting
|
13
|
+
Setting = Puppet::Util::Settings::Setting
|
14
|
+
BooleanSetting = Puppet::Util::Settings::BooleanSetting
|
15
15
|
|
16
16
|
def setup
|
17
17
|
super
|
@@ -42,23 +42,6 @@ class TestSettings < Test::Unit::TestCase
|
|
42
42
|
assert(count > 0, "Found no users")
|
43
43
|
end
|
44
44
|
|
45
|
-
def test_to_transportable
|
46
|
-
set_configs
|
47
|
-
trans = nil
|
48
|
-
assert_nothing_raised("Could not convert to a transportable") {
|
49
|
-
trans = @config.to_transportable
|
50
|
-
}
|
51
|
-
|
52
|
-
comp = nil
|
53
|
-
assert_nothing_raised("Could not convert transportable to component") {
|
54
|
-
comp = trans.to_type
|
55
|
-
}
|
56
|
-
|
57
|
-
assert_nothing_raised("Could not retrieve transported config") {
|
58
|
-
comp.retrieve
|
59
|
-
}
|
60
|
-
end
|
61
|
-
|
62
45
|
def test_to_config
|
63
46
|
set_configs
|
64
47
|
|
@@ -83,8 +66,10 @@ class TestSettings < Test::Unit::TestCase
|
|
83
66
|
end
|
84
67
|
}
|
85
68
|
|
69
|
+
newc.setdefaults :section, :config => [newfile, "eh"]
|
70
|
+
|
86
71
|
assert_nothing_raised("Could not parse generated configuration") {
|
87
|
-
newc.parse
|
72
|
+
newc.parse
|
88
73
|
}
|
89
74
|
|
90
75
|
@config.each do |name, object|
|
@@ -221,8 +206,6 @@ yay = /a/path
|
|
221
206
|
file = tempfile()
|
222
207
|
File.open(file, "w") { |f| f.puts text }
|
223
208
|
|
224
|
-
@config.expects(:settimer)
|
225
|
-
|
226
209
|
result = nil
|
227
210
|
assert_nothing_raised {
|
228
211
|
result = @config.send(:parse_file, file)
|
@@ -256,214 +239,6 @@ yay = /a/path
|
|
256
239
|
end
|
257
240
|
end
|
258
241
|
|
259
|
-
def test_old_parse
|
260
|
-
text = %{
|
261
|
-
one = this is a test
|
262
|
-
two = another test
|
263
|
-
owner = root
|
264
|
-
group = root
|
265
|
-
yay = /a/path
|
266
|
-
|
267
|
-
[section1]
|
268
|
-
attr = value
|
269
|
-
owner = puppet
|
270
|
-
group = puppet
|
271
|
-
attrdir = /some/dir
|
272
|
-
attr3 = $attrdir/other
|
273
|
-
}
|
274
|
-
|
275
|
-
file = tempfile()
|
276
|
-
File.open(file, "w") { |f| f.puts text }
|
277
|
-
|
278
|
-
assert_nothing_raised {
|
279
|
-
@config.setdefaults("puppet",
|
280
|
-
:one => ["a", "one"],
|
281
|
-
:two => ["a", "two"],
|
282
|
-
:yay => ["/default/path", "boo"],
|
283
|
-
:mkusers => [true, "uh, yeah"]
|
284
|
-
)
|
285
|
-
}
|
286
|
-
|
287
|
-
assert_nothing_raised {
|
288
|
-
@config.setdefaults("section1",
|
289
|
-
:attr => ["a", "one"],
|
290
|
-
:attrdir => ["/another/dir", "two"],
|
291
|
-
:attr3 => ["$attrdir/maybe", "boo"]
|
292
|
-
)
|
293
|
-
}
|
294
|
-
|
295
|
-
assert_nothing_raised {
|
296
|
-
@config.old_parse(file)
|
297
|
-
}
|
298
|
-
|
299
|
-
assert_equal("value", @config[:attr])
|
300
|
-
assert_equal("/some/dir", @config[:attrdir])
|
301
|
-
assert_equal(:directory, @config.element(:attrdir).type)
|
302
|
-
assert_equal("/some/dir/other", @config[:attr3])
|
303
|
-
|
304
|
-
elem = nil
|
305
|
-
assert_nothing_raised {
|
306
|
-
elem = @config.element(:attr3)
|
307
|
-
}
|
308
|
-
|
309
|
-
assert(elem)
|
310
|
-
assert_equal("puppet", elem.owner)
|
311
|
-
|
312
|
-
config = nil
|
313
|
-
assert_nothing_raised {
|
314
|
-
config = @config.to_config
|
315
|
-
}
|
316
|
-
|
317
|
-
assert_nothing_raised("Could not create transportable config") {
|
318
|
-
@config.to_transportable
|
319
|
-
}
|
320
|
-
end
|
321
|
-
|
322
|
-
def test_parse
|
323
|
-
result = {
|
324
|
-
:main => {:main => "main", :bad => "invalid", :cliparam => "reset"},
|
325
|
-
:puppet => {:other => "puppet", :cliparam => "reset"},
|
326
|
-
:puppetd => {:other => "puppetd", :cliparam => "reset"}
|
327
|
-
}
|
328
|
-
# Set our defaults, so they're valid. Don't define 'bad', since we want to test for failures.
|
329
|
-
@config.setdefaults(:main,
|
330
|
-
:main => ["whatever", "a"],
|
331
|
-
:cliparam => ["default", "y"],
|
332
|
-
:other => ["a", "b"],
|
333
|
-
:name => ["puppet", "b"] # our default name
|
334
|
-
)
|
335
|
-
@config.setdefaults(:other,
|
336
|
-
:one => ["whatever", "a"],
|
337
|
-
:two => ["default", "y"],
|
338
|
-
:apple => ["a", "b"],
|
339
|
-
:shoe => ["puppet", "b"] # our default name
|
340
|
-
)
|
341
|
-
@config.handlearg("--cliparam", "changed")
|
342
|
-
@config.stubs(:parse_file).returns(result)
|
343
|
-
|
344
|
-
# First do it with our name being 'puppet'
|
345
|
-
assert_nothing_raised("Could not handle parse results") do
|
346
|
-
@config.parse(tempfile)
|
347
|
-
end
|
348
|
-
|
349
|
-
assert_equal(:puppet, @config.name, "Did not get correct name")
|
350
|
-
assert_equal("main", @config[:main], "Did not get main value")
|
351
|
-
assert_equal("puppet", @config[:other], "Did not get name value")
|
352
|
-
assert_equal("changed", @config[:cliparam], "CLI values were overridden by config")
|
353
|
-
|
354
|
-
# Now switch names and make sure the parsing switches, too.
|
355
|
-
@config.clear(true)
|
356
|
-
assert_nothing_raised("Could not handle parse results") do
|
357
|
-
@config.parse(tempfile)
|
358
|
-
end
|
359
|
-
@config[:name] = :puppetd
|
360
|
-
|
361
|
-
assert_equal(:puppetd, @config.name, "Did not get correct name")
|
362
|
-
assert_equal("main", @config[:main], "Did not get main value")
|
363
|
-
assert_equal("puppetd", @config[:other], "Did not get name value")
|
364
|
-
assert_equal("changed", @config[:cliparam], "CLI values were overridden by config")
|
365
|
-
end
|
366
|
-
|
367
|
-
# Make sure we can extract file options correctly.
|
368
|
-
def test_parsing_file_options
|
369
|
-
@config.setdefaults(:whev,
|
370
|
-
:file => {
|
371
|
-
:desc => "whev",
|
372
|
-
:default => "/default",
|
373
|
-
:owner => "me",
|
374
|
-
:group => "me",
|
375
|
-
:mode => "755"
|
376
|
-
}
|
377
|
-
)
|
378
|
-
|
379
|
-
file = tempfile
|
380
|
-
count = 0
|
381
|
-
|
382
|
-
{
|
383
|
-
:pass => {
|
384
|
-
" {owner = you}" => {:owner => "you"},
|
385
|
-
" {owner = you, group = you}" => {:owner => "you", :group => "you"},
|
386
|
-
" {owner = you, group = you, mode = 755}" => {:owner => "you", :group => "you", :mode => "755"},
|
387
|
-
" { owner = you, group = you } " => {:owner => "you", :group => "you"},
|
388
|
-
"{owner=you,group=you} " => {:owner => "you", :group => "you"},
|
389
|
-
"{owner=you,} " => {:owner => "you"}
|
390
|
-
},
|
391
|
-
:fail => [
|
392
|
-
%{{owner = you group = you}},
|
393
|
-
%{{owner => you, group => you}},
|
394
|
-
%{{user => you}},
|
395
|
-
%{{random => you}},
|
396
|
-
%{{mode => you}}, # make sure modes are numbers
|
397
|
-
%{{owner => you}}
|
398
|
-
]
|
399
|
-
}.each do |type, list|
|
400
|
-
count += 1
|
401
|
-
list.each do |value|
|
402
|
-
if type == :pass
|
403
|
-
value, should = value[0], value[1]
|
404
|
-
end
|
405
|
-
path = "/other%s" % count
|
406
|
-
# Write our file out
|
407
|
-
File.open(file, "w") do |f|
|
408
|
-
f.puts %{[main]\nfile = #{path}#{value}}
|
409
|
-
end
|
410
|
-
|
411
|
-
if type == :fail
|
412
|
-
assert_raise(ArgumentError, "Did not fail on %s" % value.inspect) do
|
413
|
-
@config.send(:parse_file, file)
|
414
|
-
end
|
415
|
-
else
|
416
|
-
result = nil
|
417
|
-
assert_nothing_raised("Failed to parse %s" % value.inspect) do
|
418
|
-
result = @config.send(:parse_file, file)
|
419
|
-
end
|
420
|
-
assert_equal(should, result[:main][:_meta][:file], "Got incorrect return for %s" % value.inspect)
|
421
|
-
assert_equal(path, result[:main][:file], "Got incorrect value for %s" % value.inspect)
|
422
|
-
end
|
423
|
-
end
|
424
|
-
end
|
425
|
-
end
|
426
|
-
|
427
|
-
# Make sure file options returned from parse_file are handled correctly.
|
428
|
-
def test_parsed_file_options
|
429
|
-
@config.setdefaults(:whev,
|
430
|
-
:file => {
|
431
|
-
:desc => "whev",
|
432
|
-
:default => "/default",
|
433
|
-
:owner => "me",
|
434
|
-
:group => "me",
|
435
|
-
:mode => "755"
|
436
|
-
}
|
437
|
-
)
|
438
|
-
|
439
|
-
result = {
|
440
|
-
:main => {
|
441
|
-
:file => "/other",
|
442
|
-
:_meta => {
|
443
|
-
:file => {
|
444
|
-
:owner => "you",
|
445
|
-
:group => "you",
|
446
|
-
:mode => "644"
|
447
|
-
}
|
448
|
-
}
|
449
|
-
}
|
450
|
-
}
|
451
|
-
|
452
|
-
@config.expects(:parse_file).returns(result)
|
453
|
-
|
454
|
-
assert_nothing_raised("Could not handle file options") do
|
455
|
-
@config.parse("/whatever")
|
456
|
-
end
|
457
|
-
|
458
|
-
# Get the actual object, so we can verify metadata
|
459
|
-
file = @config.element(:file)
|
460
|
-
|
461
|
-
assert_equal("/other", @config[:file], "Did not get correct value")
|
462
|
-
assert_equal("you", file.owner, "Did not pass on user")
|
463
|
-
assert_equal("you", file.group, "Did not pass on group")
|
464
|
-
assert_equal("644", file.mode, "Did not pass on mode")
|
465
|
-
end
|
466
|
-
|
467
242
|
def test_arghandling
|
468
243
|
c = mkconfig
|
469
244
|
|
@@ -548,91 +323,6 @@ yay = /a/path
|
|
548
323
|
assert_equal(should, result, "Add args functional test failed")
|
549
324
|
end
|
550
325
|
|
551
|
-
def test_usesection
|
552
|
-
# We want to make sure that config processes do not result in graphing.
|
553
|
-
Puppet[:graphdir] = tempfile()
|
554
|
-
Puppet[:graph] = true
|
555
|
-
Dir.mkdir(Puppet[:graphdir])
|
556
|
-
c = mkconfig
|
557
|
-
|
558
|
-
dir = tempfile()
|
559
|
-
file = "$mydir/myfile"
|
560
|
-
realfile = File.join(dir, "myfile")
|
561
|
-
otherfile = File.join(dir, "otherfile")
|
562
|
-
section = "testing"
|
563
|
-
assert_nothing_raised {
|
564
|
-
@config.setdefaults(section,
|
565
|
-
:mydir => [dir, "A dir arg"],
|
566
|
-
:otherfile => {
|
567
|
-
:default => "$mydir/otherfile",
|
568
|
-
:create => true,
|
569
|
-
:desc => "A file arg"
|
570
|
-
},
|
571
|
-
:myfile => [file, "A file arg"]
|
572
|
-
)
|
573
|
-
}
|
574
|
-
|
575
|
-
assert_nothing_raised("Could not use a section") {
|
576
|
-
@config.use(section)
|
577
|
-
}
|
578
|
-
|
579
|
-
assert_nothing_raised("Could not reuse a section") {
|
580
|
-
@config.use(section)
|
581
|
-
}
|
582
|
-
|
583
|
-
# Make sure it didn't graph anything, which is the only real way
|
584
|
-
# to test that the transaction was marked as a configurator.
|
585
|
-
assert(Dir.entries(Puppet[:graphdir]).reject { |f| f =~ /^\.\.?$/ }.empty?, "Graphed config process")
|
586
|
-
|
587
|
-
assert(FileTest.directory?(dir), "Did not create directory")
|
588
|
-
assert(FileTest.exists?(otherfile), "Did not create file")
|
589
|
-
assert(!FileTest.exists?(realfile), "Created file")
|
590
|
-
end
|
591
|
-
|
592
|
-
def test_setdefaultsarray
|
593
|
-
c = mkconfig
|
594
|
-
|
595
|
-
assert_nothing_raised {
|
596
|
-
@config.setdefaults("yay",
|
597
|
-
:a => [false, "some value"],
|
598
|
-
:b => ["/my/file", "a file"]
|
599
|
-
)
|
600
|
-
}
|
601
|
-
|
602
|
-
assert_equal(false, @config[:a], "Values are not equal")
|
603
|
-
assert_equal("/my/file", @config[:b], "Values are not equal")
|
604
|
-
end
|
605
|
-
|
606
|
-
def test_setdefaultshash
|
607
|
-
c = mkconfig
|
608
|
-
|
609
|
-
assert_nothing_raised {
|
610
|
-
@config.setdefaults("yay",
|
611
|
-
:a => {:default => false, :desc => "some value"},
|
612
|
-
:b => {:default => "/my/file", :desc => "a file"}
|
613
|
-
)
|
614
|
-
}
|
615
|
-
|
616
|
-
assert_equal(false, @config[:a], "Values are not equal")
|
617
|
-
assert_equal("/my/file", @config[:b], "Values are not equal")
|
618
|
-
end
|
619
|
-
|
620
|
-
def test_notmanagingdev
|
621
|
-
c = mkconfig
|
622
|
-
path = "/dev/testing"
|
623
|
-
@config.setdefaults(:test,
|
624
|
-
:file => {
|
625
|
-
:default => path,
|
626
|
-
:mode => 0640,
|
627
|
-
:desc => 'yay'
|
628
|
-
}
|
629
|
-
)
|
630
|
-
|
631
|
-
config = @config.to_configuration
|
632
|
-
|
633
|
-
assert(! config.resource(:file, "/dev/testing"), "Created dev file")
|
634
|
-
end
|
635
|
-
|
636
326
|
def test_groupsetting
|
637
327
|
cfile = tempfile()
|
638
328
|
|
@@ -645,10 +335,10 @@ yay = /a/path
|
|
645
335
|
end
|
646
336
|
|
647
337
|
config = mkconfig
|
648
|
-
config.setdefaults(Puppet[:name], :group => ["puppet", "a group"])
|
338
|
+
config.setdefaults(Puppet[:name], :group => ["puppet", "a group"], :config => [cfile, "eh"])
|
649
339
|
|
650
340
|
assert_nothing_raised {
|
651
|
-
config.parse
|
341
|
+
config.parse
|
652
342
|
}
|
653
343
|
|
654
344
|
assert_equal(group, config[:group], "Group did not take")
|
@@ -658,7 +348,7 @@ yay = /a/path
|
|
658
348
|
# already stored in a config
|
659
349
|
def test_writingfiles
|
660
350
|
File.umask(0022)
|
661
|
-
|
351
|
+
|
662
352
|
path = tempfile()
|
663
353
|
mode = 0644
|
664
354
|
|
@@ -684,12 +374,12 @@ yay = /a/path
|
|
684
374
|
|
685
375
|
assert_equal(mode, filemode(path), "Modes are not equal")
|
686
376
|
|
687
|
-
# OS X is broken in how it chgrps files
|
377
|
+
# OS X is broken in how it chgrps files
|
688
378
|
if Puppet::Util::SUIDManager.uid == 0
|
689
379
|
assert_equal(user.uid, File.stat(path).uid, "UIDS are not equal")
|
690
380
|
|
691
381
|
case Facter["operatingsystem"].value
|
692
|
-
when /BSD/, "Darwin"
|
382
|
+
when /BSD/, "Darwin" # nothing
|
693
383
|
else
|
694
384
|
assert_equal(group.gid, File.stat(path).gid, "GIDS are not equal")
|
695
385
|
end
|
@@ -698,7 +388,7 @@ yay = /a/path
|
|
698
388
|
|
699
389
|
def test_mkdir
|
700
390
|
File.umask(0022)
|
701
|
-
|
391
|
+
|
702
392
|
path = tempfile()
|
703
393
|
mode = 0755
|
704
394
|
|
@@ -723,12 +413,12 @@ yay = /a/path
|
|
723
413
|
assert_equal(mode, filemode(path), "Modes are not equal")
|
724
414
|
|
725
415
|
|
726
|
-
# OS X and *BSD is broken in how it chgrps files
|
416
|
+
# OS X and *BSD is broken in how it chgrps files
|
727
417
|
if Puppet::Util::SUIDManager.uid == 0
|
728
418
|
assert_equal(user.uid, File.stat(path).uid, "UIDS are not equal")
|
729
419
|
|
730
420
|
case Facter["operatingsystem"].value
|
731
|
-
when /BSD/, "Darwin"
|
421
|
+
when /BSD/, "Darwin" # nothing
|
732
422
|
else
|
733
423
|
assert_equal(group.gid, File.stat(path).gid, "GIDS are not equal")
|
734
424
|
end
|
@@ -758,7 +448,7 @@ yay = /a/path
|
|
758
448
|
|
759
449
|
def test_configs_replace_in_url
|
760
450
|
config = mkconfig
|
761
|
-
|
451
|
+
|
762
452
|
config.setdefaults(:mysection, :name => ["yayness", "yay"])
|
763
453
|
config.setdefaults(:mysection, :url => ["http://$name/rahness", "yay"])
|
764
454
|
|
@@ -772,11 +462,9 @@ yay = /a/path
|
|
772
462
|
end
|
773
463
|
|
774
464
|
def test_correct_type_assumptions
|
775
|
-
|
776
|
-
|
777
|
-
|
778
|
-
element = Puppet::Util::Settings::CElement
|
779
|
-
bool = Puppet::Util::Settings::CBoolean
|
465
|
+
file = Puppet::Util::Settings::FileSetting
|
466
|
+
element = Puppet::Util::Settings::Setting
|
467
|
+
bool = Puppet::Util::Settings::BooleanSetting
|
780
468
|
|
781
469
|
# We have to keep these ordered, unfortunately.
|
782
470
|
[
|
@@ -789,56 +477,19 @@ yay = /a/path
|
|
789
477
|
["$server/yayness", file],
|
790
478
|
["$server/yayness.conf", file]
|
791
479
|
].each do |ary|
|
480
|
+
config = mkconfig
|
792
481
|
value, type = ary
|
482
|
+
name = value.to_s + "_setting"
|
793
483
|
assert_nothing_raised {
|
794
|
-
config.setdefaults(:yayness,
|
484
|
+
config.setdefaults(:yayness, name => { :default => value, :desc => name.to_s})
|
795
485
|
}
|
796
|
-
elem = config.element(
|
486
|
+
elem = config.element(name)
|
797
487
|
|
798
488
|
assert_instance_of(type, elem,
|
799
489
|
"%s got created as wrong type" % value.inspect)
|
800
490
|
end
|
801
491
|
end
|
802
492
|
|
803
|
-
# Make sure we correctly reparse our config files but don't lose CLI values.
|
804
|
-
def test_reparse
|
805
|
-
Puppet[:filetimeout] = 0
|
806
|
-
|
807
|
-
config = mkconfig()
|
808
|
-
config.setdefaults(:mysection, :default => ["default", "yay"])
|
809
|
-
config.setdefaults(:mysection, :clichange => ["clichange", "yay"])
|
810
|
-
config.setdefaults(:mysection, :filechange => ["filechange", "yay"])
|
811
|
-
|
812
|
-
config.stubs(:read_file).returns(%{[main]\nfilechange = filevalue\n})
|
813
|
-
file = mock 'file'
|
814
|
-
file.stubs(:changed?).returns(true)
|
815
|
-
|
816
|
-
assert_nothing_raised {
|
817
|
-
config.parse(file)
|
818
|
-
}
|
819
|
-
|
820
|
-
# Set another "from the cli"
|
821
|
-
assert_nothing_raised {
|
822
|
-
config.handlearg("clichange", "clivalue")
|
823
|
-
}
|
824
|
-
|
825
|
-
# And leave the other unset
|
826
|
-
assert_equal("default", config[:default])
|
827
|
-
assert_equal("filevalue", config[:filechange], "Did not get value from file")
|
828
|
-
assert_equal("clivalue", config[:clichange])
|
829
|
-
|
830
|
-
# Now reparse
|
831
|
-
config.stubs(:read_file).returns(%{[main]\nfilechange = newvalue\n})
|
832
|
-
file = mock 'file'
|
833
|
-
file.stubs(:changed?).returns(true)
|
834
|
-
config.parse(file)
|
835
|
-
|
836
|
-
# And check all of the values
|
837
|
-
assert_equal("default", config[:default])
|
838
|
-
assert_equal("clivalue", config[:clichange])
|
839
|
-
assert_equal("newvalue", config[:filechange])
|
840
|
-
end
|
841
|
-
|
842
493
|
def test_parse_removes_quotes
|
843
494
|
config = mkconfig()
|
844
495
|
config.setdefaults(:mysection, :singleq => ["single", "yay"])
|
@@ -857,8 +508,10 @@ yay = /a/path
|
|
857
508
|
}
|
858
509
|
}
|
859
510
|
|
511
|
+
config.setdefaults(:mysection, :config => [file, "eh"])
|
512
|
+
|
860
513
|
assert_nothing_raised {
|
861
|
-
config.parse
|
514
|
+
config.parse
|
862
515
|
}
|
863
516
|
|
864
517
|
%w{singleq doubleq none}.each do |p|
|
@@ -867,49 +520,6 @@ yay = /a/path
|
|
867
520
|
assert_equal('mid"quote', config["middle"], "middle did not match")
|
868
521
|
end
|
869
522
|
|
870
|
-
def test_timer
|
871
|
-
Puppet[:filetimeout] = 0.1
|
872
|
-
origpath = tempfile()
|
873
|
-
config = mkconfig()
|
874
|
-
config.setdefaults(:mysection, :paramdir => [tempfile(), "yay"])
|
875
|
-
|
876
|
-
file = tempfile()
|
877
|
-
# Set one parameter in the file
|
878
|
-
File.open(file, "w") { |f|
|
879
|
-
f.puts %{[main]\n
|
880
|
-
paramdir = #{origpath}
|
881
|
-
}
|
882
|
-
}
|
883
|
-
|
884
|
-
assert_nothing_raised {
|
885
|
-
config.parse(file)
|
886
|
-
config.use(:mysection)
|
887
|
-
}
|
888
|
-
|
889
|
-
assert(FileTest.directory?(origpath), "dir did not get created")
|
890
|
-
|
891
|
-
# Now start the timer
|
892
|
-
assert_nothing_raised {
|
893
|
-
EventLoop.current.monitor_timer config.timer
|
894
|
-
}
|
895
|
-
|
896
|
-
newpath = tempfile()
|
897
|
-
|
898
|
-
File.open(file, "w") { |f|
|
899
|
-
f.puts %{[main]\n
|
900
|
-
paramdir = #{newpath}
|
901
|
-
}
|
902
|
-
}
|
903
|
-
config.file.send("tstamp=".intern, Time.now - 50)
|
904
|
-
sleep 1
|
905
|
-
|
906
|
-
assert_equal(newpath, config["paramdir"],
|
907
|
-
"File did not get reparsed from timer")
|
908
|
-
assert(FileTest.directory?(newpath), "new dir did not get created")
|
909
|
-
|
910
|
-
|
911
|
-
end
|
912
|
-
|
913
523
|
# Test that config parameters correctly call passed-in blocks when the value
|
914
524
|
# is set.
|
915
525
|
def test_paramblocks
|
@@ -981,7 +591,7 @@ yay = /a/path
|
|
981
591
|
# Now enable it so they'll be added
|
982
592
|
config[:mkusers] = true
|
983
593
|
|
984
|
-
comp = config.
|
594
|
+
comp = config.to_catalog
|
985
595
|
|
986
596
|
comp.vertices.find_all { |r| r.class.name == :user }.each do |u|
|
987
597
|
assert(u.name != "root", "Tried to manage root user")
|
@@ -1000,16 +610,16 @@ yay = /a/path
|
|
1000
610
|
# assert(! yay.find { |o| o.class.name == :group and o.name == "root" },
|
1001
611
|
# "Found root group")
|
1002
612
|
end
|
1003
|
-
|
613
|
+
|
1004
614
|
# #415
|
1005
615
|
def test_remove_trailing_spaces
|
1006
616
|
config = mkconfig()
|
1007
|
-
config.setdefaults(:yay, :rah => ["testing", "a desc"])
|
1008
|
-
|
1009
617
|
file = tempfile()
|
1010
618
|
File.open(file, "w") { |f| f.puts "rah = something " }
|
1011
|
-
|
1012
|
-
|
619
|
+
|
620
|
+
config.setdefaults(:yay, :config => [file, "eh"], :rah => ["testing", "a desc"])
|
621
|
+
|
622
|
+
assert_nothing_raised { config.parse }
|
1013
623
|
assert_equal("something", config[:rah], "did not remove trailing whitespace in parsing")
|
1014
624
|
end
|
1015
625
|
|
@@ -1017,7 +627,6 @@ yay = /a/path
|
|
1017
627
|
def test_parsing_unknown_variables
|
1018
628
|
logstore()
|
1019
629
|
config = mkconfig()
|
1020
|
-
config.setdefaults(:mysection, :one => ["yay", "yay"])
|
1021
630
|
file = tempfile()
|
1022
631
|
File.open(file, "w") { |f|
|
1023
632
|
f.puts %{[main]\n
|
@@ -1026,8 +635,10 @@ yay = /a/path
|
|
1026
635
|
}
|
1027
636
|
}
|
1028
637
|
|
638
|
+
config.setdefaults(:mysection, :config => [file, "eh"], :one => ["yay", "yay"])
|
639
|
+
|
1029
640
|
assert_nothing_raised("Unknown parameter threw an exception") do
|
1030
|
-
config.parse
|
641
|
+
config.parse
|
1031
642
|
end
|
1032
643
|
end
|
1033
644
|
|
@@ -1058,12 +669,12 @@ yay = /a/path
|
|
1058
669
|
def test_celement_short_name
|
1059
670
|
element = nil
|
1060
671
|
assert_nothing_raised("Could not create celement") do
|
1061
|
-
element =
|
672
|
+
element = Setting.new :short => "n", :desc => "anything", :settings => Puppet::Util::Settings.new
|
1062
673
|
end
|
1063
674
|
assert_equal("n", element.short, "Short value is not retained")
|
1064
675
|
|
1065
676
|
assert_raise(ArgumentError,"Allowed multicharactered short names.") do
|
1066
|
-
element =
|
677
|
+
element = Setting.new :short => "no", :desc => "anything", :settings => Puppet::Util::Settings.new
|
1067
678
|
end
|
1068
679
|
end
|
1069
680
|
|
@@ -1088,13 +699,13 @@ yay = /a/path
|
|
1088
699
|
|
1089
700
|
# Tell getopt which arguments are valid
|
1090
701
|
def test_get_getopt_args
|
1091
|
-
element =
|
702
|
+
element = Setting.new :name => "foo", :desc => "anything", :settings => Puppet::Util::Settings.new
|
1092
703
|
assert_equal([["--foo", GetoptLong::REQUIRED_ARGUMENT]], element.getopt_args, "Did not produce appropriate getopt args")
|
1093
|
-
|
704
|
+
|
1094
705
|
element.short = "n"
|
1095
706
|
assert_equal([["--foo", "-n", GetoptLong::REQUIRED_ARGUMENT]], element.getopt_args, "Did not produce appropriate getopt args")
|
1096
707
|
|
1097
|
-
element =
|
708
|
+
element = BooleanSetting.new :name => "foo", :desc => "anything", :settings => Puppet::Util::Settings.new
|
1098
709
|
assert_equal([["--foo", GetoptLong::NO_ARGUMENT], ["--no-foo", GetoptLong::NO_ARGUMENT]],
|
1099
710
|
element.getopt_args, "Did not produce appropriate getopt args")
|
1100
711
|
|