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
@@ -32,10 +32,6 @@ describe Puppet::FileServing::Configuration::Parser do
|
|
32
32
|
describe Puppet::FileServing::Configuration::Parser, " when parsing" do
|
33
33
|
include FSConfigurationParserTesting
|
34
34
|
|
35
|
-
before do
|
36
|
-
@parser.stubs(:add_modules_mount)
|
37
|
-
end
|
38
|
-
|
39
35
|
it "should allow comments" do
|
40
36
|
@filehandle.expects(:each).yields("# this is a comment\n")
|
41
37
|
proc { @parser.parse }.should_not raise_error
|
@@ -47,23 +43,25 @@ describe Puppet::FileServing::Configuration::Parser do
|
|
47
43
|
end
|
48
44
|
|
49
45
|
it "should create a new mount for each section in the configuration" do
|
50
|
-
mount1 = mock 'one'
|
51
|
-
mount2 = mock 'two'
|
52
|
-
Puppet::FileServing::Mount.expects(:new).with("one").returns(mount1)
|
53
|
-
Puppet::FileServing::Mount.expects(:new).with("two").returns(mount2)
|
46
|
+
mount1 = mock 'one', :validate => true
|
47
|
+
mount2 = mock 'two', :validate => true
|
48
|
+
Puppet::FileServing::Mount::File.expects(:new).with("one").returns(mount1)
|
49
|
+
Puppet::FileServing::Mount::File.expects(:new).with("two").returns(mount2)
|
54
50
|
mock_file_content "[one]\n[two]\n"
|
55
51
|
@parser.parse
|
56
52
|
end
|
57
53
|
|
58
54
|
# This test is almost the exact same as the previous one.
|
59
55
|
it "should return a hash of the created mounts" do
|
60
|
-
mount1 = mock 'one'
|
61
|
-
mount2 = mock 'two'
|
62
|
-
Puppet::FileServing::Mount.expects(:new).with("one").returns(mount1)
|
63
|
-
Puppet::FileServing::Mount.expects(:new).with("two").returns(mount2)
|
56
|
+
mount1 = mock 'one', :validate => true
|
57
|
+
mount2 = mock 'two', :validate => true
|
58
|
+
Puppet::FileServing::Mount::File.expects(:new).with("one").returns(mount1)
|
59
|
+
Puppet::FileServing::Mount::File.expects(:new).with("two").returns(mount2)
|
64
60
|
mock_file_content "[one]\n[two]\n"
|
65
61
|
|
66
|
-
@parser.parse
|
62
|
+
result = @parser.parse
|
63
|
+
result["one"].should equal(mount1)
|
64
|
+
result["two"].should equal(mount2)
|
67
65
|
end
|
68
66
|
|
69
67
|
it "should only allow mount names that are alphanumeric plus dashes" do
|
@@ -75,14 +73,34 @@ describe Puppet::FileServing::Configuration::Parser do
|
|
75
73
|
mock_file_content "[one]\npath = /testing"
|
76
74
|
proc { @parser.parse }.should raise_error(ArgumentError)
|
77
75
|
end
|
76
|
+
|
77
|
+
it "should validate each created mount" do
|
78
|
+
mount1 = mock 'one'
|
79
|
+
Puppet::FileServing::Mount::File.expects(:new).with("one").returns(mount1)
|
80
|
+
mock_file_content "[one]\n"
|
81
|
+
|
82
|
+
mount1.expects(:validate)
|
83
|
+
|
84
|
+
@parser.parse
|
85
|
+
end
|
86
|
+
|
87
|
+
it "should fail if any mount does not pass validation" do
|
88
|
+
mount1 = mock 'one'
|
89
|
+
Puppet::FileServing::Mount::File.expects(:new).with("one").returns(mount1)
|
90
|
+
mock_file_content "[one]\n"
|
91
|
+
|
92
|
+
mount1.expects(:validate).raises RuntimeError
|
93
|
+
|
94
|
+
lambda { @parser.parse }.should raise_error(RuntimeError)
|
95
|
+
end
|
78
96
|
end
|
79
97
|
|
80
98
|
describe Puppet::FileServing::Configuration::Parser, " when parsing mount attributes" do
|
81
99
|
include FSConfigurationParserTesting
|
82
100
|
|
83
101
|
before do
|
84
|
-
@mount = stub '
|
85
|
-
Puppet::FileServing::Mount.expects(:new).with("one").returns(@mount)
|
102
|
+
@mount = stub 'testmount', :name => "one", :validate => true
|
103
|
+
Puppet::FileServing::Mount::File.expects(:new).with("one").returns(@mount)
|
86
104
|
@parser.stubs(:add_modules_mount)
|
87
105
|
end
|
88
106
|
|
@@ -120,14 +138,42 @@ describe Puppet::FileServing::Configuration::Parser do
|
|
120
138
|
include FSConfigurationParserTesting
|
121
139
|
|
122
140
|
before do
|
123
|
-
@mount = stub '
|
124
|
-
|
141
|
+
@mount = stub 'modulesmount', :name => "modules", :validate => true
|
142
|
+
end
|
143
|
+
|
144
|
+
it "should create an instance of the Modules Mount class" do
|
145
|
+
mock_file_content "[modules]\n"
|
146
|
+
|
147
|
+
Puppet::FileServing::Mount::Modules.expects(:new).with("modules").returns @mount
|
148
|
+
@parser.parse
|
125
149
|
end
|
126
150
|
|
127
151
|
it "should warn if a path is set" do
|
128
152
|
mock_file_content "[modules]\npath /some/path\n"
|
153
|
+
Puppet::FileServing::Mount::Modules.expects(:new).with("modules").returns(@mount)
|
154
|
+
|
155
|
+
Puppet.expects(:warning)
|
156
|
+
@parser.parse
|
157
|
+
end
|
158
|
+
end
|
159
|
+
|
160
|
+
describe Puppet::FileServing::Configuration::Parser, " when parsing the plugins mount" do
|
161
|
+
include FSConfigurationParserTesting
|
162
|
+
|
163
|
+
before do
|
164
|
+
@mount = stub 'pluginsmount', :name => "plugins", :validate => true
|
165
|
+
end
|
166
|
+
|
167
|
+
it "should create an instance of the Plugins Mount class" do
|
168
|
+
mock_file_content "[plugins]\n"
|
169
|
+
|
170
|
+
Puppet::FileServing::Mount::Plugins.expects(:new).with("plugins").returns @mount
|
171
|
+
@parser.parse
|
172
|
+
end
|
173
|
+
|
174
|
+
it "should warn if a path is set" do
|
175
|
+
mock_file_content "[plugins]\npath /some/path\n"
|
129
176
|
|
130
|
-
@modules.expects(:path=).never
|
131
177
|
Puppet.expects(:warning)
|
132
178
|
@parser.parse
|
133
179
|
end
|
@@ -5,8 +5,8 @@ require File.dirname(__FILE__) + '/../../spec_helper'
|
|
5
5
|
require 'puppet/file_serving/content'
|
6
6
|
|
7
7
|
describe Puppet::FileServing::Content do
|
8
|
-
it "should should be a subclass of
|
9
|
-
Puppet::FileServing::Content.superclass.should equal(Puppet::FileServing::
|
8
|
+
it "should should be a subclass of Base" do
|
9
|
+
Puppet::FileServing::Content.superclass.should equal(Puppet::FileServing::Base)
|
10
10
|
end
|
11
11
|
|
12
12
|
it "should indirect file_content" do
|
@@ -16,12 +16,66 @@ describe Puppet::FileServing::Content do
|
|
16
16
|
it "should should include the IndirectionHooks module in its indirection" do
|
17
17
|
Puppet::FileServing::Content.indirection.metaclass.included_modules.should include(Puppet::FileServing::IndirectionHooks)
|
18
18
|
end
|
19
|
+
|
20
|
+
it "should only support the raw format" do
|
21
|
+
Puppet::FileServing::Content.supported_formats.should == [:raw]
|
22
|
+
end
|
23
|
+
|
24
|
+
it "should have a method for collecting its attributes" do
|
25
|
+
Puppet::FileServing::Content.new("/path").should respond_to(:collect)
|
26
|
+
end
|
27
|
+
|
28
|
+
it "should retrieve and store its contents when its attributes are collected if the file is a normal file" do
|
29
|
+
content = Puppet::FileServing::Content.new("/path")
|
30
|
+
|
31
|
+
result = "foo"
|
32
|
+
File.stubs(:lstat).returns(stub("stat", :ftype => "file"))
|
33
|
+
File.expects(:read).with("/path").returns result
|
34
|
+
content.collect
|
35
|
+
|
36
|
+
content.instance_variable_get("@content").should_not be_nil
|
37
|
+
end
|
38
|
+
|
39
|
+
it "should not attempt to retrieve its contents if the file is a directory" do
|
40
|
+
content = Puppet::FileServing::Content.new("/path")
|
41
|
+
|
42
|
+
result = "foo"
|
43
|
+
File.stubs(:lstat).returns(stub("stat", :ftype => "directory"))
|
44
|
+
File.expects(:read).with("/path").never
|
45
|
+
content.collect
|
46
|
+
|
47
|
+
content.instance_variable_get("@content").should be_nil
|
48
|
+
end
|
49
|
+
|
50
|
+
it "should have a method for setting its content" do
|
51
|
+
content = Puppet::FileServing::Content.new("/path")
|
52
|
+
content.should respond_to(:content=)
|
53
|
+
end
|
54
|
+
|
55
|
+
it "should make content available when set externally" do
|
56
|
+
content = Puppet::FileServing::Content.new("/path")
|
57
|
+
content.content = "foo/bar"
|
58
|
+
content.content.should == "foo/bar"
|
59
|
+
end
|
60
|
+
|
61
|
+
it "should be able to create a content instance from raw file contents" do
|
62
|
+
Puppet::FileServing::Content.should respond_to(:from_raw)
|
63
|
+
end
|
64
|
+
|
65
|
+
it "should create an instance with a fake file name and correct content when converting from raw" do
|
66
|
+
instance = mock 'instance'
|
67
|
+
Puppet::FileServing::Content.expects(:new).with("/this/is/a/fake/path").returns instance
|
68
|
+
|
69
|
+
instance.expects(:content=).with "foo/bar"
|
70
|
+
|
71
|
+
Puppet::FileServing::Content.from_raw("foo/bar").should equal(instance)
|
72
|
+
end
|
19
73
|
end
|
20
74
|
|
21
|
-
describe Puppet::FileServing::Content, "
|
75
|
+
describe Puppet::FileServing::Content, "when returning the contents" do
|
22
76
|
before do
|
23
|
-
@path = "/my/
|
24
|
-
@content = Puppet::FileServing::Content.new(
|
77
|
+
@path = "/my/path"
|
78
|
+
@content = Puppet::FileServing::Content.new(@path, :links => :follow)
|
25
79
|
end
|
26
80
|
|
27
81
|
it "should fail if the file is a symlink and links are set to :manage" do
|
@@ -44,28 +98,13 @@ describe Puppet::FileServing::Content, " when returning the contents" do
|
|
44
98
|
File.expects(:read).with(@path).returns(:mycontent)
|
45
99
|
@content.content.should == :mycontent
|
46
100
|
end
|
47
|
-
end
|
48
|
-
|
49
|
-
describe Puppet::FileServing::Content, " when converting to yaml" do
|
50
|
-
it "should fail if no path has been set" do
|
51
|
-
@content = Puppet::FileServing::Content.new("some/key")
|
52
|
-
proc { @content.to_yaml }.should raise_error(ArgumentError)
|
53
|
-
end
|
54
101
|
|
55
|
-
it "should
|
56
|
-
@
|
57
|
-
@
|
58
|
-
@content.
|
59
|
-
@content.to_yaml.should == :content
|
60
|
-
end
|
61
|
-
end
|
102
|
+
it "should cache the returned contents" do
|
103
|
+
File.expects(:stat).with(@path).returns stub("stat", :ftype => "file")
|
104
|
+
File.expects(:read).with(@path).returns(:mycontent)
|
105
|
+
@content.content
|
62
106
|
|
63
|
-
|
64
|
-
|
65
|
-
# control somewhere that requires that all REST connections only pull
|
66
|
-
# from the file-server, thus guaranteeing they go through our authorization
|
67
|
-
# hook.
|
68
|
-
it "should set the URI scheme to 'puppetmounts'" do
|
69
|
-
pending "We need to figure out where this should be"
|
107
|
+
# The second run would throw a failure if the content weren't being cached.
|
108
|
+
@content.content
|
70
109
|
end
|
71
110
|
end
|
@@ -24,6 +24,12 @@ describe Puppet::FileServing::Fileset, " when initializing" do
|
|
24
24
|
set.recurse.should be_true
|
25
25
|
end
|
26
26
|
|
27
|
+
it "should accept a 'recurselimit' option" do
|
28
|
+
File.expects(:lstat).with("/some/file").returns stub("stat")
|
29
|
+
set = Puppet::FileServing::Fileset.new("/some/file", :recurselimit => 3)
|
30
|
+
set.recurselimit.should == 3
|
31
|
+
end
|
32
|
+
|
27
33
|
it "should accept an 'ignore' option" do
|
28
34
|
File.expects(:lstat).with("/some/file").returns stub("stat")
|
29
35
|
set = Puppet::FileServing::Fileset.new("/some/file", :ignore => ".svn")
|
@@ -45,6 +51,11 @@ describe Puppet::FileServing::Fileset, " when initializing" do
|
|
45
51
|
Puppet::FileServing::Fileset.new("/some/file").recurse.should == false
|
46
52
|
end
|
47
53
|
|
54
|
+
it "should default to :infinite for recurselimit" do
|
55
|
+
File.expects(:lstat).with("/some/file").returns stub("stat")
|
56
|
+
Puppet::FileServing::Fileset.new("/some/file").recurselimit.should == :infinite
|
57
|
+
end
|
58
|
+
|
48
59
|
it "should default to an empty ignore list" do
|
49
60
|
File.expects(:lstat).with("/some/file").returns stub("stat")
|
50
61
|
Puppet::FileServing::Fileset.new("/some/file").ignore.should == []
|
@@ -54,6 +65,47 @@ describe Puppet::FileServing::Fileset, " when initializing" do
|
|
54
65
|
File.expects(:lstat).with("/some/file").returns stub("stat")
|
55
66
|
Puppet::FileServing::Fileset.new("/some/file").links.should == :manage
|
56
67
|
end
|
68
|
+
|
69
|
+
it "should support using an Indirector Request for its options" do
|
70
|
+
File.expects(:lstat).with("/some/file").returns stub("stat")
|
71
|
+
request = Puppet::Indirector::Request.new(:file_serving, :find, "foo")
|
72
|
+
lambda { Puppet::FileServing::Fileset.new("/some/file", request) }.should_not raise_error
|
73
|
+
end
|
74
|
+
|
75
|
+
describe "using an indirector request" do
|
76
|
+
before do
|
77
|
+
File.stubs(:lstat).returns stub("stat")
|
78
|
+
@values = {:links => :manage, :ignore => %w{a b}, :recurse => true, :recurselimit => 1234}
|
79
|
+
@request = Puppet::Indirector::Request.new(:file_serving, :find, "foo")
|
80
|
+
end
|
81
|
+
|
82
|
+
[:recurse, :recurselimit, :ignore, :links].each do |option|
|
83
|
+
it "should pass :recurse, :recurselimit, :ignore, and :links settings on to the fileset if present" do
|
84
|
+
@request.stubs(:options).returns(option => @values[option])
|
85
|
+
Puppet::FileServing::Fileset.new("/my/file", @request).send(option).should == @values[option]
|
86
|
+
end
|
87
|
+
|
88
|
+
it "should pass :recurse, :recurselimit, :ignore, and :links settings on to the fileset if present with the keys stored as strings" do
|
89
|
+
@request.stubs(:options).returns(option.to_s => @values[option])
|
90
|
+
Puppet::FileServing::Fileset.new("/my/file", @request).send(option).should == @values[option]
|
91
|
+
end
|
92
|
+
end
|
93
|
+
|
94
|
+
it "should convert the integer as a string to their integer counterpart when setting options" do
|
95
|
+
@request.stubs(:options).returns(:recurselimit => "1234")
|
96
|
+
Puppet::FileServing::Fileset.new("/my/file", @request).recurselimit.should == 1234
|
97
|
+
end
|
98
|
+
|
99
|
+
it "should convert the string 'true' to the boolean true when setting options" do
|
100
|
+
@request.stubs(:options).returns(:recurse => "true")
|
101
|
+
Puppet::FileServing::Fileset.new("/my/file", @request).recurse.should == true
|
102
|
+
end
|
103
|
+
|
104
|
+
it "should convert the string 'false' to the boolean false when setting options" do
|
105
|
+
@request.stubs(:options).returns(:recurse => "false")
|
106
|
+
Puppet::FileServing::Fileset.new("/my/file", @request).recurse.should == false
|
107
|
+
end
|
108
|
+
end
|
57
109
|
end
|
58
110
|
|
59
111
|
describe Puppet::FileServing::Fileset, " when determining whether to recurse" do
|
@@ -63,8 +115,9 @@ describe Puppet::FileServing::Fileset, " when determining whether to recurse" do
|
|
63
115
|
@fileset = Puppet::FileServing::Fileset.new(@path)
|
64
116
|
end
|
65
117
|
|
66
|
-
it "should always recurse if :recurse is set to 'true'" do
|
118
|
+
it "should always recurse if :recurse is set to 'true' and with infinite recursion" do
|
67
119
|
@fileset.recurse = true
|
120
|
+
@fileset.recurselimit = :infinite
|
68
121
|
@fileset.recurse?(0).should be_true
|
69
122
|
end
|
70
123
|
|
@@ -73,25 +126,23 @@ describe Puppet::FileServing::Fileset, " when determining whether to recurse" do
|
|
73
126
|
@fileset.recurse?(-1).should be_false
|
74
127
|
end
|
75
128
|
|
76
|
-
it "should recurse if :recurse is set to an integer and the current depth is less than that integer" do
|
77
|
-
@fileset.recurse =
|
129
|
+
it "should recurse if :recurse is set to true, :recurselimit is set to an integer and the current depth is less than that integer" do
|
130
|
+
@fileset.recurse = true
|
131
|
+
@fileset.recurselimit = 1
|
78
132
|
@fileset.recurse?(0).should be_true
|
79
133
|
end
|
80
134
|
|
81
|
-
it "should recurse if :recurse is set to an integer and the current depth is equal to that integer" do
|
82
|
-
@fileset.recurse =
|
135
|
+
it "should recurse if :recurse is set to true, :recurselimit is set to an integer and the current depth is equal to that integer" do
|
136
|
+
@fileset.recurse = true
|
137
|
+
@fileset.recurselimit = 1
|
83
138
|
@fileset.recurse?(1).should be_true
|
84
139
|
end
|
85
140
|
|
86
|
-
it "should not recurse if :recurse is set to an integer and the current depth is greater than that integer" do
|
87
|
-
@fileset.recurse =
|
141
|
+
it "should not recurse if :recurse is set to true, :recurselimit is set to an integer and the current depth is greater than that integer" do
|
142
|
+
@fileset.recurse = true
|
143
|
+
@fileset.recurselimit = 1
|
88
144
|
@fileset.recurse?(2).should be_false
|
89
145
|
end
|
90
|
-
|
91
|
-
it "should not recurse if :recurse is set to 0" do
|
92
|
-
@fileset.recurse = 0
|
93
|
-
@fileset.recurse?(-1).should be_false
|
94
|
-
end
|
95
146
|
end
|
96
147
|
|
97
148
|
describe Puppet::FileServing::Fileset, " when recursing" do
|
@@ -137,9 +188,10 @@ describe Puppet::FileServing::Fileset, " when recursing" do
|
|
137
188
|
|
138
189
|
# It seems like I should stub :recurse? here, or that I shouldn't stub the
|
139
190
|
# examples above, but...
|
140
|
-
it "should recurse to the level set if :
|
191
|
+
it "should recurse to the level set if :recurselimit is set to an integer" do
|
141
192
|
mock_dir_structure(@path)
|
142
|
-
@fileset.recurse =
|
193
|
+
@fileset.recurse = true
|
194
|
+
@fileset.recurselimit = 1
|
143
195
|
@fileset.files.should == %w{. one two .svn CVS}
|
144
196
|
end
|
145
197
|
|
@@ -149,6 +201,13 @@ describe Puppet::FileServing::Fileset, " when recursing" do
|
|
149
201
|
@fileset.files.sort.should == @files.sort
|
150
202
|
end
|
151
203
|
|
204
|
+
it "should function if the :ignore value provided is nil" do
|
205
|
+
mock_dir_structure(@path)
|
206
|
+
@fileset.recurse = true
|
207
|
+
@fileset.ignore = nil
|
208
|
+
lambda { @fileset.files }.should_not raise_error
|
209
|
+
end
|
210
|
+
|
152
211
|
it "should ignore files that match a single pattern in the ignore list" do
|
153
212
|
mock_dir_structure(@path)
|
154
213
|
@fileset.recurse = true
|
@@ -237,3 +296,46 @@ describe Puppet::FileServing::Fileset, " when ignoring" do
|
|
237
296
|
@fileset.ignore?("my_file").should be_true
|
238
297
|
end
|
239
298
|
end
|
299
|
+
|
300
|
+
describe Puppet::FileServing::Fileset, "when merging other filesets" do
|
301
|
+
before do
|
302
|
+
@paths = %w{/first/path /second/path /third/path}
|
303
|
+
|
304
|
+
@filesets = @paths.collect do |path|
|
305
|
+
File.stubs(:lstat).with(path).returns stub("stat", :directory? => true)
|
306
|
+
Puppet::FileServing::Fileset.new(path, :recurse => true)
|
307
|
+
end
|
308
|
+
|
309
|
+
Dir.stubs(:entries).returns []
|
310
|
+
end
|
311
|
+
|
312
|
+
it "should return a hash of all files in each fileset with the value being the base path" do
|
313
|
+
Dir.expects(:entries).with("/first/path").returns(%w{one uno})
|
314
|
+
Dir.expects(:entries).with("/second/path").returns(%w{two dos})
|
315
|
+
Dir.expects(:entries).with("/third/path").returns(%w{three tres})
|
316
|
+
|
317
|
+
Puppet::FileServing::Fileset.merge(*@filesets).should == {
|
318
|
+
"." => "/first/path",
|
319
|
+
"one" => "/first/path",
|
320
|
+
"uno" => "/first/path",
|
321
|
+
"two" => "/second/path",
|
322
|
+
"dos" => "/second/path",
|
323
|
+
"three" => "/third/path",
|
324
|
+
"tres" => "/third/path",
|
325
|
+
}
|
326
|
+
end
|
327
|
+
|
328
|
+
it "should include the base directory from the first fileset" do
|
329
|
+
Dir.expects(:entries).with("/first/path").returns(%w{one})
|
330
|
+
Dir.expects(:entries).with("/second/path").returns(%w{two})
|
331
|
+
|
332
|
+
Puppet::FileServing::Fileset.merge(*@filesets)["."].should == "/first/path"
|
333
|
+
end
|
334
|
+
|
335
|
+
it "should use the base path of the first found file when relative file paths conflict" do
|
336
|
+
Dir.expects(:entries).with("/first/path").returns(%w{one})
|
337
|
+
Dir.expects(:entries).with("/second/path").returns(%w{one})
|
338
|
+
|
339
|
+
Puppet::FileServing::Fileset.merge(*@filesets)["one"].should == "/first/path"
|
340
|
+
end
|
341
|
+
end
|
@@ -12,113 +12,52 @@ describe Puppet::FileServing::IndirectionHooks do
|
|
12
12
|
@object = Object.new
|
13
13
|
@object.extend(Puppet::FileServing::IndirectionHooks)
|
14
14
|
|
15
|
-
@request = stub 'request', :key => "
|
15
|
+
@request = stub 'request', :key => "mymod/myfile", :options => {:node => "whatever"}, :server => nil, :protocol => nil
|
16
16
|
end
|
17
17
|
|
18
18
|
describe "when being used to select termini" do
|
19
|
-
it "should
|
20
|
-
|
21
|
-
URI.expects(:escape).with("http://myhost/blah").returns("escaped_blah")
|
22
|
-
URI.expects(:parse).with("escaped_blah").returns(uri)
|
23
|
-
@object.select_terminus(@request)
|
24
|
-
end
|
25
|
-
|
26
|
-
it "should use the URI class to parse the key" do
|
27
|
-
uri = stub 'uri', :scheme => "puppet", :host => "blah", :path => "/something"
|
28
|
-
URI.expects(:parse).with("http://myhost/blah").returns(uri)
|
29
|
-
@object.select_terminus @request
|
30
|
-
end
|
31
|
-
|
32
|
-
it "should choose :rest when the protocol is 'puppet'" do
|
33
|
-
@request.stubs(:key).returns "puppet://host/module/file"
|
34
|
-
@object.select_terminus(@request).should == :rest
|
35
|
-
end
|
36
|
-
|
37
|
-
it "should choose :file_server when the protocol is 'puppetmounts' and the mount name is not 'modules'" do
|
38
|
-
modules = mock 'modules'
|
39
|
-
@object.stubs(:terminus).with(:modules).returns(modules)
|
40
|
-
modules.stubs(:find_module).returns(nil)
|
41
|
-
|
42
|
-
@request.stubs(:key).returns "puppetmounts://host/notmodules/file"
|
43
|
-
|
44
|
-
@object.select_terminus(@request).should == :file_server
|
45
|
-
end
|
46
|
-
|
47
|
-
it "should choose :file_server when no server name is provided, the process name is 'puppet', and the mount name is not 'modules'" do
|
48
|
-
modules = mock 'modules'
|
49
|
-
@object.stubs(:terminus).with(:modules).returns(modules)
|
50
|
-
modules.stubs(:find_module).returns(nil)
|
51
|
-
|
52
|
-
Puppet.settings.expects(:value).with(:name).returns("puppet")
|
53
|
-
@request.stubs(:key).returns "puppet:///notmodules/file"
|
54
|
-
@object.select_terminus(@request).should == :file_server
|
55
|
-
end
|
56
|
-
|
57
|
-
it "should choose :modules if it would normally choose :file_server but the mount name is 'modules'" do
|
58
|
-
@request.stubs(:key).returns "puppetmounts://host/modules/mymod/file"
|
59
|
-
@object.select_terminus(@request).should == :modules
|
60
|
-
end
|
61
|
-
|
62
|
-
it "should choose :modules if it would normally choose :file_server but a module exists with the mount name" do
|
63
|
-
modules = mock 'modules'
|
64
|
-
|
65
|
-
@object.expects(:terminus).with(:modules).returns(modules)
|
66
|
-
modules.expects(:find_module).with("mymod", @request.options[:node]).returns(:thing)
|
67
|
-
|
68
|
-
@request.stubs(:key).returns "puppetmounts://host/mymod/file"
|
69
|
-
@object.select_terminus(@request).should == :modules
|
70
|
-
end
|
71
|
-
|
72
|
-
it "should choose :rest when no server name is provided and the process name is not 'puppet'" do
|
73
|
-
Puppet.settings.expects(:value).with(:name).returns("puppetd")
|
74
|
-
@request.stubs(:key).returns "puppet:///module/file"
|
75
|
-
@object.select_terminus(@request).should == :rest
|
76
|
-
end
|
77
|
-
|
78
|
-
it "should choose :file when the protocol is 'file'" do
|
79
|
-
@request.stubs(:key).returns "file://host/module/file"
|
80
|
-
@object.select_terminus(@request).should == :file
|
81
|
-
end
|
82
|
-
|
83
|
-
it "should choose :file when the URI is a normal path name" do
|
84
|
-
@request.stubs(:key).returns "/module/file"
|
19
|
+
it "should return :file if the request key is fully qualified" do
|
20
|
+
@request.expects(:key).returns "#{File::SEPARATOR}foo"
|
85
21
|
@object.select_terminus(@request).should == :file
|
86
22
|
end
|
87
23
|
|
88
|
-
|
89
|
-
|
90
|
-
@request.stubs(:key).returns "/module/file"
|
24
|
+
it "should return :file if the URI protocol is set to 'file'" do
|
25
|
+
@request.expects(:protocol).returns "file"
|
91
26
|
@object.select_terminus(@request).should == :file
|
92
27
|
end
|
93
28
|
|
94
|
-
it "should fail when a protocol other than :puppet
|
95
|
-
@request.stubs(:
|
29
|
+
it "should fail when a protocol other than :puppet or :file is used" do
|
30
|
+
@request.stubs(:protocol).returns "http"
|
96
31
|
proc { @object.select_terminus(@request) }.should raise_error(ArgumentError)
|
97
32
|
end
|
98
|
-
end
|
99
|
-
|
100
|
-
describe "when looking for a module whose name matches the mount name" do
|
101
|
-
before do
|
102
|
-
@modules = mock 'modules'
|
103
|
-
@object.stubs(:terminus).with(:modules).returns(@modules)
|
104
|
-
|
105
|
-
@request.stubs(:key).returns "puppetmounts://host/mymod/file"
|
106
|
-
end
|
107
|
-
|
108
|
-
it "should use the modules terminus to look up the module" do
|
109
|
-
@modules.expects(:find_module).with("mymod", @request.options[:node])
|
110
|
-
@object.select_terminus @request
|
111
|
-
end
|
112
|
-
|
113
|
-
it "should pass the node name to the modules terminus" do
|
114
|
-
@modules.expects(:find_module).with("mymod", @request.options[:node])
|
115
|
-
@object.select_terminus @request
|
116
|
-
end
|
117
33
|
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
34
|
+
describe "and the protocol is 'puppet'" do
|
35
|
+
before do
|
36
|
+
@request.stubs(:protocol).returns "puppet"
|
37
|
+
end
|
38
|
+
|
39
|
+
it "should choose :rest when a server is specified" do
|
40
|
+
@request.stubs(:protocol).returns "puppet"
|
41
|
+
@request.expects(:server).returns "foo"
|
42
|
+
@object.select_terminus(@request).should == :rest
|
43
|
+
end
|
44
|
+
|
45
|
+
# This is so a given file location works when bootstrapping with no server.
|
46
|
+
it "should choose :rest when the Settings name isn't 'puppet'" do
|
47
|
+
@request.stubs(:protocol).returns "puppet"
|
48
|
+
@request.stubs(:server).returns "foo"
|
49
|
+
Puppet.settings.stubs(:value).with(:name).returns "foo"
|
50
|
+
@object.select_terminus(@request).should == :rest
|
51
|
+
end
|
52
|
+
|
53
|
+
it "should choose :file_server when the settings name is 'puppet' and no server is specified" do
|
54
|
+
modules = mock 'modules'
|
55
|
+
|
56
|
+
@request.expects(:protocol).returns "puppet"
|
57
|
+
@request.expects(:server).returns nil
|
58
|
+
Puppet.settings.expects(:value).with(:name).returns "puppet"
|
59
|
+
@object.select_terminus(@request).should == :file_server
|
60
|
+
end
|
122
61
|
end
|
123
62
|
end
|
124
63
|
end
|