puppet 3.2.4 → 3.3.0.rc2
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/COMMITTERS.md +101 -42
- data/Gemfile +15 -4
- data/README.md +5 -1
- data/README_DEVELOPER.md +117 -54
- data/Rakefile +4 -0
- data/ext/build_defaults.yaml +3 -2
- data/ext/debian/puppet-common.manpages +33 -1
- data/ext/gentoo/init.d/puppet +1 -1
- data/ext/gentoo/init.d/puppetmaster +1 -1
- data/ext/redhat/puppet.spec.erb +0 -1
- data/install.rb +2 -1
- data/lib/hiera/backend/puppet_backend.rb +1 -1
- data/lib/puppet/application.rb +10 -9
- data/lib/puppet/application/agent.rb +87 -93
- data/lib/puppet/application/apply.rb +0 -2
- data/lib/puppet/application/device.rb +3 -3
- data/lib/puppet/application/kick.rb +2 -2
- data/lib/puppet/application/master.rb +41 -19
- data/lib/puppet/application/queue.rb +5 -3
- data/lib/puppet/bindings.rb +147 -0
- data/lib/puppet/configurer.rb +25 -15
- data/lib/puppet/configurer/fact_handler.rb +2 -9
- data/lib/puppet/daemon.rb +44 -33
- data/lib/puppet/defaults.rb +57 -26
- data/lib/puppet/error.rb +1 -1
- data/lib/puppet/external/dot.rb +2 -2
- data/lib/puppet/external/nagios/base.rb +1 -6
- data/lib/puppet/external/pson/common.rb +2 -2
- data/lib/puppet/external/pson/pure/generator.rb +2 -2
- data/lib/puppet/external/pson/pure/parser.rb +1 -1
- data/lib/puppet/face/ca.rb +1 -1
- data/lib/puppet/face/config.rb +1 -1
- data/lib/puppet/face/help.rb +2 -2
- data/lib/puppet/face/module/list.rb +2 -2
- data/lib/puppet/feature/rails.rb +1 -1
- data/lib/puppet/file_bucket/dipper.rb +0 -1
- data/lib/puppet/file_serving/base.rb +1 -1
- data/lib/puppet/file_serving/configuration/parser.rb +20 -14
- data/lib/puppet/forge.rb +0 -32
- data/lib/puppet/forge/cache.rb +1 -1
- data/lib/puppet/forge/errors.rb +3 -3
- data/lib/puppet/forge/repository.rb +7 -42
- data/lib/puppet/graph.rb +11 -0
- data/lib/puppet/graph/key.rb +26 -0
- data/lib/puppet/graph/prioritizer.rb +29 -0
- data/lib/puppet/graph/random_prioritizer.rb +16 -0
- data/lib/puppet/{rb_tree_map.rb → graph/rb_tree_map.rb} +3 -3
- data/lib/puppet/graph/relationship_graph.rb +246 -0
- data/lib/puppet/graph/sequential_prioritizer.rb +31 -0
- data/lib/puppet/{simple_graph.rb → graph/simple_graph.rb} +22 -3
- data/lib/puppet/graph/title_hash_prioritizer.rb +16 -0
- data/lib/puppet/indirector.rb +2 -2
- data/lib/puppet/indirector/catalog/compiler.rb +10 -7
- data/lib/puppet/indirector/catalog/static_compiler.rb +50 -0
- data/lib/puppet/indirector/certificate/rest.rb +1 -1
- data/lib/puppet/indirector/exec.rb +1 -1
- data/lib/puppet/indirector/facts/facter.rb +2 -2
- data/lib/puppet/indirector/facts/inventory_active_record.rb +0 -1
- data/lib/puppet/indirector/facts/network_device.rb +1 -1
- data/lib/puppet/indirector/file_bucket_file/file.rb +0 -1
- data/lib/puppet/indirector/indirection.rb +2 -2
- data/lib/puppet/indirector/memory.rb +9 -0
- data/lib/puppet/indirector/node/ldap.rb +2 -4
- data/lib/puppet/indirector/report/processor.rb +1 -2
- data/lib/puppet/indirector/report/rest.rb +1 -1
- data/lib/puppet/indirector/request.rb +32 -10
- data/lib/puppet/indirector/resource/rest.rb +1 -1
- data/lib/puppet/indirector/resource_type/parser.rb +31 -12
- data/lib/puppet/interface.rb +1 -1
- data/lib/puppet/interface/documentation.rb +7 -11
- data/lib/puppet/interface/option.rb +1 -1
- data/lib/puppet/interface/option_builder.rb +1 -1
- data/lib/puppet/metatype/manager.rb +2 -2
- data/lib/puppet/module.rb +7 -1
- data/lib/puppet/module_tool.rb +1 -1
- data/lib/puppet/module_tool/applications/application.rb +10 -0
- data/lib/puppet/module_tool/applications/installer.rb +6 -3
- data/lib/puppet/module_tool/dependency.rb +2 -0
- data/lib/puppet/module_tool/errors/upgrader.rb +1 -1
- data/lib/puppet/module_tool/metadata.rb +25 -13
- data/lib/puppet/module_tool/modulefile.rb +7 -7
- data/lib/puppet/module_tool/shared_behaviors.rb +4 -2
- data/lib/puppet/module_tool/skeleton.rb +1 -1
- data/lib/puppet/module_tool/skeleton/templates/generator/manifests/init.pp.erb +5 -5
- data/lib/puppet/module_tool/skeleton/templates/generator/tests/init.pp.erb +5 -4
- data/lib/puppet/network/auth_config_parser.rb +3 -0
- data/lib/puppet/network/authconfig.rb +0 -1
- data/lib/puppet/network/authorization.rb +1 -1
- data/lib/puppet/network/authstore.rb +2 -2
- data/lib/puppet/network/format_handler.rb +25 -114
- data/lib/puppet/network/format_support.rb +106 -0
- data/lib/puppet/network/formats.rb +10 -4
- data/lib/puppet/network/http/compression.rb +1 -1
- data/lib/puppet/network/http/connection.rb +76 -32
- data/lib/puppet/network/http/handler.rb +122 -61
- data/lib/puppet/network/http/rack/rest.rb +1 -1
- data/lib/puppet/network/http/webrick/rest.rb +9 -3
- data/lib/puppet/network/http_pool.rb +2 -2
- data/lib/puppet/network/resolver.rb +1 -0
- data/lib/puppet/network/server.rb +5 -81
- data/lib/puppet/node/environment.rb +256 -13
- data/lib/puppet/node/facts.rb +28 -2
- data/lib/puppet/parameter.rb +27 -18
- data/lib/puppet/parameter/boolean.rb +20 -0
- data/lib/puppet/parameter/path.rb +1 -1
- data/lib/puppet/parameter/value.rb +1 -1
- data/lib/puppet/parameter/value_collection.rb +1 -1
- data/lib/puppet/parser/ast/arithmetic_operator.rb +8 -0
- data/lib/puppet/parser/ast/casestatement.rb +0 -3
- data/lib/puppet/parser/ast/lambda.rb +25 -6
- data/lib/puppet/parser/ast/leaf.rb +10 -3
- data/lib/puppet/parser/ast/nop.rb +1 -1
- data/lib/puppet/parser/ast/resource_override.rb +0 -2
- data/lib/puppet/parser/compiler.rb +92 -34
- data/lib/puppet/parser/files.rb +0 -5
- data/lib/puppet/parser/functions/create_resources.rb +23 -46
- data/lib/puppet/parser/functions/each.rb +0 -2
- data/lib/puppet/parser/functions/extlookup.rb +2 -2
- data/lib/puppet/parser/functions/foreach.rb +0 -2
- data/lib/puppet/parser/functions/hiera_include.rb +1 -1
- data/lib/puppet/parser/functions/lookup.rb +44 -0
- data/lib/puppet/parser/functions/slice.rb +1 -1
- data/lib/puppet/parser/grammar.ra +0 -1
- data/lib/puppet/parser/lexer.rb +0 -1
- data/lib/puppet/parser/parser.rb +0 -1
- data/lib/puppet/parser/parser_factory.rb +3 -2
- data/lib/puppet/parser/parser_support.rb +1 -1
- data/lib/puppet/parser/relationship.rb +1 -1
- data/lib/puppet/parser/scope.rb +49 -24
- data/lib/puppet/parser/type_loader.rb +13 -18
- data/lib/puppet/pops.rb +45 -0
- data/lib/puppet/pops/adaptable.rb +2 -2
- data/lib/puppet/pops/adapters.rb +4 -0
- data/lib/puppet/pops/binder/binder.rb +421 -0
- data/lib/puppet/pops/binder/binder_issues.rb +142 -0
- data/lib/puppet/pops/binder/bindings_checker.rb +217 -0
- data/lib/puppet/pops/binder/bindings_composer.rb +241 -0
- data/lib/puppet/pops/binder/bindings_factory.rb +847 -0
- data/lib/puppet/pops/binder/bindings_label_provider.rb +46 -0
- data/lib/puppet/pops/binder/bindings_loader.rb +79 -0
- data/lib/puppet/pops/binder/bindings_model.rb +215 -0
- data/lib/puppet/pops/binder/bindings_model_dumper.rb +205 -0
- data/lib/puppet/pops/binder/bindings_validator_factory.rb +28 -0
- data/lib/puppet/pops/binder/config/binder_config.rb +139 -0
- data/lib/puppet/pops/binder/config/binder_config_checker.rb +183 -0
- data/lib/puppet/pops/binder/config/diagnostic_producer.rb +32 -0
- data/lib/puppet/pops/binder/config/issues.rb +106 -0
- data/lib/puppet/pops/binder/hiera2.rb +10 -0
- data/lib/puppet/pops/binder/hiera2/bindings_provider.rb +148 -0
- data/lib/puppet/pops/binder/hiera2/config.rb +69 -0
- data/lib/puppet/pops/binder/hiera2/config_checker.rb +68 -0
- data/lib/puppet/pops/binder/hiera2/diagnostic_producer.rb +36 -0
- data/lib/puppet/pops/binder/hiera2/issues.rb +67 -0
- data/lib/puppet/pops/binder/hiera2/json_backend.rb +18 -0
- data/lib/puppet/pops/binder/hiera2/yaml_backend.rb +21 -0
- data/lib/puppet/pops/binder/injector.rb +688 -0
- data/lib/puppet/pops/binder/injector_entry.rb +53 -0
- data/lib/puppet/pops/binder/key_factory.rb +61 -0
- data/lib/puppet/pops/binder/producers.rb +829 -0
- data/lib/puppet/pops/binder/scheme_handler/confdir_hiera_scheme.rb +67 -0
- data/lib/puppet/pops/binder/scheme_handler/confdir_scheme.rb +34 -0
- data/lib/puppet/pops/binder/scheme_handler/module_hiera_scheme.rb +92 -0
- data/lib/puppet/pops/binder/scheme_handler/module_scheme.rb +84 -0
- data/lib/puppet/pops/binder/scheme_handler/symbolic_scheme.rb +54 -0
- data/lib/puppet/pops/binder/system_bindings.rb +72 -0
- data/lib/puppet/pops/issue_reporter.rb +75 -0
- data/lib/puppet/pops/issues.rb +9 -5
- data/lib/puppet/pops/model/ast_transformer.rb +4 -4
- data/lib/puppet/pops/model/ast_tree_dumper.rb +1 -1
- data/lib/puppet/pops/model/factory.rb +25 -13
- data/lib/puppet/pops/model/model.rb +1 -1
- data/lib/puppet/pops/model/tree_dumper.rb +2 -2
- data/lib/puppet/pops/parser/egrammar.ra +0 -1
- data/lib/puppet/pops/parser/eparser.rb +1 -2
- data/lib/puppet/pops/parser/evaluating_parser.rb +162 -0
- data/lib/puppet/pops/parser/lexer.rb +8 -6
- data/lib/puppet/pops/types/class_loader.rb +118 -0
- data/lib/puppet/pops/types/type_calculator.rb +557 -0
- data/lib/puppet/pops/types/type_factory.rb +147 -0
- data/lib/puppet/pops/types/type_parser.rb +117 -0
- data/lib/puppet/pops/types/types.rb +132 -0
- data/lib/puppet/pops/validation.rb +146 -17
- data/lib/puppet/pops/validation/checker3_1.rb +1 -1
- data/lib/puppet/pops/validation/validator_factory_3_1.rb +6 -16
- data/lib/puppet/property.rb +3 -3
- data/lib/puppet/property/keyvalue.rb +1 -1
- data/lib/puppet/provider.rb +2 -2
- data/lib/puppet/provider/aixobject.rb +19 -21
- data/lib/puppet/provider/augeas/augeas.rb +3 -1
- data/lib/puppet/provider/command.rb +2 -2
- data/lib/puppet/provider/group/aix.rb +1 -1
- data/lib/puppet/provider/group/ldap.rb +1 -1
- data/lib/puppet/provider/macauthorization/macauthorization.rb +1 -1
- data/lib/puppet/provider/mailalias/aliases.rb +3 -8
- data/lib/puppet/provider/mcx/mcxcontent.rb +7 -1
- data/lib/puppet/provider/mount.rb +8 -3
- data/lib/puppet/provider/nameservice.rb +1 -1
- data/lib/puppet/provider/nameservice/directoryservice.rb +5 -5
- data/lib/puppet/provider/package/appdmg.rb +1 -1
- data/lib/puppet/provider/package/apt.rb +0 -1
- data/lib/puppet/provider/package/dpkg.rb +86 -32
- data/lib/puppet/provider/package/fink.rb +0 -2
- data/lib/puppet/provider/package/freebsd.rb +0 -2
- data/lib/puppet/provider/package/openbsd.rb +57 -10
- data/lib/puppet/provider/package/opkg.rb +0 -1
- data/lib/puppet/provider/package/pacman.rb +0 -1
- data/lib/puppet/provider/package/pip.rb +1 -1
- data/lib/puppet/provider/package/pkgdmg.rb +17 -6
- data/lib/puppet/provider/package/pkgutil.rb +1 -1
- data/lib/puppet/provider/package/portage.rb +9 -1
- data/lib/puppet/provider/package/ports.rb +2 -2
- data/lib/puppet/provider/package/rpm.rb +29 -12
- data/lib/puppet/provider/package/rug.rb +1 -1
- data/lib/puppet/provider/package/urpmi.rb +11 -15
- data/lib/puppet/provider/package/windows/exe_package.rb +1 -1
- data/lib/puppet/provider/package/windows/package.rb +1 -26
- data/lib/puppet/provider/package/yum.rb +1 -1
- data/lib/puppet/provider/package/zypper.rb +22 -3
- data/lib/puppet/provider/parsedfile.rb +1 -12
- data/lib/puppet/provider/scheduled_task/win32_taskscheduler.rb +1 -1
- data/lib/puppet/provider/service/base.rb +1 -1
- data/lib/puppet/provider/service/daemontools.rb +3 -3
- data/lib/puppet/provider/service/debian.rb +1 -1
- data/lib/puppet/provider/service/init.rb +14 -20
- data/lib/puppet/provider/service/openrc.rb +3 -1
- data/lib/puppet/provider/service/redhat.rb +5 -8
- data/lib/puppet/provider/service/runit.rb +3 -2
- data/lib/puppet/provider/service/systemd.rb +1 -1
- data/lib/puppet/provider/ssh_authorized_key/parsed.rb +1 -1
- data/lib/puppet/provider/sshkey/parsed.rb +0 -2
- data/lib/puppet/provider/user/aix.rb +25 -12
- data/lib/puppet/provider/user/directoryservice.rb +4 -7
- data/lib/puppet/provider/user/ldap.rb +0 -1
- data/lib/puppet/provider/user/user_role_add.rb +2 -0
- data/lib/puppet/provider/user/useradd.rb +1 -1
- data/lib/puppet/provider/zone/solaris.rb +1 -2
- data/lib/puppet/reference/metaparameter.rb +1 -1
- data/lib/puppet/reference/type.rb +1 -1
- data/lib/puppet/reports/rrdgraph.rb +1 -1
- data/lib/puppet/reports/tagmail.rb +1 -1
- data/lib/puppet/resource.rb +16 -4
- data/lib/puppet/resource/catalog.rb +111 -173
- data/lib/puppet/resource/status.rb +42 -3
- data/lib/puppet/resource/type.rb +33 -46
- data/lib/puppet/resource/type_collection.rb +19 -15
- data/lib/puppet/run.rb +5 -1
- data/lib/puppet/scheduler/scheduler.rb +14 -15
- data/lib/puppet/settings.rb +78 -41
- data/lib/puppet/settings/boolean_setting.rb +0 -2
- data/lib/puppet/settings/config_file.rb +0 -2
- data/lib/puppet/settings/directory_setting.rb +0 -2
- data/lib/puppet/settings/duration_setting.rb +0 -2
- data/lib/puppet/settings/enum_setting.rb +16 -0
- data/lib/puppet/settings/file_setting.rb +0 -2
- data/lib/puppet/settings/path_setting.rb +0 -2
- data/lib/puppet/settings/string_setting.rb +0 -3
- data/lib/puppet/settings/terminus_setting.rb +0 -2
- data/lib/puppet/ssl/certificate_authority.rb +102 -9
- data/lib/puppet/test/test_helper.rb +1 -0
- data/lib/puppet/transaction.rb +130 -292
- data/lib/puppet/transaction/additional_resource_generator.rb +126 -0
- data/lib/puppet/transaction/event.rb +16 -1
- data/lib/puppet/transaction/report.rb +34 -14
- data/lib/puppet/transaction/resource_harness.rb +16 -19
- data/lib/puppet/type.rb +59 -53
- data/lib/puppet/type/component.rb +0 -2
- data/lib/puppet/type/cron.rb +13 -2
- data/lib/puppet/type/exec.rb +5 -7
- data/lib/puppet/type/file.rb +9 -32
- data/lib/puppet/type/file/content.rb +4 -1
- data/lib/puppet/type/file/ctime.rb +3 -1
- data/lib/puppet/type/file/ensure.rb +1 -1
- data/lib/puppet/type/file/mode.rb +0 -1
- data/lib/puppet/type/file/mtime.rb +2 -1
- data/lib/puppet/type/group.rb +7 -9
- data/lib/puppet/type/host.rb +1 -2
- data/lib/puppet/type/mcx.rb +0 -1
- data/lib/puppet/type/mount.rb +38 -6
- data/lib/puppet/type/package.rb +2 -2
- data/lib/puppet/type/resources.rb +5 -4
- data/lib/puppet/type/schedule.rb +1 -4
- data/lib/puppet/type/selmodule.rb +1 -1
- data/lib/puppet/type/service.rb +1 -3
- data/lib/puppet/type/tidy.rb +3 -3
- data/lib/puppet/type/user.rb +9 -13
- data/lib/puppet/type/yumrepo.rb +11 -7
- data/lib/puppet/util.rb +14 -7
- data/lib/puppet/util/autoload.rb +0 -1
- data/lib/puppet/util/backups.rb +1 -3
- data/lib/puppet/util/classgen.rb +1 -1
- data/lib/puppet/util/command_line/puppet_option_parser.rb +1 -3
- data/lib/puppet/util/command_line/trollop.rb +1 -1
- data/lib/puppet/util/constant_inflector.rb +1 -2
- data/lib/puppet/util/errors.rb +1 -0
- data/lib/puppet/util/file_watcher.rb +28 -0
- data/lib/puppet/util/fileparsing.rb +1 -3
- data/lib/puppet/util/filetype.rb +0 -1
- data/lib/puppet/util/http_proxy.rb +38 -0
- data/lib/puppet/util/ldap/manager.rb +1 -2
- data/lib/puppet/util/log.rb +31 -10
- data/lib/puppet/util/log/destinations.rb +0 -50
- data/lib/puppet/util/metric.rb +8 -1
- data/lib/puppet/util/monkey_patches.rb +14 -148
- data/lib/puppet/util/network_device/cisco/facts.rb +1 -1
- data/lib/puppet/util/network_device/config.rb +6 -9
- data/lib/puppet/util/network_device/transport/ssh.rb +1 -1
- data/lib/puppet/util/pidlock.rb +3 -0
- data/lib/puppet/util/posix.rb +1 -1
- data/lib/puppet/util/profiler.rb +1 -1
- data/lib/puppet/util/rdoc.rb +1 -1
- data/lib/puppet/util/rdoc/generators/puppet_generator.rb +0 -1
- data/lib/puppet/util/rdoc/generators/template/puppet/puppet.rb +50 -42
- data/lib/puppet/util/retryaction.rb +0 -1
- data/lib/puppet/util/symbolic_file_mode.rb +5 -1
- data/lib/puppet/util/tagging.rb +0 -2
- data/lib/puppet/util/warnings.rb +3 -0
- data/lib/puppet/util/watched_file.rb +37 -0
- data/lib/puppet/util/watcher.rb +17 -0
- data/lib/puppet/util/watcher/change_watcher.rb +33 -0
- data/lib/puppet/util/watcher/periodic_watcher.rb +37 -0
- data/lib/puppet/util/watcher/timer.rb +19 -0
- data/lib/puppet/util/windows/user.rb +1 -1
- data/lib/puppet/version.rb +1 -1
- data/lib/puppetx.rb +109 -0
- data/lib/puppetx/puppet/bindings_scheme_handler.rb +130 -0
- data/lib/puppetx/puppet/hiera2_backend.rb +31 -0
- data/lib/puppetx/puppet/syntax_checker.rb +91 -0
- data/lib/puppetx/puppetlabs/syntax_checkers/json.rb +39 -0
- data/lib/semver.rb +1 -1
- data/man/man8/puppet-kick.8 +1 -1
- data/spec/fixtures/integration/provider/cron/crontab/unspecialized +15 -0
- data/spec/fixtures/unit/pops/binder/bindings_composer/hiera1config/binder_config.yaml +18 -0
- data/spec/fixtures/unit/pops/binder/bindings_composer/hiera1config/hiera.yaml +8 -0
- data/spec/fixtures/unit/pops/binder/bindings_composer/hiera1config/modules/good/common.yaml +1 -0
- data/spec/fixtures/unit/pops/binder/bindings_composer/hiera1config/modules/good/hiera.yaml +10 -0
- data/spec/fixtures/unit/pops/binder/bindings_composer/ok/binder_config.yaml +19 -0
- data/spec/fixtures/unit/pops/binder/bindings_composer/ok/common.yaml +1 -0
- data/spec/fixtures/unit/pops/binder/bindings_composer/ok/hiera.yaml +11 -0
- data/spec/fixtures/unit/pops/binder/bindings_composer/ok/localhost.yaml +1 -0
- data/spec/fixtures/unit/pops/binder/bindings_composer/ok/modules/awesome/common.yaml +3 -0
- data/spec/fixtures/unit/pops/binder/bindings_composer/ok/modules/awesome/hiera.yaml +13 -0
- data/spec/fixtures/unit/pops/binder/bindings_composer/ok/modules/awesome/lib/puppet/bindings/awesome/default.rb +4 -0
- data/spec/fixtures/unit/pops/binder/bindings_composer/ok/modules/awesome/lib/puppetx/awesome/echo_backend.rb +11 -0
- data/spec/fixtures/unit/pops/binder/bindings_composer/ok/modules/awesome/lib/puppetx/awesome/echo_scheme_handler.rb +18 -0
- data/spec/fixtures/unit/pops/binder/bindings_composer/ok/modules/awesome/localhost.yaml +1 -0
- data/spec/fixtures/unit/pops/binder/bindings_composer/ok/modules/bad/common.yaml +3 -0
- data/spec/fixtures/unit/pops/binder/bindings_composer/ok/modules/bad/hiera_config.yaml +9 -0
- data/spec/fixtures/unit/pops/binder/bindings_composer/ok/modules/good/common.yaml +2 -0
- data/spec/fixtures/unit/pops/binder/bindings_composer/ok/modules/good/hiera.yaml +11 -0
- data/spec/fixtures/unit/pops/binder/config/binder_config/ok/binder_config.yaml +9 -0
- data/spec/fixtures/unit/pops/binder/hiera2/bindings_provider/ok/hiera.yaml +9 -0
- data/spec/fixtures/unit/pops/binder/hiera2/bindings_provider/ok/node.example.com.json +9 -0
- data/spec/fixtures/unit/pops/binder/hiera2/bindings_provider/ok/node.example.com.yaml +5 -0
- data/spec/fixtures/unit/pops/binder/hiera2/config/bad_syntax/hiera.yaml +10 -0
- data/spec/fixtures/unit/pops/binder/hiera2/config/malformed_hierarchy/hiera.yaml +8 -0
- data/spec/fixtures/unit/pops/binder/hiera2/config/missing/foo.txt +1 -0
- data/spec/fixtures/unit/pops/binder/hiera2/config/no_backends/hiera.yaml +7 -0
- data/spec/fixtures/unit/pops/binder/hiera2/config/no_hierarchy/hiera.yaml +4 -0
- data/spec/fixtures/unit/pops/binder/hiera2/config/not_a_hash/hiera.yaml +2 -0
- data/spec/fixtures/unit/pops/binder/hiera2/config/ok/hiera.yaml +8 -0
- data/spec/fixtures/unit/pops/binder/hiera2/yaml_backend/empty/common.yaml +0 -0
- data/spec/fixtures/unit/pops/binder/hiera2/yaml_backend/invalid/common.yaml +1 -0
- data/spec/fixtures/unit/pops/binder/hiera2/yaml_backend/ok/common.yaml +2 -0
- data/spec/fixtures/unit/provider/package/openbsd/pkginfo_flavors.list +2 -0
- data/spec/integration/agent/logging_spec.rb +178 -0
- data/spec/integration/configurer_spec.rb +1 -1
- data/spec/integration/defaults_spec.rb +0 -6
- data/spec/integration/network/authconfig_spec.rb +19 -0
- data/spec/integration/network/server/webrick_spec.rb +10 -11
- data/spec/integration/parser/catalog_spec.rb +85 -0
- data/spec/integration/provider/cron/crontab_spec.rb +11 -0
- data/spec/integration/provider/mount_spec.rb +1 -0
- data/spec/integration/transaction_spec.rb +8 -8
- data/spec/integration/type/file_spec.rb +1 -1
- data/spec/integration/util/settings_spec.rb +58 -11
- data/spec/lib/matchers/include_in_order.rb +21 -0
- data/spec/lib/matchers/include_in_order_spec.rb +30 -0
- data/spec/lib/matchers/relationship_graph_matchers.rb +48 -0
- data/spec/lib/puppet_spec/compiler.rb +24 -0
- data/spec/lib/puppet_spec/pops.rb +16 -0
- data/spec/spec_helper.rb +0 -1
- data/spec/unit/application/agent_spec.rb +145 -145
- data/spec/unit/application/apply_spec.rb +1 -1
- data/spec/unit/application/doc_spec.rb +1 -1
- data/spec/unit/application/face_base_spec.rb +3 -3
- data/spec/unit/application/facts_spec.rb +1 -0
- data/spec/unit/application/master_spec.rb +0 -15
- data/spec/unit/application/queue_spec.rb +6 -12
- data/spec/unit/application/resource_spec.rb +1 -1
- data/spec/unit/configurer/fact_handler_spec.rb +19 -50
- data/spec/unit/configurer_spec.rb +23 -7
- data/spec/unit/daemon_spec.rb +97 -121
- data/spec/unit/defaults_spec.rb +44 -0
- data/spec/unit/face/node_spec.rb +2 -2
- data/spec/unit/file_serving/configuration/parser_spec.rb +23 -33
- data/spec/unit/file_serving/configuration_spec.rb +2 -2
- data/spec/unit/file_serving/mount/file_spec.rb +4 -4
- data/spec/unit/forge/repository_spec.rb +9 -29
- data/spec/unit/graph/key_spec.rb +41 -0
- data/spec/unit/{rb_tree_map_spec.rb → graph/rb_tree_map_spec.rb} +7 -7
- data/spec/unit/graph/relationship_graph_spec.rb +393 -0
- data/spec/unit/graph/sequential_prioritizer_spec.rb +32 -0
- data/spec/unit/{simple_graph_spec.rb → graph/simple_graph.rb} +42 -254
- data/spec/unit/graph/title_hash_prioritizer_spec.rb +49 -0
- data/spec/unit/hiera_puppet_spec.rb +1 -1
- data/spec/unit/indirector/catalog/active_record_spec.rb +4 -2
- data/spec/unit/indirector/catalog/compiler_spec.rb +20 -26
- data/spec/unit/indirector/face_spec.rb +1 -1
- data/spec/unit/indirector/facts/facter_spec.rb +11 -1
- data/spec/unit/indirector/facts/network_device_spec.rb +11 -1
- data/spec/unit/indirector/hiera_spec.rb +1 -1
- data/spec/unit/indirector/instrumentation_data/local_spec.rb +1 -1
- data/spec/unit/indirector/instrumentation_listener/local_spec.rb +1 -1
- data/spec/unit/indirector/request_spec.rb +92 -39
- data/spec/unit/indirector/rest_spec.rb +1 -0
- data/spec/unit/indirector_spec.rb +2 -2
- data/spec/unit/interface/option_builder_spec.rb +1 -0
- data/spec/unit/interface/option_spec.rb +1 -0
- data/spec/unit/interface_spec.rb +2 -2
- data/spec/unit/module_tool/applications/installer_spec.rb +49 -2
- data/spec/unit/module_tool/metadata_spec.rb +13 -0
- data/spec/unit/network/authstore_spec.rb +1 -1
- data/spec/unit/network/format_handler_spec.rb +33 -282
- data/spec/unit/network/format_support_spec.rb +199 -0
- data/spec/unit/network/formats_spec.rb +2 -2
- data/spec/unit/network/http/connection_spec.rb +88 -7
- data/spec/unit/network/http/handler_spec.rb +271 -249
- data/spec/unit/network/http/rack/rest_spec.rb +1 -1
- data/spec/unit/network/http/webrick/rest_spec.rb +73 -22
- data/spec/unit/network/http_pool_spec.rb +40 -0
- data/spec/unit/network/server_spec.rb +18 -207
- data/spec/unit/node/facts_spec.rb +68 -17
- data/spec/unit/other/selinux_spec.rb +24 -20
- data/spec/unit/parameter/boolean_spec.rb +25 -0
- data/spec/unit/parameter/value_collection_spec.rb +7 -7
- data/spec/unit/parameter_spec.rb +10 -13
- data/spec/unit/parser/ast/function_spec.rb +4 -4
- data/spec/unit/parser/ast/leaf_spec.rb +45 -6
- data/spec/unit/parser/collector_spec.rb +3 -3
- data/spec/unit/parser/compiler_spec.rb +4 -3
- data/spec/unit/parser/functions/create_resources_spec.rb +9 -25
- data/spec/unit/parser/functions/extlookup_spec.rb +2 -2
- data/spec/unit/parser/functions/hiera_include_spec.rb +12 -0
- data/spec/unit/parser/functions/lookup_spec.rb +96 -0
- data/spec/unit/parser/functions/regsubst_spec.rb +2 -2
- data/spec/unit/parser/functions/split_spec.rb +2 -2
- data/spec/unit/parser/functions/sprintf_spec.rb +1 -1
- data/spec/unit/parser/functions/versioncmp_spec.rb +2 -2
- data/spec/unit/parser/functions_spec.rb +7 -7
- data/spec/unit/parser/lexer_spec.rb +1 -1
- data/spec/unit/parser/methods/collect_spec.rb +43 -0
- data/spec/unit/parser/resource_spec.rb +9 -9
- data/spec/unit/parser/scope_spec.rb +45 -2
- data/spec/unit/parser/type_loader_spec.rb +159 -175
- data/spec/unit/pops/binder/binder_spec.rb +62 -0
- data/spec/unit/pops/binder/bindings_checker_spec.rb +196 -0
- data/spec/unit/pops/binder/bindings_composer_spec.rb +89 -0
- data/spec/unit/pops/binder/bindings_validator_factory_spec.rb +18 -0
- data/spec/unit/pops/binder/config/binder_config_spec.rb +48 -0
- data/spec/unit/pops/binder/hiera2/bindings_provider_spec.rb +74 -0
- data/spec/unit/pops/binder/hiera2/config_spec.rb +61 -0
- data/spec/unit/pops/binder/hiera2/yaml_backend_spec.rb +33 -0
- data/spec/unit/pops/binder/injector_spec.rb +789 -0
- data/spec/unit/pops/containment_spec.rb +1 -0
- data/spec/unit/pops/issues_spec.rb +1 -1
- data/spec/unit/pops/parser/evaluating_parser_spec.rb +88 -0
- data/spec/unit/pops/parser/lexer_spec.rb +1 -1
- data/spec/unit/pops/parser/parse_calls_spec.rb +4 -0
- data/spec/unit/pops/parser/parser_spec.rb +1 -1
- data/spec/unit/pops/types/type_calculator_spec.rb +484 -0
- data/spec/unit/pops/types/type_factory_spec.rb +65 -0
- data/spec/unit/pops/types/type_parser_spec.rb +93 -0
- data/spec/unit/property/list_spec.rb +1 -1
- data/spec/unit/property/ordered_list_spec.rb +1 -1
- data/spec/unit/provider/aixobject_spec.rb +101 -0
- data/spec/unit/provider/augeas/augeas_spec.rb +14 -3
- data/spec/unit/provider/mcx/mcxcontent_spec.rb +52 -16
- data/spec/unit/provider/mount/parsed_spec.rb +44 -56
- data/spec/unit/provider/mount_spec.rb +11 -2
- data/spec/unit/provider/naginator_spec.rb +8 -0
- data/spec/unit/provider/package/apt_spec.rb +5 -1
- data/spec/unit/provider/package/aptitude_spec.rb +9 -5
- data/spec/unit/provider/package/aptrpm_spec.rb +2 -2
- data/spec/unit/provider/package/dpkg_spec.rb +274 -99
- data/spec/unit/provider/package/openbsd_spec.rb +84 -1
- data/spec/unit/provider/package/opkg_spec.rb +3 -3
- data/spec/unit/provider/package/pip_spec.rb +16 -0
- data/spec/unit/provider/package/pkgdmg_spec.rb +62 -7
- data/spec/unit/provider/package/rpm_spec.rb +112 -21
- data/spec/unit/provider/package/urpmi.rb +80 -0
- data/spec/unit/provider/package/windows/exe_package_spec.rb +1 -1
- data/spec/unit/provider/package/yum_spec.rb +85 -0
- data/spec/unit/provider/package/zypper_spec.rb +25 -6
- data/spec/unit/provider/parsedfile_spec.rb +3 -2
- data/spec/unit/provider/service/init_spec.rb +10 -10
- data/spec/unit/provider/service/openrc_spec.rb +16 -0
- data/spec/unit/provider/service/openwrt_spec.rb +1 -1
- data/spec/unit/provider/service/redhat_spec.rb +7 -0
- data/spec/unit/provider/ssh_authorized_key/parsed_spec.rb +2 -2
- data/spec/unit/provider/user/aix_spec.rb +89 -0
- data/spec/unit/provider/user/directoryservice_spec.rb +11 -4
- data/spec/unit/provider/user/user_role_add_spec.rb +18 -0
- data/spec/unit/provider_spec.rb +2 -13
- data/spec/unit/reports/http_spec.rb +1 -1
- data/spec/unit/resource/catalog_spec.rb +23 -97
- data/spec/unit/resource/resource_type.json +34 -0
- data/spec/unit/resource/status_spec.rb +56 -0
- data/spec/unit/resource/type_collection_spec.rb +6 -6
- data/spec/unit/resource/type_spec.rb +25 -5
- data/spec/unit/resource_spec.rb +68 -24
- data/spec/unit/run_spec.rb +16 -0
- data/spec/unit/scheduler/scheduler_spec.rb +14 -27
- data/spec/unit/semver_spec.rb +5 -0
- data/spec/unit/settings/enum_setting_spec.rb +27 -0
- data/spec/unit/settings_spec.rb +53 -44
- data/spec/unit/ssl/certificate_authority_spec.rb +155 -19
- data/spec/unit/transaction/additional_resource_generator_spec.rb +419 -0
- data/spec/unit/transaction/event_manager_spec.rb +2 -2
- data/spec/unit/transaction/event_spec.rb +57 -0
- data/spec/unit/transaction/report_spec.rb +66 -0
- data/spec/unit/transaction/resource_harness_spec.rb +27 -20
- data/spec/unit/transaction_spec.rb +182 -390
- data/spec/unit/type/augeas_spec.rb +3 -3
- data/spec/unit/type/component_spec.rb +0 -9
- data/spec/unit/type/computer_spec.rb +1 -1
- data/spec/unit/type/cron_spec.rb +2 -2
- data/spec/unit/type/exec_spec.rb +4 -2
- data/spec/unit/type/file/content_spec.rb +11 -0
- data/spec/unit/type/file/group_spec.rb +1 -1
- data/spec/unit/type/file_spec.rb +16 -8
- data/spec/unit/type/mount_spec.rb +445 -259
- data/spec/unit/type/package_spec.rb +4 -4
- data/spec/unit/type/resources_spec.rb +30 -1
- data/spec/unit/type/user_spec.rb +26 -3
- data/spec/unit/type/yumrepo_spec.rb +7 -27
- data/spec/unit/type/zone_spec.rb +4 -1
- data/spec/unit/type_spec.rb +66 -33
- data/spec/unit/util/backups_spec.rb +3 -3
- data/spec/unit/util/http_proxy_spec.rb +83 -0
- data/spec/unit/util/log_spec.rb +79 -8
- data/spec/unit/util/metric_spec.rb +12 -0
- data/spec/unit/util/monkey_patches_spec.rb +6 -0
- data/spec/unit/util/network_device/config_spec.rb +26 -64
- data/spec/unit/util/pidlock_spec.rb +4 -1
- data/spec/unit/util/tagging_spec.rb +5 -9
- data/spec/unit/util/warnings_spec.rb +1 -1
- data/spec/unit/util/watched_file_spec.rb +52 -0
- data/spec/unit/util/watcher/periodic_watcher_spec.rb +52 -0
- data/spec/unit/util/watcher_spec.rb +56 -0
- data/spec/unit/util_spec.rb +16 -0
- metadata +2767 -2576
- data/ext/debian/puppet.manpages +0 -32
- data/ext/osx/PackageInfo.plist +0 -36
- data/ext/osx/createpackage.sh +0 -187
- data/ext/redhat/rundir-perms.patch +0 -28
- data/lib/puppet/external/base64.rb +0 -19
- data/lib/puppet/util/graph.rb +0 -27
- data/lib/puppet/util/loadedfile.rb +0 -61
- data/lib/puppet/util/log_paths.rb +0 -22
- data/lib/puppet/util/subclass_loader.rb +0 -78
- data/spec/monkey_patches/publicize_methods.rb +0 -11
- data/spec/unit/util/loadedfile_spec.rb +0 -71
@@ -14,25 +14,76 @@ describe Puppet::Node::Facts, "when indirecting" do
|
|
14
14
|
@facts.values["one"].should == "1"
|
15
15
|
end
|
16
16
|
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
17
|
+
describe "adding local facts" do
|
18
|
+
it "should add the node's certificate name as the 'clientcert' fact" do
|
19
|
+
@facts.add_local_facts
|
20
|
+
@facts.values["clientcert"].should == Puppet.settings[:certname]
|
21
|
+
end
|
21
22
|
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
23
|
+
it "adds the Puppet version as a 'clientversion' fact" do
|
24
|
+
@facts.add_local_facts
|
25
|
+
@facts.values["clientversion"].should == Puppet.version.to_s
|
26
|
+
end
|
27
|
+
|
28
|
+
it "adds the agent side noop setting as 'clientnoop'" do
|
29
|
+
@facts.add_local_facts
|
30
|
+
@facts.values["clientnoop"].should == Puppet.settings[:noop]
|
31
|
+
end
|
26
32
|
|
27
|
-
|
28
|
-
|
29
|
-
|
33
|
+
it "doesn't add the current environment" do
|
34
|
+
@facts.add_local_facts
|
35
|
+
@facts.values.should_not include("environment")
|
36
|
+
end
|
37
|
+
|
38
|
+
it "doesn't replace any existing environment fact when adding local facts" do
|
39
|
+
@facts.values["environment"] = "foo"
|
40
|
+
@facts.add_local_facts
|
41
|
+
@facts.values["environment"].should == "foo"
|
42
|
+
end
|
30
43
|
end
|
31
44
|
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
45
|
+
describe "when sanitizing facts" do
|
46
|
+
it "should convert fact values if needed" do
|
47
|
+
@facts.values["test"] = /foo/
|
48
|
+
@facts.sanitize
|
49
|
+
@facts.values["test"].should == "(?-mix:foo)"
|
50
|
+
end
|
51
|
+
|
52
|
+
it "should convert hash keys if needed" do
|
53
|
+
@facts.values["test"] = {/foo/ => "bar"}
|
54
|
+
@facts.sanitize
|
55
|
+
@facts.values["test"].should == {"(?-mix:foo)" => "bar"}
|
56
|
+
end
|
57
|
+
|
58
|
+
it "should convert hash values if needed" do
|
59
|
+
@facts.values["test"] = {"foo" => /bar/}
|
60
|
+
@facts.sanitize
|
61
|
+
@facts.values["test"].should == {"foo" => "(?-mix:bar)"}
|
62
|
+
end
|
63
|
+
|
64
|
+
it "should convert array elements if needed" do
|
65
|
+
@facts.values["test"] = [1, "foo", /bar/]
|
66
|
+
@facts.sanitize
|
67
|
+
@facts.values["test"].should == [1, "foo", "(?-mix:bar)"]
|
68
|
+
end
|
69
|
+
|
70
|
+
it "should handle nested arrays" do
|
71
|
+
@facts.values["test"] = [1, "foo", [/bar/]]
|
72
|
+
@facts.sanitize
|
73
|
+
@facts.values["test"].should == [1, "foo", ["(?-mix:bar)"]]
|
74
|
+
end
|
75
|
+
|
76
|
+
it "should handle nested hashes" do
|
77
|
+
@facts.values["test"] = {/foo/ => {"bar" => /baz/}}
|
78
|
+
@facts.sanitize
|
79
|
+
@facts.values["test"].should == {"(?-mix:foo)" => {"bar" => "(?-mix:baz)"}}
|
80
|
+
end
|
81
|
+
|
82
|
+
it "should handle nester arrays and hashes" do
|
83
|
+
@facts.values["test"] = {/foo/ => ["bar", /baz/]}
|
84
|
+
@facts.sanitize
|
85
|
+
@facts.values["test"].should == {"(?-mix:foo)" => ["bar", "(?-mix:baz)"]}
|
86
|
+
end
|
36
87
|
end
|
37
88
|
|
38
89
|
describe "when indirecting" do
|
@@ -67,7 +118,7 @@ describe Puppet::Node::Facts, "when indirecting" do
|
|
67
118
|
describe "when storing and retrieving" do
|
68
119
|
it "should add metadata to the facts" do
|
69
120
|
facts = Puppet::Node::Facts.new("me", "one" => "two", "three" => "four")
|
70
|
-
facts.values[
|
121
|
+
facts.values['_timestamp'].should be_instance_of(Time)
|
71
122
|
end
|
72
123
|
|
73
124
|
describe "using pson" do
|
@@ -82,7 +133,7 @@ describe Puppet::Node::Facts, "when indirecting" do
|
|
82
133
|
facts = format.intern(Puppet::Node::Facts,pson)
|
83
134
|
facts.name.should == 'foo'
|
84
135
|
facts.expiration.should == @expiration
|
85
|
-
facts.values.should == {'a' => '1', 'b' => '2', 'c' => '3',
|
136
|
+
facts.values.should == {'a' => '1', 'b' => '2', 'c' => '3', '_timestamp' => @timestamp}
|
86
137
|
end
|
87
138
|
|
88
139
|
it "should generate properly formatted pson" do
|
@@ -9,23 +9,24 @@ describe Puppet::Type.type(:file), " when manipulating file contexts" do
|
|
9
9
|
|
10
10
|
before :each do
|
11
11
|
|
12
|
-
|
13
|
-
|
12
|
+
@file = Puppet::Type::File.new(
|
14
13
|
:name => make_absolute("/tmp/foo"),
|
15
14
|
:ensure => "file",
|
16
15
|
:seluser => "user_u",
|
17
16
|
:selrole => "role_r",
|
18
|
-
|
19
|
-
:seltype => "type_t" )
|
17
|
+
:seltype => "type_t")
|
20
18
|
end
|
19
|
+
|
21
20
|
it "should use :seluser to get/set an SELinux user file context attribute" do
|
22
|
-
@file
|
21
|
+
expect(@file[:seluser]).to eq("user_u")
|
23
22
|
end
|
23
|
+
|
24
24
|
it "should use :selrole to get/set an SELinux role file context attribute" do
|
25
|
-
@file
|
25
|
+
expect(@file[:selrole]).to eq("role_r")
|
26
26
|
end
|
27
|
+
|
27
28
|
it "should use :seltype to get/set an SELinux user file context attribute" do
|
28
|
-
@file
|
29
|
+
expect(@file[:seltype]).to eq("type_t")
|
29
30
|
end
|
30
31
|
end
|
31
32
|
|
@@ -34,27 +35,29 @@ describe Puppet::Type.type(:selboolean), " when manipulating booleans" do
|
|
34
35
|
provider_class = Puppet::Type::Selboolean.provider(Puppet::Type::Selboolean.providers[0])
|
35
36
|
Puppet::Type::Selboolean.stubs(:defaultprovider).returns provider_class
|
36
37
|
|
37
|
-
|
38
|
-
@bool = Puppet::Type::Selboolean.new(
|
39
|
-
|
38
|
+
@bool = Puppet::Type::Selboolean.new(
|
40
39
|
:name => "foo",
|
41
40
|
:value => "on",
|
42
|
-
|
43
41
|
:persistent => true )
|
44
42
|
end
|
43
|
+
|
45
44
|
it "should be able to access :name" do
|
46
45
|
@bool[:name].should == "foo"
|
47
46
|
end
|
47
|
+
|
48
48
|
it "should be able to access :value" do
|
49
|
-
@bool.property(:value).should
|
49
|
+
expect(@bool.property(:value).should).to eq(:on)
|
50
50
|
end
|
51
|
+
|
51
52
|
it "should set :value to off" do
|
52
53
|
@bool[:value] = :off
|
53
|
-
@bool.property(:value).should
|
54
|
+
expect(@bool.property(:value).should).to eq(:off)
|
54
55
|
end
|
56
|
+
|
55
57
|
it "should be able to access :persistent" do
|
56
58
|
@bool[:persistent].should == :true
|
57
59
|
end
|
60
|
+
|
58
61
|
it "should set :persistent to false" do
|
59
62
|
@bool[:persistent] = false
|
60
63
|
@bool[:persistent].should == :false
|
@@ -66,30 +69,31 @@ describe Puppet::Type.type(:selmodule), " when checking policy modules" do
|
|
66
69
|
provider_class = Puppet::Type::Selmodule.provider(Puppet::Type::Selmodule.providers[0])
|
67
70
|
Puppet::Type::Selmodule.stubs(:defaultprovider).returns provider_class
|
68
71
|
|
69
|
-
|
70
|
-
@module = Puppet::Type::Selmodule.new(
|
71
|
-
|
72
|
+
@module = Puppet::Type::Selmodule.new(
|
72
73
|
:name => "foo",
|
73
74
|
:selmoduledir => "/some/path",
|
74
75
|
:selmodulepath => "/some/path/foo.pp",
|
75
|
-
|
76
76
|
:syncversion => true)
|
77
77
|
end
|
78
|
+
|
78
79
|
it "should be able to access :name" do
|
79
80
|
@module[:name].should == "foo"
|
80
81
|
end
|
82
|
+
|
81
83
|
it "should be able to access :selmoduledir" do
|
82
84
|
@module[:selmoduledir].should == "/some/path"
|
83
85
|
end
|
86
|
+
|
84
87
|
it "should be able to access :selmodulepath" do
|
85
88
|
@module[:selmodulepath].should == "/some/path/foo.pp"
|
86
89
|
end
|
90
|
+
|
87
91
|
it "should be able to access :syncversion" do
|
88
|
-
@module
|
92
|
+
expect(@module[:syncversion]).to eq(:true)
|
89
93
|
end
|
94
|
+
|
90
95
|
it "should set the syncversion value to false" do
|
91
96
|
@module[:syncversion] = :false
|
92
|
-
@module
|
97
|
+
expect(@module[:syncversion]).to eq(:false)
|
93
98
|
end
|
94
99
|
end
|
95
|
-
|
@@ -0,0 +1,25 @@
|
|
1
|
+
#! /usr/bin/env ruby
|
2
|
+
require 'spec_helper'
|
3
|
+
require 'puppet'
|
4
|
+
require 'puppet/parameter/boolean'
|
5
|
+
|
6
|
+
describe Puppet::Parameter::Boolean do
|
7
|
+
let (:resource) { mock('resource') }
|
8
|
+
subject { described_class.new(:resource => resource) }
|
9
|
+
|
10
|
+
[ true, :true, 'true', :yes, 'yes', 'TrUe', 'yEs' ].each do |arg|
|
11
|
+
it "should munge #{arg.inspect} as true" do
|
12
|
+
subject.munge(arg).should == true
|
13
|
+
end
|
14
|
+
end
|
15
|
+
[ false, :false, 'false', :no, 'no', 'FaLSE', 'nO' ].each do |arg|
|
16
|
+
it "should munge #{arg.inspect} as false" do
|
17
|
+
subject.munge(arg).should == false
|
18
|
+
end
|
19
|
+
end
|
20
|
+
[ nil, :undef, 'undef', '0', 0, '1', 1, 9284 ].each do |arg|
|
21
|
+
it "should fail to munge #{arg.inspect}" do
|
22
|
+
expect { subject.munge(arg) }.to raise_error Puppet::Error
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
@@ -27,7 +27,7 @@ describe Puppet::Parameter::ValueCollection do
|
|
27
27
|
end
|
28
28
|
|
29
29
|
it "should be able to add values that are empty strings" do
|
30
|
-
|
30
|
+
expect { @collection.newvalue('') }.to_not raise_error
|
31
31
|
end
|
32
32
|
|
33
33
|
it "should be able to add values that are empty strings" do
|
@@ -107,33 +107,33 @@ describe Puppet::Parameter::ValueCollection do
|
|
107
107
|
|
108
108
|
it "should fail if the value is not a defined value or alias and does not match a regex" do
|
109
109
|
@collection.newvalues :foo
|
110
|
-
|
110
|
+
expect { @collection.validate("bar") }.to raise_error(ArgumentError)
|
111
111
|
end
|
112
112
|
|
113
113
|
it "should succeed if the value is one of the defined values" do
|
114
114
|
@collection.newvalues :foo
|
115
|
-
|
115
|
+
expect { @collection.validate(:foo) }.to_not raise_error
|
116
116
|
end
|
117
117
|
|
118
118
|
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
|
119
119
|
@collection.newvalues :foo
|
120
|
-
|
120
|
+
expect { @collection.validate("foo") }.to_not raise_error
|
121
121
|
end
|
122
122
|
|
123
123
|
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
|
124
124
|
@collection.newvalues "foo"
|
125
|
-
|
125
|
+
expect { @collection.validate(:foo) }.to_not raise_error
|
126
126
|
end
|
127
127
|
|
128
128
|
it "should succeed if the value is one of the defined aliases" do
|
129
129
|
@collection.newvalues :foo
|
130
130
|
@collection.aliasvalue :bar, :foo
|
131
|
-
|
131
|
+
expect { @collection.validate("bar") }.to_not raise_error
|
132
132
|
end
|
133
133
|
|
134
134
|
it "should succeed if the value matches one of the regexes" do
|
135
135
|
@collection.newvalues %r{\d}
|
136
|
-
|
136
|
+
expect { @collection.validate("10") }.to_not raise_error
|
137
137
|
end
|
138
138
|
end
|
139
139
|
|
data/spec/unit/parameter_spec.rb
CHANGED
@@ -37,11 +37,8 @@ describe Puppet::Parameter do
|
|
37
37
|
@parameter.tags.should == %w{one two foo}
|
38
38
|
end
|
39
39
|
|
40
|
-
it "should
|
41
|
-
@
|
42
|
-
@resource.expects(:file).returns "file"
|
43
|
-
@resource.expects(:tags).returns %w{one two}
|
44
|
-
@parameter.source_descriptors.should == {:tags=>["one", "two", "foo"], :path=>"//foo", :file => "file", :line => 10}
|
40
|
+
it "should have a path" do
|
41
|
+
@parameter.path.should == "//foo"
|
45
42
|
end
|
46
43
|
|
47
44
|
describe "when returning the value" do
|
@@ -83,38 +80,38 @@ describe Puppet::Parameter do
|
|
83
80
|
|
84
81
|
it "should catch abnormal failures thrown during validation" do
|
85
82
|
@class.validate { |v| raise "This is broken" }
|
86
|
-
|
83
|
+
expect { @parameter.validate("eh") }.to raise_error(Puppet::DevError)
|
87
84
|
end
|
88
85
|
|
89
86
|
it "should fail if the value is not a defined value or alias and does not match a regex" do
|
90
87
|
@class.newvalues :foo
|
91
|
-
|
88
|
+
expect { @parameter.validate("bar") }.to raise_error(Puppet::Error)
|
92
89
|
end
|
93
90
|
|
94
91
|
it "should succeed if the value is one of the defined values" do
|
95
92
|
@class.newvalues :foo
|
96
|
-
|
93
|
+
expect { @parameter.validate(:foo) }.to_not raise_error
|
97
94
|
end
|
98
95
|
|
99
96
|
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
97
|
@class.newvalues :foo
|
101
|
-
|
98
|
+
expect { @parameter.validate("foo") }.to_not raise_error
|
102
99
|
end
|
103
100
|
|
104
101
|
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
102
|
@class.newvalues "foo"
|
106
|
-
|
103
|
+
expect { @parameter.validate(:foo) }.to_not raise_error
|
107
104
|
end
|
108
105
|
|
109
106
|
it "should succeed if the value is one of the defined aliases" do
|
110
107
|
@class.newvalues :foo
|
111
108
|
@class.aliasvalue :bar, :foo
|
112
|
-
|
109
|
+
expect { @parameter.validate("bar") }.to_not raise_error
|
113
110
|
end
|
114
111
|
|
115
112
|
it "should succeed if the value matches one of the regexes" do
|
116
113
|
@class.newvalues %r{\d}
|
117
|
-
|
114
|
+
expect { @parameter.validate("10") }.to_not raise_error
|
118
115
|
end
|
119
116
|
end
|
120
117
|
|
@@ -125,7 +122,7 @@ describe Puppet::Parameter do
|
|
125
122
|
|
126
123
|
it "should catch abnormal failures thrown during munging" do
|
127
124
|
@class.munge { |v| raise "This is broken" }
|
128
|
-
|
125
|
+
expect { @parameter.munge("eh") }.to raise_error(Puppet::DevError)
|
129
126
|
end
|
130
127
|
|
131
128
|
it "should return return any matching defined values" do
|
@@ -10,7 +10,7 @@ describe Puppet::Parser::AST::Function do
|
|
10
10
|
it "should not fail if the function doesn't exist" do
|
11
11
|
Puppet::Parser::Functions.stubs(:function).returns(false)
|
12
12
|
|
13
|
-
|
13
|
+
expect{ Puppet::Parser::AST::Function.new :name => "dontexist" }.to_not raise_error
|
14
14
|
|
15
15
|
end
|
16
16
|
end
|
@@ -27,7 +27,7 @@ describe Puppet::Parser::AST::Function do
|
|
27
27
|
Puppet::Parser::Functions.stubs(:function).returns(false)
|
28
28
|
func = Puppet::Parser::AST::Function.new :name => "dontexist"
|
29
29
|
|
30
|
-
|
30
|
+
expect{ func.evaluate(@scope) }.to raise_error(Puppet::ParseError)
|
31
31
|
end
|
32
32
|
|
33
33
|
it "should fail if the function is a statement used as rvalue" do
|
@@ -36,7 +36,7 @@ describe Puppet::Parser::AST::Function do
|
|
36
36
|
|
37
37
|
func = Puppet::Parser::AST::Function.new :name => "exist", :ftype => :rvalue
|
38
38
|
|
39
|
-
|
39
|
+
expect{ func.evaluate(@scope) }.to raise_error(Puppet::ParseError, "Function 'exist' does not return a value")
|
40
40
|
end
|
41
41
|
|
42
42
|
it "should fail if the function is an rvalue used as statement" do
|
@@ -45,7 +45,7 @@ describe Puppet::Parser::AST::Function do
|
|
45
45
|
|
46
46
|
func = Puppet::Parser::AST::Function.new :name => "exist", :ftype => :statement
|
47
47
|
|
48
|
-
|
48
|
+
expect{ func.evaluate(@scope) }.to raise_error(Puppet::ParseError,"Function 'exist' must be the value of a statement")
|
49
49
|
end
|
50
50
|
|
51
51
|
it "should evaluate its arguments" do
|
@@ -10,7 +10,7 @@ describe Puppet::Parser::AST::Leaf do
|
|
10
10
|
@leaf = Puppet::Parser::AST::Leaf.new(:value => @value)
|
11
11
|
end
|
12
12
|
|
13
|
-
it "should have
|
13
|
+
it "should have an evaluate_match method" do
|
14
14
|
Puppet::Parser::AST::Leaf.new(:value => "value").should respond_to(:evaluate_match)
|
15
15
|
end
|
16
16
|
|
@@ -177,7 +177,7 @@ describe Puppet::Parser::AST::HashOrArrayAccess do
|
|
177
177
|
access.evaluate(@scope).should == :undef
|
178
178
|
end
|
179
179
|
|
180
|
-
it "should be able to return
|
180
|
+
it "should be able to return a hash value" do
|
181
181
|
@scope["a"] = { "key1" => "val1", "key2" => "val2", "key3" => "val3" }
|
182
182
|
|
183
183
|
access = Puppet::Parser::AST::HashOrArrayAccess.new(:variable => "a", :key => "key2" )
|
@@ -193,7 +193,7 @@ describe Puppet::Parser::AST::HashOrArrayAccess do
|
|
193
193
|
access.evaluate(@scope).should == :undef
|
194
194
|
end
|
195
195
|
|
196
|
-
it "should be able to return
|
196
|
+
it "should be able to return a hash value with a numerical key" do
|
197
197
|
@scope["a"] = { "key1" => "val1", "key2" => "val2", "45" => "45", "key3" => "val3" }
|
198
198
|
|
199
199
|
access = Puppet::Parser::AST::HashOrArrayAccess.new(:variable => "a", :key => "45" )
|
@@ -201,7 +201,7 @@ describe Puppet::Parser::AST::HashOrArrayAccess do
|
|
201
201
|
access.evaluate(@scope).should == "45"
|
202
202
|
end
|
203
203
|
|
204
|
-
it "should raise an error if the variable lookup didn't return
|
204
|
+
it "should raise an error if the variable lookup didn't return a hash or an array" do
|
205
205
|
@scope["a"] = "I'm a string"
|
206
206
|
|
207
207
|
access = Puppet::Parser::AST::HashOrArrayAccess.new(:variable => "a", :key => "key2" )
|
@@ -237,6 +237,45 @@ describe Puppet::Parser::AST::HashOrArrayAccess do
|
|
237
237
|
|
238
238
|
access2.evaluate(@scope).should == 'b'
|
239
239
|
end
|
240
|
+
|
241
|
+
it "should raise a useful error for hash access on undef" do
|
242
|
+
@scope["a"] = :undef
|
243
|
+
|
244
|
+
access = Puppet::Parser::AST::HashOrArrayAccess.new(:variable => "a", :key => "key")
|
245
|
+
|
246
|
+
expect {
|
247
|
+
access.evaluate(@scope)
|
248
|
+
}.to raise_error(Puppet::ParseError, /not a hash or array/)
|
249
|
+
end
|
250
|
+
|
251
|
+
it "should raise a useful error for hash access on TrueClass" do
|
252
|
+
@scope["a"] = true
|
253
|
+
|
254
|
+
access = Puppet::Parser::AST::HashOrArrayAccess.new(:variable => "a", :key => "key")
|
255
|
+
|
256
|
+
expect {
|
257
|
+
access.evaluate(@scope)
|
258
|
+
}.to raise_error(Puppet::ParseError, /not a hash or array/)
|
259
|
+
end
|
260
|
+
|
261
|
+
it "should raise a useful error for recursive undef hash access" do
|
262
|
+
@scope["a"] = { "key" => "val" }
|
263
|
+
|
264
|
+
access1 = Puppet::Parser::AST::HashOrArrayAccess.new(:variable => "a", :key => "nonexistent")
|
265
|
+
access2 = Puppet::Parser::AST::HashOrArrayAccess.new(:variable => access1, :key => "subkey")
|
266
|
+
|
267
|
+
expect {
|
268
|
+
access2.evaluate(@scope)
|
269
|
+
}.to raise_error(Puppet::ParseError, /not a hash or array/)
|
270
|
+
end
|
271
|
+
|
272
|
+
it "should produce boolean values when value is a boolean" do
|
273
|
+
@scope["a"] = [true, false]
|
274
|
+
access = Puppet::Parser::AST::HashOrArrayAccess.new(:variable => "a", :key => 0 )
|
275
|
+
expect(access.evaluate(@scope)).to be == true
|
276
|
+
access = Puppet::Parser::AST::HashOrArrayAccess.new(:variable => "a", :key => 1 )
|
277
|
+
expect(access.evaluate(@scope)).to be == false
|
278
|
+
end
|
240
279
|
end
|
241
280
|
|
242
281
|
describe "when assigning" do
|
@@ -274,7 +313,7 @@ describe Puppet::Parser::AST::HashOrArrayAccess do
|
|
274
313
|
scope['a'].should == ["val2"]
|
275
314
|
end
|
276
315
|
|
277
|
-
it "should raise an error when trying to overwrite
|
316
|
+
it "should raise an error when trying to overwrite a hash value" do
|
278
317
|
@scope['a'] = { "key" => [ "a" , "b" ]}
|
279
318
|
access = Puppet::Parser::AST::HashOrArrayAccess.new(:variable => "a", :key => "key")
|
280
319
|
|
@@ -425,7 +464,7 @@ describe Puppet::Parser::AST::HostName do
|
|
425
464
|
end
|
426
465
|
|
427
466
|
it "should raise an error if hostname is not valid" do
|
428
|
-
lambda { Puppet::Parser::AST::HostName.new( :value => "not
|
467
|
+
lambda { Puppet::Parser::AST::HostName.new( :value => "not a hostname!" ) }.should raise_error
|
429
468
|
end
|
430
469
|
|
431
470
|
it "should not raise an error if hostname is a regex" do
|