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
@@ -80,7 +80,7 @@ describe Puppet::Resource::Type do
|
|
80
80
|
lambda { Puppet::Resource::Type.new(:node, /foo/) }.should_not raise_error
|
81
81
|
end
|
82
82
|
|
83
|
-
it "should allow
|
83
|
+
it "should allow an AST::HostName instance as its name" do
|
84
84
|
regex = Puppet::Parser::AST::Regex.new(:value => /foo/)
|
85
85
|
name = Puppet::Parser::AST::HostName.new(:value => regex)
|
86
86
|
lambda { Puppet::Resource::Type.new(:node, name) }.should_not raise_error
|
@@ -134,6 +134,10 @@ describe Puppet::Resource::Type do
|
|
134
134
|
Puppet::Resource::Type.new(:node, /\w/).match("foo").should be_true
|
135
135
|
end
|
136
136
|
|
137
|
+
it "should return true when its regex matches the provided name" do
|
138
|
+
Puppet::Resource::Type.new(:node, /\w/).match("foo").should be_true
|
139
|
+
end
|
140
|
+
|
137
141
|
it "should return false when its regex does not match the provided name" do
|
138
142
|
(!!Puppet::Resource::Type.new(:node, /\d/).match("foo")).should be_false
|
139
143
|
end
|
@@ -396,13 +400,29 @@ describe Puppet::Resource::Type do
|
|
396
400
|
@resource.environment.known_resource_types.add @type
|
397
401
|
end
|
398
402
|
|
399
|
-
it "should add
|
403
|
+
it "should add node regex captures to its scope" do
|
404
|
+
@type = Puppet::Resource::Type.new(:node, /f(\w)o(.*)$/)
|
405
|
+
match = @type.match('foo')
|
406
|
+
|
407
|
+
code = stub 'code'
|
408
|
+
@type.stubs(:code).returns code
|
409
|
+
|
410
|
+
subscope = stub 'subscope', :compiler => @compiler
|
411
|
+
@scope.expects(:newscope).with(:source => @type, :namespace => '', :resource => @resource).returns subscope
|
412
|
+
|
413
|
+
elevel = 876
|
414
|
+
subscope.expects(:ephemeral_level).returns elevel
|
415
|
+
subscope.expects(:ephemeral_from).with(match, nil, nil).returns subscope
|
416
|
+
code.expects(:safeevaluate).with(subscope)
|
417
|
+
subscope.expects(:unset_ephemeral_var).with(elevel)
|
418
|
+
|
419
|
+
# Just to keep the stub quiet about intermediate calls
|
420
|
+
@type.expects(:set_resource_parameters).with(@resource, subscope)
|
421
|
+
|
400
422
|
@type.evaluate_code(@resource)
|
401
|
-
@compiler.catalog.classes.should be_include("foo")
|
402
423
|
end
|
403
424
|
|
404
|
-
it "should add
|
405
|
-
@type = Puppet::Resource::Type.new(:node, "foo")
|
425
|
+
it "should add hostclass names to the classes list" do
|
406
426
|
@type.evaluate_code(@resource)
|
407
427
|
@compiler.catalog.classes.should be_include("foo")
|
408
428
|
end
|
data/spec/unit/resource_spec.rb
CHANGED
@@ -267,42 +267,45 @@ describe Puppet::Resource do
|
|
267
267
|
end
|
268
268
|
|
269
269
|
describe "when setting default parameters" do
|
270
|
-
|
271
|
-
|
272
|
-
|
270
|
+
let(:foo_node) { Puppet::Node.new('foo') }
|
271
|
+
let(:compiler) { Puppet::Parser::Compiler.new(foo_node) }
|
272
|
+
let(:scope) { Puppet::Parser::Scope.new(compiler) }
|
273
|
+
|
274
|
+
def ast_string(value)
|
275
|
+
Puppet::Parser::AST::String.new({:value => value})
|
273
276
|
end
|
274
277
|
|
275
278
|
it "should fail when asked to set default values and it is not a parser resource" do
|
276
279
|
Puppet::Node::Environment.new.known_resource_types.add(
|
277
|
-
|
280
|
+
Puppet::Resource::Type.new(:definition, "default_param", :arguments => {"a" => ast_string("default")})
|
278
281
|
)
|
279
282
|
resource = Puppet::Resource.new("default_param", "name")
|
280
|
-
lambda { resource.set_default_parameters(
|
283
|
+
lambda { resource.set_default_parameters(scope) }.should raise_error(Puppet::DevError)
|
281
284
|
end
|
282
285
|
|
283
286
|
it "should evaluate and set any default values when no value is provided" do
|
284
287
|
Puppet::Node::Environment.new.known_resource_types.add(
|
285
|
-
Puppet::Resource::Type.new(:definition, "default_param", :arguments => {"a" =>
|
288
|
+
Puppet::Resource::Type.new(:definition, "default_param", :arguments => {"a" => ast_string("a_default_value")})
|
286
289
|
)
|
287
|
-
resource = Puppet::Parser::Resource.new("default_param", "name", :scope =>
|
288
|
-
resource.set_default_parameters(
|
290
|
+
resource = Puppet::Parser::Resource.new("default_param", "name", :scope => scope)
|
291
|
+
resource.set_default_parameters(scope)
|
289
292
|
resource["a"].should == "a_default_value"
|
290
293
|
end
|
291
294
|
|
292
295
|
it "should skip attributes with no default value" do
|
293
296
|
Puppet::Node::Environment.new.known_resource_types.add(
|
294
|
-
Puppet::Resource::Type.new(:definition, "no_default_param", :arguments => {"a" =>
|
297
|
+
Puppet::Resource::Type.new(:definition, "no_default_param", :arguments => {"a" => ast_string("a_default_value")})
|
295
298
|
)
|
296
|
-
resource = Puppet::Parser::Resource.new("no_default_param", "name", :scope =>
|
297
|
-
lambda { resource.set_default_parameters(
|
299
|
+
resource = Puppet::Parser::Resource.new("no_default_param", "name", :scope => scope)
|
300
|
+
lambda { resource.set_default_parameters(scope) }.should_not raise_error
|
298
301
|
end
|
299
302
|
|
300
303
|
it "should return the list of default parameters set" do
|
301
304
|
Puppet::Node::Environment.new.known_resource_types.add(
|
302
|
-
Puppet::Resource::Type.new(:definition, "default_param", :arguments => {"a" =>
|
305
|
+
Puppet::Resource::Type.new(:definition, "default_param", :arguments => {"a" => ast_string("a_default_value")})
|
303
306
|
)
|
304
|
-
resource = Puppet::Parser::Resource.new("default_param", "name", :scope =>
|
305
|
-
resource.set_default_parameters(
|
307
|
+
resource = Puppet::Parser::Resource.new("default_param", "name", :scope => scope)
|
308
|
+
resource.set_default_parameters(scope).should == ["a"]
|
306
309
|
end
|
307
310
|
|
308
311
|
describe "when the resource type is :hostclass" do
|
@@ -315,26 +318,52 @@ describe Puppet::Resource do
|
|
315
318
|
environment = Puppet::Node::Environment.new(environment_name)
|
316
319
|
environment.known_resource_types.add(apache)
|
317
320
|
|
318
|
-
|
319
|
-
|
320
|
-
|
321
|
+
scope.stubs(:host).returns('host')
|
322
|
+
scope.stubs(:environment).returns(Puppet::Node::Environment.new(environment_name))
|
323
|
+
scope.stubs(:facts).returns(Puppet::Node::Facts.new("facts", fact_values))
|
321
324
|
end
|
322
325
|
|
323
326
|
context "when no value is provided" do
|
327
|
+
before(:each) do
|
328
|
+
Puppet[:binder] = true
|
329
|
+
end
|
330
|
+
|
324
331
|
let(:resource) do
|
325
|
-
Puppet::Parser::Resource.new("class", "apache", :scope =>
|
332
|
+
Puppet::Parser::Resource.new("class", "apache", :scope => scope)
|
326
333
|
end
|
327
334
|
|
328
335
|
it "should query the data_binding terminus using a namespaced key" do
|
329
336
|
Puppet::DataBinding.indirection.expects(:find).with(
|
330
337
|
'apache::port', all_of(has_key(:environment), has_key(:variables)))
|
331
|
-
resource.set_default_parameters(
|
338
|
+
resource.set_default_parameters(scope)
|
339
|
+
end
|
340
|
+
|
341
|
+
it "should query the injector using a namespaced key" do
|
342
|
+
compiler.injector.expects(:lookup).with(scope, 'apache::port')
|
343
|
+
resource.set_default_parameters(scope)
|
332
344
|
end
|
333
345
|
|
334
346
|
it "should use the value from the data_binding terminus" do
|
335
347
|
Puppet::DataBinding.indirection.expects(:find).returns('443')
|
336
348
|
|
337
|
-
resource.set_default_parameters(
|
349
|
+
resource.set_default_parameters(scope)
|
350
|
+
|
351
|
+
resource[:port].should == '443'
|
352
|
+
end
|
353
|
+
|
354
|
+
it "should use the value from the injector" do
|
355
|
+
compiler.injector.expects(:lookup).with(scope, 'apache::port').returns('443')
|
356
|
+
|
357
|
+
resource.set_default_parameters(scope)
|
358
|
+
|
359
|
+
resource[:port].should == '443'
|
360
|
+
end
|
361
|
+
|
362
|
+
it "should not call the DataBinding terminus when injector produces a value" do
|
363
|
+
compiler.injector.expects(:lookup).with(scope, 'apache::port').returns('443')
|
364
|
+
Puppet::DataBinding.indirection.expects(:find).never()
|
365
|
+
|
366
|
+
resource.set_default_parameters(scope)
|
338
367
|
|
339
368
|
resource[:port].should == '443'
|
340
369
|
end
|
@@ -342,7 +371,15 @@ describe Puppet::Resource do
|
|
342
371
|
it "should use the default value if the data_binding terminus returns nil" do
|
343
372
|
Puppet::DataBinding.indirection.expects(:find).returns(nil)
|
344
373
|
|
345
|
-
resource.set_default_parameters(
|
374
|
+
resource.set_default_parameters(scope)
|
375
|
+
|
376
|
+
resource[:port].should == '80'
|
377
|
+
end
|
378
|
+
|
379
|
+
it "should use the default value if the injector returns nil" do
|
380
|
+
compiler.injector.expects(:lookup).returns(nil)
|
381
|
+
|
382
|
+
resource.set_default_parameters(scope)
|
346
383
|
|
347
384
|
resource[:port].should == '80'
|
348
385
|
end
|
@@ -356,18 +393,25 @@ describe Puppet::Resource do
|
|
356
393
|
end
|
357
394
|
|
358
395
|
let(:resource) do
|
359
|
-
Puppet::Parser::Resource.new("class", "apache", :scope =>
|
396
|
+
Puppet::Parser::Resource.new("class", "apache", :scope => scope,
|
360
397
|
:parameters => [port_parameter])
|
361
398
|
end
|
362
399
|
|
363
400
|
it "should not query the data_binding terminus" do
|
364
401
|
Puppet::DataBinding.indirection.expects(:find).never
|
365
|
-
resource.set_default_parameters(
|
402
|
+
resource.set_default_parameters(scope)
|
403
|
+
end
|
404
|
+
|
405
|
+
it "should not query the injector" do
|
406
|
+
# enable the injector
|
407
|
+
Puppet[:binder] = true
|
408
|
+
compiler.injector.expects(:find).never
|
409
|
+
resource.set_default_parameters(scope)
|
366
410
|
end
|
367
411
|
|
368
412
|
it "should use the value provided" do
|
369
413
|
Puppet::DataBinding.indirection.expects(:find).never
|
370
|
-
resource.set_default_parameters(
|
414
|
+
resource.set_default_parameters(scope).should == []
|
371
415
|
resource[:port].should == '8080'
|
372
416
|
end
|
373
417
|
end
|
data/spec/unit/run_spec.rb
CHANGED
@@ -155,5 +155,21 @@ describe Puppet::Run do
|
|
155
155
|
run.background.should be_true
|
156
156
|
run.status.should == 'success'
|
157
157
|
end
|
158
|
+
|
159
|
+
it "should round trip through pson" do
|
160
|
+
run = Puppet::Run.new(
|
161
|
+
:tags => ['a', 'b', 'c'],
|
162
|
+
:ignoreschedules => true,
|
163
|
+
:pluginsync => false,
|
164
|
+
:background => true
|
165
|
+
)
|
166
|
+
run.instance_variable_set(:@status, true)
|
167
|
+
|
168
|
+
tripped = Puppet::Run.convert_from(:pson, run.render(:pson))
|
169
|
+
|
170
|
+
tripped.options.should == run.options
|
171
|
+
tripped.status.should == run.status
|
172
|
+
tripped.background.should == run.background
|
173
|
+
end
|
158
174
|
end
|
159
175
|
end
|
@@ -34,14 +34,15 @@ describe Puppet::Scheduler::Scheduler do
|
|
34
34
|
job
|
35
35
|
end
|
36
36
|
|
37
|
+
let(:scheduler) { Puppet::Scheduler::Scheduler.new(timer) }
|
38
|
+
|
37
39
|
it "uses the minimum interval" do
|
38
40
|
later_job = one_time_job(7)
|
39
41
|
earlier_job = one_time_job(2)
|
40
|
-
scheduler = Puppet::Scheduler::Scheduler.new([later_job, earlier_job], timer)
|
41
42
|
later_job.last_run = now
|
42
43
|
earlier_job.last_run = now
|
43
44
|
|
44
|
-
scheduler.run_loop
|
45
|
+
scheduler.run_loop([later_job, earlier_job])
|
45
46
|
|
46
47
|
timer.wait_for_calls.should == [2, 5]
|
47
48
|
end
|
@@ -50,9 +51,8 @@ describe Puppet::Scheduler::Scheduler do
|
|
50
51
|
enabled = one_time_job(7)
|
51
52
|
enabled.last_run = now
|
52
53
|
disabled = disabled_job(2)
|
53
|
-
scheduler = Puppet::Scheduler::Scheduler.new([enabled, disabled], timer)
|
54
54
|
|
55
|
-
scheduler.run_loop
|
55
|
+
scheduler.run_loop([enabled, disabled])
|
56
56
|
|
57
57
|
timer.wait_for_calls.should == [7]
|
58
58
|
end
|
@@ -60,46 +60,35 @@ describe Puppet::Scheduler::Scheduler do
|
|
60
60
|
it "asks the timer to wait for the job interval" do
|
61
61
|
job = one_time_job(5)
|
62
62
|
job.last_run = now
|
63
|
-
scheduler = Puppet::Scheduler::Scheduler.new([job], timer)
|
64
63
|
|
65
|
-
scheduler.run_loop
|
64
|
+
scheduler.run_loop([job])
|
66
65
|
|
67
66
|
timer.wait_for_calls.should == [5]
|
68
67
|
end
|
69
68
|
|
70
69
|
it "does not run when there are no jobs" do
|
71
|
-
|
72
|
-
scheduler = Puppet::Scheduler::Scheduler.new([], timer)
|
73
|
-
|
74
|
-
timer.stubs(:now).returns(now)
|
75
|
-
timer.expects(:wait_for).never
|
70
|
+
scheduler.run_loop([])
|
76
71
|
|
77
|
-
|
72
|
+
timer.wait_for_calls.should be_empty
|
78
73
|
end
|
79
74
|
|
80
75
|
it "does not run when there are only disabled jobs" do
|
81
|
-
timer = mock 'no run timer'
|
82
76
|
disabled_job = Puppet::Scheduler::Job.new(0)
|
83
|
-
scheduler = Puppet::Scheduler::Scheduler.new([disabled_job], timer)
|
84
|
-
|
85
77
|
disabled_job.disable
|
86
|
-
timer.stubs(:now).returns(now)
|
87
|
-
timer.expects(:wait_for).never
|
88
78
|
|
89
|
-
scheduler.run_loop
|
79
|
+
scheduler.run_loop([disabled_job])
|
80
|
+
|
81
|
+
timer.wait_for_calls.should be_empty
|
90
82
|
end
|
91
83
|
|
92
84
|
it "stops running when there are no more enabled jobs" do
|
93
|
-
timer = mock 'run once timer'
|
94
85
|
disabling_job = Puppet::Scheduler::Job.new(0) do |j|
|
95
86
|
j.disable
|
96
87
|
end
|
97
|
-
scheduler = Puppet::Scheduler::Scheduler.new([disabling_job], timer)
|
98
88
|
|
99
|
-
|
100
|
-
timer.expects(:wait_for).once
|
89
|
+
scheduler.run_loop([disabling_job])
|
101
90
|
|
102
|
-
|
91
|
+
timer.wait_for_calls.size.should == 1
|
103
92
|
end
|
104
93
|
|
105
94
|
it "marks the start of the run loop" do
|
@@ -107,8 +96,7 @@ describe Puppet::Scheduler::Scheduler do
|
|
107
96
|
|
108
97
|
disabled_job.disable
|
109
98
|
|
110
|
-
scheduler
|
111
|
-
scheduler.run_loop
|
99
|
+
scheduler.run_loop([disabled_job])
|
112
100
|
|
113
101
|
disabled_job.start_time.should == now
|
114
102
|
end
|
@@ -121,8 +109,7 @@ describe Puppet::Scheduler::Scheduler do
|
|
121
109
|
job.disable if countdown == 0
|
122
110
|
end
|
123
111
|
|
124
|
-
scheduler
|
125
|
-
scheduler.run_loop
|
112
|
+
scheduler.run_loop([slow_job])
|
126
113
|
|
127
114
|
timer.wait_for_calls.should == [0, 3, 7, 3]
|
128
115
|
end
|
data/spec/unit/semver_spec.rb
CHANGED
@@ -2,6 +2,11 @@ require 'spec_helper'
|
|
2
2
|
require 'semver'
|
3
3
|
|
4
4
|
describe SemVer do
|
5
|
+
|
6
|
+
describe 'MAX should be +Infinity' do
|
7
|
+
SemVer::MAX.major.infinite?.should == 1
|
8
|
+
end
|
9
|
+
|
5
10
|
describe '::valid?' do
|
6
11
|
it 'should validate basic version strings' do
|
7
12
|
%w[ 0.0.0 999.999.999 v0.0.0 v999.999.999 ].each do |vstring|
|
@@ -0,0 +1,27 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
require 'puppet/settings'
|
4
|
+
|
5
|
+
describe Puppet::Settings::EnumSetting do
|
6
|
+
it "allows a configured value" do
|
7
|
+
setting = enum_setting_allowing("allowed")
|
8
|
+
|
9
|
+
expect(setting.munge("allowed")).to eq("allowed")
|
10
|
+
end
|
11
|
+
|
12
|
+
it "disallows a value that is not configured" do
|
13
|
+
setting = enum_setting_allowing("allowed", "also allowed")
|
14
|
+
|
15
|
+
expect do
|
16
|
+
setting.munge("disallowed")
|
17
|
+
end.to raise_error(Puppet::Settings::ValidationError,
|
18
|
+
"Invalid value 'disallowed' for parameter testing. Allowed values are 'allowed', 'also allowed'")
|
19
|
+
end
|
20
|
+
|
21
|
+
def enum_setting_allowing(*values)
|
22
|
+
Puppet::Settings::EnumSetting.new(:settings => mock('settings'),
|
23
|
+
:name => "testing",
|
24
|
+
:desc => "description of testing",
|
25
|
+
:values => values)
|
26
|
+
end
|
27
|
+
end
|
data/spec/unit/settings_spec.rb
CHANGED
@@ -266,7 +266,7 @@ describe Puppet::Settings do
|
|
266
266
|
@settings[:myval] = "12"
|
267
267
|
@settings.set_by_cli?(:myval).should be_false
|
268
268
|
end
|
269
|
-
|
269
|
+
|
270
270
|
describe "setbycli" do
|
271
271
|
it "should generate a deprecation warning" do
|
272
272
|
Puppet.expects(:deprecation_warning)
|
@@ -289,11 +289,17 @@ describe Puppet::Settings do
|
|
289
289
|
@settings.define_settings :mysection,
|
290
290
|
:one => { :default => "whah", :desc => "yay" },
|
291
291
|
:two => { :default => "$one yay", :desc => "bah" }
|
292
|
+
@settings.expects(:unsafe_flush_cache)
|
292
293
|
@settings[:two].should == "whah yay"
|
293
294
|
@settings.handlearg("--one", "else")
|
294
295
|
@settings[:two].should == "else yay"
|
295
296
|
end
|
296
297
|
|
298
|
+
it "should clear the cache when the preferred_run_mode is changed" do
|
299
|
+
@settings.expects(:flush_cache)
|
300
|
+
@settings.preferred_run_mode = :master
|
301
|
+
end
|
302
|
+
|
297
303
|
it "should not clear other values when setting getopt-specific values" do
|
298
304
|
@settings[:myval] = "yay"
|
299
305
|
@settings.handlearg("--no-bool", "")
|
@@ -477,7 +483,8 @@ describe Puppet::Settings do
|
|
477
483
|
:one => { :default => "ONE", :desc => "a" },
|
478
484
|
:two => { :default => "$one TWO", :desc => "b"},
|
479
485
|
:three => { :default => "$one $two THREE", :desc => "c"},
|
480
|
-
:four => { :default => "$two $three FOUR", :desc => "d"}
|
486
|
+
:four => { :default => "$two $three FOUR", :desc => "d"},
|
487
|
+
:five => { :default => nil, :desc => "e" }
|
481
488
|
FileTest.stubs(:exist?).returns true
|
482
489
|
end
|
483
490
|
|
@@ -535,6 +542,20 @@ describe Puppet::Settings do
|
|
535
542
|
@settings[:two].should == "one TWO"
|
536
543
|
end
|
537
544
|
|
545
|
+
describe "caching values that evaluate to false" do
|
546
|
+
it "caches nil" do
|
547
|
+
@settings.expects(:convert).once.returns nil
|
548
|
+
@settings[:five].should be_nil
|
549
|
+
@settings[:five].should be_nil
|
550
|
+
end
|
551
|
+
|
552
|
+
it "caches false" do
|
553
|
+
@settings.expects(:convert).once.returns false
|
554
|
+
@settings[:five].should == false
|
555
|
+
@settings[:five].should == false
|
556
|
+
end
|
557
|
+
end
|
558
|
+
|
538
559
|
it "should not cache values such that information from one environment is returned for another environment" do
|
539
560
|
text = "[env1]\none = oneval\n[env2]\none = twoval\n"
|
540
561
|
@settings.stubs(:read_file).returns(text)
|
@@ -984,65 +1005,53 @@ describe Puppet::Settings do
|
|
984
1005
|
@settings.stubs(:user_config_file).returns(@userconfig)
|
985
1006
|
end
|
986
1007
|
|
987
|
-
it "
|
988
|
-
file = mock 'file'
|
989
|
-
Puppet::Util::LoadedFile.expects(:new).with(@file).returns file
|
990
|
-
|
991
|
-
file.expects(:changed?)
|
992
|
-
|
993
|
-
@settings.stubs(:parse)
|
994
|
-
@settings.reparse_config_files
|
995
|
-
end
|
996
|
-
|
997
|
-
it "should not create the LoadedFile instance and should not parse if the file does not exist" do
|
1008
|
+
it "does not create the WatchedFile instance and should not parse if the file does not exist" do
|
998
1009
|
FileTest.expects(:exist?).with(@file).returns false
|
999
|
-
Puppet::Util::
|
1010
|
+
Puppet::Util::WatchedFile.expects(:new).never
|
1000
1011
|
|
1001
1012
|
@settings.expects(:parse_config_files).never
|
1002
1013
|
|
1003
1014
|
@settings.reparse_config_files
|
1004
1015
|
end
|
1005
1016
|
|
1006
|
-
|
1007
|
-
|
1008
|
-
|
1017
|
+
context "and watched file exists" do
|
1018
|
+
before do
|
1019
|
+
@watched_file = Puppet::Util::WatchedFile.new(@file)
|
1020
|
+
Puppet::Util::WatchedFile.expects(:new).with(@file).returns @watched_file
|
1021
|
+
end
|
1009
1022
|
|
1010
|
-
file
|
1023
|
+
it "uses a WatchedFile instance to determine if the file has changed" do
|
1024
|
+
@watched_file.expects(:changed?)
|
1011
1025
|
|
1012
|
-
|
1026
|
+
@settings.reparse_config_files
|
1027
|
+
end
|
1013
1028
|
|
1014
|
-
|
1015
|
-
|
1029
|
+
it "does not reparse if the file has not changed" do
|
1030
|
+
@watched_file.expects(:changed?).returns false
|
1016
1031
|
|
1017
|
-
|
1018
|
-
file = stub 'file', :file => @file
|
1019
|
-
Puppet::Util::LoadedFile.expects(:new).with(@file).returns file
|
1032
|
+
@settings.expects(:parse_config_files).never
|
1020
1033
|
|
1021
|
-
|
1034
|
+
@settings.reparse_config_files
|
1035
|
+
end
|
1022
1036
|
|
1023
|
-
|
1037
|
+
it "reparses if the file has changed" do
|
1038
|
+
@watched_file.expects(:changed?).returns true
|
1024
1039
|
|
1025
|
-
|
1026
|
-
end
|
1040
|
+
@settings.expects(:unsafe_parse).with(@file)
|
1027
1041
|
|
1028
|
-
|
1029
|
-
|
1030
|
-
text = "[main]\none = disk-init\n"
|
1031
|
-
file = mock 'file'
|
1032
|
-
file.stubs(:changed?).returns(true)
|
1033
|
-
file.stubs(:file).returns(@file)
|
1034
|
-
@settings[:one] = "init"
|
1035
|
-
@settings.files = [file]
|
1042
|
+
@settings.reparse_config_files
|
1043
|
+
end
|
1036
1044
|
|
1037
|
-
|
1038
|
-
|
1045
|
+
it "replaces in-memory values with on-file values" do
|
1046
|
+
@watched_file.stubs(:changed?).returns(true)
|
1047
|
+
@settings[:one] = "init"
|
1039
1048
|
|
1040
|
-
|
1041
|
-
|
1042
|
-
|
1043
|
-
|
1044
|
-
|
1045
|
-
|
1049
|
+
# Now replace the value
|
1050
|
+
text = "[main]\none = disk-replace\n"
|
1051
|
+
@settings.stubs(:read_file).returns(text)
|
1052
|
+
@settings.reparse_config_files
|
1053
|
+
@settings[:one].should == "disk-replace"
|
1054
|
+
end
|
1046
1055
|
end
|
1047
1056
|
|
1048
1057
|
it "should retain parameters set by cli when configuration files are reparsed" do
|