puppet 6.16.0-x86-mingw32 → 6.20.0-x86-mingw32
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.
- checksums.yaml +4 -4
- data/CODEOWNERS +2 -16
- data/Gemfile +6 -2
- data/Gemfile.lock +40 -36
- data/README.md +3 -4
- data/Rakefile +4 -12
- data/lib/puppet/agent.rb +2 -2
- data/lib/puppet/agent/locker.rb +0 -7
- data/lib/puppet/application.rb +10 -6
- data/lib/puppet/application/agent.rb +23 -6
- data/lib/puppet/application/apply.rb +20 -21
- data/lib/puppet/application/device.rb +1 -0
- data/lib/puppet/application/doc.rb +1 -1
- data/lib/puppet/application/filebucket.rb +2 -2
- data/lib/puppet/application/lookup.rb +16 -4
- data/lib/puppet/application/script.rb +1 -0
- data/lib/puppet/application_support.rb +7 -0
- data/lib/puppet/configurer.rb +70 -20
- data/lib/puppet/configurer/downloader.rb +31 -10
- data/lib/puppet/confine.rb +2 -2
- data/lib/puppet/confine/any.rb +1 -1
- data/lib/puppet/defaults.rb +113 -46
- data/lib/puppet/environments.rb +84 -59
- data/lib/puppet/face/catalog.rb +1 -1
- data/lib/puppet/face/config.rb +56 -16
- data/lib/puppet/face/epp.rb +12 -2
- data/lib/puppet/face/facts.rb +60 -0
- data/lib/puppet/face/node.rb +3 -3
- data/lib/puppet/face/node/clean.rb +2 -2
- data/lib/puppet/face/status.rb +1 -1
- data/lib/puppet/feature/base.rb +1 -1
- data/lib/puppet/ffi/posix.rb +10 -0
- data/lib/puppet/ffi/posix/constants.rb +14 -0
- data/lib/puppet/ffi/posix/functions.rb +24 -0
- data/lib/puppet/file_bucket/dipper.rb +1 -1
- data/lib/puppet/file_serving/http_metadata.rb +13 -1
- data/lib/puppet/file_serving/metadata.rb +4 -1
- data/lib/puppet/file_serving/mount/locales.rb +1 -2
- data/lib/puppet/file_serving/mount/pluginfacts.rb +1 -2
- data/lib/puppet/file_serving/mount/plugins.rb +1 -2
- data/lib/puppet/file_serving/terminus_selector.rb +7 -8
- data/lib/puppet/file_system/file_impl.rb +4 -4
- data/lib/puppet/file_system/uniquefile.rb +8 -16
- data/lib/puppet/forge.rb +1 -1
- data/lib/puppet/forge/cache.rb +1 -1
- data/lib/puppet/forge/repository.rb +3 -7
- data/lib/puppet/functions/epp.rb +1 -0
- data/lib/puppet/functions/inline_epp.rb +1 -0
- data/lib/puppet/functions/lstrip.rb +4 -4
- data/lib/puppet/functions/new.rb +8 -3
- data/lib/puppet/functions/reverse_each.rb +1 -1
- data/lib/puppet/functions/rstrip.rb +4 -4
- data/lib/puppet/functions/step.rb +1 -1
- data/lib/puppet/functions/strip.rb +4 -4
- data/lib/puppet/gettext/config.rb +5 -5
- data/lib/puppet/gettext/module_translations.rb +4 -4
- data/lib/puppet/http.rb +1 -0
- data/lib/puppet/http/client.rb +6 -1
- data/lib/puppet/http/redirector.rb +9 -7
- data/lib/puppet/http/resolver.rb +5 -8
- data/lib/puppet/http/resolver/server_list.rb +18 -36
- data/lib/puppet/http/resolver/settings.rb +4 -4
- data/lib/puppet/http/resolver/srv.rb +5 -5
- data/lib/puppet/http/response.rb +19 -0
- data/lib/puppet/http/service.rb +3 -1
- data/lib/puppet/http/service/compiler.rb +1 -1
- data/lib/puppet/http/service/file_server.rb +1 -1
- data/lib/puppet/http/service/puppetserver.rb +39 -0
- data/lib/puppet/http/session.rb +5 -4
- data/lib/puppet/indirector.rb +1 -1
- data/lib/puppet/indirector/catalog/compiler.rb +1 -1
- data/lib/puppet/indirector/exec.rb +1 -1
- data/lib/puppet/indirector/fact_search.rb +60 -0
- data/lib/puppet/indirector/facts/facter.rb +3 -3
- data/lib/puppet/indirector/facts/json.rb +27 -0
- data/lib/puppet/indirector/facts/yaml.rb +4 -59
- data/lib/puppet/indirector/file_content/rest.rb +1 -1
- data/lib/puppet/indirector/file_metadata/http.rb +25 -5
- data/lib/puppet/indirector/file_metadata/rest.rb +2 -2
- data/lib/puppet/indirector/hiera.rb +4 -0
- data/lib/puppet/indirector/indirection.rb +1 -1
- data/lib/puppet/indirector/json.rb +5 -1
- data/lib/puppet/indirector/msgpack.rb +1 -1
- data/lib/puppet/indirector/node/json.rb +8 -0
- data/lib/puppet/indirector/report/json.rb +34 -0
- data/lib/puppet/indirector/report/processor.rb +2 -2
- data/lib/puppet/indirector/request.rb +5 -5
- data/lib/puppet/indirector/yaml.rb +1 -1
- data/lib/puppet/module.rb +1 -2
- data/lib/puppet/module_tool/applications/installer.rb +48 -2
- data/lib/puppet/module_tool/errors/shared.rb +17 -2
- data/lib/puppet/network/format_support.rb +2 -2
- data/lib/puppet/network/formats.rb +2 -1
- data/lib/puppet/network/http/api/indirected_routes.rb +1 -1
- data/lib/puppet/network/http/api/master/v3/environment.rb +3 -0
- data/lib/puppet/network/http/api/master/v3/environments.rb +0 -1
- data/lib/puppet/network/http/connection_adapter.rb +6 -4
- data/lib/puppet/network/http/route.rb +2 -2
- data/lib/puppet/node/environment.rb +12 -5
- data/lib/puppet/node/facts.rb +17 -0
- data/lib/puppet/pal/pal_impl.rb +90 -13
- data/lib/puppet/parameter.rb +1 -1
- data/lib/puppet/parser/ast/leaf.rb +7 -6
- data/lib/puppet/parser/ast/pops_bridge.rb +0 -4
- data/lib/puppet/parser/compiler.rb +1 -1
- data/lib/puppet/parser/compiler/catalog_validator/env_relationship_validator.rb +2 -0
- data/lib/puppet/parser/compiler/catalog_validator/site_validator.rb +2 -0
- data/lib/puppet/parser/environment_compiler.rb +4 -1
- data/lib/puppet/parser/functions.rb +21 -17
- data/lib/puppet/parser/functions/create_resources.rb +11 -7
- data/lib/puppet/parser/resource.rb +3 -2
- data/lib/puppet/parser/resource/param.rb +6 -0
- data/lib/puppet/parser/templatewrapper.rb +1 -1
- data/lib/puppet/parser/type_loader.rb +2 -2
- data/lib/puppet/pops/adaptable.rb +7 -13
- data/lib/puppet/pops/adapters.rb +8 -4
- data/lib/puppet/pops/evaluator/collectors/abstract_collector.rb +1 -3
- data/lib/puppet/pops/evaluator/deferred_resolver.rb +5 -3
- data/lib/puppet/pops/evaluator/evaluator_impl.rb +27 -8
- data/lib/puppet/pops/evaluator/runtime3_converter.rb +2 -2
- data/lib/puppet/pops/issues.rb +5 -0
- data/lib/puppet/pops/loader/runtime3_type_loader.rb +4 -2
- data/lib/puppet/pops/loaders.rb +18 -11
- data/lib/puppet/pops/lookup/context.rb +1 -1
- data/lib/puppet/pops/lookup/hiera_config.rb +14 -1
- data/lib/puppet/pops/model/ast_transformer.rb +1 -1
- data/lib/puppet/pops/resource/resource_type_impl.rb +2 -0
- data/lib/puppet/pops/types/iterable.rb +34 -8
- data/lib/puppet/pops/types/p_meta_type.rb +1 -1
- data/lib/puppet/pops/types/p_type_set_type.rb +4 -0
- data/lib/puppet/pops/validation/checker4_0.rb +29 -15
- data/lib/puppet/pops/validation/validator_factory_4_0.rb +1 -0
- data/lib/puppet/provider/file/windows.rb +1 -1
- data/lib/puppet/provider/package/apt.rb +38 -0
- data/lib/puppet/provider/package/aptitude.rb +1 -1
- data/lib/puppet/provider/package/dpkg.rb +1 -1
- data/lib/puppet/provider/package/gem.rb +4 -2
- data/lib/puppet/provider/package/pip2.rb +17 -0
- data/lib/puppet/provider/package/puppet_gem.rb +5 -0
- data/lib/puppet/provider/package/puppetserver_gem.rb +180 -0
- data/lib/puppet/provider/package/yum.rb +2 -1
- data/lib/puppet/provider/package/zypper.rb +3 -0
- data/lib/puppet/provider/service/windows.rb +23 -7
- data/lib/puppet/provider/user/aix.rb +3 -3
- data/lib/puppet/provider/user/user_role_add.rb +1 -1
- data/lib/puppet/provider/user/useradd.rb +11 -4
- data/lib/puppet/provider/user/windows_adsi.rb +18 -1
- data/lib/puppet/reference/configuration.rb +6 -5
- data/lib/puppet/reports/http.rb +2 -0
- data/lib/puppet/resource.rb +2 -1
- data/lib/puppet/resource/type.rb +10 -1
- data/lib/puppet/rest/route.rb +2 -2
- data/lib/puppet/settings.rb +63 -21
- data/lib/puppet/settings/alias_setting.rb +37 -0
- data/lib/puppet/settings/base_setting.rb +26 -2
- data/lib/puppet/ssl/ssl_context.rb +2 -2
- data/lib/puppet/ssl/ssl_provider.rb +20 -1
- data/lib/puppet/ssl/validator/default_validator.rb +1 -1
- data/lib/puppet/test/test_helper.rb +18 -13
- data/lib/puppet/transaction.rb +2 -2
- data/lib/puppet/transaction/persistence.rb +1 -1
- data/lib/puppet/transaction/report.rb +12 -8
- data/lib/puppet/trusted_external.rb +29 -1
- data/lib/puppet/type.rb +15 -7
- data/lib/puppet/type/file.rb +40 -15
- data/lib/puppet/type/file/checksum.rb +4 -4
- data/lib/puppet/type/file/source.rb +32 -12
- data/lib/puppet/type/filebucket.rb +1 -1
- data/lib/puppet/type/notify.rb +2 -2
- data/lib/puppet/type/service.rb +53 -0
- data/lib/puppet/type/user.rb +18 -3
- data/lib/puppet/util.rb +41 -3
- data/lib/puppet/util/autoload.rb +10 -15
- data/lib/puppet/util/character_encoding.rb +9 -5
- data/lib/puppet/util/checksums.rb +19 -4
- data/lib/puppet/util/connection.rb +8 -8
- data/lib/puppet/util/execution.rb +2 -2
- data/lib/puppet/util/fact_dif.rb +62 -0
- data/lib/puppet/util/fileparsing.rb +2 -2
- data/lib/puppet/util/posix.rb +54 -5
- data/lib/puppet/util/provider_features.rb +1 -1
- data/lib/puppet/util/reference.rb +1 -1
- data/lib/puppet/util/rubygems.rb +5 -1
- data/lib/puppet/util/run_mode.rb +5 -1
- data/lib/puppet/util/windows.rb +1 -0
- data/lib/puppet/util/windows/api_types.rb +60 -33
- data/lib/puppet/util/windows/eventlog.rb +1 -6
- data/lib/puppet/util/windows/monkey_patches/dir.rb +40 -0
- data/lib/puppet/util/windows/principal.rb +8 -6
- data/lib/puppet/util/windows/registry.rb +11 -11
- data/lib/puppet/util/windows/security.rb +4 -4
- data/lib/puppet/util/windows/service.rb +43 -26
- data/lib/puppet/util/windows/user.rb +242 -8
- data/lib/puppet/version.rb +1 -1
- data/locales/puppet.pot +501 -443
- data/man/man5/puppet.conf.5 +70 -24
- data/man/man8/puppet-agent.8 +8 -5
- data/man/man8/puppet-apply.8 +2 -2
- data/man/man8/puppet-catalog.8 +1 -1
- data/man/man8/puppet-config.8 +6 -6
- data/man/man8/puppet-describe.8 +1 -1
- data/man/man8/puppet-device.8 +2 -2
- data/man/man8/puppet-doc.8 +1 -1
- data/man/man8/puppet-epp.8 +1 -1
- data/man/man8/puppet-facts.8 +32 -1
- data/man/man8/puppet-filebucket.8 +3 -3
- data/man/man8/puppet-generate.8 +1 -1
- data/man/man8/puppet-help.8 +1 -1
- data/man/man8/puppet-key.8 +1 -1
- data/man/man8/puppet-lookup.8 +2 -2
- data/man/man8/puppet-man.8 +1 -1
- data/man/man8/puppet-module.8 +1 -1
- data/man/man8/puppet-node.8 +7 -4
- data/man/man8/puppet-parser.8 +1 -1
- data/man/man8/puppet-plugin.8 +1 -1
- data/man/man8/puppet-report.8 +4 -1
- data/man/man8/puppet-resource.8 +1 -1
- data/man/man8/puppet-script.8 +2 -2
- data/man/man8/puppet-ssl.8 +1 -1
- data/man/man8/puppet-status.8 +2 -2
- data/man/man8/puppet.8 +2 -2
- data/spec/fixtures/integration/application/agent/cached_deferred_catalog.json +91 -0
- data/spec/fixtures/integration/application/apply/environments/spec/modules/amod/lib/puppet/provider/applytest/applytest.rb +2 -0
- data/spec/fixtures/integration/application/apply/environments/spec/modules/amod/lib/puppet/type/applytest.rb +25 -0
- data/spec/fixtures/unit/forge/bacula-releases.json +128 -0
- data/spec/fixtures/unit/forge/bacula.tar.gz +0 -0
- data/spec/fixtures/unit/provider/package/puppetserver_gem/gem-list-local-packages +30 -0
- data/spec/fixtures/unit/provider/user/aix/aix_passwd_file.out +4 -0
- data/spec/integration/application/agent_spec.rb +263 -54
- data/spec/integration/application/apply_spec.rb +168 -149
- data/spec/integration/application/doc_spec.rb +16 -6
- data/spec/integration/application/filebucket_spec.rb +70 -21
- data/spec/integration/application/help_spec.rb +42 -0
- data/spec/integration/application/lookup_spec.rb +13 -0
- data/spec/integration/application/module_spec.rb +68 -0
- data/spec/integration/application/plugin_spec.rb +53 -3
- data/spec/integration/configurer_spec.rb +14 -0
- data/spec/integration/data_binding_spec.rb +82 -0
- data/spec/integration/defaults_spec.rb +20 -3
- data/spec/integration/directory_environments_spec.rb +17 -17
- data/spec/integration/environments/setting_hooks_spec.rb +1 -1
- data/spec/integration/indirector/facts/facter_spec.rb +8 -6
- data/spec/integration/network/http_pool_spec.rb +26 -9
- data/spec/integration/node/environment_spec.rb +1 -1
- data/spec/integration/parser/compiler_spec.rb +11 -0
- data/spec/integration/resource/type_collection_spec.rb +2 -6
- data/spec/integration/transaction_spec.rb +4 -9
- data/spec/integration/type/file_spec.rb +1 -1
- data/spec/integration/util/execution_spec.rb +22 -0
- data/spec/integration/util/windows/adsi_spec.rb +5 -3
- data/spec/integration/util/windows/monkey_patches/dir_spec.rb +11 -0
- data/spec/integration/util/windows/process_spec.rb +26 -32
- data/spec/integration/util/windows/registry_spec.rb +7 -17
- data/spec/integration/util/windows/user_spec.rb +47 -5
- data/spec/integration/util_spec.rb +7 -33
- data/spec/lib/puppet_spec/matchers.rb +0 -80
- data/spec/lib/puppet_spec/puppetserver.rb +8 -0
- data/spec/lib/puppet_spec/settings.rb +6 -1
- data/spec/shared_contexts/types_setup.rb +2 -0
- data/spec/spec_helper.rb +1 -4
- data/spec/unit/agent_spec.rb +8 -6
- data/spec/unit/application/agent_spec.rb +3 -5
- data/spec/unit/application/config_spec.rb +224 -4
- data/spec/unit/application/doc_spec.rb +2 -2
- data/spec/unit/application/face_base_spec.rb +6 -4
- data/spec/unit/application/facts_spec.rb +41 -10
- data/spec/unit/application/filebucket_spec.rb +0 -2
- data/spec/unit/application/man_spec.rb +52 -0
- data/spec/unit/application/resource_spec.rb +3 -1
- data/spec/unit/application/ssl_spec.rb +15 -2
- data/spec/unit/application_spec.rb +60 -13
- data/spec/unit/configurer/downloader_spec.rb +10 -0
- data/spec/unit/configurer/fact_handler_spec.rb +4 -4
- data/spec/unit/configurer_spec.rb +86 -37
- data/spec/unit/confine/feature_spec.rb +1 -1
- data/spec/unit/confine_spec.rb +10 -3
- data/spec/unit/context/trusted_information_spec.rb +10 -4
- data/spec/unit/defaults_spec.rb +20 -1
- data/spec/unit/environments_spec.rb +176 -32
- data/spec/unit/face/config_spec.rb +65 -12
- data/spec/unit/face/node_spec.rb +2 -13
- data/spec/unit/file_serving/configuration/parser_spec.rb +0 -1
- data/spec/unit/file_serving/http_metadata_spec.rb +37 -14
- data/spec/unit/file_serving/metadata_spec.rb +3 -3
- data/spec/unit/file_serving/mount/locales_spec.rb +2 -2
- data/spec/unit/file_serving/mount/pluginfacts_spec.rb +2 -2
- data/spec/unit/file_serving/mount/plugins_spec.rb +2 -2
- data/spec/unit/file_serving/terminus_helper_spec.rb +11 -4
- data/spec/unit/file_serving/terminus_selector_spec.rb +45 -26
- data/spec/unit/file_system/uniquefile_spec.rb +18 -0
- data/spec/unit/file_system_spec.rb +1 -2
- data/spec/unit/forge/module_release_spec.rb +2 -7
- data/spec/unit/functions/inline_epp_spec.rb +26 -1
- data/spec/unit/http/client_spec.rb +64 -9
- data/spec/unit/http/resolver_spec.rb +24 -5
- data/spec/unit/http/response_spec.rb +6 -0
- data/spec/unit/http/service/ca_spec.rb +2 -3
- data/spec/unit/http/service/compiler_spec.rb +51 -3
- data/spec/unit/http/service/file_server_spec.rb +2 -3
- data/spec/unit/http/service/puppetserver_spec.rb +82 -0
- data/spec/unit/http/service/report_spec.rb +2 -3
- data/spec/unit/http/service_spec.rb +1 -2
- data/spec/unit/http/session_spec.rb +8 -21
- data/spec/unit/indirector/catalog/json_spec.rb +1 -1
- data/spec/unit/indirector/catalog/rest_spec.rb +1 -1
- data/spec/unit/indirector/face_spec.rb +0 -1
- data/spec/unit/indirector/facts/facter_spec.rb +0 -1
- data/spec/unit/indirector/facts/json_spec.rb +255 -0
- data/spec/unit/indirector/facts/rest_spec.rb +1 -1
- data/spec/unit/indirector/file_bucket_file/selector_spec.rb +26 -8
- data/spec/unit/indirector/file_metadata/http_spec.rb +27 -0
- data/spec/unit/indirector/indirection_spec.rb +8 -12
- data/spec/unit/indirector/json_spec.rb +8 -8
- data/spec/unit/indirector/key/file_spec.rb +0 -1
- data/spec/unit/indirector/msgpack_spec.rb +8 -8
- data/spec/unit/indirector/node/json_spec.rb +33 -0
- data/spec/unit/indirector/node/rest_spec.rb +1 -1
- data/spec/{integration/indirector/report/yaml.rb → unit/indirector/report/json_spec.rb} +13 -24
- data/spec/unit/indirector/report/yaml_spec.rb +72 -8
- data/spec/unit/indirector/request_spec.rb +5 -5
- data/spec/unit/indirector/rest_spec.rb +1 -1
- data/spec/unit/indirector/status/rest_spec.rb +1 -1
- data/spec/unit/indirector/yaml_spec.rb +7 -7
- data/spec/unit/indirector_spec.rb +2 -2
- data/spec/unit/interface_spec.rb +3 -3
- data/spec/unit/module_tool/applications/installer_spec.rb +66 -0
- data/spec/unit/module_tool/tar/mini_spec.rb +20 -0
- data/spec/unit/network/authconfig_spec.rb +0 -3
- data/spec/unit/network/format_support_spec.rb +3 -2
- data/spec/unit/network/http/api/indirected_routes_spec.rb +2 -10
- data/spec/unit/network/http/api/master/v3/environments_spec.rb +12 -23
- data/spec/unit/network/http/connection_spec.rb +42 -32
- data/spec/unit/network/http/handler_spec.rb +0 -5
- data/spec/unit/node/environment_spec.rb +18 -1
- data/spec/unit/parser/ast/block_expression_spec.rb +1 -1
- data/spec/unit/parser/compiler_spec.rb +3 -19
- data/spec/unit/parser/environment_compiler_spec.rb +7 -0
- data/spec/unit/parser/resource_spec.rb +14 -8
- data/spec/unit/parser/scope_spec.rb +1 -1
- data/spec/unit/parser/templatewrapper_spec.rb +4 -3
- data/spec/unit/pops/evaluator/deferred_resolver_spec.rb +20 -0
- data/spec/unit/pops/evaluator/evaluating_parser_spec.rb +15 -1
- data/spec/unit/pops/loaders/loaders_spec.rb +71 -1
- data/spec/unit/pops/lookup/lookup_spec.rb +25 -0
- data/spec/unit/pops/types/type_calculator_spec.rb +1 -11
- data/spec/unit/property_spec.rb +1 -0
- data/spec/unit/provider/exec_spec.rb +4 -3
- data/spec/unit/provider/nameservice_spec.rb +66 -65
- data/spec/unit/provider/package/apt_spec.rb +76 -3
- data/spec/unit/provider/package/aptitude_spec.rb +1 -0
- data/spec/unit/provider/package/base_spec.rb +6 -5
- data/spec/unit/provider/package/dpkg_spec.rb +22 -7
- data/spec/unit/provider/package/openbsd_spec.rb +2 -0
- data/spec/unit/provider/package/pacman_spec.rb +18 -12
- data/spec/unit/provider/package/pip2_spec.rb +36 -0
- data/spec/unit/provider/package/pip_spec.rb +6 -11
- data/spec/unit/provider/package/pkgdmg_spec.rb +0 -4
- data/spec/unit/provider/package/puppet_gem_spec.rb +4 -1
- data/spec/unit/provider/package/puppetserver_gem_spec.rb +137 -0
- data/spec/unit/provider/package/yum_spec.rb +31 -0
- data/spec/unit/provider/package/zypper_spec.rb +14 -0
- data/spec/unit/provider/service/base_spec.rb +2 -4
- data/spec/unit/provider/service/bsd_spec.rb +5 -1
- data/spec/unit/provider/service/daemontools_spec.rb +1 -1
- data/spec/unit/provider/service/debian_spec.rb +3 -5
- data/spec/unit/provider/service/freebsd_spec.rb +1 -1
- data/spec/unit/provider/service/gentoo_spec.rb +4 -5
- data/spec/unit/provider/service/init_spec.rb +45 -5
- data/spec/unit/provider/service/launchd_spec.rb +5 -6
- data/spec/unit/provider/service/openrc_spec.rb +4 -5
- data/spec/unit/provider/service/openwrt_spec.rb +1 -1
- data/spec/unit/provider/service/redhat_spec.rb +1 -1
- data/spec/unit/provider/service/runit_spec.rb +2 -1
- data/spec/unit/provider/service/smf_spec.rb +1 -1
- data/spec/unit/provider/service/src_spec.rb +3 -5
- data/spec/unit/provider/service/systemd_spec.rb +3 -6
- data/spec/unit/provider/service/upstart_spec.rb +4 -5
- data/spec/unit/provider/service/windows_spec.rb +50 -14
- data/spec/unit/provider/user/aix_spec.rb +5 -0
- data/spec/unit/provider/user/hpux_spec.rb +1 -1
- data/spec/unit/provider/user/openbsd_spec.rb +1 -0
- data/spec/unit/provider/user/pw_spec.rb +2 -0
- data/spec/unit/provider/user/useradd_spec.rb +23 -16
- data/spec/unit/provider/user/windows_adsi_spec.rb +82 -0
- data/spec/unit/provider_spec.rb +8 -10
- data/spec/unit/puppet_pal_2pec.rb +40 -0
- data/spec/unit/puppet_pal_catalog_spec.rb +45 -0
- data/spec/unit/reports/store_spec.rb +17 -13
- data/spec/unit/resource/capability_finder_spec.rb +6 -1
- data/spec/unit/resource/type_spec.rb +1 -1
- data/spec/unit/resource_spec.rb +14 -13
- data/spec/unit/rest/route_spec.rb +4 -4
- data/spec/unit/settings_spec.rb +576 -239
- data/spec/unit/ssl/base_spec.rb +0 -1
- data/spec/unit/ssl/host_spec.rb +0 -5
- data/spec/unit/ssl/ssl_provider_spec.rb +82 -50
- data/spec/unit/test/test_helper_spec.rb +17 -0
- data/spec/unit/transaction/additional_resource_generator_spec.rb +3 -7
- data/spec/unit/transaction/event_manager_spec.rb +14 -11
- data/spec/unit/transaction/persistence_spec.rb +15 -0
- data/spec/unit/transaction/report_spec.rb +3 -1
- data/spec/unit/transaction_spec.rb +13 -4
- data/spec/unit/type/file/content_spec.rb +0 -1
- data/spec/unit/type/file/selinux_spec.rb +0 -2
- data/spec/unit/type/file/source_spec.rb +4 -4
- data/spec/unit/type/file_spec.rb +122 -102
- data/spec/unit/type/filebucket_spec.rb +1 -1
- data/spec/unit/type/group_spec.rb +13 -6
- data/spec/unit/type/resources_spec.rb +7 -7
- data/spec/unit/type/service_spec.rb +210 -1
- data/spec/unit/type/tidy_spec.rb +0 -1
- data/spec/unit/type/user_spec.rb +31 -2
- data/spec/unit/type_spec.rb +52 -2
- data/spec/unit/util/at_fork_spec.rb +2 -2
- data/spec/unit/util/autoload_spec.rb +5 -1
- data/spec/unit/util/backups_spec.rb +1 -2
- data/spec/unit/util/character_encoding_spec.rb +4 -4
- data/spec/unit/util/checksums_spec.rb +16 -0
- data/spec/unit/util/command_line_spec.rb +11 -6
- data/spec/unit/util/execution_spec.rb +15 -11
- data/spec/unit/util/inifile_spec.rb +6 -14
- data/spec/unit/util/log_spec.rb +8 -7
- data/spec/unit/util/logging_spec.rb +3 -3
- data/spec/unit/util/posix_spec.rb +363 -15
- data/spec/unit/util/rubygems_spec.rb +2 -2
- data/spec/unit/util/run_mode_spec.rb +6 -6
- data/spec/unit/util/selinux_spec.rb +76 -52
- data/spec/unit/util/storage_spec.rb +3 -1
- data/spec/unit/util/suidmanager_spec.rb +44 -41
- data/spec/unit/util/windows/api_types_spec.rb +104 -40
- data/spec/unit/util/windows/service_spec.rb +4 -4
- data/spec/unit/util_spec.rb +16 -9
- data/spec/unit/x509/cert_provider_spec.rb +1 -1
- metadata +52 -53
- data/spec/integration/faces/config_spec.rb +0 -91
- data/spec/integration/faces/documentation_spec.rb +0 -57
- data/spec/integration/file_bucket/file_spec.rb +0 -50
- data/spec/integration/file_serving/content_spec.rb +0 -7
- data/spec/integration/file_serving/fileset_spec.rb +0 -12
- data/spec/integration/file_serving/metadata_spec.rb +0 -8
- data/spec/integration/file_serving/terminus_helper_spec.rb +0 -20
- data/spec/integration/file_system/uniquefile_spec.rb +0 -26
- data/spec/integration/module_tool/forge_spec.rb +0 -51
- data/spec/integration/module_tool/tar/mini_spec.rb +0 -28
- data/spec/integration/provider/service/init_spec.rb +0 -48
- data/spec/integration/provider/service/systemd_spec.rb +0 -25
- data/spec/integration/provider/service/windows_spec.rb +0 -50
- data/spec/integration/reference/providers_spec.rb +0 -21
- data/spec/integration/reports_spec.rb +0 -13
- data/spec/integration/ssl/certificate_request_spec.rb +0 -44
- data/spec/integration/ssl/host_spec.rb +0 -72
- data/spec/integration/ssl/key_spec.rb +0 -99
- data/spec/integration/test/test_helper_spec.rb +0 -31
- data/spec/shared_behaviours/file_serving_model.rb +0 -51
- data/spec/unit/face/catalog_spec.rb +0 -6
- data/spec/unit/face/man_spec.rb +0 -25
- data/spec/unit/face/module_spec.rb +0 -3
- data/spec/unit/man_spec.rb +0 -31
@@ -155,6 +155,7 @@ you can specify '--server <servername>' as an argument.
|
|
155
155
|
Where to send log messages. Choose between 'syslog' (the POSIX syslog
|
156
156
|
service), 'console', or the path to a log file. If debugging or verbosity is
|
157
157
|
enabled, this defaults to 'console'. Otherwise, it defaults to 'syslog'.
|
158
|
+
Multiple destinations can be set using a comma separated list (eg: `/path/file1,console,/path/file2`)"
|
158
159
|
|
159
160
|
A path ending with '.json' will receive structured output in JSON format. The
|
160
161
|
log file will not have an ending ']' automatically written to it due to the
|
@@ -186,8 +186,8 @@ EXAMPLES
|
|
186
186
|
$ puppet filebucket -b /tmp/TestBucket list
|
187
187
|
d41d8cd98f00b204e9800998ecf8427e 2015-05-11 09:33:22 /tmp/TestFile2
|
188
188
|
|
189
|
-
## From a Puppet
|
190
|
-
$ puppet filebucket -b $(puppet config print bucketdir --section
|
189
|
+
## From a Puppet Server, list files in the server bucketdir
|
190
|
+
$ puppet filebucket -b $(puppet config print bucketdir --section server) list
|
191
191
|
d43a6ecaa892a1962398ac9170ea9bf2 2015-05-11 09:27:56 /tmp/TestFile
|
192
192
|
7ae322f5791217e031dc60188f4521ef 2015-05-11 09:52:15 /tmp/TestFile
|
193
193
|
|
@@ -8,7 +8,7 @@ class Puppet::Application::Lookup < Puppet::Application
|
|
8
8
|
RUN_HELP = _("Run 'puppet lookup --help' for more details").freeze
|
9
9
|
DEEP_MERGE_OPTIONS = '--knock-out-prefix, --sort-merged-arrays, and --merge-hash-arrays'.freeze
|
10
10
|
|
11
|
-
run_mode :
|
11
|
+
run_mode :server
|
12
12
|
|
13
13
|
# Options for lookup
|
14
14
|
option('--merge TYPE') do |arg|
|
@@ -90,7 +90,13 @@ class Puppet::Application::Lookup < Puppet::Application
|
|
90
90
|
|
91
91
|
exit(Puppet.settings.print_configs ? 0 : 1) if Puppet.settings.print_configs?
|
92
92
|
|
93
|
-
|
93
|
+
if options[:node]
|
94
|
+
Puppet::Util.skip_external_facts do
|
95
|
+
Puppet.settings.use :main, :server, :ssl, :metrics
|
96
|
+
end
|
97
|
+
else
|
98
|
+
Puppet.settings.use :main, :server, :ssl, :metrics
|
99
|
+
end
|
94
100
|
|
95
101
|
setup_terminuses
|
96
102
|
end
|
@@ -102,7 +108,7 @@ class Puppet::Application::Lookup < Puppet::Application
|
|
102
108
|
def help
|
103
109
|
<<-HELP
|
104
110
|
|
105
|
-
puppet
|
111
|
+
puppet-lookup(8) -- #{summary}
|
106
112
|
========
|
107
113
|
|
108
114
|
SYNOPSIS
|
@@ -364,6 +370,12 @@ Copyright (c) 2015 Puppet Inc., LLC Licensed under the Apache 2.0 License
|
|
364
370
|
|
365
371
|
Puppet[:code] = 'undef' unless options[:compile]
|
366
372
|
compiler = Puppet::Parser::Compiler.new(node)
|
367
|
-
|
373
|
+
if options[:node]
|
374
|
+
Puppet::Util.skip_external_facts do
|
375
|
+
compiler.compile { |catalog| yield(compiler.topscope); catalog }
|
376
|
+
end
|
377
|
+
else
|
378
|
+
compiler.compile { |catalog| yield(compiler.topscope); catalog }
|
379
|
+
end
|
368
380
|
end
|
369
381
|
end
|
@@ -71,6 +71,7 @@ configuration options can also be generated by running puppet with
|
|
71
71
|
Where to send log messages. Choose between 'syslog' (the POSIX syslog
|
72
72
|
service), 'eventlog' (the Windows Event Log), 'console', or the path to a log
|
73
73
|
file. Defaults to 'console'.
|
74
|
+
Multiple destinations can be set using a comma separated list (eg: `/path/file1,console,/path/file2`)"
|
74
75
|
|
75
76
|
A path ending with '.json' will receive structured output in JSON format. The
|
76
77
|
log file will not have an ending ']' automatically written to it due to the
|
@@ -53,6 +53,13 @@ module Puppet
|
|
53
53
|
route_file = Puppet[:route_file]
|
54
54
|
if Puppet::FileSystem.exist?(route_file)
|
55
55
|
routes = Puppet::Util::Yaml.safe_load_file(route_file, [Symbol])
|
56
|
+
if routes["server"] && routes["master"]
|
57
|
+
Puppet.warning("Route file #{route_file} contains both server and master route settings.")
|
58
|
+
elsif routes["server"] && !routes["master"]
|
59
|
+
routes["master"] = routes["server"]
|
60
|
+
elsif routes["master"] && !routes["server"]
|
61
|
+
routes["server"] = routes["master"]
|
62
|
+
end
|
56
63
|
application_routes = routes[application_name]
|
57
64
|
Puppet::Indirector.configure_routes(application_routes) if application_routes
|
58
65
|
end
|
data/lib/puppet/configurer.rb
CHANGED
@@ -53,6 +53,7 @@ class Puppet::Configurer
|
|
53
53
|
def initialize(transaction_uuid = nil, job_id = nil)
|
54
54
|
@running = false
|
55
55
|
@splayed = false
|
56
|
+
@running_failure = false
|
56
57
|
@cached_catalog_status = 'not_used'
|
57
58
|
@environment = Puppet[:environment]
|
58
59
|
@transaction_uuid = transaction_uuid || SecureRandom.uuid
|
@@ -65,9 +66,16 @@ class Puppet::Configurer
|
|
65
66
|
# Get the remote catalog, yo. Returns nil if no catalog can be found.
|
66
67
|
def retrieve_catalog(facts, query_options)
|
67
68
|
query_options ||= {}
|
68
|
-
|
69
|
+
if Puppet[:use_cached_catalog] || @running_failure
|
70
|
+
result = retrieve_catalog_from_cache(query_options)
|
71
|
+
end
|
72
|
+
|
69
73
|
if result
|
70
|
-
|
74
|
+
if Puppet[:use_cached_catalog]
|
75
|
+
@cached_catalog_status = 'explicitly_requested'
|
76
|
+
elsif @running_failure
|
77
|
+
@cached_catalog_status = 'on_failure'
|
78
|
+
end
|
71
79
|
|
72
80
|
Puppet.info _("Using cached catalog from environment '%{environment}'") % { environment: result.environment }
|
73
81
|
else
|
@@ -104,7 +112,7 @@ class Puppet::Configurer
|
|
104
112
|
catalog_conversion_time = thinmark do
|
105
113
|
# Will mutate the result and replace all Deferred values with resolved values
|
106
114
|
if facts
|
107
|
-
Puppet::Pops::Evaluator::DeferredResolver.resolve_and_replace(facts, result)
|
115
|
+
Puppet::Pops::Evaluator::DeferredResolver.resolve_and_replace(facts, result, Puppet.lookup(:current_environment))
|
108
116
|
end
|
109
117
|
|
110
118
|
catalog = result.to_ral
|
@@ -216,9 +224,22 @@ class Puppet::Configurer
|
|
216
224
|
if options[:catalog].nil? && do_failover
|
217
225
|
server, port = find_functional_server
|
218
226
|
if server.nil?
|
219
|
-
|
227
|
+
detail = _("Could not select a functional puppet server from server_list: '%{server_list}'") % { server_list: Puppet.settings.value(:server_list, Puppet[:environment].to_sym, true) }
|
228
|
+
if Puppet[:usecacheonfailure]
|
229
|
+
options[:pluginsync] = false
|
230
|
+
@running_failure = true
|
231
|
+
|
232
|
+
server = Puppet[:server_list].first[0]
|
233
|
+
port = Puppet[:server_list].first[1] || Puppet[:serverport]
|
234
|
+
|
235
|
+
Puppet.err(detail)
|
236
|
+
else
|
237
|
+
raise Puppet::Error, detail
|
238
|
+
end
|
220
239
|
else
|
221
|
-
|
240
|
+
#TRANSLATORS 'server_list' is the name of a setting and should not be translated
|
241
|
+
Puppet.debug _("Selected puppet server from the `server_list` setting: %{server}:%{port}") % { server: server, port: port }
|
242
|
+
report.server_used = "#{server}:#{port}"
|
222
243
|
end
|
223
244
|
Puppet.override(server: server, serverport: port) do
|
224
245
|
completed = run_internal(options)
|
@@ -303,6 +324,15 @@ class Puppet::Configurer
|
|
303
324
|
report.environment = @environment
|
304
325
|
query_options = nil
|
305
326
|
facts = nil
|
327
|
+
|
328
|
+
new_env = Puppet::Node::Environment.remote(@environment)
|
329
|
+
Puppet.push_context(
|
330
|
+
{
|
331
|
+
current_environment: new_env,
|
332
|
+
loaders: Puppet::Pops::Loaders.new(new_env, true)
|
333
|
+
},
|
334
|
+
"Local node environment #{@environment} for configurer transaction"
|
335
|
+
)
|
306
336
|
else
|
307
337
|
Puppet.info _("Using configured environment '%{env}'") % { env: @environment }
|
308
338
|
end
|
@@ -313,19 +343,18 @@ class Puppet::Configurer
|
|
313
343
|
end
|
314
344
|
end
|
315
345
|
|
316
|
-
|
317
|
-
|
318
|
-
|
319
|
-
|
320
|
-
|
321
|
-
|
322
|
-
|
323
|
-
|
346
|
+
# This is to maintain compatibility with anyone using this class
|
347
|
+
# aside from agent, apply, device.
|
348
|
+
unless Puppet.lookup(:loaders) { nil }
|
349
|
+
new_env = Puppet::Node::Environment.remote(@environment)
|
350
|
+
Puppet.push_context(
|
351
|
+
{
|
352
|
+
current_environment: new_env,
|
353
|
+
loaders: Puppet::Pops::Loaders.new(new_env, true)
|
354
|
+
},
|
355
|
+
"Local node environment #{@environment} for configurer transaction"
|
356
|
+
)
|
324
357
|
end
|
325
|
-
Puppet.push_context({
|
326
|
-
:current_environment => local_node_environment,
|
327
|
-
:loaders => Puppet::Pops::Loaders.new(local_node_environment, true)
|
328
|
-
}, "Local node environment for configurer transaction")
|
329
358
|
|
330
359
|
query_options, facts = get_facts(options) unless query_options
|
331
360
|
query_options[:configured_environment] = configured_environment
|
@@ -368,16 +397,29 @@ class Puppet::Configurer
|
|
368
397
|
if !cached_catalog && options[:catalog]
|
369
398
|
ral_catalog = options[:catalog]
|
370
399
|
else
|
400
|
+
# Ordering here matters. We have to resolve deferred resources in the
|
401
|
+
# resource catalog, convert the resource catalog to a RAL catalog (which
|
402
|
+
# triggers type/provider validation), and only if that is successful,
|
403
|
+
# should we cache the *original* resource catalog. However, deferred
|
404
|
+
# evaluation mutates the resource catalog, so we need to make a copy of
|
405
|
+
# it here. If PUP-9323 is ever implemented so that we resolve deferred
|
406
|
+
# resources in the RAL catalog as they are needed, then we could eliminate
|
407
|
+
# this step.
|
408
|
+
catalog_to_cache = Puppet.override(:rich_data => Puppet[:rich_data]) do
|
409
|
+
Puppet::Resource::Catalog.from_data_hash(catalog.to_data_hash)
|
410
|
+
end
|
411
|
+
|
371
412
|
# REMIND @duration is the time spent loading the last catalog, and doesn't
|
372
413
|
# account for things like we failed to download and fell back to the cache
|
373
414
|
ral_catalog = convert_catalog(catalog, @duration, facts, options)
|
374
415
|
|
375
|
-
#
|
416
|
+
# Validation succeeded, so commit the `catalog_to_cache` for non-noop runs. Don't
|
417
|
+
# commit `catalog` since it contains the result of deferred evaluation. Ideally
|
376
418
|
# we'd just copy the downloaded response body, instead of serializing the
|
377
419
|
# in-memory catalog, but that's hard due to the indirector.
|
378
420
|
indirection = Puppet::Resource::Catalog.indirection
|
379
421
|
if !Puppet[:noop] && indirection.cache?
|
380
|
-
request = indirection.request(:save, nil,
|
422
|
+
request = indirection.request(:save, nil, catalog_to_cache, environment: Puppet::Node::Environment.remote(catalog_to_cache.environment))
|
381
423
|
Puppet.info("Caching catalog for #{request.key}")
|
382
424
|
indirection.cache.save(request)
|
383
425
|
end
|
@@ -530,6 +572,14 @@ class Puppet::Configurer
|
|
530
572
|
end
|
531
573
|
|
532
574
|
def download_plugins(remote_environment_for_plugins)
|
533
|
-
|
575
|
+
begin
|
576
|
+
@handler.download_plugins(remote_environment_for_plugins)
|
577
|
+
rescue Puppet::Error => detail
|
578
|
+
if !Puppet[:ignore_plugin_errors] && Puppet[:usecacheonfailure]
|
579
|
+
@running_failure = true
|
580
|
+
else
|
581
|
+
raise detail
|
582
|
+
end
|
583
|
+
end
|
534
584
|
end
|
535
585
|
end
|
@@ -11,32 +11,53 @@ class Puppet::Configurer::Downloader
|
|
11
11
|
files = []
|
12
12
|
begin
|
13
13
|
catalog.apply do |trans|
|
14
|
+
unless Puppet[:ignore_plugin_errors]
|
15
|
+
# Propagate the first failure associated with the transaction. The any_failed?
|
16
|
+
# method returns the first resource status that failed or nil, not a boolean.
|
17
|
+
first_failure = trans.any_failed?
|
18
|
+
if first_failure
|
19
|
+
event = (first_failure.events || []).first
|
20
|
+
detail = event ? event.message : 'unknown'
|
21
|
+
raise Puppet::Error.new(_("Failed to retrieve %{name}: %{detail}") % { name: name, detail: detail })
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
14
25
|
trans.changed?.each do |resource|
|
15
26
|
yield resource if block_given?
|
16
27
|
files << resource[:path]
|
17
28
|
end
|
18
29
|
end
|
19
30
|
rescue Puppet::Error => detail
|
20
|
-
Puppet
|
31
|
+
if Puppet[:ignore_plugin_errors]
|
32
|
+
Puppet.log_exception(detail, _("Could not retrieve %{name}: %{detail}") % { name: name, detail: detail })
|
33
|
+
else
|
34
|
+
raise detail
|
35
|
+
end
|
21
36
|
end
|
22
37
|
files
|
23
38
|
end
|
24
39
|
|
25
40
|
def initialize(name, path, source, ignore = nil, environment = nil, source_permissions = :ignore)
|
26
41
|
@name, @path, @source, @ignore, @environment, @source_permissions = name, path, source, ignore, environment, source_permissions
|
27
|
-
end
|
28
42
|
|
29
|
-
def catalog
|
30
|
-
catalog = Puppet::Resource::Catalog.new("PluginSync", @environment)
|
31
|
-
catalog.host_config = false
|
32
|
-
catalog.add_resource(file)
|
33
|
-
catalog
|
34
43
|
end
|
35
44
|
|
36
45
|
def file
|
37
|
-
|
38
|
-
|
39
|
-
|
46
|
+
unless @file
|
47
|
+
args = default_arguments.merge(:path => path, :source => source)
|
48
|
+
args[:ignore] = ignore.split if ignore
|
49
|
+
@file = Puppet::Type.type(:file).new(args)
|
50
|
+
end
|
51
|
+
@file
|
52
|
+
end
|
53
|
+
|
54
|
+
def catalog
|
55
|
+
unless @catalog
|
56
|
+
@catalog = Puppet::Resource::Catalog.new("PluginSync", @environment)
|
57
|
+
@catalog.host_config = false
|
58
|
+
@catalog.add_resource(file)
|
59
|
+
end
|
60
|
+
@catalog
|
40
61
|
end
|
41
62
|
|
42
63
|
private
|
data/lib/puppet/confine.rb
CHANGED
@@ -26,7 +26,7 @@ class Puppet::Confine
|
|
26
26
|
require "puppet/confine/#{name}"
|
27
27
|
rescue LoadError => detail
|
28
28
|
unless detail.to_s =~ /No such file|cannot load such file/i
|
29
|
-
|
29
|
+
Puppet.warning("Could not load confine test '#{name}': #{detail}")
|
30
30
|
end
|
31
31
|
# Could not find file
|
32
32
|
if !Puppet[:always_retry_plugins]
|
@@ -67,7 +67,7 @@ class Puppet::Confine
|
|
67
67
|
def valid?
|
68
68
|
values.each do |value|
|
69
69
|
unless pass?(value)
|
70
|
-
Puppet.debug
|
70
|
+
Puppet.debug { label + ": " + message(value) }
|
71
71
|
return false
|
72
72
|
end
|
73
73
|
end
|
data/lib/puppet/confine/any.rb
CHANGED
data/lib/puppet/defaults.rb
CHANGED
@@ -77,7 +77,8 @@ module Puppet
|
|
77
77
|
the "facter-ng" gem). This is not necessary if Facter 3.x or later is installed.
|
78
78
|
This setting is still experimental.',
|
79
79
|
:hook => proc do |value|
|
80
|
-
|
80
|
+
value = munge(value)
|
81
|
+
if value && Puppet::Util::Package.versioncmp(Facter.value('facterversion'), '4.0.0') < 0
|
81
82
|
begin
|
82
83
|
original_facter = Object.const_get(:Facter)
|
83
84
|
Object.send(:remove_const, :Facter)
|
@@ -347,8 +348,7 @@ module Puppet
|
|
347
348
|
:default => "ansi",
|
348
349
|
:type => :string,
|
349
350
|
:desc => "Whether to use colors when logging to the console. Valid values are
|
350
|
-
`ansi` (equivalent to `true`), `html`, and `false`, which produces no color.
|
351
|
-
Defaults to false on Windows, as its console does not support ansi colors.",
|
351
|
+
`ansi` (equivalent to `true`), `html`, and `false`, which produces no color."
|
352
352
|
},
|
353
353
|
:mkusers => {
|
354
354
|
:default => false,
|
@@ -375,7 +375,7 @@ module Puppet
|
|
375
375
|
from the parent process.
|
376
376
|
|
377
377
|
This setting can only be set in the `[main]` section of puppet.conf; it cannot
|
378
|
-
be set in `[
|
378
|
+
be set in `[server]`, `[agent]`, or an environment config section.",
|
379
379
|
:call_hook => :on_define_and_write,
|
380
380
|
:hook => proc do |value|
|
381
381
|
Puppet::Util.set_env('PATH', '') if Puppet::Util.get_env('PATH').nil?
|
@@ -563,7 +563,7 @@ module Puppet
|
|
563
563
|
config = File.expand_path(File.join(settings[:confdir], 'hiera.yaml')) if config.nil?
|
564
564
|
config
|
565
565
|
end,
|
566
|
-
:desc => "The hiera configuration file. Puppet only reads this file on startup, so you must restart the puppet
|
566
|
+
:desc => "The hiera configuration file. Puppet only reads this file on startup, so you must restart the puppet server every time you edit it.",
|
567
567
|
:type => :file,
|
568
568
|
},
|
569
569
|
:binder_config => {
|
@@ -590,13 +590,22 @@ module Puppet
|
|
590
590
|
},
|
591
591
|
:trusted_external_command => {
|
592
592
|
:default => nil,
|
593
|
-
:
|
593
|
+
:type => :file_or_directory,
|
594
|
+
:desc => "The external trusted facts script or directory to use.
|
594
595
|
This setting's value can be set to the path to an executable command that
|
595
|
-
can produce external trusted facts
|
596
|
+
can produce external trusted facts or to a directory containing those
|
597
|
+
executable commands. The command(s) must:
|
596
598
|
|
597
599
|
* Take the name of a node as a command-line argument.
|
598
600
|
* Return a JSON hash with the external trusted facts for this node.
|
599
|
-
* For unknown or invalid nodes, exit with a non-zero exit code.
|
601
|
+
* For unknown or invalid nodes, exit with a non-zero exit code.
|
602
|
+
|
603
|
+
If the setting points to an executable command, then the external trusted
|
604
|
+
facts will be stored in the 'external' key of the trusted facts hash. Otherwise
|
605
|
+
for each executable file in the directory, the external trusted facts will be
|
606
|
+
stored in the `<basename>` key of the `trusted['external']` hash. For example,
|
607
|
+
if the files foo.rb and bar.sh are in the directory, then `trusted['external']`
|
608
|
+
will be the hash `{ 'foo' => <foo.rb output>, 'bar' => <bar.sh output> }`.",
|
600
609
|
},
|
601
610
|
:default_file_terminus => {
|
602
611
|
:type => :terminus,
|
@@ -624,7 +633,7 @@ module Puppet
|
|
624
633
|
:http_proxy_password =>{
|
625
634
|
:default => "none",
|
626
635
|
:hook => proc do |value|
|
627
|
-
if
|
636
|
+
if value =~ /[@!# \/]/
|
628
637
|
raise "Passwords set in the http_proxy_password setting must be valid as part of a URL, and any reserved characters must be URL-encoded. We received: #{value}"
|
629
638
|
end
|
630
639
|
end,
|
@@ -692,40 +701,54 @@ Valid values are 0 (never cache) and 15 (15 second minimum wait time).
|
|
692
701
|
:environment_timeout => {
|
693
702
|
:default => "0",
|
694
703
|
:type => :ttl,
|
695
|
-
:desc => "How long the Puppet
|
704
|
+
:desc => "How long the Puppet server should cache data it loads from an
|
696
705
|
environment.
|
697
706
|
|
698
707
|
A value of `0` will disable caching. This setting can also be set to
|
699
|
-
`unlimited`, which will cache environments until the
|
700
|
-
or told to refresh the cache.
|
708
|
+
`unlimited`, which will cache environments until the server is restarted
|
709
|
+
or told to refresh the cache. All other values will result in Puppet
|
710
|
+
server evicting expired environments. The expiration time is computed
|
711
|
+
based on either when the environment was created or last accessed, see
|
712
|
+
`environment_timeout_mode`.
|
701
713
|
|
702
714
|
You should change this setting once your Puppet deployment is doing
|
703
715
|
non-trivial work. We chose the default value of `0` because it lets new
|
704
716
|
users update their code without any extra steps, but it lowers the
|
705
|
-
performance of your Puppet
|
706
|
-
|
707
|
-
|
708
|
-
|
709
|
-
|
710
|
-
*
|
711
|
-
|
712
|
-
|
713
|
-
|
714
|
-
|
715
|
-
|
716
|
-
|
717
|
-
|
717
|
+
performance of your Puppet server. We recommend either:
|
718
|
+
|
719
|
+
* Setting this to `unlimited` and explicitly refreshing your Puppet server
|
720
|
+
as part of your code deployment process.
|
721
|
+
|
722
|
+
* Setting this to a number that will keep your most actively used
|
723
|
+
environments cached, but allow testing environments to fall out of the
|
724
|
+
cache and reduce memory usage. A value of 3 minutes (3m) is a reasonable
|
725
|
+
value. This option requires setting `environment_timeout_mode` to
|
726
|
+
`from_last_used`.
|
727
|
+
|
728
|
+
Once you set `environment_timeout` to a non-zero value, you need to tell
|
729
|
+
Puppet server to read new code from disk using the `environment-cache` API
|
730
|
+
endpoint after you deploy new code. See the docs for the Puppet Server
|
731
|
+
[administrative API](https://puppet.com/docs/puppetserver/latest/admin-api/v1/environment-cache.html).
|
732
|
+
",
|
718
733
|
:hook => proc do |val|
|
719
|
-
|
720
|
-
|
721
|
-
|
722
|
-
|
723
|
-
and the environment-cache endpoint in Puppet Server's administrative
|
724
|
-
API to expire the cache as needed
|
725
|
-
WARNING
|
734
|
+
if Puppet[:environment_timeout_mode] == :from_created
|
735
|
+
unless [0, 'unlimited', Float::INFINITY].include?(val)
|
736
|
+
Puppet.deprecation_warning("Evicting environments based on their creation time is deprecated, please set `environment_timeout_mode` to `from_last_used` instead.")
|
737
|
+
end
|
726
738
|
end
|
727
739
|
end
|
728
740
|
},
|
741
|
+
:environment_timeout_mode => {
|
742
|
+
:default => :from_created,
|
743
|
+
:type => :symbolic_enum,
|
744
|
+
:values => [:from_created, :from_last_used],
|
745
|
+
:desc => "How Puppet interprets the `environment_timeout` setting when
|
746
|
+
`environment_timeout` is neither `0` nor `unlimited`. If set to
|
747
|
+
`from_created`, then the environment will be evicted `environment_timeout`
|
748
|
+
seconds from when it was created. If set to `from_last_used` then the
|
749
|
+
environment will be evicted `environment_timeout` seconds from when it
|
750
|
+
was last used."
|
751
|
+
},
|
729
752
|
:environment_data_provider => {
|
730
753
|
:desc => "The name of a registered environment data provider used when obtaining environment
|
731
754
|
specific data. The three built in and registered providers are 'none' (no data), 'function' (data
|
@@ -814,10 +837,15 @@ API to expire the cache as needed
|
|
814
837
|
only use lowercase letters, numbers, periods, underscores, and dashes. (That is,
|
815
838
|
it should match `/\A[a-z0-9._-]+\Z/`.)
|
816
839
|
* The special value `ca` is reserved, and can't be used as the certname
|
817
|
-
for a normal node.
|
840
|
+
for a normal node.
|
841
|
+
|
842
|
+
**Note:** You must set the certname in the main section of the puppet.conf file. Setting it in a different section causes errors.
|
818
843
|
|
819
844
|
Defaults to the node's fully qualified domain name.",
|
820
|
-
:
|
845
|
+
:call_hook => :on_initialize_and_write,
|
846
|
+
:hook => proc { |value|
|
847
|
+
raise(ArgumentError, _("Certificate names must be lower case")) unless value == value.downcase
|
848
|
+
}},
|
821
849
|
:dns_alt_names => {
|
822
850
|
:default => '',
|
823
851
|
:desc => <<EOT,
|
@@ -992,6 +1020,15 @@ EOT
|
|
992
1020
|
and reject the CA certificate if the values do not match. This only applies
|
993
1021
|
during the first download of the CA certificate."
|
994
1022
|
},
|
1023
|
+
:ssl_trust_store => {
|
1024
|
+
:default => nil,
|
1025
|
+
:type => :file,
|
1026
|
+
:desc => "A file containing CA certificates in PEM format that puppet should trust
|
1027
|
+
when making HTTPS requests. This **only** applies to https requests to non-puppet
|
1028
|
+
infrastructure, such as retrieving file metadata and content from https file sources,
|
1029
|
+
puppet module tool and the 'http' report processor. This setting is ignored when
|
1030
|
+
making requests to puppet:// URLs such as catalog and report requests.",
|
1031
|
+
},
|
995
1032
|
:ssl_client_ca_auth => {
|
996
1033
|
:type => :file,
|
997
1034
|
:mode => "0644",
|
@@ -1091,7 +1128,7 @@ EOT
|
|
1091
1128
|
:type => :string,
|
1092
1129
|
:desc => "Where to send log messages. Choose between 'syslog' (the POSIX syslog
|
1093
1130
|
service), 'eventlog' (the Windows Event Log), 'console', or the path to a log
|
1094
|
-
file."
|
1131
|
+
file. Multiple destinations can be set using a comma separated list (eg: `/path/file1,console,/path/file2`)"
|
1095
1132
|
# Sure would be nice to set the Puppet::Util::Log destination here in an :on_initialize_and_write hook,
|
1096
1133
|
# unfortunately we have a large number of tests that rely on the logging not resetting itself when the
|
1097
1134
|
# settings are initialized as they test what gets logged during settings initialization.
|
@@ -1284,7 +1321,7 @@ EOT
|
|
1284
1321
|
}
|
1285
1322
|
)
|
1286
1323
|
|
1287
|
-
settings.define_settings(:
|
1324
|
+
settings.define_settings(:server,
|
1288
1325
|
:user => {
|
1289
1326
|
:default => "puppet",
|
1290
1327
|
:desc => "The user Puppet Server will run as. Used to ensure
|
@@ -1340,6 +1377,10 @@ EOT
|
|
1340
1377
|
with Puppet Server. (eg `puppet facts upload`, `puppet agent`). May be
|
1341
1378
|
overridden by more specific settings (see `ca_port`, `report_port`).",
|
1342
1379
|
},
|
1380
|
+
:serverport => {
|
1381
|
+
:type => :alias,
|
1382
|
+
:alias_for => :masterport
|
1383
|
+
},
|
1343
1384
|
:node_name => {
|
1344
1385
|
:default => 'cert',
|
1345
1386
|
:type => :enum,
|
@@ -1536,7 +1577,7 @@ EOT
|
|
1536
1577
|
:statefile => {
|
1537
1578
|
:default => "$statedir/state.yaml",
|
1538
1579
|
:type => :file,
|
1539
|
-
:mode => "
|
1580
|
+
:mode => "0640",
|
1540
1581
|
:desc => "Where puppet agent and puppet master store state associated
|
1541
1582
|
with the running configuration. In the case of puppet master,
|
1542
1583
|
this file reflects the state discovered through interacting
|
@@ -1558,7 +1599,7 @@ EOT
|
|
1558
1599
|
:transactionstorefile => {
|
1559
1600
|
:default => "$statedir/transactionstore.yaml",
|
1560
1601
|
:type => :file,
|
1561
|
-
:mode => "
|
1602
|
+
:mode => "0640",
|
1562
1603
|
:desc => "Transactional storage file for persisting data between
|
1563
1604
|
transactions for the purposes of infering information (such as
|
1564
1605
|
corrective_change) on new data received."
|
@@ -1684,8 +1725,7 @@ EOT
|
|
1684
1725
|
:type => :duration,
|
1685
1726
|
:desc => "How often puppet agent applies the catalog.
|
1686
1727
|
Note that a runinterval of 0 means \"run continuously\" rather than
|
1687
|
-
\"never run.\"
|
1688
|
-
it with the `--no-client` option. #{AS_DURATION}",
|
1728
|
+
\"never run.\" #{AS_DURATION}",
|
1689
1729
|
},
|
1690
1730
|
:runtimeout => {
|
1691
1731
|
:default => "1h",
|
@@ -1701,7 +1741,7 @@ EOT
|
|
1701
1741
|
and does not need to horizontally scale.",
|
1702
1742
|
},
|
1703
1743
|
:ca_port => {
|
1704
|
-
:default => "$
|
1744
|
+
:default => "$serverport",
|
1705
1745
|
:desc => "The port to use for the certificate authority.",
|
1706
1746
|
},
|
1707
1747
|
:preferred_serialization_format => {
|
@@ -1790,7 +1830,7 @@ EOT
|
|
1790
1830
|
:desc => "The server to send transaction reports to.",
|
1791
1831
|
},
|
1792
1832
|
:report_port => {
|
1793
|
-
:default => "$
|
1833
|
+
:default => "$serverport",
|
1794
1834
|
:desc => "The port to communicate with the report_server.",
|
1795
1835
|
},
|
1796
1836
|
:report => {
|
@@ -1830,7 +1870,11 @@ EOT
|
|
1830
1870
|
:default => "$statedir/last_run_report.yaml",
|
1831
1871
|
:type => :file,
|
1832
1872
|
:mode => "0640",
|
1833
|
-
:desc => "Where
|
1873
|
+
:desc => "Where Puppet Agent stores the last run report, by default, in yaml format.
|
1874
|
+
The format of the report can be changed by setting the `cache` key of the `report` terminus
|
1875
|
+
in the [routes.yaml](https://puppet.com/docs/puppet/latest/config_file_routes.html) file.
|
1876
|
+
To avoid mismatches between content and file extension, this setting needs to be
|
1877
|
+
manually updated to reflect the terminus changes."
|
1834
1878
|
},
|
1835
1879
|
:graph => {
|
1836
1880
|
:default => false,
|
@@ -1890,7 +1934,7 @@ EOT
|
|
1890
1934
|
already ongoing puppet agent instance.
|
1891
1935
|
|
1892
1936
|
This argument is by default disabled (value set to 0). In this case puppet agent will
|
1893
|
-
|
1937
|
+
immediately exit if it cannot run at that moment. When a value other than 0 is set, this
|
1894
1938
|
can also be used in combination with the `maxwaitforlock` argument.
|
1895
1939
|
#{AS_DURATION}",
|
1896
1940
|
},
|
@@ -1941,9 +1985,26 @@ EOT
|
|
1941
1985
|
is used for retrieval, so anything that is a valid file source can
|
1942
1986
|
be used here.",
|
1943
1987
|
},
|
1988
|
+
:pluginsync => {
|
1989
|
+
:default => true,
|
1990
|
+
:type => :boolean,
|
1991
|
+
:desc => "Whether plugins should be synced with the central server. This setting is
|
1992
|
+
deprecated.",
|
1993
|
+
:hook => proc { |value|
|
1994
|
+
#TRANSLATORS 'pluginsync' is a setting and should not be translated
|
1995
|
+
Puppet.deprecation_warning(_("Setting 'pluginsync' is deprecated."))
|
1996
|
+
}
|
1997
|
+
},
|
1944
1998
|
:pluginsignore => {
|
1945
1999
|
:default => ".svn CVS .git .hg",
|
1946
2000
|
:desc => "What files to ignore when pulling down plugins.",
|
2001
|
+
},
|
2002
|
+
:ignore_plugin_errors => {
|
2003
|
+
:default => true,
|
2004
|
+
:type => :boolean,
|
2005
|
+
:desc => "Whether the puppet run should ignore errors during pluginsync. If the setting
|
2006
|
+
is false and there are errors during pluginsync, then the agent will abort the run and
|
2007
|
+
submit a report containing information about the failed run."
|
1947
2008
|
}
|
1948
2009
|
)
|
1949
2010
|
|
@@ -2088,7 +2149,7 @@ EOT
|
|
2088
2149
|
}
|
2089
2150
|
)
|
2090
2151
|
|
2091
|
-
settings.define_settings(:
|
2152
|
+
settings.define_settings(:server,
|
2092
2153
|
:storeconfigs => {
|
2093
2154
|
:default => false,
|
2094
2155
|
:type => :boolean,
|
@@ -2157,12 +2218,18 @@ EOT
|
|
2157
2218
|
:func3x_check => {
|
2158
2219
|
:default => true,
|
2159
2220
|
:type => :boolean,
|
2160
|
-
:desc => <<-'EOT'
|
2221
|
+
:desc => <<-'EOT',
|
2161
2222
|
Causes validation of loaded legacy Ruby functions (3x API) to raise errors about illegal constructs that
|
2162
2223
|
could cause harm or that simply does not work. This flag is on by default. This flag is made available
|
2163
2224
|
so that the validation can be turned off in case the method of validation is faulty - if encountered, please
|
2164
2225
|
file a bug report.
|
2165
2226
|
EOT
|
2227
|
+
:call_hook => :on_initialize_and_write,
|
2228
|
+
:hook => proc do |value|
|
2229
|
+
unless value
|
2230
|
+
Puppet.deprecation_warning(_("The 'func3x_check' setting is deprecated and will be removed in a future release."))
|
2231
|
+
end
|
2232
|
+
end
|
2166
2233
|
},
|
2167
2234
|
:tasks => {
|
2168
2235
|
:default => false,
|