puppet 3.4.3 → 3.5.0.rc1
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/CONTRIBUTING.md +6 -6
- data/Gemfile +22 -16
- data/LICENSE +1 -1
- data/README.md +33 -11
- data/Rakefile +1 -1
- data/conf/auth.conf +4 -0
- data/ext/build_defaults.yaml +1 -1
- data/ext/debian/control +6 -6
- data/ext/ips/transforms +1 -1
- data/ext/nagios/naggen +1 -1
- data/ext/project_data.yaml +21 -1
- data/ext/puppet-test +3 -3
- data/ext/redhat/puppet.spec.erb +28 -2
- data/ext/suse/puppet.spec +1 -1
- data/ext/upload_facts.rb +1 -1
- data/ext/windows/service/daemon.rb +99 -20
- data/lib/hiera_puppet.rb +2 -2
- data/lib/puppet.rb +68 -5
- data/lib/puppet/agent.rb +5 -1
- data/lib/puppet/application.rb +20 -11
- data/lib/puppet/application/agent.rb +1 -1
- data/lib/puppet/application/apply.rb +61 -41
- data/lib/puppet/application/cert.rb +3 -3
- data/lib/puppet/application/device.rb +7 -8
- data/lib/puppet/application/doc.rb +1 -1
- data/lib/puppet/application/filebucket.rb +3 -3
- data/lib/puppet/application/kick.rb +2 -2
- data/lib/puppet/application/master.rb +1 -1
- data/lib/puppet/application/queue.rb +9 -9
- data/lib/puppet/application/resource.rb +2 -2
- data/lib/puppet/bindings.rb +6 -6
- data/lib/puppet/configurer.rb +17 -14
- data/lib/puppet/configurer/fact_handler.rb +1 -1
- data/lib/puppet/confine/any.rb +26 -0
- data/lib/puppet/confine/exists.rb +1 -1
- data/lib/puppet/confiner.rb +1 -0
- data/lib/puppet/context.rb +55 -0
- data/lib/puppet/context/trusted_information.rb +56 -0
- data/lib/puppet/defaults.rb +97 -26
- data/lib/puppet/environments.rb +187 -0
- data/lib/puppet/error.rb +2 -1
- data/lib/puppet/external/pson/common.rb +1 -1
- data/lib/puppet/external/pson/pure/generator.rb +1 -1
- data/lib/puppet/external/pson/pure/parser.rb +1 -1
- data/lib/puppet/face/config.rb +73 -15
- data/lib/puppet/face/file/store.rb +1 -1
- data/lib/puppet/face/help.rb +2 -1
- data/lib/puppet/face/help/action.erb +1 -0
- data/lib/puppet/face/help/face.erb +1 -0
- data/lib/puppet/face/help/global.erb +1 -0
- data/lib/puppet/face/help/man.erb +9 -8
- data/lib/puppet/face/module/list.rb +13 -7
- data/lib/puppet/face/node/clean.rb +2 -2
- data/lib/puppet/face/parser.rb +11 -5
- data/lib/puppet/face/status.rb +1 -1
- data/lib/puppet/feature/external_facts.rb +2 -2
- data/lib/puppet/feature/libuser.rb +1 -1
- data/lib/puppet/feature/msgpack.rb +2 -0
- data/lib/puppet/feature/rails.rb +2 -2
- data/lib/puppet/file_bucket/dipper.rb +9 -9
- data/lib/puppet/file_bucket/file.rb +9 -5
- data/lib/puppet/file_serving/base.rb +1 -1
- data/lib/puppet/file_serving/configuration.rb +1 -1
- data/lib/puppet/file_serving/configuration/parser.rb +3 -3
- data/lib/puppet/file_serving/content.rb +2 -2
- data/lib/puppet/file_serving/fileset.rb +4 -4
- data/lib/puppet/file_serving/metadata.rb +69 -15
- data/lib/puppet/file_serving/mount/file.rb +1 -1
- data/lib/puppet/file_system.rb +361 -1
- data/lib/puppet/file_system/file18.rb +3 -3
- data/lib/puppet/file_system/file19.rb +3 -3
- data/lib/puppet/file_system/file19windows.rb +18 -23
- data/lib/puppet/file_system/file_impl.rb +145 -0
- data/lib/puppet/file_system/memory_file.rb +23 -9
- data/lib/puppet/file_system/memory_impl.rb +64 -0
- data/lib/puppet/forge.rb +4 -3
- data/lib/puppet/forge/repository.rb +0 -1
- data/lib/puppet/graph/relationship_graph.rb +7 -7
- data/lib/puppet/indirector.rb +1 -0
- data/lib/puppet/indirector/catalog/compiler.rb +3 -30
- data/lib/puppet/indirector/catalog/msgpack.rb +6 -0
- data/lib/puppet/indirector/catalog/static_compiler.rb +3 -7
- data/lib/puppet/indirector/data_binding/hiera.rb +1 -1
- data/lib/puppet/indirector/direct_file_server.rb +2 -2
- data/lib/puppet/indirector/exec.rb +1 -1
- data/lib/puppet/indirector/face.rb +3 -2
- data/lib/puppet/indirector/facts/facter.rb +1 -1
- data/lib/puppet/indirector/file_bucket_file/file.rb +25 -15
- data/lib/puppet/indirector/file_metadata/file.rb +1 -1
- data/lib/puppet/indirector/file_server.rb +1 -1
- data/lib/puppet/indirector/indirection.rb +1 -1
- data/lib/puppet/indirector/json.rb +4 -4
- data/lib/puppet/indirector/key/file.rb +8 -5
- data/lib/puppet/indirector/ldap.rb +1 -1
- data/lib/puppet/indirector/memory.rb +4 -0
- data/lib/puppet/indirector/msgpack.rb +82 -0
- data/lib/puppet/indirector/node/exec.rb +1 -1
- data/lib/puppet/indirector/node/ldap.rb +3 -3
- data/lib/puppet/indirector/node/msgpack.rb +7 -0
- data/lib/puppet/indirector/node/yaml.rb +15 -0
- data/lib/puppet/indirector/queue.rb +3 -2
- data/lib/puppet/indirector/report/msgpack.rb +11 -0
- data/lib/puppet/indirector/request.rb +17 -20
- data/lib/puppet/indirector/resource/rest.rb +1 -1
- data/lib/puppet/indirector/resource_type/parser.rb +3 -13
- data/lib/puppet/indirector/rest.rb +6 -7
- data/lib/puppet/indirector/ssl_file.rb +7 -7
- data/lib/puppet/indirector/yaml.rb +9 -13
- data/lib/puppet/metatype/manager.rb +12 -7
- data/lib/puppet/module.rb +14 -9
- data/lib/puppet/module_tool.rb +21 -26
- data/lib/puppet/module_tool/applications/application.rb +1 -1
- data/lib/puppet/module_tool/applications/generator.rb +2 -1
- data/lib/puppet/module_tool/applications/installer.rb +9 -4
- data/lib/puppet/module_tool/applications/uninstaller.rb +10 -7
- data/lib/puppet/module_tool/applications/unpacker.rb +1 -1
- data/lib/puppet/module_tool/applications/upgrader.rb +11 -8
- data/lib/puppet/module_tool/checksums.rb +1 -1
- data/lib/puppet/module_tool/contents_description.rb +2 -0
- data/lib/puppet/module_tool/dependency.rb +4 -5
- data/lib/puppet/module_tool/errors.rb +2 -0
- data/lib/puppet/module_tool/install_directory.rb +3 -0
- data/lib/puppet/module_tool/metadata.rb +3 -5
- data/lib/puppet/module_tool/modulefile.rb +3 -0
- data/lib/puppet/module_tool/shared_behaviors.rb +6 -1
- data/lib/puppet/module_tool/skeleton.rb +3 -0
- data/lib/puppet/module_tool/tar.rb +3 -0
- data/lib/puppet/network/auth_config_parser.rb +1 -1
- data/lib/puppet/network/authconfig.rb +5 -2
- data/lib/puppet/network/authentication.rb +7 -2
- data/lib/puppet/network/authorization.rb +2 -2
- data/lib/puppet/network/format_support.rb +4 -0
- data/lib/puppet/network/formats.rb +9 -14
- data/lib/puppet/network/http.rb +11 -0
- data/lib/puppet/network/http/api.rb +0 -2
- data/lib/puppet/network/http/api/v1.rb +146 -11
- data/lib/puppet/network/http/api/v2.rb +32 -0
- data/lib/puppet/network/http/api/v2/authorization.rb +13 -0
- data/lib/puppet/network/http/api/v2/environments.rb +21 -0
- data/lib/puppet/network/http/connection.rb +94 -37
- data/lib/puppet/network/http/error.rb +69 -0
- data/lib/puppet/network/http/handler.rb +28 -196
- data/lib/puppet/network/http/issues.rb +9 -0
- data/lib/puppet/network/http/memory_response.rb +13 -0
- data/lib/puppet/network/http/rack/rest.rb +10 -18
- data/lib/puppet/network/http/request.rb +56 -0
- data/lib/puppet/network/http/response.rb +11 -0
- data/lib/puppet/network/http/route.rb +91 -0
- data/lib/puppet/network/http/webrick.rb +1 -1
- data/lib/puppet/network/http/webrick/rest.rb +7 -12
- data/lib/puppet/network/http_pool.rb +3 -3
- data/lib/puppet/network/rights.rb +4 -4
- data/lib/puppet/node.rb +23 -14
- data/lib/puppet/node/environment.rb +149 -125
- data/lib/puppet/node/facts.rb +6 -5
- data/lib/puppet/parameter.rb +1 -1
- data/lib/puppet/parser/ast.rb +1 -1
- data/lib/puppet/parser/ast/block_expression.rb +1 -6
- data/lib/puppet/parser/ast/collexpr.rb +54 -2
- data/lib/puppet/parser/ast/lambda.rb +9 -0
- data/lib/puppet/parser/ast/leaf.rb +15 -0
- data/lib/puppet/parser/ast/pops_bridge.rb +168 -0
- data/lib/puppet/parser/code_merger.rb +13 -0
- data/lib/puppet/parser/collector.rb +1 -1
- data/lib/puppet/parser/compiler.rb +28 -30
- data/lib/puppet/parser/e4_parser_adapter.rb +81 -0
- data/lib/puppet/parser/e_parser_adapter.rb +0 -1
- data/lib/puppet/parser/files.rb +12 -7
- data/lib/puppet/parser/functions.rb +36 -29
- data/lib/puppet/parser/functions/collect.rb +1 -1
- data/lib/puppet/parser/functions/defined.rb +40 -16
- data/lib/puppet/parser/functions/each.rb +55 -41
- data/lib/puppet/parser/functions/epp.rb +41 -0
- data/lib/puppet/parser/functions/extlookup.rb +2 -2
- data/lib/puppet/parser/functions/file.rb +1 -1
- data/lib/puppet/parser/functions/filter.rb +68 -16
- data/lib/puppet/parser/functions/generate.rb +1 -1
- data/lib/puppet/parser/functions/include.rb +3 -2
- data/lib/puppet/parser/functions/inline_epp.rb +79 -0
- data/lib/puppet/parser/functions/inline_template.rb +1 -1
- data/lib/puppet/parser/functions/lookup.rb +127 -27
- data/lib/puppet/parser/functions/map.rb +64 -12
- data/lib/puppet/parser/functions/reduce.rb +40 -16
- data/lib/puppet/parser/functions/select.rb +1 -1
- data/lib/puppet/parser/functions/slice.rb +42 -23
- data/lib/puppet/parser/grammar.ra +3 -0
- data/lib/puppet/parser/lexer.rb +10 -9
- data/lib/puppet/parser/parser.rb +15 -12
- data/lib/puppet/parser/parser_factory.rb +26 -1
- data/lib/puppet/parser/parser_support.rb +13 -4
- data/lib/puppet/parser/resource.rb +1 -1
- data/lib/puppet/parser/scope.rb +246 -97
- data/lib/puppet/parser/templatewrapper.rb +1 -1
- data/lib/puppet/parser/type_loader.rb +13 -2
- data/lib/puppet/pops.rb +15 -1
- data/lib/puppet/pops/adapters.rb +64 -32
- data/lib/puppet/pops/binder/binder.rb +122 -150
- data/lib/puppet/pops/binder/binder_issues.rb +1 -21
- data/lib/puppet/pops/binder/bindings_checker.rb +0 -20
- data/lib/puppet/pops/binder/bindings_composer.rb +4 -70
- data/lib/puppet/pops/binder/bindings_factory.rb +16 -58
- data/lib/puppet/pops/binder/bindings_label_provider.rb +0 -3
- data/lib/puppet/pops/binder/bindings_loader.rb +13 -4
- data/lib/puppet/pops/binder/bindings_model.rb +17 -31
- data/lib/puppet/pops/binder/bindings_model_dumper.rb +2 -20
- data/lib/puppet/pops/binder/config/binder_config.rb +8 -40
- data/lib/puppet/pops/binder/config/binder_config_checker.rb +2 -43
- data/lib/puppet/pops/binder/config/issues.rb +1 -21
- data/lib/puppet/pops/binder/injector.rb +86 -7
- data/lib/puppet/pops/binder/injector_entry.rb +6 -2
- data/lib/puppet/pops/binder/key_factory.rb +7 -1
- data/lib/puppet/pops/binder/lookup.rb +191 -0
- data/lib/puppet/pops/binder/producers.rb +5 -5
- data/lib/puppet/pops/binder/scheme_handler/symbolic_scheme.rb +2 -3
- data/lib/puppet/pops/binder/system_bindings.rb +4 -16
- data/lib/puppet/pops/containment.rb +72 -5
- data/lib/puppet/pops/evaluator/access_operator.rb +548 -0
- data/lib/puppet/pops/evaluator/closure.rb +57 -0
- data/lib/puppet/pops/evaluator/compare_operator.rb +168 -0
- data/lib/puppet/pops/evaluator/epp_evaluator.rb +87 -0
- data/lib/puppet/pops/evaluator/evaluator_impl.rb +1069 -0
- data/lib/puppet/pops/evaluator/external_syntax_support.rb +49 -0
- data/lib/puppet/pops/evaluator/relationship_operator.rb +156 -0
- data/lib/puppet/pops/evaluator/runtime3_support.rb +489 -0
- data/lib/puppet/pops/issue_reporter.rb +8 -4
- data/lib/puppet/pops/issues.rb +199 -4
- data/lib/puppet/pops/label_provider.rb +5 -0
- data/lib/puppet/pops/model/ast_transformer.rb +55 -31
- data/lib/puppet/pops/model/ast_tree_dumper.rb +9 -1
- data/lib/puppet/pops/model/factory.rb +265 -111
- data/lib/puppet/pops/model/model.rb +179 -140
- data/lib/puppet/pops/model/model_label_provider.rb +38 -9
- data/lib/puppet/pops/model/model_tree_dumper.rb +38 -13
- data/lib/puppet/pops/parser/code_merger.rb +17 -0
- data/lib/puppet/pops/parser/egrammar.ra +110 -61
- data/lib/puppet/pops/parser/eparser.rb +1415 -1092
- data/lib/puppet/pops/parser/epp_parser.rb +51 -0
- data/lib/puppet/pops/parser/epp_support.rb +247 -0
- data/lib/puppet/pops/parser/evaluating_parser.rb +53 -15
- data/lib/puppet/pops/parser/heredoc_support.rb +139 -0
- data/lib/puppet/pops/parser/interpolation_support.rb +227 -0
- data/lib/puppet/pops/parser/lexer.rb +83 -192
- data/lib/puppet/pops/parser/lexer2.rb +684 -0
- data/lib/puppet/pops/parser/lexer_support.rb +107 -0
- data/lib/puppet/pops/parser/locatable.rb +23 -0
- data/lib/puppet/pops/parser/locator.rb +291 -0
- data/lib/puppet/pops/parser/makefile +1 -8
- data/lib/puppet/pops/parser/parser_support.rb +76 -48
- data/lib/puppet/pops/parser/slurp_support.rb +95 -0
- data/lib/puppet/pops/patterns.rb +13 -4
- data/lib/puppet/pops/types/class_loader.rb +2 -2
- data/lib/puppet/pops/types/enumeration.rb +34 -0
- data/lib/puppet/pops/types/type_calculator.rb +983 -58
- data/lib/puppet/pops/types/type_factory.rb +203 -15
- data/lib/puppet/pops/types/type_parser.rb +355 -12
- data/lib/puppet/pops/types/types.rb +314 -24
- data/lib/puppet/pops/utils.rb +23 -7
- data/lib/puppet/pops/validation.rb +14 -8
- data/lib/puppet/pops/validation/checker3_1.rb +17 -12
- data/lib/puppet/pops/validation/checker4_0.rb +514 -0
- data/lib/puppet/pops/validation/validator_factory_4_0.rb +31 -0
- data/lib/puppet/pops/visitor.rb +146 -4
- data/lib/puppet/property.rb +1 -1
- data/lib/puppet/property/ensure.rb +1 -1
- data/lib/puppet/provider.rb +47 -26
- data/lib/puppet/provider/aixobject.rb +3 -3
- data/lib/puppet/provider/augeas/augeas.rb +11 -11
- data/lib/puppet/provider/cron/crontab.rb +10 -1
- data/lib/puppet/provider/exec.rb +1 -1
- data/lib/puppet/provider/exec/posix.rb +1 -1
- data/lib/puppet/provider/exec/windows.rb +1 -1
- data/lib/puppet/provider/file/posix.rb +2 -2
- data/lib/puppet/provider/file/windows.rb +15 -9
- data/lib/puppet/provider/group/aix.rb +2 -2
- data/lib/puppet/provider/macauthorization/macauthorization.rb +3 -3
- data/lib/puppet/provider/mount.rb +7 -0
- data/lib/puppet/provider/mount/parsed.rb +0 -1
- data/lib/puppet/provider/naginator.rb +1 -1
- data/lib/puppet/provider/nameservice.rb +3 -3
- data/lib/puppet/provider/nameservice/directoryservice.rb +3 -3
- data/lib/puppet/provider/package/aix.rb +1 -1
- data/lib/puppet/provider/package/appdmg.rb +1 -4
- data/lib/puppet/provider/package/apple.rb +1 -1
- data/lib/puppet/provider/package/apt.rb +1 -1
- data/lib/puppet/provider/package/blastwave.rb +1 -1
- data/lib/puppet/provider/package/fink.rb +1 -1
- data/lib/puppet/provider/package/gem.rb +3 -3
- data/lib/puppet/provider/package/openbsd.rb +6 -4
- data/lib/puppet/provider/package/pacman.rb +58 -5
- data/lib/puppet/provider/package/pip.rb +2 -2
- data/lib/puppet/provider/package/pkgdmg.rb +25 -10
- data/lib/puppet/provider/package/pkgin.rb +48 -23
- data/lib/puppet/provider/package/pkgutil.rb +1 -1
- data/lib/puppet/provider/package/ports.rb +1 -1
- data/lib/puppet/provider/package/portupgrade.rb +7 -7
- data/lib/puppet/provider/package/rpm.rb +16 -8
- data/lib/puppet/provider/package/windows.rb +1 -1
- data/lib/puppet/provider/package/windows/package.rb +1 -1
- data/lib/puppet/provider/parsedfile.rb +1 -1
- data/lib/puppet/provider/selboolean/getsetsebool.rb +1 -1
- data/lib/puppet/provider/selmodule/semodule.rb +5 -5
- data/lib/puppet/provider/service/base.rb +1 -1
- data/lib/puppet/provider/service/bsd.rb +3 -3
- data/lib/puppet/provider/service/daemontools.rb +20 -20
- data/lib/puppet/provider/service/debian.rb +1 -1
- data/lib/puppet/provider/service/freebsd.rb +3 -3
- data/lib/puppet/provider/service/gentoo.rb +2 -2
- data/lib/puppet/provider/service/init.rb +5 -5
- data/lib/puppet/provider/service/launchd.rb +4 -4
- data/lib/puppet/provider/service/redhat.rb +2 -2
- data/lib/puppet/provider/service/runit.rb +4 -4
- data/lib/puppet/provider/service/service.rb +3 -4
- data/lib/puppet/provider/service/smf.rb +1 -1
- data/lib/puppet/provider/service/src.rb +3 -3
- data/lib/puppet/provider/service/systemd.rb +4 -4
- data/lib/puppet/provider/service/upstart.rb +22 -7
- data/lib/puppet/provider/service/windows.rb +7 -7
- data/lib/puppet/provider/ssh_authorized_key/parsed.rb +3 -3
- data/lib/puppet/provider/user/aix.rb +5 -5
- data/lib/puppet/provider/user/directoryservice.rb +8 -5
- data/lib/puppet/provider/user/ldap.rb +1 -1
- data/lib/puppet/provider/user/pw.rb +1 -1
- data/lib/puppet/provider/user/user_role_add.rb +2 -2
- data/lib/puppet/provider/user/useradd.rb +19 -5
- data/lib/puppet/provider/yumrepo/inifile.rb +187 -0
- data/lib/puppet/provider/zone/solaris.rb +4 -4
- data/lib/puppet/rails.rb +16 -11
- data/lib/puppet/rails/benchmark.rb +1 -1
- data/lib/puppet/rails/resource.rb +5 -1
- data/lib/puppet/reference/configuration.rb +1 -1
- data/lib/puppet/reference/report.rb +1 -1
- data/lib/puppet/relationship.rb +10 -5
- data/lib/puppet/reports/http.rb +8 -2
- data/lib/puppet/reports/rrdgraph.rb +1 -1
- data/lib/puppet/reports/store.rb +3 -3
- data/lib/puppet/reports/tagmail.rb +4 -4
- data/lib/puppet/resource.rb +37 -44
- data/lib/puppet/resource/catalog.rb +18 -20
- data/lib/puppet/resource/status.rb +7 -6
- data/lib/puppet/resource/type.rb +6 -5
- data/lib/puppet/resource/type_collection.rb +2 -2
- data/lib/puppet/run.rb +9 -8
- data/lib/puppet/settings.rb +395 -244
- data/lib/puppet/settings/base_setting.rb +10 -4
- data/lib/puppet/settings/config_file.rb +81 -44
- data/lib/puppet/settings/directory_setting.rb +1 -2
- data/lib/puppet/settings/file_setting.rb +12 -5
- data/lib/puppet/settings/ini_file.rb +171 -0
- data/lib/puppet/ssl/base.rb +4 -0
- data/lib/puppet/ssl/certificate_authority.rb +16 -11
- data/lib/puppet/ssl/certificate_authority/interface.rb +3 -2
- data/lib/puppet/ssl/certificate_factory.rb +50 -5
- data/lib/puppet/ssl/certificate_request.rb +2 -2
- data/lib/puppet/ssl/certificate_request_attributes.rb +1 -1
- data/lib/puppet/ssl/certificate_revocation_list.rb +3 -1
- data/lib/puppet/ssl/host.rb +9 -8
- data/lib/puppet/ssl/inventory.rb +1 -1
- data/lib/puppet/ssl/key.rb +1 -1
- data/lib/puppet/ssl/validator/default_validator.rb +1 -1
- data/lib/puppet/status.rb +8 -7
- data/lib/puppet/test/test_helper.rb +35 -4
- data/lib/puppet/transaction/event.rb +6 -5
- data/lib/puppet/transaction/report.rb +10 -10
- data/lib/puppet/type.rb +1 -3
- data/lib/puppet/type/augeas.rb +2 -1
- data/lib/puppet/type/cron.rb +41 -11
- data/lib/puppet/type/exec.rb +5 -5
- data/lib/puppet/type/file.rb +42 -4
- data/lib/puppet/type/file/content.rb +5 -6
- data/lib/puppet/type/file/ensure.rb +3 -3
- data/lib/puppet/type/file/source.rb +12 -6
- data/lib/puppet/type/file/target.rb +5 -5
- data/lib/puppet/type/k5login.rb +4 -4
- data/lib/puppet/type/mount.rb +1 -1
- data/lib/puppet/type/package.rb +79 -3
- data/lib/puppet/type/resources.rb +34 -5
- data/lib/puppet/type/selboolean.rb +1 -1
- data/lib/puppet/type/selmodule.rb +1 -1
- data/lib/puppet/type/ssh_authorized_key.rb +2 -1
- data/lib/puppet/type/sshkey.rb +2 -1
- data/lib/puppet/type/tidy.rb +1 -1
- data/lib/puppet/type/user.rb +4 -1
- data/lib/puppet/type/yumrepo.rb +219 -344
- data/lib/puppet/type/zone.rb +15 -5
- data/lib/puppet/util.rb +14 -13
- data/lib/puppet/util/adsi.rb +19 -3
- data/lib/puppet/util/autoload.rb +27 -24
- data/lib/puppet/util/backups.rb +6 -6
- data/lib/puppet/util/checksums.rb +2 -2
- data/lib/puppet/util/classgen.rb +1 -1
- data/lib/puppet/util/colors.rb +4 -12
- data/lib/puppet/util/command_line.rb +2 -2
- data/lib/puppet/util/command_line/trollop.rb +3 -3
- data/lib/puppet/util/docs.rb +2 -2
- data/lib/puppet/util/errors.rb +8 -1
- data/lib/puppet/util/execution.rb +12 -5
- data/lib/puppet/util/filetype.rb +5 -5
- data/lib/puppet/util/inifile.rb +19 -4
- data/lib/puppet/util/instrumentation/data.rb +5 -0
- data/lib/puppet/util/instrumentation/indirection_probe.rb +6 -1
- data/lib/puppet/util/instrumentation/listener.rb +6 -1
- data/lib/puppet/util/json_lockfile.rb +4 -1
- data/lib/puppet/util/ldap/connection.rb +1 -1
- data/lib/puppet/util/lockfile.rb +10 -6
- data/lib/puppet/util/log.rb +6 -1
- data/lib/puppet/util/log/destinations.rb +2 -2
- data/lib/puppet/util/metric.rb +9 -4
- data/lib/puppet/util/nagios_maker.rb +26 -1
- data/lib/puppet/util/network_device.rb +1 -1
- data/lib/puppet/util/network_device/config.rb +1 -1
- data/lib/puppet/util/network_device/transport/ssh.rb +3 -3
- data/lib/puppet/util/plugins.rb +1 -1
- data/lib/puppet/util/profiler.rb +13 -1
- data/lib/puppet/util/pson.rb +1 -1
- data/lib/puppet/util/queue/stomp.rb +2 -2
- data/lib/puppet/util/rdoc.rb +1 -1
- data/lib/puppet/util/rdoc/generators/puppet_generator.rb +1 -1
- data/lib/puppet/util/rdoc/parser/puppet_parser_core.rb +19 -19
- data/lib/puppet/util/reference.rb +1 -1
- data/lib/puppet/util/resource_template.rb +1 -1
- data/lib/puppet/util/retryaction.rb +1 -1
- data/lib/puppet/util/selinux.rb +2 -2
- data/lib/puppet/util/storage.rb +3 -3
- data/lib/puppet/util/symbolic_file_mode.rb +1 -1
- data/lib/puppet/util/tag_set.rb +15 -3
- data/lib/puppet/util/tagging.rb +12 -17
- data/lib/puppet/util/watched_file.rb +1 -1
- data/lib/puppet/util/watcher.rb +1 -1
- data/lib/puppet/util/windows/error.rb +2 -2
- data/lib/puppet/util/windows/file.rb +20 -4
- data/lib/puppet/util/windows/registry.rb +2 -2
- data/lib/puppet/vendor/safe_yaml/CHANGES.md +1 -1
- data/lib/puppet/version.rb +1 -1
- data/lib/puppetx.rb +1 -21
- data/lib/puppetx/puppet/syntax_checker.rb +1 -1
- data/lib/puppetx/puppetlabs/syntax_checkers/json.rb +9 -11
- data/spec/fixtures/integration/node/environment/sitedir/00_a.pp +2 -0
- data/spec/fixtures/integration/node/environment/sitedir/01_b.pp +6 -0
- data/spec/fixtures/{unit/pops/binder/hiera2/yaml_backend/empty/common.yaml → integration/node/environment/sitedir/03_empty.pp} +0 -0
- data/spec/fixtures/integration/node/environment/sitedir/04_include.pp +2 -0
- data/spec/fixtures/integration/provider/cron/crontab/purged +8 -0
- data/spec/fixtures/releases/jamtur01-apache/lib/puppet/provider/a2mod/debian.rb +1 -1
- data/spec/fixtures/unit/pops/binder/bindings_composer/ok/binder_config.yaml +3 -12
- data/spec/fixtures/unit/pops/binder/bindings_composer/ok/lib/puppet/bindings/confdirtest.rb +10 -0
- data/spec/fixtures/unit/pops/binder/bindings_composer/ok/modules/awesome2/lib/puppet/bindings/awesome2/default.rb +20 -0
- data/spec/fixtures/unit/pops/binder/bindings_composer/ok/modules/{awesome/lib/puppetx/awesome → awesome2/lib/puppetx/awesome2}/echo_scheme_handler.rb +2 -2
- data/spec/fixtures/unit/pops/binder/bindings_composer/ok/modules/bad/lib/puppet/bindings/bad/default.rb +5 -0
- data/spec/fixtures/unit/pops/binder/bindings_composer/ok/modules/good/lib/puppet/bindings/good/default.rb +6 -0
- data/spec/fixtures/unit/pops/binder/config/binder_config/ok/binder_config.yaml +2 -2
- data/spec/fixtures/unit/provider/service/systemd/{list_units → list_units_services} +0 -1
- data/spec/integration/agent/logging_spec.rb +1 -1
- data/spec/integration/application/apply_spec.rb +78 -3
- data/spec/integration/application/doc_spec.rb +3 -2
- data/spec/integration/configurer_spec.rb +5 -3
- data/spec/integration/directory_environments_spec.rb +50 -0
- data/spec/integration/indirector/direct_file_server_spec.rb +1 -1
- data/spec/integration/indirector/file_content/file_server_spec.rb +4 -5
- data/spec/integration/network/authconfig_spec.rb +4 -4
- data/spec/integration/network/formats_spec.rb +1 -1
- data/spec/integration/node/environment_spec.rb +67 -15
- data/spec/integration/node/facts_spec.rb +1 -1
- data/spec/integration/node_spec.rb +1 -1
- data/spec/integration/parser/catalog_spec.rb +100 -60
- data/spec/integration/parser/compiler_spec.rb +102 -13
- data/spec/integration/parser/future_compiler_spec.rb +416 -0
- data/spec/integration/parser/parser_spec.rb +44 -105
- data/spec/integration/parser/scope_spec.rb +614 -528
- data/spec/integration/provider/cron/crontab_spec.rb +21 -0
- data/spec/integration/provider/mount_spec.rb +15 -2
- data/spec/integration/resource/catalog_spec.rb +1 -1
- data/spec/integration/resource/type_collection_spec.rb +3 -4
- data/spec/integration/ssl/autosign_spec.rb +1 -1
- data/spec/integration/ssl/certificate_revocation_list_spec.rb +1 -1
- data/spec/integration/ssl/host_spec.rb +1 -1
- data/spec/integration/transaction_spec.rb +13 -13
- data/spec/integration/type/exec_spec.rb +2 -2
- data/spec/integration/type/file_spec.rb +114 -41
- data/spec/integration/type/nagios_spec.rb +80 -0
- data/spec/integration/type/tidy_spec.rb +2 -2
- data/spec/integration/util/execution_spec.rb +17 -0
- data/spec/integration/util/rdoc/parser_spec.rb +1 -1
- data/spec/integration/util/settings_spec.rb +1 -1
- data/spec/integration/util/windows/security_spec.rb +27 -2
- data/spec/lib/matchers/include.rb +27 -0
- data/spec/lib/matchers/include_spec.rb +32 -0
- data/spec/lib/matchers/json.rb +135 -79
- data/spec/lib/matchers/match_tokens2.rb +74 -0
- data/spec/lib/matchers/resource.rb +35 -0
- data/spec/lib/puppet/indirector/indirector_testing/memory.rb +7 -0
- data/spec/lib/puppet/indirector/indirector_testing/msgpack.rb +6 -0
- data/spec/lib/puppet/indirector_testing.rb +12 -2
- data/spec/lib/puppet_spec/files.rb +1 -0
- data/spec/lib/puppet_spec/matchers.rb +5 -0
- data/spec/lib/puppet_spec/modules.rb +1 -1
- data/spec/lib/puppet_spec/scope.rb +14 -0
- data/spec/shared_behaviours/file_server_terminus.rb +2 -2
- data/spec/spec_helper.rb +47 -17
- data/spec/unit/agent_spec.rb +8 -1
- data/spec/unit/application/agent_spec.rb +5 -4
- data/spec/unit/application/apply_spec.rb +34 -15
- data/spec/unit/application/device_spec.rb +27 -32
- data/spec/unit/application/doc_spec.rb +4 -4
- data/spec/unit/application/filebucket_spec.rb +1 -1
- data/spec/unit/application/master_spec.rb +2 -2
- data/spec/unit/application_spec.rb +1 -1
- data/spec/unit/configurer/downloader_spec.rb +1 -1
- data/spec/unit/configurer/fact_handler_spec.rb +5 -16
- data/spec/unit/configurer_spec.rb +2 -2
- data/spec/unit/confine/exists_spec.rb +5 -5
- data/spec/unit/context/trusted_information_spec.rb +124 -0
- data/spec/unit/context_spec.rb +74 -0
- data/spec/unit/environments_spec.rb +126 -0
- data/spec/unit/face/config_spec.rb +31 -16
- data/spec/unit/face/module/build_spec.rb +1 -0
- data/spec/unit/face/module/install_spec.rb +21 -104
- data/spec/unit/face/module/list_spec.rb +52 -36
- data/spec/unit/face/module/uninstall_spec.rb +18 -25
- data/spec/unit/face/parser_spec.rb +39 -23
- data/spec/unit/file_bucket/dipper_spec.rb +2 -2
- data/spec/unit/file_serving/base_spec.rb +9 -13
- data/spec/unit/file_serving/configuration/parser_spec.rb +8 -2
- data/spec/unit/file_serving/configuration_spec.rb +7 -7
- data/spec/unit/file_serving/content_spec.rb +7 -12
- data/spec/unit/file_serving/fileset_spec.rb +49 -53
- data/spec/unit/file_serving/metadata_spec.rb +83 -32
- data/spec/unit/file_serving/mount/file_spec.rb +10 -10
- data/spec/unit/file_system/tempfile_spec.rb +3 -3
- data/spec/unit/file_system_spec.rb +508 -0
- data/spec/unit/forge/errors_spec.rb +1 -1
- data/spec/unit/forge/repository_spec.rb +1 -3
- data/spec/unit/hiera/scope_spec.rb +6 -2
- data/spec/unit/hiera_puppet_spec.rb +13 -6
- data/spec/unit/indirector/catalog/msgpack_spec.rb +12 -0
- data/spec/unit/indirector/catalog/static_compiler_spec.rb +42 -11
- data/spec/unit/indirector/direct_file_server_spec.rb +6 -6
- data/spec/unit/indirector/facts/facter_spec.rb +5 -5
- data/spec/unit/indirector/file_bucket_file/file_spec.rb +4 -4
- data/spec/unit/indirector/file_metadata/file_spec.rb +2 -2
- data/spec/unit/indirector/file_server_spec.rb +4 -4
- data/spec/unit/indirector/json_spec.rb +6 -6
- data/spec/unit/indirector/key/file_spec.rb +8 -8
- data/spec/unit/indirector/msgpack_spec.rb +191 -0
- data/spec/unit/indirector/node/active_record_spec.rb +1 -1
- data/spec/unit/indirector/node/ldap_spec.rb +16 -7
- data/spec/unit/indirector/node/msgpack_spec.rb +24 -0
- data/spec/unit/indirector/node/plain_spec.rb +1 -1
- data/spec/unit/indirector/queue_spec.rb +1 -1
- data/spec/unit/indirector/report/msgpack_spec.rb +28 -0
- data/spec/unit/indirector/request_spec.rb +16 -8
- data/spec/unit/indirector/rest_spec.rb +0 -4
- data/spec/unit/indirector/ssl_file_spec.rb +12 -11
- data/spec/unit/indirector/yaml_spec.rb +4 -4
- data/spec/unit/man_spec.rb +32 -0
- data/spec/unit/module_spec.rb +60 -46
- data/spec/unit/module_tool/applications/checksummer_spec.rb +1 -1
- data/spec/unit/module_tool/applications/installer_spec.rb +53 -16
- data/spec/unit/module_tool/applications/uninstaller_spec.rb +26 -25
- data/spec/unit/module_tool/tar_spec.rb +1 -1
- data/spec/unit/module_tool_spec.rb +17 -90
- data/spec/unit/network/authconfig_spec.rb +3 -4
- data/spec/unit/network/authentication_spec.rb +20 -6
- data/spec/unit/network/authorization_spec.rb +11 -1
- data/spec/unit/network/formats_spec.rb +32 -9
- data/spec/unit/network/http/api/v1_spec.rb +365 -62
- data/spec/unit/network/http/api/v2/authorization_spec.rb +57 -0
- data/spec/unit/network/http/api/v2/environments_spec.rb +42 -0
- data/spec/unit/network/http/api/v2_spec.rb +14 -0
- data/spec/unit/network/http/connection_spec.rb +39 -5
- data/spec/unit/network/http/error_spec.rb +30 -0
- data/spec/unit/network/http/handler_spec.rb +69 -419
- data/spec/unit/network/http/rack/rest_spec.rb +20 -28
- data/spec/unit/network/http/route_spec.rb +75 -0
- data/spec/unit/network/http/webrick/rest_spec.rb +21 -58
- data/spec/unit/network/http_pool_spec.rb +3 -3
- data/spec/unit/network/rights_spec.rb +2 -2
- data/spec/unit/node/environment_spec.rb +108 -89
- data/spec/unit/node/facts_spec.rb +5 -12
- data/spec/unit/node_spec.rb +22 -22
- data/spec/unit/parser/ast/collection_spec.rb +1 -1
- data/spec/unit/parser/ast/leaf_spec.rb +2 -0
- data/spec/unit/parser/ast/resource_spec.rb +1 -1
- data/spec/unit/parser/compiler_spec.rb +5 -3
- data/spec/unit/parser/files_spec.rb +40 -50
- data/spec/unit/parser/functions/defined_spec.rb +80 -18
- data/spec/unit/parser/functions/epp_spec.rb +88 -0
- data/spec/unit/parser/functions/fqdn_rand_spec.rb +4 -1
- data/spec/unit/parser/functions/generate_spec.rb +6 -2
- data/spec/unit/parser/functions/hiera_array_spec.rb +5 -2
- data/spec/unit/parser/functions/hiera_hash_spec.rb +4 -1
- data/spec/unit/parser/functions/hiera_include_spec.rb +6 -3
- data/spec/unit/parser/functions/hiera_spec.rb +5 -2
- data/spec/unit/parser/functions/include_spec.rb +0 -1
- data/spec/unit/parser/functions/inline_epp_spec.rb +82 -0
- data/spec/unit/parser/functions/lookup_spec.rb +66 -16
- data/spec/unit/parser/functions_spec.rb +25 -91
- data/spec/unit/parser/lexer_spec.rb +1 -1
- data/spec/unit/parser/methods/filter_spec.rb +56 -0
- data/spec/unit/parser/methods/map_spec.rb +94 -5
- data/spec/unit/parser/methods/reduce_spec.rb +10 -0
- data/spec/unit/parser/methods/shared.rb +2 -18
- data/spec/unit/parser/methods/slice_spec.rb +39 -1
- data/spec/unit/parser/parser_spec.rb +14 -10
- data/spec/unit/parser/resource_spec.rb +3 -9
- data/spec/unit/parser/scope_spec.rb +81 -78
- data/spec/unit/parser/type_loader_spec.rb +0 -4
- data/spec/unit/pops/benchmark_spec.rb +142 -0
- data/spec/unit/pops/binder/binder_spec.rb +15 -34
- data/spec/unit/pops/binder/bindings_checker_spec.rb +0 -41
- data/spec/unit/pops/binder/bindings_composer_spec.rb +6 -31
- data/spec/unit/pops/binder/config/binder_config_spec.rb +5 -18
- data/spec/unit/pops/binder/injector_spec.rb +76 -81
- data/spec/unit/pops/evaluator/access_ops_spec.rb +376 -0
- data/spec/unit/pops/evaluator/arithmetic_ops_spec.rb +77 -0
- data/spec/unit/pops/evaluator/basic_expressions_spec.rb +103 -0
- data/spec/unit/pops/evaluator/collections_ops_spec.rb +111 -0
- data/spec/unit/pops/evaluator/comparison_ops_spec.rb +256 -0
- data/spec/unit/pops/evaluator/conditionals_spec.rb +190 -0
- data/spec/unit/pops/evaluator/evaluating_parser_spec.rb +1045 -0
- data/spec/unit/pops/evaluator/evaluator_rspec_helper.rb +75 -0
- data/spec/unit/pops/evaluator/logical_ops_spec.rb +90 -0
- data/spec/unit/pops/evaluator/string_interpolation_spec.rb +44 -0
- data/spec/unit/pops/evaluator/variables_spec.rb +194 -0
- data/spec/unit/pops/factory_spec.rb +6 -29
- data/spec/unit/pops/issues_spec.rb +1 -1
- data/spec/unit/pops/model/ast_transformer_spec.rb +6 -9
- data/spec/unit/pops/model/model_spec.rb +2 -2
- data/spec/unit/pops/parser/epp_parser_spec.rb +86 -0
- data/spec/unit/pops/parser/evaluating_parser_spec.rb +4 -2
- data/spec/unit/pops/parser/lexer2_spec.rb +428 -0
- data/spec/unit/pops/parser/lexer_spec.rb +25 -86
- data/spec/unit/pops/parser/parse_basic_expressions_spec.rb +29 -4
- data/spec/unit/pops/parser/parse_calls_spec.rb +10 -6
- data/spec/unit/pops/parser/parse_conditionals_spec.rb +0 -9
- data/spec/unit/pops/parser/parse_containers_spec.rb +43 -12
- data/spec/unit/pops/parser/parse_heredoc_spec.rb +73 -0
- data/spec/unit/pops/parser/parse_resource_spec.rb +14 -0
- data/spec/unit/pops/parser/parser_spec.rb +3 -1
- data/spec/unit/pops/transformer/transform_basic_expressions_spec.rb +4 -4
- data/spec/unit/pops/transformer/transform_calls_spec.rb +41 -6
- data/spec/unit/pops/transformer/transform_conditionals_spec.rb +0 -9
- data/spec/unit/pops/transformer/transform_containers_spec.rb +12 -4
- data/spec/unit/pops/types/enumeration_spec.rb +50 -0
- data/spec/unit/pops/types/type_calculator_spec.rb +1171 -196
- data/spec/unit/pops/types/type_factory_spec.rb +108 -4
- data/spec/unit/pops/types/type_parser_spec.rb +114 -10
- data/spec/unit/pops/validator/validator_spec.rb +36 -1
- data/spec/unit/provider/augeas/augeas_spec.rb +39 -16
- data/spec/unit/provider/cron/parsed_spec.rb +27 -31
- data/spec/unit/provider/file/posix_spec.rb +2 -2
- data/spec/unit/provider/group/windows_adsi_spec.rb +1 -0
- data/spec/unit/provider/mount_spec.rb +12 -1
- data/spec/unit/provider/nameservice/directoryservice_spec.rb +3 -3
- data/spec/unit/provider/package/apt_spec.rb +1 -1
- data/spec/unit/provider/package/aptrpm_spec.rb +1 -1
- data/spec/unit/provider/package/gem_spec.rb +12 -0
- data/spec/unit/provider/package/msi_spec.rb +4 -0
- data/spec/unit/provider/package/openbsd_spec.rb +10 -10
- data/spec/unit/provider/package/pacman_spec.rb +36 -7
- data/spec/unit/provider/package/pkgin_spec.rb +57 -55
- data/spec/unit/provider/package/rpm_spec.rb +51 -6
- data/spec/unit/provider/service/base_spec.rb +4 -4
- data/spec/unit/provider/service/daemontools_spec.rb +8 -13
- data/spec/unit/provider/service/freebsd_spec.rb +3 -3
- data/spec/unit/provider/service/gentoo_spec.rb +24 -24
- data/spec/unit/provider/service/init_spec.rb +15 -15
- data/spec/unit/provider/service/openbsd_spec.rb +16 -16
- data/spec/unit/provider/service/openrc_spec.rb +20 -20
- data/spec/unit/provider/service/openwrt_spec.rb +1 -1
- data/spec/unit/provider/service/runit_spec.rb +5 -8
- data/spec/unit/provider/service/src_spec.rb +4 -4
- data/spec/unit/provider/service/systemd_spec.rb +24 -14
- data/spec/unit/provider/service/upstart_spec.rb +12 -4
- data/spec/unit/provider/service/windows_spec.rb +1 -1
- data/spec/unit/provider/ssh_authorized_key/parsed_spec.rb +21 -23
- data/spec/unit/provider/user/directoryservice_spec.rb +7 -7
- data/spec/unit/provider/user/useradd_spec.rb +43 -15
- data/spec/unit/provider/user/windows_adsi_spec.rb +1 -0
- data/spec/unit/provider/yumrepo/inifile_spec.rb +105 -0
- data/spec/unit/provider/zone/solaris_spec.rb +1 -1
- data/spec/unit/provider_spec.rb +120 -62
- data/spec/unit/rails/host_spec.rb +1 -1
- data/spec/unit/rails/param_value_spec.rb +4 -0
- data/spec/unit/relationship_spec.rb +4 -4
- data/spec/unit/reports/http_spec.rb +14 -3
- data/spec/unit/reports/rrdgraph_spec.rb +0 -1
- data/spec/unit/reports/store_spec.rb +2 -2
- data/spec/unit/resource/catalog_spec.rb +17 -29
- data/spec/unit/resource/status_spec.rb +1 -1
- data/spec/unit/resource/type_collection_spec.rb +28 -47
- data/spec/unit/resource/type_spec.rb +12 -23
- data/spec/unit/resource_spec.rb +54 -93
- data/spec/unit/run_spec.rb +3 -3
- data/spec/unit/settings/autosign_setting_spec.rb +1 -1
- data/spec/unit/settings/config_file_spec.rb +68 -15
- data/spec/unit/settings/file_setting_spec.rb +2 -2
- data/spec/unit/settings/ini_file_spec.rb +184 -0
- data/spec/unit/settings_spec.rb +137 -79
- data/spec/unit/ssl/certificate_authority/interface_spec.rb +3 -1
- data/spec/unit/ssl/certificate_authority_spec.rb +11 -9
- data/spec/unit/ssl/certificate_factory_spec.rb +19 -4
- data/spec/unit/ssl/certificate_request_attributes_spec.rb +1 -1
- data/spec/unit/ssl/certificate_revocation_list_spec.rb +101 -72
- data/spec/unit/ssl/host_spec.rb +8 -20
- data/spec/unit/ssl/inventory_spec.rb +2 -2
- data/spec/unit/ssl/key_spec.rb +4 -4
- data/spec/unit/status_spec.rb +6 -4
- data/spec/unit/transaction/additional_resource_generator_spec.rb +3 -11
- data/spec/unit/transaction/event_spec.rb +2 -2
- data/spec/unit/transaction/report_spec.rb +24 -15
- data/spec/unit/transaction/resource_harness_spec.rb +1 -1
- data/spec/unit/type/cron_spec.rb +39 -1
- data/spec/unit/type/file/content_spec.rb +4 -5
- data/spec/unit/type/file/ctime_spec.rb +1 -1
- data/spec/unit/type/file/mode_spec.rb +5 -4
- data/spec/unit/type/file/mtime_spec.rb +1 -1
- data/spec/unit/type/file/source_spec.rb +30 -7
- data/spec/unit/type/file_spec.rb +8 -8
- data/spec/unit/type/k5login_spec.rb +3 -3
- data/spec/unit/type/nagios_spec.rb +6 -0
- data/spec/unit/type/package/package_settings_spec.rb +135 -0
- data/spec/unit/type/package_spec.rb +13 -1
- data/spec/unit/type/resources_spec.rb +155 -0
- data/spec/unit/type/service_spec.rb +3 -3
- data/spec/unit/type/ssh_authorized_key_spec.rb +96 -93
- data/spec/unit/type/sshkey_spec.rb +39 -30
- data/spec/unit/type/tidy_spec.rb +19 -12
- data/spec/unit/type/user_spec.rb +47 -2
- data/spec/unit/type/whit_spec.rb +2 -2
- data/spec/unit/type/yumrepo_spec.rb +32 -177
- data/spec/unit/type/zone_spec.rb +2 -2
- data/spec/unit/type_spec.rb +11 -0
- data/spec/unit/util/adsi_spec.rb +48 -1
- data/spec/unit/util/autoload_spec.rb +24 -39
- data/spec/unit/util/backups_spec.rb +25 -28
- data/spec/unit/util/checksums_spec.rb +1 -3
- data/spec/unit/util/colors_spec.rb +14 -0
- data/spec/unit/util/docs_spec.rb +9 -0
- data/spec/unit/util/execution_spec.rb +1 -1
- data/spec/unit/util/filetype_spec.rb +7 -7
- data/spec/unit/util/instrumentation/data_spec.rb +3 -1
- data/spec/unit/util/instrumentation/indirection_probe_spec.rb +2 -0
- data/spec/unit/util/instrumentation/listener_spec.rb +3 -2
- data/spec/unit/util/json_lockfile_spec.rb +25 -4
- data/spec/unit/util/lockfile_spec.rb +49 -7
- data/spec/unit/util/log/destinations_spec.rb +1 -0
- data/spec/unit/util/log_spec.rb +1 -1
- data/spec/unit/util/metric_spec.rb +1 -1
- data/spec/unit/util/pidlock_spec.rb +6 -6
- data/spec/unit/util/pson_spec.rb +2 -2
- data/spec/unit/util/rdoc/parser_spec.rb +32 -29
- data/spec/unit/util/resource_template_spec.rb +3 -3
- data/spec/unit/util/selinux_spec.rb +5 -5
- data/spec/unit/util/storage_spec.rb +4 -4
- data/spec/unit/util/tag_set_spec.rb +1 -1
- data/spec/unit/util/watcher_spec.rb +1 -4
- data/spec/unit/util/yaml_spec.rb +2 -2
- data/spec/unit/util_spec.rb +7 -7
- data/tasks/benchmark.rake +0 -1
- data/tasks/parallel.rake +408 -0
- data/tasks/yard.rake +59 -0
- metadata +2889 -2782
- checksums.yaml +0 -7
- data/README_DEVELOPER.md +0 -809
- data/lib/puppet/file_system/file.rb +0 -271
- data/lib/puppet/network/http/rack/httphandler.rb +0 -13
- data/lib/puppet/pops/binder/hiera2.rb +0 -10
- data/lib/puppet/pops/binder/hiera2/bindings_provider.rb +0 -148
- data/lib/puppet/pops/binder/hiera2/config.rb +0 -69
- data/lib/puppet/pops/binder/hiera2/config_checker.rb +0 -68
- data/lib/puppet/pops/binder/hiera2/diagnostic_producer.rb +0 -36
- data/lib/puppet/pops/binder/hiera2/issues.rb +0 -67
- data/lib/puppet/pops/binder/hiera2/json_backend.rb +0 -18
- data/lib/puppet/pops/binder/hiera2/yaml_backend.rb +0 -21
- data/lib/puppet/pops/binder/scheme_handler/confdir_hiera_scheme.rb +0 -67
- data/lib/puppet/pops/binder/scheme_handler/module_hiera_scheme.rb +0 -92
- data/lib/puppet/pops/parser/grammar.ra +0 -746
- data/lib/puppet/provider/port/parsed.rb +0 -173
- data/lib/puppet/type/port.rb +0 -119
- data/lib/puppetx/puppet/hiera2_backend.rb +0 -31
- data/spec/fixtures/unit/pops/binder/bindings_composer/hiera1config/binder_config.yaml +0 -18
- data/spec/fixtures/unit/pops/binder/bindings_composer/hiera1config/hiera.yaml +0 -8
- data/spec/fixtures/unit/pops/binder/bindings_composer/hiera1config/modules/good/common.yaml +0 -1
- data/spec/fixtures/unit/pops/binder/bindings_composer/hiera1config/modules/good/hiera.yaml +0 -10
- data/spec/fixtures/unit/pops/binder/bindings_composer/ok/common.yaml +0 -1
- data/spec/fixtures/unit/pops/binder/bindings_composer/ok/hiera.yaml +0 -11
- data/spec/fixtures/unit/pops/binder/bindings_composer/ok/localhost.yaml +0 -1
- data/spec/fixtures/unit/pops/binder/bindings_composer/ok/modules/awesome/common.yaml +0 -3
- data/spec/fixtures/unit/pops/binder/bindings_composer/ok/modules/awesome/hiera.yaml +0 -13
- data/spec/fixtures/unit/pops/binder/bindings_composer/ok/modules/awesome/lib/puppet/bindings/awesome/default.rb +0 -4
- data/spec/fixtures/unit/pops/binder/bindings_composer/ok/modules/awesome/lib/puppetx/awesome/echo_backend.rb +0 -11
- data/spec/fixtures/unit/pops/binder/bindings_composer/ok/modules/awesome/localhost.yaml +0 -1
- data/spec/fixtures/unit/pops/binder/bindings_composer/ok/modules/bad/common.yaml +0 -3
- data/spec/fixtures/unit/pops/binder/bindings_composer/ok/modules/bad/hiera_config.yaml +0 -9
- data/spec/fixtures/unit/pops/binder/bindings_composer/ok/modules/good/common.yaml +0 -2
- data/spec/fixtures/unit/pops/binder/bindings_composer/ok/modules/good/hiera.yaml +0 -11
- data/spec/fixtures/unit/pops/binder/hiera2/bindings_provider/ok/hiera.yaml +0 -9
- data/spec/fixtures/unit/pops/binder/hiera2/bindings_provider/ok/node.example.com.json +0 -9
- data/spec/fixtures/unit/pops/binder/hiera2/bindings_provider/ok/node.example.com.yaml +0 -5
- data/spec/fixtures/unit/pops/binder/hiera2/config/bad_syntax/hiera.yaml +0 -10
- data/spec/fixtures/unit/pops/binder/hiera2/config/malformed_hierarchy/hiera.yaml +0 -8
- data/spec/fixtures/unit/pops/binder/hiera2/config/missing/foo.txt +0 -1
- data/spec/fixtures/unit/pops/binder/hiera2/config/no_backends/hiera.yaml +0 -7
- data/spec/fixtures/unit/pops/binder/hiera2/config/no_hierarchy/hiera.yaml +0 -4
- data/spec/fixtures/unit/pops/binder/hiera2/config/not_a_hash/hiera.yaml +0 -2
- data/spec/fixtures/unit/pops/binder/hiera2/config/ok/hiera.yaml +0 -8
- data/spec/fixtures/unit/pops/binder/hiera2/yaml_backend/invalid/common.yaml +0 -1
- data/spec/fixtures/unit/pops/binder/hiera2/yaml_backend/ok/common.yaml +0 -2
- data/spec/unit/file_system/file_spec.rb +0 -486
- data/spec/unit/pops/binder/hiera2/bindings_provider_spec.rb +0 -74
- data/spec/unit/pops/binder/hiera2/config_spec.rb +0 -61
- data/spec/unit/pops/binder/hiera2/yaml_backend_spec.rb +0 -33
@@ -139,14 +139,14 @@ describe Puppet::Settings::FileSetting do
|
|
139
139
|
it "should skip non-existent files if 'create_files' is not enabled" do
|
140
140
|
@file.expects(:create_files?).returns false
|
141
141
|
@file.expects(:type).returns :file
|
142
|
-
Puppet::FileSystem
|
142
|
+
Puppet::FileSystem.expects(:exist?).with(@basepath).returns false
|
143
143
|
@file.to_resource.should be_nil
|
144
144
|
end
|
145
145
|
|
146
146
|
it "should manage existent files even if 'create_files' is not enabled" do
|
147
147
|
@file.expects(:create_files?).returns false
|
148
148
|
@file.expects(:type).returns :file
|
149
|
-
Puppet::FileSystem
|
149
|
+
Puppet::FileSystem.expects(:exist?).with(@basepath).returns true
|
150
150
|
@file.to_resource.should be_instance_of(Puppet::Resource)
|
151
151
|
end
|
152
152
|
|
@@ -0,0 +1,184 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'stringio'
|
3
|
+
|
4
|
+
require 'puppet/settings/ini_file'
|
5
|
+
|
6
|
+
describe Puppet::Settings::IniFile do
|
7
|
+
it "preserves the file when no changes are made" do
|
8
|
+
original_config = <<-CONFIG
|
9
|
+
# comment
|
10
|
+
[section]
|
11
|
+
name = value
|
12
|
+
CONFIG
|
13
|
+
config_fh = a_config_file_containing(original_config)
|
14
|
+
|
15
|
+
Puppet::Settings::IniFile.update(config_fh) do; end
|
16
|
+
|
17
|
+
expect(config_fh.string).to eq original_config
|
18
|
+
end
|
19
|
+
|
20
|
+
it "adds a set name and value to an empty file" do
|
21
|
+
config_fh = a_config_file_containing("")
|
22
|
+
|
23
|
+
Puppet::Settings::IniFile.update(config_fh) do |config|
|
24
|
+
config.set("the_section", "name", "value")
|
25
|
+
end
|
26
|
+
|
27
|
+
expect(config_fh.string).to eq "[the_section]\nname = value\n"
|
28
|
+
end
|
29
|
+
|
30
|
+
it "does not add a [main] section to a file when it isn't needed" do
|
31
|
+
config_fh = a_config_file_containing(<<-CONF)
|
32
|
+
[section]
|
33
|
+
name = different value
|
34
|
+
CONF
|
35
|
+
|
36
|
+
|
37
|
+
Puppet::Settings::IniFile.update(config_fh) do |config|
|
38
|
+
config.set("main", "name", "value")
|
39
|
+
end
|
40
|
+
|
41
|
+
expect(config_fh.string).to eq(<<-CONF)
|
42
|
+
name = value
|
43
|
+
[section]
|
44
|
+
name = different value
|
45
|
+
CONF
|
46
|
+
end
|
47
|
+
|
48
|
+
it "preserves comments when writing a new name and value" do
|
49
|
+
config_fh = a_config_file_containing("# this is a comment")
|
50
|
+
|
51
|
+
Puppet::Settings::IniFile.update(config_fh) do |config|
|
52
|
+
config.set("the_section", "name", "value")
|
53
|
+
end
|
54
|
+
|
55
|
+
expect(config_fh.string).to eq "# this is a comment\n[the_section]\nname = value\n"
|
56
|
+
end
|
57
|
+
|
58
|
+
it "updates existing names and values in place" do
|
59
|
+
config_fh = a_config_file_containing(<<-CONFIG)
|
60
|
+
# this is the preceeding comment
|
61
|
+
[section]
|
62
|
+
name = original value
|
63
|
+
# this is the trailing comment
|
64
|
+
CONFIG
|
65
|
+
|
66
|
+
Puppet::Settings::IniFile.update(config_fh) do |config|
|
67
|
+
config.set("section", "name", "changed value")
|
68
|
+
end
|
69
|
+
|
70
|
+
expect(config_fh.string).to eq <<-CONFIG
|
71
|
+
# this is the preceeding comment
|
72
|
+
[section]
|
73
|
+
name = changed value
|
74
|
+
# this is the trailing comment
|
75
|
+
CONFIG
|
76
|
+
end
|
77
|
+
|
78
|
+
it "updates only the value in the selected section" do
|
79
|
+
config_fh = a_config_file_containing(<<-CONFIG)
|
80
|
+
[other_section]
|
81
|
+
name = does not change
|
82
|
+
[section]
|
83
|
+
name = original value
|
84
|
+
CONFIG
|
85
|
+
|
86
|
+
Puppet::Settings::IniFile.update(config_fh) do |config|
|
87
|
+
config.set("section", "name", "changed value")
|
88
|
+
end
|
89
|
+
|
90
|
+
expect(config_fh.string).to eq <<-CONFIG
|
91
|
+
[other_section]
|
92
|
+
name = does not change
|
93
|
+
[section]
|
94
|
+
name = changed value
|
95
|
+
CONFIG
|
96
|
+
end
|
97
|
+
|
98
|
+
it "considers settings outside a section to be in section 'main'" do
|
99
|
+
config_fh = a_config_file_containing(<<-CONFIG)
|
100
|
+
name = original value
|
101
|
+
CONFIG
|
102
|
+
|
103
|
+
Puppet::Settings::IniFile.update(config_fh) do |config|
|
104
|
+
config.set("main", "name", "changed value")
|
105
|
+
end
|
106
|
+
|
107
|
+
expect(config_fh.string).to eq <<-CONFIG
|
108
|
+
name = changed value
|
109
|
+
CONFIG
|
110
|
+
end
|
111
|
+
|
112
|
+
it "adds new settings to an existing section" do
|
113
|
+
config_fh = a_config_file_containing(<<-CONFIG)
|
114
|
+
[section]
|
115
|
+
original = value
|
116
|
+
|
117
|
+
# comment about 'other' section
|
118
|
+
[other]
|
119
|
+
dont = change
|
120
|
+
CONFIG
|
121
|
+
|
122
|
+
Puppet::Settings::IniFile.update(config_fh) do |config|
|
123
|
+
config.set("section", "updated", "new")
|
124
|
+
end
|
125
|
+
|
126
|
+
expect(config_fh.string).to eq <<-CONFIG
|
127
|
+
[section]
|
128
|
+
original = value
|
129
|
+
updated = new
|
130
|
+
|
131
|
+
# comment about 'other' section
|
132
|
+
[other]
|
133
|
+
dont = change
|
134
|
+
CONFIG
|
135
|
+
end
|
136
|
+
|
137
|
+
it "adds a new setting into an existing, yet empty section" do
|
138
|
+
config_fh = a_config_file_containing(<<-CONFIG)
|
139
|
+
[section]
|
140
|
+
[other]
|
141
|
+
dont = change
|
142
|
+
CONFIG
|
143
|
+
|
144
|
+
Puppet::Settings::IniFile.update(config_fh) do |config|
|
145
|
+
config.set("section", "updated", "new")
|
146
|
+
end
|
147
|
+
|
148
|
+
expect(config_fh.string).to eq <<-CONFIG
|
149
|
+
[section]
|
150
|
+
updated = new
|
151
|
+
[other]
|
152
|
+
dont = change
|
153
|
+
CONFIG
|
154
|
+
end
|
155
|
+
|
156
|
+
it "finds settings when the section is split up" do
|
157
|
+
config_fh = a_config_file_containing(<<-CONFIG)
|
158
|
+
[section]
|
159
|
+
name = original value
|
160
|
+
[different]
|
161
|
+
name = other value
|
162
|
+
[section]
|
163
|
+
other_name = different original value
|
164
|
+
CONFIG
|
165
|
+
|
166
|
+
Puppet::Settings::IniFile.update(config_fh) do |config|
|
167
|
+
config.set("section", "name", "changed value")
|
168
|
+
config.set("section", "other_name", "other changed value")
|
169
|
+
end
|
170
|
+
|
171
|
+
expect(config_fh.string).to eq <<-CONFIG
|
172
|
+
[section]
|
173
|
+
name = changed value
|
174
|
+
[different]
|
175
|
+
name = other value
|
176
|
+
[section]
|
177
|
+
other_name = other changed value
|
178
|
+
CONFIG
|
179
|
+
end
|
180
|
+
|
181
|
+
def a_config_file_containing(text)
|
182
|
+
StringIO.new(text)
|
183
|
+
end
|
184
|
+
end
|
data/spec/unit/settings_spec.rb
CHANGED
@@ -103,8 +103,8 @@ describe Puppet::Settings do
|
|
103
103
|
end
|
104
104
|
|
105
105
|
describe "#call_hooks_deferred_to_application_initialization" do
|
106
|
-
let
|
107
|
-
let
|
106
|
+
let(:good_default) { "yay" }
|
107
|
+
let(:bad_default) { "$doesntexist" }
|
108
108
|
before(:each) do
|
109
109
|
@settings = Puppet::Settings.new
|
110
110
|
end
|
@@ -148,7 +148,7 @@ describe Puppet::Settings do
|
|
148
148
|
)
|
149
149
|
expect do
|
150
150
|
@settings.send(:call_hooks_deferred_to_application_initialization, options)
|
151
|
-
end.to raise_error
|
151
|
+
end.to raise_error(Puppet::Settings::InterpolationError)
|
152
152
|
end
|
153
153
|
it "should contain the setting name in error message" do
|
154
154
|
hook_values = []
|
@@ -163,7 +163,7 @@ describe Puppet::Settings do
|
|
163
163
|
)
|
164
164
|
expect do
|
165
165
|
@settings.send(:call_hooks_deferred_to_application_initialization, options)
|
166
|
-
end.to raise_error
|
166
|
+
end.to raise_error(Puppet::Settings::InterpolationError, /badhook/)
|
167
167
|
end
|
168
168
|
end
|
169
169
|
describe "if no interpolation error" do
|
@@ -205,48 +205,40 @@ describe Puppet::Settings do
|
|
205
205
|
end
|
206
206
|
|
207
207
|
it "should support a getopt-specific mechanism for turning booleans off" do
|
208
|
-
@settings
|
208
|
+
@settings.override_default(:bool, true)
|
209
209
|
@settings.handlearg("--no-bool", "")
|
210
210
|
@settings[:bool].should == false
|
211
211
|
end
|
212
212
|
|
213
213
|
it "should support a getopt-specific mechanism for turning booleans on" do
|
214
214
|
# Turn it off first
|
215
|
-
@settings
|
215
|
+
@settings.override_default(:bool, false)
|
216
216
|
@settings.handlearg("--bool", "")
|
217
217
|
@settings[:bool].should == true
|
218
218
|
end
|
219
219
|
|
220
220
|
it "should consider a cli setting with no argument to be a boolean" do
|
221
221
|
# Turn it off first
|
222
|
-
@settings
|
222
|
+
@settings.override_default(:bool, false)
|
223
223
|
@settings.handlearg("--bool")
|
224
224
|
@settings[:bool].should == true
|
225
225
|
end
|
226
226
|
|
227
|
-
it "should consider a cli setting with an empty string as an argument to be a boolean, if the setting itself is a boolean" do
|
228
|
-
# Turn it off first
|
229
|
-
@settings[:bool] = false
|
230
|
-
@settings.handlearg("--bool", "")
|
231
|
-
@settings[:bool].should == true
|
232
|
-
end
|
233
|
-
|
234
227
|
it "should consider a cli setting with an empty string as an argument to be an empty argument, if the setting itself is not a boolean" do
|
235
|
-
@settings
|
228
|
+
@settings.override_default(:myval, "bob")
|
236
229
|
@settings.handlearg("--myval", "")
|
237
230
|
@settings[:myval].should == ""
|
238
231
|
end
|
239
232
|
|
240
233
|
it "should consider a cli setting with a boolean as an argument to be a boolean" do
|
241
234
|
# Turn it off first
|
242
|
-
@settings
|
235
|
+
@settings.override_default(:bool, false)
|
243
236
|
@settings.handlearg("--bool", "true")
|
244
237
|
@settings[:bool].should == true
|
245
238
|
end
|
246
239
|
|
247
240
|
it "should not consider a cli setting of a non boolean with a boolean as an argument to be a boolean" do
|
248
|
-
|
249
|
-
@settings[:myval] = "bob"
|
241
|
+
@settings.override_default(:myval, "bob")
|
250
242
|
@settings.handlearg("--no-myval", "")
|
251
243
|
@settings[:myval].should == ""
|
252
244
|
end
|
@@ -257,7 +249,6 @@ describe Puppet::Settings do
|
|
257
249
|
end
|
258
250
|
|
259
251
|
it "should flag bool settings from the CLI" do
|
260
|
-
@settings[:bool] = false
|
261
252
|
@settings.handlearg("--bool")
|
262
253
|
@settings.set_by_cli?(:bool).should be_true
|
263
254
|
end
|
@@ -269,7 +260,7 @@ describe Puppet::Settings do
|
|
269
260
|
|
270
261
|
describe "setbycli" do
|
271
262
|
it "should generate a deprecation warning" do
|
272
|
-
Puppet.expects(:deprecation_warning)
|
263
|
+
Puppet.expects(:deprecation_warning).at_least(1)
|
273
264
|
@settings.setting(:myval).setbycli = true
|
274
265
|
end
|
275
266
|
it "should set the value" do
|
@@ -281,7 +272,7 @@ describe Puppet::Settings do
|
|
281
272
|
@settings.handlearg("--myval", "blah")
|
282
273
|
expect do
|
283
274
|
@settings.setting(:myval).setbycli = nil
|
284
|
-
end.to raise_error
|
275
|
+
end.to raise_error(ArgumentError, /unset/)
|
285
276
|
end
|
286
277
|
end
|
287
278
|
|
@@ -318,12 +309,12 @@ describe Puppet::Settings do
|
|
318
309
|
it "should raise error if no hook defined" do
|
319
310
|
expect do
|
320
311
|
@settings.define_settings(:section, :hooker => {:default => "yay", :desc => "boo", :call_hook => val})
|
321
|
-
end.to raise_error
|
312
|
+
end.to raise_error(ArgumentError, /no :hook/)
|
322
313
|
end
|
323
314
|
it "should include the setting name in the error message" do
|
324
315
|
expect do
|
325
316
|
@settings.define_settings(:section, :hooker => {:default => "yay", :desc => "boo", :call_hook => val})
|
326
|
-
end.to raise_error
|
317
|
+
end.to raise_error(ArgumentError, /for :hooker/)
|
327
318
|
end
|
328
319
|
end
|
329
320
|
describe "and definition valid" do
|
@@ -360,7 +351,7 @@ describe Puppet::Settings do
|
|
360
351
|
it "should raise an error" do
|
361
352
|
expect do
|
362
353
|
@settings.define_settings(:section, :hooker => {:default => "yay", :desc => "boo", :call_hook => :foo, :hook => lambda { |v| hook_values << v }})
|
363
|
-
end.to raise_error
|
354
|
+
end.to raise_error(ArgumentError, /invalid.*call_hook/i)
|
364
355
|
end
|
365
356
|
end
|
366
357
|
|
@@ -457,10 +448,11 @@ describe Puppet::Settings do
|
|
457
448
|
@settings[:bool].should == false
|
458
449
|
end
|
459
450
|
|
460
|
-
it "should prefer
|
461
|
-
@settings.handlearg("--myval", "cliarg")
|
451
|
+
it "should prefer values set in ruby to values set on the cli" do
|
462
452
|
@settings[:myval] = "memarg"
|
463
|
-
@settings
|
453
|
+
@settings.handlearg("--myval", "cliarg")
|
454
|
+
|
455
|
+
@settings[:myval].should == "memarg"
|
464
456
|
end
|
465
457
|
|
466
458
|
it "should clear the list of environments" do
|
@@ -471,7 +463,13 @@ describe Puppet::Settings do
|
|
471
463
|
it "should raise an error if we try to set a setting that hasn't been defined'" do
|
472
464
|
lambda{
|
473
465
|
@settings[:why_so_serious] = "foo"
|
474
|
-
}.should raise_error(ArgumentError, /unknown
|
466
|
+
}.should raise_error(ArgumentError, /unknown setting/)
|
467
|
+
end
|
468
|
+
|
469
|
+
it "allows overriding cli args based on the cli-set value" do
|
470
|
+
@settings.handlearg("--myval", "cliarg")
|
471
|
+
@settings.set_value(:myval, "modified #{@settings[:myval]}", :cli)
|
472
|
+
expect(@settings[:myval]).to eq("modified cliarg")
|
475
473
|
end
|
476
474
|
end
|
477
475
|
|
@@ -485,7 +483,7 @@ describe Puppet::Settings do
|
|
485
483
|
:three => { :default => "$one $two THREE", :desc => "c"},
|
486
484
|
:four => { :default => "$two $three FOUR", :desc => "d"},
|
487
485
|
:five => { :default => nil, :desc => "e" }
|
488
|
-
Puppet::FileSystem
|
486
|
+
Puppet::FileSystem.stubs(:exist?).returns true
|
489
487
|
end
|
490
488
|
|
491
489
|
describe "call_on_define" do
|
@@ -509,6 +507,20 @@ describe Puppet::Settings do
|
|
509
507
|
@settings[:one].should == "other"
|
510
508
|
end
|
511
509
|
|
510
|
+
it "setting a value to nil causes it to return to its default" do
|
511
|
+
default_values = { :one => "skipped value" }
|
512
|
+
[:logdir, :confdir, :vardir].each do |key|
|
513
|
+
default_values[key] = 'default value'
|
514
|
+
end
|
515
|
+
@settings.define_settings :main, PuppetSpec::Settings::TEST_APP_DEFAULT_DEFINITIONS
|
516
|
+
@settings.initialize_app_defaults(default_values)
|
517
|
+
@settings[:one] = "value will disappear"
|
518
|
+
|
519
|
+
@settings[:one] = nil
|
520
|
+
|
521
|
+
@settings[:one].should == "ONE"
|
522
|
+
end
|
523
|
+
|
512
524
|
it "should interpolate default values for other parameters into returned parameter values" do
|
513
525
|
@settings[:one].should == "ONE"
|
514
526
|
@settings[:two].should == "ONE TWO"
|
@@ -542,20 +554,6 @@ describe Puppet::Settings do
|
|
542
554
|
@settings[:two].should == "one TWO"
|
543
555
|
end
|
544
556
|
|
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
|
-
|
559
557
|
it "should not cache values such that information from one environment is returned for another environment" do
|
560
558
|
text = "[env1]\none = oneval\n[env2]\none = twoval\n"
|
561
559
|
@settings.stubs(:read_file).returns(text)
|
@@ -569,6 +567,13 @@ describe Puppet::Settings do
|
|
569
567
|
@settings.preferred_run_mode.should == :user
|
570
568
|
end
|
571
569
|
|
570
|
+
it "interpolates a boolean false without raising an error" do
|
571
|
+
@settings.define_settings(:section,
|
572
|
+
:trip_wire => { :type => :boolean, :default => false, :desc => "a trip wire" },
|
573
|
+
:tripping => { :default => '$trip_wire', :desc => "once tripped if interpolated was false" })
|
574
|
+
@settings[:tripping].should == "false"
|
575
|
+
end
|
576
|
+
|
572
577
|
describe "setbycli" do
|
573
578
|
it "should generate a deprecation warning" do
|
574
579
|
@settings.handlearg("--one", "blah")
|
@@ -589,7 +594,7 @@ describe Puppet::Settings do
|
|
589
594
|
:config => { :type => :file, :default => "/my/file", :desc => "a" },
|
590
595
|
:one => { :default => "ONE", :desc => "a" },
|
591
596
|
:two => { :default => "TWO", :desc => "b" }
|
592
|
-
Puppet::FileSystem
|
597
|
+
Puppet::FileSystem.stubs(:exist?).returns true
|
593
598
|
@settings.preferred_run_mode = :agent
|
594
599
|
end
|
595
600
|
|
@@ -606,12 +611,6 @@ describe Puppet::Settings do
|
|
606
611
|
@settings[:one].should == "clival"
|
607
612
|
end
|
608
613
|
|
609
|
-
it "should return values set on the cli before values set in Ruby" do
|
610
|
-
@settings[:one] = "rubyval"
|
611
|
-
@settings.handlearg("--one", "clival")
|
612
|
-
@settings[:one].should == "clival"
|
613
|
-
end
|
614
|
-
|
615
614
|
it "should return values set in the mode-specific section before values set in the main section" do
|
616
615
|
text = "[main]\none = mainval\n[agent]\none = modeval\n"
|
617
616
|
@settings.stubs(:read_file).returns(text)
|
@@ -666,8 +665,8 @@ describe Puppet::Settings do
|
|
666
665
|
describe "when root" do
|
667
666
|
it "should look for the main config file default location config settings haven't been overridden'" do
|
668
667
|
Puppet.features.stubs(:root?).returns(true)
|
669
|
-
Puppet::FileSystem
|
670
|
-
Puppet::FileSystem
|
668
|
+
Puppet::FileSystem.expects(:exist?).with(main_config_file_default_location).returns(false)
|
669
|
+
Puppet::FileSystem.expects(:exist?).with(user_config_file_default_location).never
|
671
670
|
|
672
671
|
@settings.send(:parse_config_files)
|
673
672
|
end
|
@@ -678,7 +677,7 @@ describe Puppet::Settings do
|
|
678
677
|
Puppet.features.stubs(:root?).returns(false)
|
679
678
|
|
680
679
|
seq = sequence "load config files"
|
681
|
-
Puppet::FileSystem
|
680
|
+
Puppet::FileSystem.expects(:exist?).with(user_config_file_default_location).returns(false).in_sequence(seq)
|
682
681
|
|
683
682
|
@settings.send(:parse_config_files)
|
684
683
|
end
|
@@ -699,8 +698,8 @@ describe Puppet::Settings do
|
|
699
698
|
:two => { :default => "$one TWO", :desc => "b" },
|
700
699
|
:three => { :default => "$one $two THREE", :desc => "c" }
|
701
700
|
@settings.stubs(:user_config_file).returns(@userconfig)
|
702
|
-
Puppet::FileSystem
|
703
|
-
Puppet::FileSystem
|
701
|
+
Puppet::FileSystem.stubs(:exist?).with(@file).returns true
|
702
|
+
Puppet::FileSystem.stubs(:exist?).with(@userconfig).returns false
|
704
703
|
end
|
705
704
|
|
706
705
|
it "should not ignore the report setting" do
|
@@ -712,7 +711,7 @@ describe Puppet::Settings do
|
|
712
711
|
[puppetd]
|
713
712
|
report=true
|
714
713
|
CONF
|
715
|
-
Puppet::FileSystem
|
714
|
+
Puppet::FileSystem.expects(:exist?).with(myfile).returns(true)
|
716
715
|
@settings.expects(:read_file).returns(text)
|
717
716
|
@settings.send(:parse_config_files)
|
718
717
|
@settings[:report].should be_true
|
@@ -722,7 +721,7 @@ describe Puppet::Settings do
|
|
722
721
|
myfile = make_absolute("/my/file") # do not stub expand_path here, as this leads to a stack overflow, when mocha tries to use it
|
723
722
|
@settings[:config] = myfile
|
724
723
|
|
725
|
-
Puppet::FileSystem
|
724
|
+
Puppet::FileSystem.expects(:exist?).with(myfile).returns(true)
|
726
725
|
|
727
726
|
File.expects(:read).with(myfile).returns "[main]"
|
728
727
|
|
@@ -730,7 +729,7 @@ describe Puppet::Settings do
|
|
730
729
|
end
|
731
730
|
|
732
731
|
it "should not try to parse non-existent files" do
|
733
|
-
Puppet::FileSystem
|
732
|
+
Puppet::FileSystem.expects(:exist?).with(@file).returns false
|
734
733
|
|
735
734
|
File.expects(:read).with(@file).never
|
736
735
|
|
@@ -777,11 +776,11 @@ describe Puppet::Settings do
|
|
777
776
|
@settings.define_settings :section, :myfile => { :type => :file, :default => make_absolute("/myfile"), :desc => "a" }
|
778
777
|
|
779
778
|
otherfile = make_absolute("/other/file")
|
780
|
-
|
779
|
+
@settings.parse_config(<<-CONF)
|
780
|
+
[main]
|
781
781
|
myfile = #{otherfile} {owner = service, group = service, mode = 644}
|
782
|
-
|
783
|
-
|
784
|
-
@settings.send(:parse_config_files)
|
782
|
+
CONF
|
783
|
+
|
785
784
|
@settings[:myfile].should == otherfile
|
786
785
|
@settings.metadata(:myfile).should == {:owner => "suser", :group => "sgroup", :mode => "644"}
|
787
786
|
end
|
@@ -790,11 +789,11 @@ describe Puppet::Settings do
|
|
790
789
|
@settings.define_settings :section, :myfile => { :type => :file, :default => make_absolute("/myfile"), :desc => "a" }
|
791
790
|
|
792
791
|
otherfile = make_absolute("/other/file")
|
793
|
-
|
792
|
+
@settings.parse_config(<<-CONF)
|
793
|
+
[main]
|
794
794
|
myfile = #{otherfile} {owner = service}
|
795
|
-
|
796
|
-
|
797
|
-
@settings.send(:parse_config_files)
|
795
|
+
CONF
|
796
|
+
|
798
797
|
@settings[:myfile].should == otherfile
|
799
798
|
@settings.metadata(:myfile).should == {:owner => "suser"}
|
800
799
|
end
|
@@ -826,6 +825,37 @@ describe Puppet::Settings do
|
|
826
825
|
@settings.metadata(:myfile).should == {:mode => "664"}
|
827
826
|
end
|
828
827
|
|
828
|
+
it "does not use the metadata from the same setting in a different section" do
|
829
|
+
default_values = {}
|
830
|
+
PuppetSpec::Settings::TEST_APP_DEFAULT_DEFINITIONS.keys.each do |key|
|
831
|
+
default_values[key] = 'default value'
|
832
|
+
end
|
833
|
+
|
834
|
+
file = make_absolute("/file")
|
835
|
+
default_mode = "0600"
|
836
|
+
@settings.define_settings :main, PuppetSpec::Settings::TEST_APP_DEFAULT_DEFINITIONS
|
837
|
+
@settings.define_settings :master, :myfile => { :type => :file, :default => file, :desc => "a", :mode => default_mode }
|
838
|
+
|
839
|
+
text = "[master]
|
840
|
+
myfile = #{file}/foo
|
841
|
+
[agent]
|
842
|
+
myfile = #{file} {mode = 664}
|
843
|
+
"
|
844
|
+
@settings.expects(:read_file).returns(text)
|
845
|
+
|
846
|
+
# will start initialization as user
|
847
|
+
@settings.preferred_run_mode.should == :user
|
848
|
+
@settings.send(:parse_config_files)
|
849
|
+
|
850
|
+
# change app run_mode to master
|
851
|
+
@settings.initialize_app_defaults(default_values.merge(:run_mode => :master))
|
852
|
+
@settings.preferred_run_mode.should == :master
|
853
|
+
|
854
|
+
# initializing the app should have reloaded the metadata based on run_mode
|
855
|
+
@settings[:myfile].should == "#{file}/foo"
|
856
|
+
@settings.metadata(:myfile).should == { :mode => default_mode }
|
857
|
+
end
|
858
|
+
|
829
859
|
it "should call hooks associated with values set in the configuration file" do
|
830
860
|
values = []
|
831
861
|
@settings.define_settings :section, :mysetting => {:default => "defval", :desc => "a", :hook => proc { |v| values << v }}
|
@@ -905,7 +935,28 @@ describe Puppet::Settings do
|
|
905
935
|
@settings.initialize_app_defaults(:logdir => '/path/to/logdir', :confdir => '/path/to/confdir', :vardir => '/path/to/vardir')
|
906
936
|
|
907
937
|
hook_invoked.should be_true
|
908
|
-
@settings[:deferred].should eq
|
938
|
+
@settings[:deferred].should eq(File.expand_path('/path/to/confdir/goose'))
|
939
|
+
end
|
940
|
+
|
941
|
+
it "does not require the value for a setting without a hook to resolve during global setup" do
|
942
|
+
hook_invoked = false
|
943
|
+
@settings.define_settings :section, :can_cause_problems => {:desc => '' }
|
944
|
+
|
945
|
+
@settings.define_settings(:main,
|
946
|
+
:logdir => { :type => :directory, :default => nil, :desc => "logdir" },
|
947
|
+
:confdir => { :type => :directory, :default => nil, :desc => "confdir" },
|
948
|
+
:vardir => { :type => :directory, :default => nil, :desc => "vardir" })
|
949
|
+
|
950
|
+
text = <<-EOD
|
951
|
+
[main]
|
952
|
+
can_cause_problems=$confdir/goose
|
953
|
+
EOD
|
954
|
+
|
955
|
+
@settings.stubs(:read_file).returns(text)
|
956
|
+
@settings.initialize_global_settings
|
957
|
+
@settings.initialize_app_defaults(:logdir => '/path/to/logdir', :confdir => '/path/to/confdir', :vardir => '/path/to/vardir')
|
958
|
+
|
959
|
+
@settings[:can_cause_problems].should eq(File.expand_path('/path/to/confdir/goose'))
|
909
960
|
end
|
910
961
|
|
911
962
|
it "should allow empty values" do
|
@@ -952,7 +1003,7 @@ describe Puppet::Settings do
|
|
952
1003
|
context "running non-root without explicit config file" do
|
953
1004
|
before :each do
|
954
1005
|
Puppet.features.stubs(:root?).returns(false)
|
955
|
-
Puppet::FileSystem
|
1006
|
+
Puppet::FileSystem.expects(:exist?).
|
956
1007
|
with(user_config_file_default_location).
|
957
1008
|
returns(true).in_sequence(seq)
|
958
1009
|
@settings.expects(:read_file).
|
@@ -974,7 +1025,7 @@ describe Puppet::Settings do
|
|
974
1025
|
context "running as root without explicit config file" do
|
975
1026
|
before :each do
|
976
1027
|
Puppet.features.stubs(:root?).returns(true)
|
977
|
-
Puppet::FileSystem
|
1028
|
+
Puppet::FileSystem.expects(:exist?).
|
978
1029
|
with(main_config_file_default_location).
|
979
1030
|
returns(true).in_sequence(seq)
|
980
1031
|
@settings.expects(:read_file).
|
@@ -997,7 +1048,7 @@ describe Puppet::Settings do
|
|
997
1048
|
before :each do
|
998
1049
|
Puppet.features.stubs(:root?).returns(false)
|
999
1050
|
@settings[:confdir] = File.dirname(main_config_file_default_location)
|
1000
|
-
Puppet::FileSystem
|
1051
|
+
Puppet::FileSystem.expects(:exist?).
|
1001
1052
|
with(main_config_file_default_location).
|
1002
1053
|
returns(true).in_sequence(seq)
|
1003
1054
|
@settings.expects(:read_file).
|
@@ -1027,13 +1078,13 @@ describe Puppet::Settings do
|
|
1027
1078
|
:one => { :default => "ONE", :desc => "a" },
|
1028
1079
|
:two => { :default => "$one TWO", :desc => "b" },
|
1029
1080
|
:three => { :default => "$one $two THREE", :desc => "c" }
|
1030
|
-
Puppet::FileSystem
|
1031
|
-
Puppet::FileSystem
|
1081
|
+
Puppet::FileSystem.stubs(:exist?).with(@file).returns true
|
1082
|
+
Puppet::FileSystem.stubs(:exist?).with(@userconfig).returns false
|
1032
1083
|
@settings.stubs(:user_config_file).returns(@userconfig)
|
1033
1084
|
end
|
1034
1085
|
|
1035
1086
|
it "does not create the WatchedFile instance and should not parse if the file does not exist" do
|
1036
|
-
Puppet::FileSystem
|
1087
|
+
Puppet::FileSystem.expects(:exist?).with(@file).returns false
|
1037
1088
|
Puppet::Util::WatchedFile.expects(:new).never
|
1038
1089
|
|
1039
1090
|
@settings.expects(:parse_config_files).never
|
@@ -1064,7 +1115,7 @@ describe Puppet::Settings do
|
|
1064
1115
|
it "reparses if the file has changed" do
|
1065
1116
|
@watched_file.expects(:changed?).returns true
|
1066
1117
|
|
1067
|
-
@settings.expects(:
|
1118
|
+
@settings.expects(:parse_config_files)
|
1068
1119
|
|
1069
1120
|
@settings.reparse_config_files
|
1070
1121
|
end
|
@@ -1372,13 +1423,20 @@ describe Puppet::Settings do
|
|
1372
1423
|
|
1373
1424
|
@trans.expects(:any_failed?).returns(true)
|
1374
1425
|
|
1375
|
-
|
1376
|
-
|
1426
|
+
resource = Puppet::Type.type(:notify).new(:title => 'failed')
|
1427
|
+
status = Puppet::Resource::Status.new(resource)
|
1428
|
+
event = Puppet::Transaction::Event.new(
|
1429
|
+
:name => 'failure',
|
1430
|
+
:status => 'failure',
|
1431
|
+
:message => 'My failure')
|
1432
|
+
status.add_event(event)
|
1377
1433
|
|
1378
|
-
|
1379
|
-
report.
|
1434
|
+
report = Puppet::Transaction::Report.new('apply')
|
1435
|
+
report.add_resource_status(status)
|
1436
|
+
|
1437
|
+
@trans.expects(:report).returns report
|
1380
1438
|
|
1381
|
-
@settings.expects(:raise).with
|
1439
|
+
@settings.expects(:raise).with(includes("My failure"))
|
1382
1440
|
@settings.use(:whatever)
|
1383
1441
|
end
|
1384
1442
|
end
|