puppet 6.15.0-x64-mingw32 → 6.19.1-x64-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 -7
- data/Gemfile +4 -2
- data/Gemfile.lock +29 -27
- data/README.md +3 -4
- data/Rakefile +4 -12
- data/lib/puppet.rb +32 -8
- data/lib/puppet/agent.rb +18 -4
- data/lib/puppet/agent/locker.rb +0 -7
- data/lib/puppet/application/agent.rb +23 -8
- data/lib/puppet/application/apply.rb +18 -20
- data/lib/puppet/application/device.rb +1 -1
- data/lib/puppet/application/doc.rb +1 -1
- data/lib/puppet/application/lookup.rb +16 -4
- data/lib/puppet/application/plugin.rb +1 -0
- data/lib/puppet/application/ssl.rb +1 -1
- data/lib/puppet/configurer.rb +61 -21
- 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/context/trusted_information.rb +14 -8
- data/lib/puppet/daemon.rb +13 -27
- data/lib/puppet/defaults.rb +119 -39
- data/lib/puppet/environments.rb +51 -10
- data/lib/puppet/face/catalog.rb +1 -1
- data/lib/puppet/face/config.rb +46 -16
- data/lib/puppet/face/facts.rb +1 -1
- data/lib/puppet/face/help.rb +29 -3
- data/lib/puppet/face/module/search.rb +5 -0
- data/lib/puppet/face/node.rb +3 -3
- data/lib/puppet/face/node/clean.rb +2 -2
- data/lib/puppet/face/plugin.rb +1 -1
- data/lib/puppet/face/status.rb +1 -1
- data/lib/puppet/feature/base.rb +1 -1
- data/lib/puppet/file_bucket/dipper.rb +1 -1
- data/lib/puppet/file_serving/http_metadata.rb +14 -2
- 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 +12 -16
- data/lib/puppet/forge.rb +1 -1
- data/lib/puppet/forge/cache.rb +1 -1
- data/lib/puppet/forge/repository.rb +4 -7
- data/lib/puppet/functions/filter.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 +28 -12
- data/lib/puppet/http/external_client.rb +0 -6
- 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/facts/facter.rb +3 -3
- data/lib/puppet/indirector/facts/yaml.rb +1 -1
- data/lib/puppet/indirector/file_content/http.rb +5 -0
- data/lib/puppet/indirector/file_content/rest.rb +1 -1
- data/lib/puppet/indirector/file_metadata/http.rb +28 -8
- 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 +1 -1
- data/lib/puppet/indirector/msgpack.rb +1 -1
- data/lib/puppet/indirector/report/processor.rb +2 -2
- data/lib/puppet/indirector/request.rb +5 -5
- data/lib/puppet/indirector/rest.rb +7 -1
- data/lib/puppet/indirector/yaml.rb +1 -1
- data/lib/puppet/module.rb +1 -2
- data/lib/puppet/network/format_support.rb +2 -2
- 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/compression.rb +7 -0
- data/lib/puppet/network/http/connection.rb +2 -0
- data/lib/puppet/network/http/connection_adapter.rb +184 -0
- data/lib/puppet/network/http/nocache_pool.rb +1 -0
- data/lib/puppet/network/http/route.rb +2 -2
- data/lib/puppet/network/http_pool.rb +2 -2
- data/lib/puppet/node/environment.rb +12 -5
- data/lib/puppet/node/facts.rb +17 -0
- data/lib/puppet/pal/catalog_compiler.rb +5 -0
- data/lib/puppet/pal/pal_impl.rb +31 -4
- data/lib/puppet/parameter.rb +1 -1
- data/lib/puppet/parser/ast/leaf.rb +5 -5
- data/lib/puppet/parser/ast/pops_bridge.rb +0 -4
- data/lib/puppet/parser/compiler.rb +29 -26
- 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/functions/filter.rb +1 -0
- data/lib/puppet/parser/resource.rb +3 -2
- data/lib/puppet/parser/resource/param.rb +6 -0
- 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/evaluator_impl.rb +5 -5
- 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/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/aix.rb +17 -2
- data/lib/puppet/provider/package/apt.rb +38 -1
- data/lib/puppet/provider/package/aptitude.rb +1 -1
- data/lib/puppet/provider/package/dnfmodule.rb +24 -4
- data/lib/puppet/provider/package/dpkg.rb +1 -1
- data/lib/puppet/provider/package/gem.rb +4 -2
- data/lib/puppet/provider/package/pip.rb +60 -37
- data/lib/puppet/provider/package/pip2.rb +17 -0
- data/lib/puppet/provider/package/portage.rb +2 -2
- 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 +9 -1
- data/lib/puppet/provider/package/zypper.rb +62 -1
- data/lib/puppet/provider/service/systemd.rb +21 -4
- data/lib/puppet/provider/service/windows.rb +23 -7
- data/lib/puppet/provider/user/aix.rb +1 -1
- data/lib/puppet/provider/user/user_role_add.rb +1 -1
- data/lib/puppet/provider/user/useradd.rb +16 -5
- data/lib/puppet/provider/user/windows_adsi.rb +18 -1
- data/lib/puppet/reports/http.rb +7 -3
- 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/runtime.rb +25 -2
- data/lib/puppet/settings.rb +43 -6
- data/lib/puppet/ssl/ssl_context.rb +2 -2
- data/lib/puppet/ssl/ssl_provider.rb +20 -1
- data/lib/puppet/ssl/state_machine.rb +33 -8
- data/lib/puppet/ssl/validator/default_validator.rb +1 -1
- data/lib/puppet/ssl/verifier_adapter.rb +9 -1
- data/lib/puppet/test/test_helper.rb +19 -14
- 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 +33 -13
- data/lib/puppet/type/filebucket.rb +1 -1
- data/lib/puppet/type/notify.rb +2 -2
- data/lib/puppet/type/package.rb +16 -1
- data/lib/puppet/type/service.rb +59 -8
- data/lib/puppet/type/user.rb +19 -10
- data/lib/puppet/util.rb +41 -3
- data/lib/puppet/util/autoload.rb +10 -25
- 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/fileparsing.rb +2 -2
- data/lib/puppet/util/log/destinations.rb +1 -10
- data/lib/puppet/util/package/version/range.rb +4 -1
- data/lib/puppet/util/package/version/range/eq.rb +14 -0
- data/lib/puppet/util/provider_features.rb +1 -1
- data/lib/puppet/util/reference.rb +1 -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 +541 -427
- data/man/man5/puppet.conf.5 +84 -19
- data/man/man8/puppet-agent.8 +7 -4
- data/man/man8/puppet-apply.8 +1 -1
- 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 +1 -1
- data/man/man8/puppet-doc.8 +1 -1
- data/man/man8/puppet-epp.8 +1 -1
- data/man/man8/puppet-facts.8 +1 -1
- data/man/man8/puppet-filebucket.8 +1 -1
- data/man/man8/puppet-generate.8 +1 -1
- data/man/man8/puppet-help.8 +6 -3
- 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 +4 -1
- data/man/man8/puppet-node.8 +4 -4
- data/man/man8/puppet-parser.8 +1 -1
- data/man/man8/puppet-plugin.8 +1 -1
- data/man/man8/puppet-report.8 +1 -1
- data/man/man8/puppet-resource.8 +1 -1
- data/man/man8/puppet-script.8 +1 -1
- 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/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/dnfmodule/{dnf-module-list-enabled.txt → dnf-module-list.txt} +6 -0
- data/spec/fixtures/unit/provider/package/puppetserver_gem/gem-list-local-packages +30 -0
- data/spec/fixtures/unit/provider/package/zypper/zypper-search-uninstalled.out +13 -0
- data/spec/integration/application/agent_spec.rb +202 -52
- data/spec/integration/application/apply_spec.rb +149 -149
- data/spec/integration/application/config_spec.rb +74 -0
- 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 +75 -2
- data/spec/integration/configurer_spec.rb +14 -0
- data/spec/integration/data_binding_spec.rb +82 -0
- data/spec/integration/defaults_spec.rb +27 -3
- data/spec/integration/directory_environments_spec.rb +17 -17
- data/spec/integration/http/client_spec.rb +6 -1
- data/spec/integration/indirector/facts/facter_spec.rb +8 -6
- data/spec/integration/network/http_pool_spec.rb +73 -0
- data/spec/integration/node/environment_spec.rb +1 -1
- data/spec/integration/parser/compiler_spec.rb +11 -0
- 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 +7 -2
- 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 -7
- data/spec/integration/util/windows/user_spec.rb +47 -5
- data/spec/integration/util_spec.rb +7 -33
- data/spec/lib/puppet_spec/https.rb +6 -0
- data/spec/lib/puppet_spec/matchers.rb +0 -80
- data/spec/lib/puppet_spec/puppetserver.rb +8 -0
- data/spec/shared_contexts/types_setup.rb +2 -0
- data/spec/unit/agent_spec.rb +47 -1
- data/spec/unit/application/agent_spec.rb +7 -8
- 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/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 +9 -4
- 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_spec.rb +2 -1
- data/spec/unit/context/trusted_information_spec.rb +25 -2
- data/spec/unit/daemon_spec.rb +5 -64
- data/spec/unit/environments_spec.rb +99 -32
- data/spec/unit/face/config_spec.rb +59 -1
- data/spec/unit/face/module/search_spec.rb +17 -0
- data/spec/unit/face/node_spec.rb +2 -2
- data/spec/unit/file_serving/http_metadata_spec.rb +37 -14
- 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_selector_spec.rb +45 -26
- data/spec/unit/file_system/uniquefile_spec.rb +29 -0
- data/spec/unit/file_system_spec.rb +1 -2
- data/spec/unit/http/client_spec.rb +74 -19
- data/spec/unit/http/external_client_spec.rb +9 -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 +2 -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 +0 -1
- data/spec/unit/http/session_spec.rb +8 -21
- data/spec/unit/indirector/catalog/compiler_spec.rb +1 -0
- data/spec/unit/indirector/catalog/json_spec.rb +1 -1
- data/spec/unit/indirector/catalog/rest_spec.rb +1 -1
- data/spec/unit/indirector/facts/rest_spec.rb +1 -1
- data/spec/unit/indirector/file_metadata/http_spec.rb +194 -0
- data/spec/unit/indirector/file_metadata/rest_spec.rb +15 -14
- data/spec/unit/indirector/json_spec.rb +8 -8
- data/spec/unit/indirector/msgpack_spec.rb +8 -8
- data/spec/unit/indirector/node/rest_spec.rb +1 -1
- data/spec/unit/indirector/request_spec.rb +5 -5
- data/spec/unit/indirector/rest_spec.rb +14 -1
- data/spec/unit/indirector/status/rest_spec.rb +1 -1
- data/spec/unit/indirector/yaml_spec.rb +7 -7
- data/spec/unit/interface_spec.rb +3 -3
- data/spec/unit/module_tool/tar/mini_spec.rb +20 -0
- data/spec/unit/network/format_support_spec.rb +3 -2
- data/spec/unit/network/http/api/indirected_routes_spec.rb +2 -1
- data/spec/unit/network/http/api/master/v3/environments_spec.rb +12 -23
- data/spec/unit/network/http/connection_spec.rb +552 -190
- data/spec/unit/network/http/nocache_pool_spec.rb +22 -0
- data/spec/unit/network/http_pool_spec.rb +63 -57
- data/spec/unit/network/http_spec.rb +1 -1
- data/spec/unit/node/environment_spec.rb +18 -1
- data/spec/unit/parser/ast/block_expression_spec.rb +1 -1
- data/spec/unit/parser/environment_compiler_spec.rb +7 -0
- data/spec/unit/parser/scope_spec.rb +1 -1
- 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/provider/exec_spec.rb +4 -3
- data/spec/unit/provider/package/aix_spec.rb +29 -0
- data/spec/unit/provider/package/apt_spec.rb +77 -0
- data/spec/unit/provider/package/aptitude_spec.rb +1 -0
- data/spec/unit/provider/package/dnfmodule_spec.rb +25 -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/pip2_spec.rb +36 -0
- data/spec/unit/provider/package/pip_spec.rb +42 -16
- data/spec/unit/provider/package/portage_spec.rb +5 -0
- 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 +47 -8
- data/spec/unit/provider/package/zypper_spec.rb +98 -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 +46 -5
- data/spec/unit/provider/service/launchd_spec.rb +5 -6
- data/spec/unit/provider/service/openbsd_spec.rb +9 -0
- data/spec/unit/provider/service/openrc_spec.rb +4 -5
- data/spec/unit/provider/service/openwrt_spec.rb +2 -1
- data/spec/unit/provider/service/redhat_spec.rb +10 -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 +87 -19
- 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/openbsd_spec.rb +1 -0
- data/spec/unit/provider/user/useradd_spec.rb +30 -16
- data/spec/unit/provider/user/windows_adsi_spec.rb +82 -0
- data/spec/unit/puppet_pal_2pec.rb +40 -0
- data/spec/unit/puppet_pal_catalog_spec.rb +43 -0
- data/spec/unit/puppet_spec.rb +33 -0
- data/spec/unit/reports/http_spec.rb +1 -1
- data/spec/unit/reports/store_spec.rb +17 -13
- data/spec/unit/resource_spec.rb +3 -3
- data/spec/unit/rest/route_spec.rb +4 -4
- data/spec/unit/settings_spec.rb +182 -22
- data/spec/unit/ssl/ssl_provider_spec.rb +69 -43
- data/spec/unit/ssl/state_machine_spec.rb +52 -8
- data/spec/unit/test/test_helper_spec.rb +17 -0
- data/spec/unit/transaction/persistence_spec.rb +15 -0
- data/spec/unit/transaction/report_spec.rb +3 -1
- data/spec/unit/type/file/source_spec.rb +4 -4
- data/spec/unit/type/file_spec.rb +122 -96
- data/spec/unit/type/filebucket_spec.rb +1 -1
- data/spec/unit/type/service_spec.rb +218 -8
- data/spec/unit/type/user_spec.rb +32 -3
- data/spec/unit/type_spec.rb +50 -0
- data/spec/unit/util/autoload_spec.rb +2 -1
- 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/log/destinations_spec.rb +1 -29
- data/spec/unit/util/package/version/range_spec.rb +22 -1
- data/spec/unit/util/run_mode_spec.rb +6 -6
- 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 +3 -3
- data/spec/unit/x509/cert_provider_spec.rb +1 -1
- data/tasks/manpages.rake +5 -35
- metadata +43 -49
- 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/man_spec.rb +0 -25
- data/spec/unit/man_spec.rb +0 -31
data/lib/puppet/defaults.rb
CHANGED
@@ -347,8 +347,7 @@ module Puppet
|
|
347
347
|
:default => "ansi",
|
348
348
|
:type => :string,
|
349
349
|
: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.",
|
350
|
+
`ansi` (equivalent to `true`), `html`, and `false`, which produces no color."
|
352
351
|
},
|
353
352
|
:mkusers => {
|
354
353
|
:default => false,
|
@@ -375,7 +374,7 @@ module Puppet
|
|
375
374
|
from the parent process.
|
376
375
|
|
377
376
|
This setting can only be set in the `[main]` section of puppet.conf; it cannot
|
378
|
-
be set in `[
|
377
|
+
be set in `[server]`, `[agent]`, or an environment config section.",
|
379
378
|
:call_hook => :on_define_and_write,
|
380
379
|
:hook => proc do |value|
|
381
380
|
Puppet::Util.set_env('PATH', '') if Puppet::Util.get_env('PATH').nil?
|
@@ -563,7 +562,7 @@ module Puppet
|
|
563
562
|
config = File.expand_path(File.join(settings[:confdir], 'hiera.yaml')) if config.nil?
|
564
563
|
config
|
565
564
|
end,
|
566
|
-
:desc => "The hiera configuration file. Puppet only reads this file on startup, so you must restart the puppet
|
565
|
+
: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
566
|
:type => :file,
|
568
567
|
},
|
569
568
|
:binder_config => {
|
@@ -590,13 +589,22 @@ module Puppet
|
|
590
589
|
},
|
591
590
|
:trusted_external_command => {
|
592
591
|
:default => nil,
|
593
|
-
:
|
592
|
+
:type => :file_or_directory,
|
593
|
+
:desc => "The external trusted facts script or directory to use.
|
594
594
|
This setting's value can be set to the path to an executable command that
|
595
|
-
can produce external trusted facts
|
595
|
+
can produce external trusted facts or to a directory containing those
|
596
|
+
executable commands. The command(s) must:
|
596
597
|
|
597
598
|
* Take the name of a node as a command-line argument.
|
598
599
|
* 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.
|
600
|
+
* For unknown or invalid nodes, exit with a non-zero exit code.
|
601
|
+
|
602
|
+
If the setting points to an executable command, then the external trusted
|
603
|
+
facts will be stored in the 'external' key of the trusted facts hash. Otherwise
|
604
|
+
for each executable file in the directory, the external trusted facts will be
|
605
|
+
stored in the `<basename>` key of the `trusted['external']` hash. For example,
|
606
|
+
if the files foo.rb and bar.sh are in the directory, then `trusted['external']`
|
607
|
+
will be the hash `{ 'foo' => <foo.rb output>, 'bar' => <bar.sh output> }`.",
|
600
608
|
},
|
601
609
|
:default_file_terminus => {
|
602
610
|
:type => :terminus,
|
@@ -692,40 +700,54 @@ Valid values are 0 (never cache) and 15 (15 second minimum wait time).
|
|
692
700
|
:environment_timeout => {
|
693
701
|
:default => "0",
|
694
702
|
:type => :ttl,
|
695
|
-
:desc => "How long the Puppet
|
703
|
+
:desc => "How long the Puppet server should cache data it loads from an
|
696
704
|
environment.
|
697
705
|
|
698
706
|
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.
|
707
|
+
`unlimited`, which will cache environments until the server is restarted
|
708
|
+
or told to refresh the cache. All other values will result in Puppet
|
709
|
+
server evicting expired environments. The expiration time is computed
|
710
|
+
based on either when the environment was created or last accessed, see
|
711
|
+
`environment_timeout_mode`.
|
701
712
|
|
702
713
|
You should change this setting once your Puppet deployment is doing
|
703
714
|
non-trivial work. We chose the default value of `0` because it lets new
|
704
715
|
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
|
-
|
716
|
+
performance of your Puppet server. We recommend either:
|
717
|
+
|
718
|
+
* Setting this to `unlimited` and explicitly refreshing your Puppet server
|
719
|
+
as part of your code deployment process.
|
720
|
+
|
721
|
+
* Setting this to a number that will keep your most actively used
|
722
|
+
environments cached, but allow testing environments to fall out of the
|
723
|
+
cache and reduce memory usage. A value of 3 minutes (3m) is a reasonable
|
724
|
+
value. This option requires setting `environment_timeout_mode` to
|
725
|
+
`from_last_used`.
|
726
|
+
|
727
|
+
Once you set `environment_timeout` to a non-zero value, you need to tell
|
728
|
+
Puppet server to read new code from disk using the `environment-cache` API
|
729
|
+
endpoint after you deploy new code. See the docs for the Puppet Server
|
730
|
+
[administrative API](https://puppet.com/docs/puppetserver/latest/admin-api/v1/environment-cache.html).
|
731
|
+
",
|
718
732
|
: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
|
733
|
+
if Puppet[:environment_timeout_mode] == :from_created
|
734
|
+
unless [0, 'unlimited', Float::INFINITY].include?(val)
|
735
|
+
Puppet.deprecation_warning("Evicting environments based on their creation time is deprecated, please set `environment_timeout_mode` to `from_last_used` instead.")
|
736
|
+
end
|
726
737
|
end
|
727
738
|
end
|
728
739
|
},
|
740
|
+
:environment_timeout_mode => {
|
741
|
+
:default => :from_created,
|
742
|
+
:type => :symbolic_enum,
|
743
|
+
:values => [:from_created, :from_last_used],
|
744
|
+
:desc => "How Puppet interprets the `environment_timeout` setting when
|
745
|
+
`environment_timeout` is neither `0` nor `unlimited`. If set to
|
746
|
+
`from_created`, then the environment will be evicted `environment_timeout`
|
747
|
+
seconds from when it was created. If set to `from_last_used` then the
|
748
|
+
environment will be evicted `environment_timeout` seconds from when it
|
749
|
+
was last used."
|
750
|
+
},
|
729
751
|
:environment_data_provider => {
|
730
752
|
:desc => "The name of a registered environment data provider used when obtaining environment
|
731
753
|
specific data. The three built in and registered providers are 'none' (no data), 'function' (data
|
@@ -814,7 +836,9 @@ API to expire the cache as needed
|
|
814
836
|
only use lowercase letters, numbers, periods, underscores, and dashes. (That is,
|
815
837
|
it should match `/\A[a-z0-9._-]+\Z/`.)
|
816
838
|
* The special value `ca` is reserved, and can't be used as the certname
|
817
|
-
for a normal node.
|
839
|
+
for a normal node.
|
840
|
+
|
841
|
+
**Note:** You must set the certname in the main section of the puppet.conf file. Setting it in a different section causes errors.
|
818
842
|
|
819
843
|
Defaults to the node's fully qualified domain name.",
|
820
844
|
:hook => proc { |value| raise(ArgumentError, _("Certificate names must be lower case")) unless value == value.downcase }},
|
@@ -992,6 +1016,15 @@ EOT
|
|
992
1016
|
and reject the CA certificate if the values do not match. This only applies
|
993
1017
|
during the first download of the CA certificate."
|
994
1018
|
},
|
1019
|
+
:ssl_trust_store => {
|
1020
|
+
:default => nil,
|
1021
|
+
:type => :file,
|
1022
|
+
:desc => "A file containing CA certificates in PEM format that puppet should trust
|
1023
|
+
when making HTTPS requests. This **only** applies to https requests to non-puppet
|
1024
|
+
infrastructure, such as retrieving file metadata and content from https file sources,
|
1025
|
+
puppet module tool and the 'http' report processor. This setting is ignored when
|
1026
|
+
making requests to puppet:// URLs such as catalog and report requests.",
|
1027
|
+
},
|
995
1028
|
:ssl_client_ca_auth => {
|
996
1029
|
:type => :file,
|
997
1030
|
:mode => "0644",
|
@@ -1284,7 +1317,7 @@ EOT
|
|
1284
1317
|
}
|
1285
1318
|
)
|
1286
1319
|
|
1287
|
-
settings.define_settings(:
|
1320
|
+
settings.define_settings(:server,
|
1288
1321
|
:user => {
|
1289
1322
|
:default => "puppet",
|
1290
1323
|
:desc => "The user Puppet Server will run as. Used to ensure
|
@@ -1334,11 +1367,23 @@ EOT
|
|
1334
1367
|
by `puppet`, and should only be set if you're writing your own Puppet
|
1335
1368
|
executable.",
|
1336
1369
|
},
|
1370
|
+
:serverport => {
|
1371
|
+
:default => 8140,
|
1372
|
+
:desc => "The default port puppet subcommands use to communicate
|
1373
|
+
with Puppet Server. (eg `puppet facts upload`, `puppet agent`). May be
|
1374
|
+
overridden by more specific settings (see `ca_port`, `report_port`).",
|
1375
|
+
:hook => proc do |value|
|
1376
|
+
Puppet[:masterport] = value unless Puppet.settings.set_by_config?(:masterport)
|
1377
|
+
end
|
1378
|
+
},
|
1337
1379
|
:masterport => {
|
1338
1380
|
:default => 8140,
|
1339
1381
|
:desc => "The default port puppet subcommands use to communicate
|
1340
1382
|
with Puppet Server. (eg `puppet facts upload`, `puppet agent`). May be
|
1341
1383
|
overridden by more specific settings (see `ca_port`, `report_port`).",
|
1384
|
+
:hook => proc do |value|
|
1385
|
+
Puppet[:serverport] = value unless Puppet.settings.set_by_config?(:serverport)
|
1386
|
+
end
|
1342
1387
|
},
|
1343
1388
|
:node_name => {
|
1344
1389
|
:default => 'cert',
|
@@ -1536,7 +1581,7 @@ EOT
|
|
1536
1581
|
:statefile => {
|
1537
1582
|
:default => "$statedir/state.yaml",
|
1538
1583
|
:type => :file,
|
1539
|
-
:mode => "
|
1584
|
+
:mode => "0640",
|
1540
1585
|
:desc => "Where puppet agent and puppet master store state associated
|
1541
1586
|
with the running configuration. In the case of puppet master,
|
1542
1587
|
this file reflects the state discovered through interacting
|
@@ -1558,7 +1603,7 @@ EOT
|
|
1558
1603
|
:transactionstorefile => {
|
1559
1604
|
:default => "$statedir/transactionstore.yaml",
|
1560
1605
|
:type => :file,
|
1561
|
-
:mode => "
|
1606
|
+
:mode => "0640",
|
1562
1607
|
:desc => "Transactional storage file for persisting data between
|
1563
1608
|
transactions for the purposes of infering information (such as
|
1564
1609
|
corrective_change) on new data received."
|
@@ -1684,8 +1729,7 @@ EOT
|
|
1684
1729
|
:type => :duration,
|
1685
1730
|
:desc => "How often puppet agent applies the catalog.
|
1686
1731
|
Note that a runinterval of 0 means \"run continuously\" rather than
|
1687
|
-
\"never run.\"
|
1688
|
-
it with the `--no-client` option. #{AS_DURATION}",
|
1732
|
+
\"never run.\" #{AS_DURATION}",
|
1689
1733
|
},
|
1690
1734
|
:runtimeout => {
|
1691
1735
|
:default => "1h",
|
@@ -1701,7 +1745,7 @@ EOT
|
|
1701
1745
|
and does not need to horizontally scale.",
|
1702
1746
|
},
|
1703
1747
|
:ca_port => {
|
1704
|
-
:default => "$
|
1748
|
+
:default => "$serverport",
|
1705
1749
|
:desc => "The port to use for the certificate authority.",
|
1706
1750
|
},
|
1707
1751
|
:preferred_serialization_format => {
|
@@ -1790,7 +1834,7 @@ EOT
|
|
1790
1834
|
:desc => "The server to send transaction reports to.",
|
1791
1835
|
},
|
1792
1836
|
:report_port => {
|
1793
|
-
:default => "$
|
1837
|
+
:default => "$serverport",
|
1794
1838
|
:desc => "The port to communicate with the report_server.",
|
1795
1839
|
},
|
1796
1840
|
:report => {
|
@@ -1882,6 +1926,25 @@ EOT
|
|
1882
1926
|
certificate request to be signed. A value of `unlimited` will cause puppet agent
|
1883
1927
|
to ask for a signed certificate indefinitely.
|
1884
1928
|
#{AS_DURATION}",
|
1929
|
+
},
|
1930
|
+
:waitforlock => {
|
1931
|
+
:default => "0",
|
1932
|
+
:type => :duration,
|
1933
|
+
:desc => "How frequently puppet agent should try running when there is an
|
1934
|
+
already ongoing puppet agent instance.
|
1935
|
+
|
1936
|
+
This argument is by default disabled (value set to 0). In this case puppet agent will
|
1937
|
+
immediately exit if it cannot run at that moment. When a value other than 0 is set, this
|
1938
|
+
can also be used in combination with the `maxwaitforlock` argument.
|
1939
|
+
#{AS_DURATION}",
|
1940
|
+
},
|
1941
|
+
:maxwaitforlock => {
|
1942
|
+
:default => "1m",
|
1943
|
+
:type => :ttl,
|
1944
|
+
:desc => "The maximum amount of time the puppet agent should wait for an
|
1945
|
+
already running puppet agent to finish before starting a new one. This is set by default to 1 minute.
|
1946
|
+
A value of `unlimited` will cause puppet agent to wait indefinitely.
|
1947
|
+
#{AS_DURATION}",
|
1885
1948
|
}
|
1886
1949
|
)
|
1887
1950
|
|
@@ -1922,9 +1985,26 @@ EOT
|
|
1922
1985
|
is used for retrieval, so anything that is a valid file source can
|
1923
1986
|
be used here.",
|
1924
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
|
+
},
|
1925
1998
|
:pluginsignore => {
|
1926
1999
|
:default => ".svn CVS .git .hg",
|
1927
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."
|
1928
2008
|
}
|
1929
2009
|
)
|
1930
2010
|
|
@@ -2069,7 +2149,7 @@ EOT
|
|
2069
2149
|
}
|
2070
2150
|
)
|
2071
2151
|
|
2072
|
-
settings.define_settings(:
|
2152
|
+
settings.define_settings(:server,
|
2073
2153
|
:storeconfigs => {
|
2074
2154
|
:default => false,
|
2075
2155
|
:type => :boolean,
|
data/lib/puppet/environments.rb
CHANGED
@@ -159,8 +159,8 @@ module Puppet::Environments
|
|
159
159
|
# Reads environments from a directory on disk. Each environment is
|
160
160
|
# represented as a sub-directory. The environment's manifest setting is the
|
161
161
|
# `manifest` directory of the environment directory. The environment's
|
162
|
-
# modulepath setting is the global modulepath (from the `[
|
163
|
-
# for the
|
162
|
+
# modulepath setting is the global modulepath (from the `[server]` section
|
163
|
+
# for the server) prepended with the `modules` directory of the environment
|
164
164
|
# directory.
|
165
165
|
#
|
166
166
|
# @api private
|
@@ -277,7 +277,7 @@ module Puppet::Environments
|
|
277
277
|
def get(name)
|
278
278
|
@loaders.each do |loader|
|
279
279
|
env = loader.get(name)
|
280
|
-
if env
|
280
|
+
if env
|
281
281
|
return env
|
282
282
|
end
|
283
283
|
end
|
@@ -305,13 +305,23 @@ module Puppet::Environments
|
|
305
305
|
include Puppet::Concurrent::Synchronized
|
306
306
|
|
307
307
|
class DefaultCacheExpirationService
|
308
|
+
# Called when the environment is created.
|
309
|
+
#
|
310
|
+
# @param [Puppet::Node::Environment] env
|
308
311
|
def created(env)
|
309
312
|
end
|
310
313
|
|
314
|
+
# Is the environment with this name expired?
|
315
|
+
#
|
316
|
+
# @param [Symbol] env_name The symbolic environment name
|
317
|
+
# @return [Boolean]
|
311
318
|
def expired?(env_name)
|
312
319
|
false
|
313
320
|
end
|
314
321
|
|
322
|
+
# The environment with this name was evicted.
|
323
|
+
#
|
324
|
+
# @param [Symbol] env_name The symbolic environment name
|
315
325
|
def evicted(env_name)
|
316
326
|
end
|
317
327
|
end
|
@@ -362,7 +372,9 @@ module Puppet::Environments
|
|
362
372
|
clear_all_expired
|
363
373
|
result = @cache[name]
|
364
374
|
if result
|
375
|
+
Puppet.debug {"Found in cache '#{name}' #{result.label}"}
|
365
376
|
# found in cache
|
377
|
+
result.touch
|
366
378
|
return result.value
|
367
379
|
elsif (result = @loader.get(name))
|
368
380
|
# environment loaded, cache it
|
@@ -411,7 +423,7 @@ module Puppet::Environments
|
|
411
423
|
to_expire = @cache.select { |name, entry| entry.expires < t || @cache_expiration_service.expired?(name.to_sym) }
|
412
424
|
to_expire.each do |name, entry|
|
413
425
|
Puppet.debug {"Evicting cache entry for environment '#{name}'"}
|
414
|
-
@cache_expiration_service.evicted(name)
|
426
|
+
@cache_expiration_service.evicted(name.to_sym)
|
415
427
|
clear(name)
|
416
428
|
@expirations.delete(entry.expires)
|
417
429
|
Puppet.settings.clear_environment_settings(name)
|
@@ -435,23 +447,32 @@ module Puppet::Environments
|
|
435
447
|
# Creates a suitable cache entry given the time to live for one environment
|
436
448
|
#
|
437
449
|
def entry(env)
|
438
|
-
ttl = (conf = get_conf(env.name))
|
450
|
+
ttl = if (conf = get_conf(env.name))
|
451
|
+
conf.environment_timeout
|
452
|
+
else
|
453
|
+
Puppet[:environment_timeout]
|
454
|
+
end
|
455
|
+
|
439
456
|
case ttl
|
440
457
|
when 0
|
441
458
|
NotCachedEntry.new(env) # Entry that is always expired (avoids syscall to get time)
|
442
459
|
when Float::INFINITY
|
443
460
|
Entry.new(env) # Entry that never expires (avoids syscall to get time)
|
444
461
|
else
|
445
|
-
|
462
|
+
if Puppet[:environment_timeout_mode] == :from_last_used
|
463
|
+
MRUEntry.new(env, ttl) # Entry that expires in ttl from when it was last touched
|
464
|
+
else
|
465
|
+
TTLEntry.new(env, ttl) # Entry that expires in ttl from when it was created
|
466
|
+
end
|
446
467
|
end
|
447
468
|
end
|
448
469
|
|
449
470
|
# Evicts the entry if it has expired
|
450
471
|
# Also clears caches in Settings that may prevent the entry from being updated
|
451
472
|
def evict_if_expired(name)
|
452
|
-
if (result = @cache[name]) && (result.expired? || @cache_expiration_service.expired?(name))
|
473
|
+
if (result = @cache[name]) && (result.expired? || @cache_expiration_service.expired?(name.to_sym))
|
453
474
|
Puppet.debug {"Evicting cache entry for environment '#{name}'"}
|
454
|
-
@cache_expiration_service.evicted(name)
|
475
|
+
@cache_expiration_service.evicted(name.to_sym)
|
455
476
|
clear(name)
|
456
477
|
Puppet.settings.clear_environment_settings(name)
|
457
478
|
end
|
@@ -465,6 +486,9 @@ module Puppet::Environments
|
|
465
486
|
@value = value
|
466
487
|
end
|
467
488
|
|
489
|
+
def touch
|
490
|
+
end
|
491
|
+
|
468
492
|
def expired?
|
469
493
|
false
|
470
494
|
end
|
@@ -493,10 +517,10 @@ module Puppet::Environments
|
|
493
517
|
end
|
494
518
|
end
|
495
519
|
|
496
|
-
#
|
520
|
+
# Policy that expires in ttl_seconds from when it was created
|
497
521
|
class TTLEntry < Entry
|
498
522
|
def initialize(value, ttl_seconds)
|
499
|
-
super
|
523
|
+
super(value)
|
500
524
|
@ttl = Time.now + ttl_seconds
|
501
525
|
@ttl_seconds = ttl_seconds
|
502
526
|
end
|
@@ -513,5 +537,22 @@ module Puppet::Environments
|
|
513
537
|
@ttl
|
514
538
|
end
|
515
539
|
end
|
540
|
+
|
541
|
+
# Policy that expires if it hasn't been touched within ttl_seconds
|
542
|
+
class MRUEntry < TTLEntry
|
543
|
+
def initialize(value, ttl_seconds)
|
544
|
+
super(value, ttl_seconds)
|
545
|
+
|
546
|
+
touch
|
547
|
+
end
|
548
|
+
|
549
|
+
def touch
|
550
|
+
@ttl = Time.now + @ttl_seconds
|
551
|
+
end
|
552
|
+
|
553
|
+
def label
|
554
|
+
"(mru = #{@ttl_seconds} sec)"
|
555
|
+
end
|
556
|
+
end
|
516
557
|
end
|
517
558
|
end
|
data/lib/puppet/face/catalog.rb
CHANGED
@@ -97,7 +97,7 @@ Puppet::Indirector::Face.define(:catalog, '0.0.1') do
|
|
97
97
|
A serialized catalog.
|
98
98
|
EOT
|
99
99
|
when_invoked do |*args|
|
100
|
-
Puppet.settings.preferred_run_mode = :
|
100
|
+
Puppet.settings.preferred_run_mode = :server
|
101
101
|
Puppet::Face[:catalog, :current].find(*args)
|
102
102
|
end
|
103
103
|
end
|
data/lib/puppet/face/config.rb
CHANGED
@@ -20,10 +20,10 @@ Puppet::Face.define(:config, '0.0.1') do
|
|
20
20
|
description <<-EOT
|
21
21
|
The section of the puppet.conf configuration file to interact with.
|
22
22
|
|
23
|
-
The three most commonly used sections are 'main', '
|
23
|
+
The three most commonly used sections are 'main', 'server', and 'agent'.
|
24
24
|
'Main' is the default, and is used by all Puppet applications. Other
|
25
25
|
sections can override 'main' values for specific applications --- the
|
26
|
-
'
|
26
|
+
'server' section affects Puppet Server, and the 'agent'
|
27
27
|
section affects puppet agent.
|
28
28
|
|
29
29
|
Less commonly used is the 'user' section, which affects puppet apply. Any
|
@@ -52,9 +52,9 @@ Puppet::Face.define(:config, '0.0.1') do
|
|
52
52
|
|
53
53
|
$ puppet config print rundir
|
54
54
|
|
55
|
-
Get a list of important directories from the
|
55
|
+
Get a list of important directories from the server's config:
|
56
56
|
|
57
|
-
$ puppet config print all --section
|
57
|
+
$ puppet config print all --section server | grep -E "(path|dir)"
|
58
58
|
EOT
|
59
59
|
|
60
60
|
when_invoked do |*args|
|
@@ -144,7 +144,7 @@ Puppet::Face.define(:config, '0.0.1') do
|
|
144
144
|
|
145
145
|
if name == 'environment' && options[:section] == 'main'
|
146
146
|
Puppet.warning _(<<-EOM).chomp
|
147
|
-
The environment should be set in either the `[user]`, `[agent]`, or `[
|
147
|
+
The environment should be set in either the `[user]`, `[agent]`, or `[server]`
|
148
148
|
section. Variables set in the `[agent]` section are used when running
|
149
149
|
`puppet agent`. Variables set in the `[user]` section are used when running
|
150
150
|
various other puppet subcommands, like `puppet apply` and `puppet module`; these
|
@@ -163,7 +163,24 @@ https://puppet.com/docs/puppet/latest/configuration.html#environment
|
|
163
163
|
Puppet::FileSystem.touch(path)
|
164
164
|
Puppet::FileSystem.open(path, nil, 'r+:UTF-8') do |file|
|
165
165
|
Puppet::Settings::IniFile.update(file) do |config|
|
166
|
-
|
166
|
+
if options[:section] == "master"
|
167
|
+
# delete requested master section if it exists,
|
168
|
+
# as server section should be used
|
169
|
+
setting_string = config.delete("master", name)
|
170
|
+
if setting_string
|
171
|
+
|
172
|
+
if Puppet::Util::Log.sendlevel?(:info)
|
173
|
+
report_section_and_environment(options[:section], Puppet.settings[:environment])
|
174
|
+
end
|
175
|
+
|
176
|
+
puts(_("Deleted setting from '%{section_name}': '%{setting_string}', and adding it to 'server' section") %
|
177
|
+
{ section_name: options[:section], name: name, setting_string: setting_string.strip })
|
178
|
+
end
|
179
|
+
# add the setting to the to server section instead of master section
|
180
|
+
config.set("server", name, value)
|
181
|
+
else
|
182
|
+
config.set(options[:section], name, value)
|
183
|
+
end
|
167
184
|
end
|
168
185
|
end
|
169
186
|
nil
|
@@ -185,9 +202,9 @@ https://puppet.com/docs/puppet/latest/configuration.html#environment
|
|
185
202
|
|
186
203
|
$ puppet config delete setting_name
|
187
204
|
|
188
|
-
Delete the setting 'setting_name' from the '
|
205
|
+
Delete the setting 'setting_name' from the 'server' configuration domain:
|
189
206
|
|
190
|
-
$ puppet config delete setting_name --section
|
207
|
+
$ puppet config delete setting_name --section server
|
191
208
|
EOT
|
192
209
|
|
193
210
|
when_invoked do |name, options|
|
@@ -202,18 +219,31 @@ https://puppet.com/docs/puppet/latest/configuration.html#environment
|
|
202
219
|
if Puppet::FileSystem.exist?(path)
|
203
220
|
Puppet::FileSystem.open(path, nil, 'r+:UTF-8') do |file|
|
204
221
|
Puppet::Settings::IniFile.update(file) do |config|
|
205
|
-
setting_string = config.delete(options[:section], name)
|
206
|
-
if setting_string
|
207
222
|
|
208
|
-
|
209
|
-
|
210
|
-
|
223
|
+
# delete from both master section and server section
|
224
|
+
if options[:section] == "master" || options[:section] == "server"
|
225
|
+
master_setting_string = config.delete("master", name)
|
226
|
+
puts(_("Deleted setting from '%{section_name}': '%{setting_string}'") %
|
227
|
+
{ section_name: 'master', name: name, setting_string: master_setting_string.strip[/[^=]+/] }) if master_setting_string
|
211
228
|
|
229
|
+
server_setting_string = config.delete("server", name)
|
212
230
|
puts(_("Deleted setting from '%{section_name}': '%{setting_string}'") %
|
213
|
-
|
231
|
+
{ section_name: 'server', name: name, setting_string: server_setting_string.strip[/[^=]+/] }) if server_setting_string
|
232
|
+
|
214
233
|
else
|
215
|
-
|
216
|
-
|
234
|
+
setting_string = config.delete(options[:section], name)
|
235
|
+
if setting_string
|
236
|
+
|
237
|
+
if Puppet::Util::Log.sendlevel?(:info)
|
238
|
+
report_section_and_environment(options[:section], Puppet.settings[:environment])
|
239
|
+
end
|
240
|
+
|
241
|
+
puts(_("Deleted setting from '%{section_name}': '%{setting_string}'") %
|
242
|
+
{ section_name: options[:section], name: name, setting_string: setting_string.strip })
|
243
|
+
else
|
244
|
+
Puppet.warning(_("No setting found in configuration file for section '%{section_name}' setting name '%{name}'") %
|
245
|
+
{ section_name: options[:section], name: name })
|
246
|
+
end
|
217
247
|
end
|
218
248
|
end
|
219
249
|
end
|