puppet 6.15.0-universal-darwin → 6.19.1-universal-darwin
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
@@ -30,7 +30,7 @@ Puppet::Type.type(:service).provide :systemd, :parent => :base do
|
|
30
30
|
def self.instances
|
31
31
|
i = []
|
32
32
|
output = systemctl('list-unit-files', '--type', 'service', '--full', '--all', '--no-pager')
|
33
|
-
output.scan(/^(\S+)\s+(disabled|enabled|masked|indirect|bad)\s*$/i).each do |m|
|
33
|
+
output.scan(/^(\S+)\s+(disabled|enabled|masked|indirect|bad|static)\s*$/i).each do |m|
|
34
34
|
Puppet.debug("#{m[0]} marked as bad by `systemctl`. It is recommended to be further checked.") if m[1] == "bad"
|
35
35
|
i << new(:name => m[0])
|
36
36
|
end
|
@@ -39,6 +39,22 @@ Puppet::Type.type(:service).provide :systemd, :parent => :base do
|
|
39
39
|
return []
|
40
40
|
end
|
41
41
|
|
42
|
+
# Static services cannot be enabled or disabled manually. Indirect services
|
43
|
+
# should not be enabled or disabled due to limitations in systemd (see
|
44
|
+
# https://github.com/systemd/systemd/issues/6681).
|
45
|
+
def enabled_insync?(current)
|
46
|
+
case cached_enabled?[:output]
|
47
|
+
when 'static'
|
48
|
+
Puppet.debug("Unable to enable or disable static service #{@resource[:name]}")
|
49
|
+
return true
|
50
|
+
when 'indirect'
|
51
|
+
Puppet.debug("Service #{@resource[:name]} is in 'indirect' state and cannot be enabled/disabled")
|
52
|
+
return true
|
53
|
+
else
|
54
|
+
current == @resource[:enable]
|
55
|
+
end
|
56
|
+
end
|
57
|
+
|
42
58
|
# This helper ensures that the enable state cache is always reset
|
43
59
|
# after a systemctl enable operation. A particular service state is not guaranteed
|
44
60
|
# after such an operation, so the cache must be emptied to prevent inconsistencies
|
@@ -70,12 +86,13 @@ Puppet::Type.type(:service).provide :systemd, :parent => :base do
|
|
70
86
|
def cached_enabled?
|
71
87
|
return @cached_enabled if @cached_enabled
|
72
88
|
cmd = [command(:systemctl), 'is-enabled', '--', @resource[:name]]
|
73
|
-
|
89
|
+
result = execute(cmd, :failonfail => false)
|
90
|
+
@cached_enabled = { output: result.chomp, exitcode: result.exitstatus }
|
74
91
|
end
|
75
92
|
|
76
93
|
def enabled?
|
77
|
-
output = cached_enabled?
|
78
|
-
code =
|
94
|
+
output = cached_enabled?[:output]
|
95
|
+
code = cached_enabled?[:exitcode]
|
79
96
|
|
80
97
|
# The masked state is equivalent to the disabled state in terms of
|
81
98
|
# comparison so we only care to check if it is masked if we want to keep
|
@@ -14,29 +14,28 @@ Puppet::Type.type(:service).provide :windows, :parent => :service do
|
|
14
14
|
defaultfor :operatingsystem => :windows
|
15
15
|
confine :operatingsystem => :windows
|
16
16
|
|
17
|
-
has_feature :refreshable
|
18
|
-
has_feature :configurable_timeout
|
17
|
+
has_feature :refreshable, :configurable_timeout, :manages_logon_credentials
|
19
18
|
|
20
19
|
def enable
|
21
|
-
Puppet::Util::Windows::Service.
|
20
|
+
Puppet::Util::Windows::Service.set_startup_configuration(@resource[:name], options: {startup_type: :SERVICE_AUTO_START})
|
22
21
|
rescue => detail
|
23
22
|
raise Puppet::Error.new(_("Cannot enable %{resource_name}, error was: %{detail}") % { resource_name: @resource[:name], detail: detail }, detail )
|
24
23
|
end
|
25
24
|
|
26
25
|
def disable
|
27
|
-
Puppet::Util::Windows::Service.
|
26
|
+
Puppet::Util::Windows::Service.set_startup_configuration(@resource[:name], options: {startup_type: :SERVICE_DISABLED})
|
28
27
|
rescue => detail
|
29
28
|
raise Puppet::Error.new(_("Cannot disable %{resource_name}, error was: %{detail}") % { resource_name: @resource[:name], detail: detail }, detail )
|
30
29
|
end
|
31
30
|
|
32
31
|
def manual_start
|
33
|
-
Puppet::Util::Windows::Service.
|
32
|
+
Puppet::Util::Windows::Service.set_startup_configuration(@resource[:name], options: {startup_type: :SERVICE_DEMAND_START})
|
34
33
|
rescue => detail
|
35
34
|
raise Puppet::Error.new(_("Cannot enable %{resource_name} for manual start, error was: %{detail}") % { resource_name: @resource[:name], detail: detail }, detail )
|
36
35
|
end
|
37
36
|
|
38
37
|
def delayed_start
|
39
|
-
Puppet::Util::Windows::Service.
|
38
|
+
Puppet::Util::Windows::Service.set_startup_configuration(@resource[:name], options: {startup_type: :SERVICE_AUTO_START, delayed: true})
|
40
39
|
rescue => detail
|
41
40
|
raise Puppet::Error.new(_("Cannot enable %{resource_name} for delayed start, error was: %{detail}") % { resource_name: @resource[:name], detail: detail }, detail )
|
42
41
|
end
|
@@ -110,7 +109,10 @@ Puppet::Type.type(:service).provide :windows, :parent => :service do
|
|
110
109
|
raise Puppet::Error.new(_("Unknown service state '%{current_state}' for service '%{resource_name}'") % { current_state: current_state, resource_name: @resource[:name] })
|
111
110
|
end
|
112
111
|
debug("Service #{@resource[:name]} is #{current_state}")
|
113
|
-
|
112
|
+
state
|
113
|
+
rescue => detail
|
114
|
+
Puppet.warning("Status for service #{@resource[:name]} could not be retrieved: #{detail}")
|
115
|
+
:stopped
|
114
116
|
end
|
115
117
|
|
116
118
|
def default_timeout
|
@@ -125,4 +127,18 @@ Puppet::Type.type(:service).provide :windows, :parent => :service do
|
|
125
127
|
end
|
126
128
|
services
|
127
129
|
end
|
130
|
+
|
131
|
+
def logonaccount
|
132
|
+
return unless Puppet::Util::Windows::Service.exists?(@resource[:name])
|
133
|
+
Puppet::Util::Windows::Service.logon_account(@resource[:name])
|
134
|
+
end
|
135
|
+
|
136
|
+
def logonaccount=(value)
|
137
|
+
Puppet::Util::Windows::Service.set_startup_configuration(@resource[:name], options: {logon_account: value, logon_password: @resource[:logonpassword]})
|
138
|
+
restart if @resource[:ensure] == :running && [:running, :paused].include?(status)
|
139
|
+
end
|
140
|
+
|
141
|
+
def logonpassword=(value)
|
142
|
+
Puppet::Util::Windows::Service.set_startup_configuration(@resource[:name], options: {logon_password: value})
|
143
|
+
end
|
128
144
|
end
|
@@ -288,7 +288,7 @@ Puppet::Type.type(:user).provide :aix, :parent => Puppet::Provider::AixObject do
|
|
288
288
|
# UNSUPPORTED
|
289
289
|
#- **roles**
|
290
290
|
# The roles the user has. Multiple roles should be
|
291
|
-
# specified as an array. Requires features
|
291
|
+
# specified as an array. Requires features manages_roles.
|
292
292
|
# UNSUPPORTED
|
293
293
|
#- **key_membership**
|
294
294
|
# Whether specified key value pairs should be treated as the only
|
@@ -33,7 +33,7 @@ Puppet::Type.type(:user).provide :user_role_add, :parent => :useradd, :source =>
|
|
33
33
|
set("shell", value)
|
34
34
|
end
|
35
35
|
|
36
|
-
has_features :manages_homedir, :allows_duplicates, :manages_solaris_rbac, :manages_passwords, :manages_password_age, :manages_shell
|
36
|
+
has_features :manages_homedir, :allows_duplicates, :manages_solaris_rbac, :manages_roles, :manages_passwords, :manages_password_age, :manages_shell
|
37
37
|
|
38
38
|
def check_valid_shell
|
39
39
|
unless File.exist?(@resource.should(:shell))
|
@@ -21,7 +21,11 @@ Puppet::Type.type(:user).provide :useradd, :parent => Puppet::Provider::NameServ
|
|
21
21
|
options :expiry, :method => :sp_expire,
|
22
22
|
:munge => proc { |value|
|
23
23
|
if value == :absent
|
24
|
-
''
|
24
|
+
if Facter.value(:operatingsystem)=='SLES' && Facter.value(:operatingsystemmajrelease) == "11"
|
25
|
+
-1
|
26
|
+
else
|
27
|
+
''
|
28
|
+
end
|
25
29
|
else
|
26
30
|
case Facter.value(:operatingsystem)
|
27
31
|
when 'Solaris'
|
@@ -134,10 +138,17 @@ Puppet::Type.type(:user).provide :useradd, :parent => Puppet::Provider::NameServ
|
|
134
138
|
|
135
139
|
def check_manage_home
|
136
140
|
cmd = []
|
137
|
-
if @resource.managehome?
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
+
if @resource.managehome?
|
142
|
+
# libuser does not implement the -m flag
|
143
|
+
cmd << "-m" unless @resource.forcelocal?
|
144
|
+
else
|
145
|
+
osfamily = Facter.value(:osfamily)
|
146
|
+
osversion = Facter.value(:operatingsystemmajrelease).to_i
|
147
|
+
# SLES 11 uses pwdutils instead of shadow, which does not have -M
|
148
|
+
# Solaris and OpenBSD use different useradd flavors
|
149
|
+
unless osfamily =~ /Solaris|OpenBSD/ || osfamily == 'Suse' && osversion <= 11
|
150
|
+
cmd << "-M"
|
151
|
+
end
|
141
152
|
end
|
142
153
|
cmd
|
143
154
|
end
|
@@ -6,7 +6,7 @@ Puppet::Type.type(:user).provide :windows_adsi do
|
|
6
6
|
defaultfor :operatingsystem => :windows
|
7
7
|
confine :operatingsystem => :windows
|
8
8
|
|
9
|
-
has_features :manages_homedir, :manages_passwords
|
9
|
+
has_features :manages_homedir, :manages_passwords, :manages_roles
|
10
10
|
|
11
11
|
def initialize(value={})
|
12
12
|
super(value)
|
@@ -17,6 +17,23 @@ Puppet::Type.type(:user).provide :windows_adsi do
|
|
17
17
|
@user ||= Puppet::Util::Windows::ADSI::User.new(@resource[:name])
|
18
18
|
end
|
19
19
|
|
20
|
+
def roles
|
21
|
+
Puppet::Util::Windows::User::get_rights(@resource[:name])
|
22
|
+
end
|
23
|
+
|
24
|
+
def roles=(value)
|
25
|
+
current = roles.split(',')
|
26
|
+
should = value.split(',')
|
27
|
+
|
28
|
+
add_list = should - current
|
29
|
+
Puppet::Util::Windows::User::set_rights(@resource[:name], add_list) unless add_list.empty?
|
30
|
+
|
31
|
+
if @resource[:role_membership] == :inclusive
|
32
|
+
remove_list = current - should
|
33
|
+
Puppet::Util::Windows::User::remove_rights(@resource[:name], remove_list) unless remove_list.empty?
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
20
37
|
def groups
|
21
38
|
@groups ||= Puppet::Util::Windows::ADSI::Group.name_sid_hash(user.groups)
|
22
39
|
@groups.keys
|
data/lib/puppet/reports/http.rb
CHANGED
@@ -25,12 +25,16 @@ Puppet::Reports.register_report(:http) do
|
|
25
25
|
:include_system_store => Puppet[:report_include_system_store],
|
26
26
|
}
|
27
27
|
|
28
|
+
# Puppet's http client implementation accepts userinfo in the URL
|
29
|
+
# but puppetserver's does not. So pass credentials explicitly.
|
28
30
|
if url.user && url.password
|
29
|
-
options[:
|
30
|
-
|
31
|
+
options[:basic_auth] = {
|
32
|
+
user: url.user,
|
33
|
+
password: url.password
|
34
|
+
}
|
31
35
|
end
|
32
36
|
|
33
|
-
client = Puppet.runtime[
|
37
|
+
client = Puppet.runtime[:http]
|
34
38
|
client.post(url, self.to_yaml, headers: headers, options: options) do |response|
|
35
39
|
unless response.success?
|
36
40
|
Puppet.err _("Unable to submit report to %{url} [%{code}] %{message}") % { url: Puppet[:reporturl].to_s, code: response.code, message: response.reason }
|
data/lib/puppet/resource.rb
CHANGED
@@ -628,7 +628,8 @@ class Puppet::Resource
|
|
628
628
|
def self.extract_type_and_title(argtype, argtitle)
|
629
629
|
if (argtype.nil? || argtype == :component || argtype == :whit) &&
|
630
630
|
argtitle =~ /^([^\[\]]+)\[(.+)\]$/m then [ $1, $2 ]
|
631
|
-
elsif argtitle.nil? && argtype
|
631
|
+
elsif argtitle.nil? && argtype.is_a?(String) &&
|
632
|
+
argtype =~ /^([^\[\]]+)\[(.+)\]$/m then [ $1, $2 ]
|
632
633
|
elsif argtitle then [ argtype, argtitle ]
|
633
634
|
elsif argtype.is_a?(Puppet::Type) then [ argtype.class.name, argtype.title ]
|
634
635
|
else raise ArgumentError, _("No title provided and %{type} is not a valid resource reference") % { type: argtype.inspect }
|
data/lib/puppet/resource/type.rb
CHANGED
@@ -11,6 +11,7 @@ class Puppet::Resource::Type
|
|
11
11
|
include Puppet::Util::Warnings
|
12
12
|
include Puppet::Util::Errors
|
13
13
|
|
14
|
+
# @deprecated application orchestration will be removed in puppet 7 (capability_mapping, application, site)
|
14
15
|
RESOURCE_KINDS = [:hostclass, :node, :definition, :capability_mapping, :application, :site]
|
15
16
|
|
16
17
|
# Map the names used in our documentation to the names used internally
|
@@ -33,7 +34,7 @@ class Puppet::Resource::Type
|
|
33
34
|
DOUBLE_COLON = '::'.freeze
|
34
35
|
EMPTY_ARRAY = [].freeze
|
35
36
|
|
36
|
-
attr_accessor :file, :line, :doc, :code, :parent, :resource_type_collection
|
37
|
+
attr_accessor :file, :line, :doc, :code, :parent, :resource_type_collection, :override
|
37
38
|
attr_reader :namespace, :arguments, :behaves_like, :module_name
|
38
39
|
|
39
40
|
# The attributes 'produces' and 'consumes' are arrays of the blueprints
|
@@ -62,6 +63,7 @@ class Puppet::Resource::Type
|
|
62
63
|
# Are we a child of the passed class? Do a recursive search up our
|
63
64
|
# parentage tree to figure it out.
|
64
65
|
def child_of?(klass)
|
66
|
+
return true if override
|
65
67
|
return false unless parent
|
66
68
|
|
67
69
|
return(klass == parent_type ? true : parent_type.child_of?(klass))
|
@@ -69,6 +71,8 @@ class Puppet::Resource::Type
|
|
69
71
|
|
70
72
|
# Evaluate the resources produced by the given resource. These resources are
|
71
73
|
# evaluated in a separate but identical scope from the rest of the resource.
|
74
|
+
#
|
75
|
+
# @deprecated application orchestration will be removed in puppet 7
|
72
76
|
def evaluate_produces(resource, scope)
|
73
77
|
# Only defined types and classes can produce capabilities
|
74
78
|
return unless definition? || hostclass?
|
@@ -161,19 +165,23 @@ class Puppet::Resource::Type
|
|
161
165
|
@module_name = options[:module_name]
|
162
166
|
end
|
163
167
|
|
168
|
+
# @deprecated application orchestration will be removed in puppet 7
|
164
169
|
def produces
|
165
170
|
@produces || EMPTY_ARRAY
|
166
171
|
end
|
167
172
|
|
173
|
+
# @deprecated application orchestration will be removed in puppet 7
|
168
174
|
def consumes
|
169
175
|
@consumes || EMPTY_ARRAY
|
170
176
|
end
|
171
177
|
|
178
|
+
# @deprecated application orchestration will be removed in puppet 7
|
172
179
|
def add_produces(blueprint)
|
173
180
|
@produces ||= []
|
174
181
|
@produces << blueprint
|
175
182
|
end
|
176
183
|
|
184
|
+
# @deprecated application orchestration will be removed in puppet 7
|
177
185
|
def add_consumes(blueprint)
|
178
186
|
@consumes ||= []
|
179
187
|
@consumes << blueprint
|
@@ -235,6 +243,7 @@ class Puppet::Resource::Type
|
|
235
243
|
when :node
|
236
244
|
:node
|
237
245
|
when :site
|
246
|
+
# @deprecated application orchestration will be removed in puppet 7
|
238
247
|
:site
|
239
248
|
end
|
240
249
|
|
data/lib/puppet/rest/route.rb
CHANGED
@@ -14,11 +14,11 @@ module Puppet::Rest
|
|
14
14
|
# construction
|
15
15
|
# @param [Symbol] server_setting the setting to check for special
|
16
16
|
# server configuration
|
17
|
-
# @param [Symbol] port_setting the setting to check for
|
17
|
+
# @param [Symbol] port_setting the setting to check for special
|
18
18
|
# port configuration
|
19
19
|
# @param [Symbol] srv_service the name of the service when using SRV
|
20
20
|
# records
|
21
|
-
def initialize(api:, server_setting: :server, port_setting: :
|
21
|
+
def initialize(api:, server_setting: :server, port_setting: :serverport, srv_service: :puppet)
|
22
22
|
@api = api
|
23
23
|
@default_server = Puppet::Util::Connection.determine_server(server_setting)
|
24
24
|
@default_port = Puppet::Util::Connection.determine_port(port_setting, server_setting)
|
data/lib/puppet/runtime.rb
CHANGED
@@ -1,16 +1,32 @@
|
|
1
1
|
require 'puppet/http'
|
2
2
|
require 'singleton'
|
3
3
|
|
4
|
+
# Provides access to runtime implementations.
|
5
|
+
#
|
6
|
+
# @api private
|
4
7
|
class Puppet::Runtime
|
5
8
|
include Singleton
|
6
9
|
|
7
10
|
def initialize
|
8
11
|
@runtime_services = {
|
9
|
-
|
12
|
+
http: proc do
|
13
|
+
klass = Puppet::Network::HttpPool.http_client_class
|
14
|
+
if klass == Puppet::Network::HTTP::Connection ||
|
15
|
+
klass == Puppet::Network::HTTP::ConnectionAdapter
|
16
|
+
Puppet::HTTP::Client.new
|
17
|
+
else
|
18
|
+
Puppet::HTTP::ExternalClient.new(klass)
|
19
|
+
end
|
20
|
+
end
|
10
21
|
}
|
11
22
|
end
|
12
23
|
private :initialize
|
13
24
|
|
25
|
+
# Get a runtime implementation.
|
26
|
+
#
|
27
|
+
# @param name [Symbol] the name of the implementation
|
28
|
+
# @return [Object] the runtime implementation
|
29
|
+
# @api private
|
14
30
|
def [](name)
|
15
31
|
service = @runtime_services[name]
|
16
32
|
raise ArgumentError, "Unknown service #{name}" unless service
|
@@ -22,11 +38,18 @@ class Puppet::Runtime
|
|
22
38
|
end
|
23
39
|
end
|
24
40
|
|
41
|
+
# Register a runtime implementation.
|
42
|
+
#
|
43
|
+
# @param name [Symbol] the name of the implementation
|
44
|
+
# @param impl [Object] the runtime implementation
|
45
|
+
# @api private
|
25
46
|
def []=(name, impl)
|
26
47
|
@runtime_services[name] = impl
|
27
48
|
end
|
28
49
|
|
29
|
-
# for testing
|
50
|
+
# Clears all implementations. This is used for testing.
|
51
|
+
#
|
52
|
+
# @api private
|
30
53
|
def clear
|
31
54
|
initialize
|
32
55
|
end
|
data/lib/puppet/settings.rb
CHANGED
@@ -44,7 +44,7 @@ class Puppet::Settings
|
|
44
44
|
REQUIRED_APP_SETTINGS = [:logdir, :confdir, :vardir, :codedir]
|
45
45
|
|
46
46
|
# The acceptable sections of the puppet.conf configuration file.
|
47
|
-
ALLOWED_SECTION_NAMES = ['main', 'master', 'agent', 'user'].freeze
|
47
|
+
ALLOWED_SECTION_NAMES = ['main', 'server', 'master', 'agent', 'user'].freeze
|
48
48
|
|
49
49
|
NONE = 'none'.freeze
|
50
50
|
|
@@ -330,7 +330,7 @@ class Puppet::Settings
|
|
330
330
|
end
|
331
331
|
|
332
332
|
option_parser.on('--run_mode',
|
333
|
-
"The effective 'run mode' of the application:
|
333
|
+
"The effective 'run mode' of the application: server, agent, or user.",
|
334
334
|
:REQUIRED) do |arg|
|
335
335
|
Puppet.settings.preferred_run_mode = arg
|
336
336
|
end
|
@@ -385,6 +385,19 @@ class Puppet::Settings
|
|
385
385
|
call_hooks_deferred_to_application_initialization
|
386
386
|
issue_deprecations
|
387
387
|
|
388
|
+
run_mode = Puppet::Util::RunMode[self.preferred_run_mode]
|
389
|
+
if run_mode.agent? || run_mode.server?
|
390
|
+
if self.set_in_section?(:masterport, run_mode.name) && !self.set_in_section?(:serverport, run_mode.name)
|
391
|
+
self[:serverport] = self[:masterport]
|
392
|
+
elsif self.set_by_config?(:masterport) && !self.set_by_config?(:serverport)
|
393
|
+
self[:serverport] = self[:masterport]
|
394
|
+
elsif self.set_in_section?(:serverport, run_mode.name) && !self.set_in_section?(:masterport, run_mode.name)
|
395
|
+
self[:masterport] = self[:serverport]
|
396
|
+
elsif self.set_by_config?(:serverport) && !self.set_by_config?(:masterport)
|
397
|
+
self[:masterport] = self[:serverport]
|
398
|
+
end
|
399
|
+
end
|
400
|
+
|
388
401
|
REQUIRED_APP_SETTINGS.each do |key|
|
389
402
|
create_ancestors(Puppet[key])
|
390
403
|
end
|
@@ -564,7 +577,7 @@ class Puppet::Settings
|
|
564
577
|
# @api private
|
565
578
|
def preferred_run_mode=(mode)
|
566
579
|
mode = mode.to_s.downcase.intern
|
567
|
-
raise ValidationError, "Invalid run mode '#{mode}'" unless [:master, :agent, :user].include?(mode)
|
580
|
+
raise ValidationError, "Invalid run mode '#{mode}'" unless [:server, :master, :agent, :user].include?(mode)
|
568
581
|
@preferred_run_mode_name = mode
|
569
582
|
# Changing the run mode has far-reaching consequences. Flush any cached
|
570
583
|
# settings so they will be re-generated.
|
@@ -659,7 +672,7 @@ class Puppet::Settings
|
|
659
672
|
if explicit_config_file?
|
660
673
|
return self[:config]
|
661
674
|
else
|
662
|
-
return File.join(Puppet::Util::RunMode[:
|
675
|
+
return File.join(Puppet::Util::RunMode[:server].conf_dir, config_file_name)
|
663
676
|
end
|
664
677
|
end
|
665
678
|
private :main_config_file
|
@@ -829,7 +842,16 @@ class Puppet::Settings
|
|
829
842
|
SearchPathElement.new(:cli, :values),
|
830
843
|
]
|
831
844
|
searchpath << SearchPathElement.new(environment.intern, :environment) if environment
|
832
|
-
|
845
|
+
|
846
|
+
if run_mode
|
847
|
+
if [:master, :server].include?(run_mode)
|
848
|
+
searchpath << SearchPathElement.new(:server, :section)
|
849
|
+
searchpath << SearchPathElement.new(:master, :section)
|
850
|
+
else
|
851
|
+
searchpath << SearchPathElement.new(run_mode, :section)
|
852
|
+
end
|
853
|
+
end
|
854
|
+
|
833
855
|
searchpath << SearchPathElement.new(:main, :section)
|
834
856
|
end
|
835
857
|
|
@@ -907,6 +929,16 @@ class Puppet::Settings
|
|
907
929
|
end
|
908
930
|
end
|
909
931
|
|
932
|
+
# Allow later inspection to determine if the setting was set by user
|
933
|
+
# config, rather than a default setting.
|
934
|
+
def set_in_section?(param, section)
|
935
|
+
param = param.to_sym
|
936
|
+
vals = searchpath_values(SearchPathElement.new(section, :section))
|
937
|
+
if vals
|
938
|
+
vals.lookup(param)
|
939
|
+
end
|
940
|
+
end
|
941
|
+
|
910
942
|
# Patches the value for a param in a section.
|
911
943
|
# This method is required to support the use case of unifying --dns-alt-names and
|
912
944
|
# --dns_alt_names in the certificate face. Ideally this should be cleaned up.
|
@@ -1053,12 +1085,17 @@ Generated on #{Time.now}.
|
|
1053
1085
|
# Create the necessary objects to use a section. This is idempotent;
|
1054
1086
|
# you can 'use' a section as many times as you want.
|
1055
1087
|
def use(*sections)
|
1088
|
+
Puppet.warning(":master section deprecated in favor of :server section") if sections.include?(:master)
|
1089
|
+
|
1090
|
+
# add :server if sections include :master or :master if sections include :server
|
1091
|
+
sections |= [:master, :server] if (sections & [:master, :server]).any?
|
1092
|
+
|
1056
1093
|
sections = sections.collect { |s| s.to_sym }
|
1057
1094
|
sections = sections.reject { |s| @used.include?(s) }
|
1058
1095
|
|
1059
1096
|
return if sections.empty?
|
1060
1097
|
|
1061
|
-
Puppet.debug
|
1098
|
+
Puppet.debug { "Applying settings catalog for sections #{sections.join(', ')}" }
|
1062
1099
|
|
1063
1100
|
begin
|
1064
1101
|
catalog = to_catalog(*sections).to_ral
|