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
@@ -9,12 +9,12 @@ describe Puppet::TransBucket do
|
|
9
9
|
|
10
10
|
it "should be able to produce a RAL component" do
|
11
11
|
@bucket.name = "luke"
|
12
|
-
@bucket.type = "
|
12
|
+
@bucket.type = "foo"
|
13
13
|
|
14
14
|
resource = nil
|
15
|
-
proc { resource = @bucket.
|
15
|
+
proc { resource = @bucket.to_ral }.should_not raise_error
|
16
16
|
resource.should be_instance_of(Puppet::Type::Component)
|
17
|
-
resource.title.should == "
|
17
|
+
resource.title.should == "Foo[luke]"
|
18
18
|
end
|
19
19
|
|
20
20
|
it "should accept TransObjects into its children list" do
|
@@ -91,10 +91,6 @@ describe Puppet::TransBucket, " when generating a catalog" do
|
|
91
91
|
@fakes = %w{Fake[bottom] Fake[middle] Fake[top]}
|
92
92
|
end
|
93
93
|
|
94
|
-
after do
|
95
|
-
Puppet::Type.allclear
|
96
|
-
end
|
97
|
-
|
98
94
|
it "should convert all transportable objects to RAL resources" do
|
99
95
|
@catalog = @top.to_catalog
|
100
96
|
@users.each do |name|
|
@@ -103,7 +99,7 @@ describe Puppet::TransBucket, " when generating a catalog" do
|
|
103
99
|
end
|
104
100
|
|
105
101
|
it "should fail if any transportable resources fail to convert to RAL resources" do
|
106
|
-
@bottomobj.expects(:
|
102
|
+
@bottomobj.expects(:to_ral).raises ArgumentError
|
107
103
|
lambda { @bottom.to_catalog }.should raise_error(ArgumentError)
|
108
104
|
end
|
109
105
|
|
@@ -124,24 +120,24 @@ describe Puppet::TransBucket, " when generating a catalog" do
|
|
124
120
|
@catalog.vertices.each do |vertex| vertex.should be_finalized end
|
125
121
|
end
|
126
122
|
|
127
|
-
it "should only call
|
123
|
+
it "should only call to_ral on each resource once" do
|
128
124
|
# We just raise exceptions here because we're not interested in
|
129
125
|
# what happens with the result, only that the method only
|
130
126
|
# gets called once.
|
131
|
-
resource = @topobj.
|
132
|
-
@topobj.expects(:
|
127
|
+
resource = @topobj.to_ral
|
128
|
+
@topobj.expects(:to_ral).once.returns resource
|
133
129
|
@top.to_catalog
|
134
130
|
end
|
135
131
|
|
136
132
|
it "should set each TransObject's catalog before converting to a RAL resource" do
|
137
|
-
@middleobj.expects(:catalog=).with { |c| c.is_a?(Puppet::
|
133
|
+
@middleobj.expects(:catalog=).with { |c| c.is_a?(Puppet::Resource::Catalog) }
|
138
134
|
@top.to_catalog
|
139
135
|
end
|
140
136
|
|
141
137
|
it "should set each TransBucket's catalog before converting to a RAL resource" do
|
142
138
|
# each bucket is seen twice in the loop, so we have to handle the case where the config
|
143
139
|
# is set twice
|
144
|
-
@bottom.expects(:catalog=).with { |c| c.is_a?(Puppet::
|
140
|
+
@bottom.expects(:catalog=).with { |c| c.is_a?(Puppet::Resource::Catalog) }.at_least_once
|
145
141
|
@top.to_catalog
|
146
142
|
end
|
147
143
|
end
|
@@ -170,3 +166,23 @@ describe Puppet::TransBucket, " when serializing" do
|
|
170
166
|
children.should == %w{one two}
|
171
167
|
end
|
172
168
|
end
|
169
|
+
|
170
|
+
describe Puppet::TransBucket, " when converting to a Puppet::Resource" do
|
171
|
+
before do
|
172
|
+
@trans = Puppet::TransBucket.new
|
173
|
+
@trans.name = "foo"
|
174
|
+
@trans.type = "bar"
|
175
|
+
@trans.param(:noop, true)
|
176
|
+
end
|
177
|
+
|
178
|
+
it "should create a resource with the correct type and title" do
|
179
|
+
result = @trans.to_resource
|
180
|
+
result.type.should == "Bar"
|
181
|
+
result.title.should == "foo"
|
182
|
+
end
|
183
|
+
|
184
|
+
it "should add all of its parameters to the created resource" do
|
185
|
+
@trans.param(:noop, true)
|
186
|
+
@trans.to_resource[:noop].should be_true
|
187
|
+
end
|
188
|
+
end
|
@@ -39,6 +39,32 @@ describe Puppet::TransObject, " when serializing" do
|
|
39
39
|
end
|
40
40
|
end
|
41
41
|
|
42
|
+
describe Puppet::TransObject, " when converting to a Puppet::Resource" do
|
43
|
+
before do
|
44
|
+
@trans = Puppet::TransObject.new("/my/file", "file")
|
45
|
+
@trans["one"] = "test"
|
46
|
+
@trans["two"] = "other"
|
47
|
+
end
|
48
|
+
|
49
|
+
it "should create a resource with the correct type and title" do
|
50
|
+
result = @trans.to_resource
|
51
|
+
result.type.should == "File"
|
52
|
+
result.title.should == "/my/file"
|
53
|
+
end
|
54
|
+
|
55
|
+
it "should add all of its parameters to the created resource" do
|
56
|
+
@trans[:noop] = true
|
57
|
+
@trans.to_resource[:noop].should be_true
|
58
|
+
end
|
59
|
+
|
60
|
+
it "should copy over the tags" do
|
61
|
+
@trans.tags = %w{foo bar}
|
62
|
+
result = @trans.to_resource
|
63
|
+
result.should be_tagged("foo")
|
64
|
+
result.should be_tagged("bar")
|
65
|
+
end
|
66
|
+
end
|
67
|
+
|
42
68
|
describe Puppet::TransObject, " when converting to a RAL resource" do
|
43
69
|
before do
|
44
70
|
@resource = Puppet::TransObject.new("/my/file", "file")
|
@@ -46,17 +72,11 @@ describe Puppet::TransObject, " when converting to a RAL resource" do
|
|
46
72
|
@resource["two"] = "other"
|
47
73
|
end
|
48
74
|
|
49
|
-
it "should use
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
@resource.
|
54
|
-
end
|
55
|
-
|
56
|
-
it "should convert to a component instance if the resource type cannot be found" do
|
57
|
-
Puppet::Type.expects(:type).with("file").returns(nil)
|
58
|
-
@resource.expects(:to_component).returns(:mycomponent)
|
59
|
-
@resource.to_type.should == :mycomponent
|
75
|
+
it "should use a Puppet::Resource to create the resource" do
|
76
|
+
resource = mock 'resource'
|
77
|
+
@resource.expects(:to_resource).returns resource
|
78
|
+
resource.expects(:to_ral).returns "myral"
|
79
|
+
@resource.to_ral.should == "myral"
|
60
80
|
end
|
61
81
|
end
|
62
82
|
|
@@ -68,25 +88,25 @@ describe Puppet::TransObject, " when converting to a RAL component instance" do
|
|
68
88
|
end
|
69
89
|
|
70
90
|
it "should use a new TransObject whose name is a resource reference of the type and title of the original TransObject" do
|
71
|
-
Puppet::Type::Component.expects(:
|
91
|
+
Puppet::Type::Component.expects(:new).with { |resource| resource.type == "component" and resource.name == "One::Two[/my/file]" }.returns(:yay)
|
72
92
|
@resource.to_component.should == :yay
|
73
93
|
end
|
74
94
|
|
75
95
|
it "should pass the resource parameters on to the newly created TransObject" do
|
76
|
-
Puppet::Type::Component.expects(:
|
96
|
+
Puppet::Type::Component.expects(:new).with { |resource| resource["noop"] == "other" }.returns(:yay)
|
77
97
|
@resource.to_component.should == :yay
|
78
98
|
end
|
79
99
|
|
80
100
|
it "should copy over the catalog" do
|
81
101
|
@resource.catalog = "mycat"
|
82
|
-
Puppet::Type::Component.expects(:
|
102
|
+
Puppet::Type::Component.expects(:new).with { |resource| resource.catalog == "mycat" }.returns(:yay)
|
83
103
|
@resource.to_component
|
84
104
|
end
|
85
105
|
|
86
106
|
# LAK:FIXME This really isn't the design we want going forward, but it's
|
87
107
|
# good enough for now.
|
88
108
|
it "should not pass resource parameters that are not metaparams" do
|
89
|
-
Puppet::Type::Component.expects(:
|
109
|
+
Puppet::Type::Component.expects(:new).with { |resource| resource["one"].nil? }.returns(:yay)
|
90
110
|
@resource.to_component.should == :yay
|
91
111
|
end
|
92
112
|
end
|
data/spec/unit/parameter.rb
CHANGED
@@ -5,20 +5,393 @@ require File.dirname(__FILE__) + '/../spec_helper'
|
|
5
5
|
require 'puppet/parameter'
|
6
6
|
|
7
7
|
describe Puppet::Parameter do
|
8
|
-
|
9
|
-
|
10
|
-
@
|
11
|
-
|
12
|
-
|
8
|
+
before do
|
9
|
+
@class = Class.new(Puppet::Parameter) do
|
10
|
+
@name = :foo
|
11
|
+
end
|
12
|
+
@class.initvars
|
13
|
+
@resource = mock 'resource'
|
14
|
+
@resource.stub_everything
|
15
|
+
@parameter = @class.new :resource => @resource
|
16
|
+
end
|
17
|
+
|
18
|
+
it "should create a value collection" do
|
19
|
+
@class = Class.new(Puppet::Parameter)
|
20
|
+
@class.value_collection.should be_nil
|
21
|
+
@class.initvars
|
22
|
+
@class.value_collection.should be_instance_of(Puppet::Parameter::ValueCollection)
|
23
|
+
end
|
24
|
+
|
25
|
+
it "should be able to use cached attributes" do
|
26
|
+
Puppet::Parameter.ancestors.should be_include(Puppet::Util::Cacher)
|
27
|
+
end
|
28
|
+
|
29
|
+
it "should use the resource catalog for expiration" do
|
30
|
+
catalog = mock 'catalog'
|
31
|
+
@resource.stubs(:catalog).returns catalog
|
32
|
+
@parameter.expirer.should equal(catalog)
|
33
|
+
end
|
34
|
+
|
35
|
+
[:line, :file, :version].each do |data|
|
36
|
+
it "should return its resource's #{data} as its #{data}" do
|
37
|
+
@resource.expects(data).returns "foo"
|
38
|
+
@parameter.send(data).should == "foo"
|
13
39
|
end
|
40
|
+
end
|
41
|
+
|
42
|
+
it "should return the resource's tags plus its name as its tags" do
|
43
|
+
@resource.expects(:tags).returns %w{one two}
|
44
|
+
@parameter.tags.should == %w{one two foo}
|
45
|
+
end
|
14
46
|
|
47
|
+
describe "when returning the value" do
|
15
48
|
it "should return nil if no value is set" do
|
16
49
|
@parameter.value.should be_nil
|
17
50
|
end
|
18
51
|
|
52
|
+
it "should validate the value" do
|
53
|
+
@parameter.expects(:validate).with("foo")
|
54
|
+
@parameter.value = "foo"
|
55
|
+
end
|
56
|
+
|
57
|
+
it "should munge the value and use any result as the actual value" do
|
58
|
+
@parameter.expects(:munge).with("foo").returns "bar"
|
59
|
+
@parameter.value = "foo"
|
60
|
+
@parameter.value.should == "bar"
|
61
|
+
end
|
62
|
+
|
63
|
+
it "should unmunge the value when accessing the actual value" do
|
64
|
+
@parameter.class.unmunge do |value| value.to_sym end
|
65
|
+
@parameter.value = "foo"
|
66
|
+
@parameter.value.should == :foo
|
67
|
+
end
|
68
|
+
|
69
|
+
it "should return the actual value by default when unmunging" do
|
70
|
+
@parameter.unmunge("bar").should == "bar"
|
71
|
+
end
|
72
|
+
|
19
73
|
it "should return any set value" do
|
20
74
|
@parameter.value = "foo"
|
21
75
|
@parameter.value.should == "foo"
|
22
76
|
end
|
23
77
|
end
|
78
|
+
|
79
|
+
describe "when validating values" do
|
80
|
+
it "should do nothing if no values or regexes have been defined" do
|
81
|
+
@parameter.validate("foo")
|
82
|
+
end
|
83
|
+
|
84
|
+
it "should catch abnormal failures thrown during validation" do
|
85
|
+
@class.validate { |v| raise "This is broken" }
|
86
|
+
lambda { @parameter.validate("eh") }.should raise_error(Puppet::DevError)
|
87
|
+
end
|
88
|
+
|
89
|
+
it "should fail if the value is not a defined value or alias and does not match a regex" do
|
90
|
+
@class.newvalues :foo
|
91
|
+
lambda { @parameter.validate("bar") }.should raise_error(Puppet::Error)
|
92
|
+
end
|
93
|
+
|
94
|
+
it "should succeed if the value is one of the defined values" do
|
95
|
+
@class.newvalues :foo
|
96
|
+
lambda { @parameter.validate(:foo) }.should_not raise_error(ArgumentError)
|
97
|
+
end
|
98
|
+
|
99
|
+
it "should succeed if the value is one of the defined values even if the definition uses a symbol and the validation uses a string" do
|
100
|
+
@class.newvalues :foo
|
101
|
+
lambda { @parameter.validate("foo") }.should_not raise_error(ArgumentError)
|
102
|
+
end
|
103
|
+
|
104
|
+
it "should succeed if the value is one of the defined values even if the definition uses a string and the validation uses a symbol" do
|
105
|
+
@class.newvalues "foo"
|
106
|
+
lambda { @parameter.validate(:foo) }.should_not raise_error(ArgumentError)
|
107
|
+
end
|
108
|
+
|
109
|
+
it "should succeed if the value is one of the defined aliases" do
|
110
|
+
@class.newvalues :foo
|
111
|
+
@class.aliasvalue :bar, :foo
|
112
|
+
lambda { @parameter.validate("bar") }.should_not raise_error(ArgumentError)
|
113
|
+
end
|
114
|
+
|
115
|
+
it "should succeed if the value matches one of the regexes" do
|
116
|
+
@class.newvalues %r{\d}
|
117
|
+
lambda { @parameter.validate("10") }.should_not raise_error(ArgumentError)
|
118
|
+
end
|
119
|
+
end
|
120
|
+
|
121
|
+
describe "when munging values" do
|
122
|
+
it "should do nothing if no values or regexes have been defined" do
|
123
|
+
@parameter.munge("foo").should == "foo"
|
124
|
+
end
|
125
|
+
|
126
|
+
it "should catch abnormal failures thrown during munging" do
|
127
|
+
@class.munge { |v| raise "This is broken" }
|
128
|
+
lambda { @parameter.munge("eh") }.should raise_error(Puppet::DevError)
|
129
|
+
end
|
130
|
+
|
131
|
+
it "should return return any matching defined values" do
|
132
|
+
@class.newvalues :foo, :bar
|
133
|
+
@parameter.munge("foo").should == :foo
|
134
|
+
end
|
135
|
+
|
136
|
+
it "should return any matching aliases" do
|
137
|
+
@class.newvalues :foo
|
138
|
+
@class.aliasvalue :bar, :foo
|
139
|
+
@parameter.munge("bar").should == :foo
|
140
|
+
end
|
141
|
+
|
142
|
+
it "should return the value if it matches a regex" do
|
143
|
+
@class.newvalues %r{\w}
|
144
|
+
@parameter.munge("bar").should == "bar"
|
145
|
+
end
|
146
|
+
|
147
|
+
it "should return the value if no other option is matched" do
|
148
|
+
@class.newvalues :foo
|
149
|
+
@parameter.munge("bar").should == "bar"
|
150
|
+
end
|
151
|
+
end
|
152
|
+
end
|
153
|
+
|
154
|
+
describe Puppet::Parameter::ValueCollection do
|
155
|
+
before do
|
156
|
+
@collection = Puppet::Parameter::ValueCollection.new
|
157
|
+
end
|
158
|
+
|
159
|
+
it "should have a method for defining new values" do
|
160
|
+
@collection.should respond_to(:newvalues)
|
161
|
+
end
|
162
|
+
|
163
|
+
it "should have a method for adding individual values" do
|
164
|
+
@collection.should respond_to(:newvalue)
|
165
|
+
end
|
166
|
+
|
167
|
+
it "should be able to retrieve individual values" do
|
168
|
+
value = @collection.newvalue(:foo)
|
169
|
+
@collection.value(:foo).should equal(value)
|
170
|
+
end
|
171
|
+
|
172
|
+
it "should be able to add an individual value with a block" do
|
173
|
+
@collection.newvalue(:foo) { raise "testing" }
|
174
|
+
@collection.value(:foo).block.should be_instance_of(Proc)
|
175
|
+
end
|
176
|
+
|
177
|
+
it "should be able to add values that are empty strings" do
|
178
|
+
lambda { @collection.newvalue('') }.should_not raise_error
|
179
|
+
end
|
180
|
+
|
181
|
+
it "should be able to add values that are empty strings" do
|
182
|
+
value = @collection.newvalue('')
|
183
|
+
@collection.match?('').should equal(value)
|
184
|
+
end
|
185
|
+
|
186
|
+
it "should set :call to :none when adding a value with no block" do
|
187
|
+
value = @collection.newvalue(:foo)
|
188
|
+
value.call.should == :none
|
189
|
+
end
|
190
|
+
|
191
|
+
describe "when adding a value with a block" do
|
192
|
+
it "should set the method name to 'set_' plus the value name" do
|
193
|
+
value = @collection.newvalue(:myval) { raise "testing" }
|
194
|
+
value.method.should == "set_myval"
|
195
|
+
end
|
196
|
+
end
|
197
|
+
|
198
|
+
it "should be able to add an individual value with options" do
|
199
|
+
value = @collection.newvalue(:foo, :call => :bar)
|
200
|
+
value.call.should == :bar
|
201
|
+
end
|
202
|
+
|
203
|
+
it "should have a method for validating a value" do
|
204
|
+
@collection.should respond_to(:validate)
|
205
|
+
end
|
206
|
+
|
207
|
+
it "should have a method for munging a value" do
|
208
|
+
@collection.should respond_to(:munge)
|
209
|
+
end
|
210
|
+
|
211
|
+
it "should be able to generate documentation when it has both values and regexes" do
|
212
|
+
@collection.newvalues :foo, "bar", %r{test}
|
213
|
+
@collection.doc.should be_instance_of(String)
|
214
|
+
end
|
215
|
+
|
216
|
+
it "should correctly generate documentation for values" do
|
217
|
+
@collection.newvalues :foo
|
218
|
+
@collection.doc.should be_include("Valid values are ``foo``")
|
219
|
+
end
|
220
|
+
|
221
|
+
it "should correctly generate documentation for regexes" do
|
222
|
+
@collection.newvalues %r{\w+}
|
223
|
+
@collection.doc.should be_include("Values can match ``/\\w+/``")
|
224
|
+
end
|
225
|
+
|
226
|
+
it "should be able to find the first matching value" do
|
227
|
+
@collection.newvalues :foo, :bar
|
228
|
+
@collection.match?("foo").should be_instance_of(Puppet::Parameter::ValueCollection::Value)
|
229
|
+
end
|
230
|
+
|
231
|
+
it "should be able to match symbols" do
|
232
|
+
@collection.newvalues :foo, :bar
|
233
|
+
@collection.match?(:foo).should be_instance_of(Puppet::Parameter::ValueCollection::Value)
|
234
|
+
end
|
235
|
+
|
236
|
+
it "should be able to match symbols when a regex is provided" do
|
237
|
+
@collection.newvalues %r{.}
|
238
|
+
@collection.match?(:foo).should be_instance_of(Puppet::Parameter::ValueCollection::Value)
|
239
|
+
end
|
240
|
+
|
241
|
+
it "should be able to match values using regexes" do
|
242
|
+
@collection.newvalues %r{.}
|
243
|
+
@collection.match?("foo").should_not be_nil
|
244
|
+
end
|
245
|
+
|
246
|
+
it "should prefer value matches to regex matches" do
|
247
|
+
@collection.newvalues %r{.}, :foo
|
248
|
+
@collection.match?("foo").name.should == :foo
|
249
|
+
end
|
250
|
+
|
251
|
+
describe "when validating values" do
|
252
|
+
it "should do nothing if no values or regexes have been defined" do
|
253
|
+
@collection.validate("foo")
|
254
|
+
end
|
255
|
+
|
256
|
+
it "should fail if the value is not a defined value or alias and does not match a regex" do
|
257
|
+
@collection.newvalues :foo
|
258
|
+
lambda { @collection.validate("bar") }.should raise_error(ArgumentError)
|
259
|
+
end
|
260
|
+
|
261
|
+
it "should succeed if the value is one of the defined values" do
|
262
|
+
@collection.newvalues :foo
|
263
|
+
lambda { @collection.validate(:foo) }.should_not raise_error(ArgumentError)
|
264
|
+
end
|
265
|
+
|
266
|
+
it "should succeed if the value is one of the defined values even if the definition uses a symbol and the validation uses a string" do
|
267
|
+
@collection.newvalues :foo
|
268
|
+
lambda { @collection.validate("foo") }.should_not raise_error(ArgumentError)
|
269
|
+
end
|
270
|
+
|
271
|
+
it "should succeed if the value is one of the defined values even if the definition uses a string and the validation uses a symbol" do
|
272
|
+
@collection.newvalues "foo"
|
273
|
+
lambda { @collection.validate(:foo) }.should_not raise_error(ArgumentError)
|
274
|
+
end
|
275
|
+
|
276
|
+
it "should succeed if the value is one of the defined aliases" do
|
277
|
+
@collection.newvalues :foo
|
278
|
+
@collection.aliasvalue :bar, :foo
|
279
|
+
lambda { @collection.validate("bar") }.should_not raise_error(ArgumentError)
|
280
|
+
end
|
281
|
+
|
282
|
+
it "should succeed if the value matches one of the regexes" do
|
283
|
+
@collection.newvalues %r{\d}
|
284
|
+
lambda { @collection.validate("10") }.should_not raise_error(ArgumentError)
|
285
|
+
end
|
286
|
+
end
|
287
|
+
|
288
|
+
describe "when munging values" do
|
289
|
+
it "should do nothing if no values or regexes have been defined" do
|
290
|
+
@collection.munge("foo").should == "foo"
|
291
|
+
end
|
292
|
+
|
293
|
+
it "should return return any matching defined values" do
|
294
|
+
@collection.newvalues :foo, :bar
|
295
|
+
@collection.munge("foo").should == :foo
|
296
|
+
end
|
297
|
+
|
298
|
+
it "should return any matching aliases" do
|
299
|
+
@collection.newvalues :foo
|
300
|
+
@collection.aliasvalue :bar, :foo
|
301
|
+
@collection.munge("bar").should == :foo
|
302
|
+
end
|
303
|
+
|
304
|
+
it "should return the value if it matches a regex" do
|
305
|
+
@collection.newvalues %r{\w}
|
306
|
+
@collection.munge("bar").should == "bar"
|
307
|
+
end
|
308
|
+
|
309
|
+
it "should return the value if no other option is matched" do
|
310
|
+
@collection.newvalues :foo
|
311
|
+
@collection.munge("bar").should == "bar"
|
312
|
+
end
|
313
|
+
end
|
314
|
+
end
|
315
|
+
|
316
|
+
describe Puppet::Parameter::ValueCollection::Value do
|
317
|
+
it "should require a name" do
|
318
|
+
lambda { Puppet::Parameter::ValueCollection::Value.new }.should raise_error(ArgumentError)
|
319
|
+
end
|
320
|
+
|
321
|
+
it "should set its name" do
|
322
|
+
Puppet::Parameter::ValueCollection::Value.new(:foo).name.should == :foo
|
323
|
+
end
|
324
|
+
|
325
|
+
it "should support regexes as names" do
|
326
|
+
lambda { Puppet::Parameter::ValueCollection::Value.new(%r{foo}) }.should_not raise_error
|
327
|
+
end
|
328
|
+
|
329
|
+
it "should mark itself as a regex if its name is a regex" do
|
330
|
+
Puppet::Parameter::ValueCollection::Value.new(%r{foo}).should be_regex
|
331
|
+
end
|
332
|
+
|
333
|
+
it "should always convert its name to a symbol if it is not a regex" do
|
334
|
+
Puppet::Parameter::ValueCollection::Value.new("foo").name.should == :foo
|
335
|
+
Puppet::Parameter::ValueCollection::Value.new(true).name.should == :true
|
336
|
+
end
|
337
|
+
|
338
|
+
it "should support adding aliases" do
|
339
|
+
Puppet::Parameter::ValueCollection::Value.new("foo").should respond_to(:alias)
|
340
|
+
end
|
341
|
+
|
342
|
+
it "should be able to return its aliases" do
|
343
|
+
value = Puppet::Parameter::ValueCollection::Value.new("foo")
|
344
|
+
value.alias("bar")
|
345
|
+
value.alias("baz")
|
346
|
+
value.aliases.should == [:bar, :baz]
|
347
|
+
end
|
348
|
+
|
349
|
+
[:block, :call, :method, :event, :required_features].each do |attr|
|
350
|
+
it "should support a #{attr} attribute" do
|
351
|
+
value = Puppet::Parameter::ValueCollection::Value.new("foo")
|
352
|
+
value.should respond_to(attr.to_s + "=")
|
353
|
+
value.should respond_to(attr)
|
354
|
+
end
|
355
|
+
end
|
356
|
+
|
357
|
+
it "should default to :instead for :call if a block is provided" do
|
358
|
+
Puppet::Parameter::ValueCollection::Value.new("foo").call.should == :instead
|
359
|
+
end
|
360
|
+
|
361
|
+
it "should always return events as symbols" do
|
362
|
+
value = Puppet::Parameter::ValueCollection::Value.new("foo")
|
363
|
+
value.event = "foo_test"
|
364
|
+
value.event.should == :foo_test
|
365
|
+
end
|
366
|
+
|
367
|
+
describe "when matching" do
|
368
|
+
describe "a regex" do
|
369
|
+
it "should return true if the regex matches the value" do
|
370
|
+
Puppet::Parameter::ValueCollection::Value.new(/\w/).should be_match("foo")
|
371
|
+
end
|
372
|
+
|
373
|
+
it "should return false if the regex does not match the value" do
|
374
|
+
Puppet::Parameter::ValueCollection::Value.new(/\d/).should_not be_match("foo")
|
375
|
+
end
|
376
|
+
end
|
377
|
+
|
378
|
+
describe "a non-regex" do
|
379
|
+
it "should return true if the value, converted to a symbol, matches the name" do
|
380
|
+
Puppet::Parameter::ValueCollection::Value.new("foo").should be_match("foo")
|
381
|
+
Puppet::Parameter::ValueCollection::Value.new(:foo).should be_match(:foo)
|
382
|
+
Puppet::Parameter::ValueCollection::Value.new(:foo).should be_match("foo")
|
383
|
+
Puppet::Parameter::ValueCollection::Value.new("foo").should be_match(:foo)
|
384
|
+
end
|
385
|
+
|
386
|
+
it "should return false if the value, converted to a symbol, does not match the name" do
|
387
|
+
Puppet::Parameter::ValueCollection::Value.new(:foo).should_not be_match(:bar)
|
388
|
+
end
|
389
|
+
|
390
|
+
it "should return true if any of its aliases match" do
|
391
|
+
value = Puppet::Parameter::ValueCollection::Value.new("foo")
|
392
|
+
value.alias("bar")
|
393
|
+
value.should be_match("bar")
|
394
|
+
end
|
395
|
+
end
|
396
|
+
end
|
24
397
|
end
|