puppet 6.17.0-universal-darwin → 6.21.0-universal-darwin
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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 +2 -0
- data/Gemfile.lock +38 -34
- data/README.md +1 -2
- data/Rakefile +4 -12
- data/lib/puppet/agent/locker.rb +0 -7
- data/lib/puppet/application.rb +10 -6
- data/lib/puppet/application/agent.rb +9 -3
- 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 +50 -8
- data/lib/puppet/configurer/downloader.rb +31 -10
- data/lib/puppet/confine.rb +1 -1
- data/lib/puppet/confine/any.rb +1 -1
- data/lib/puppet/defaults.rb +88 -38
- 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/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_system/file_impl.rb +3 -3
- 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 +1 -1
- 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/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/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_metadata/http.rb +1 -0
- 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 +4 -4
- 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/master/v3/environments.rb +0 -1
- 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 +3 -2
- data/lib/puppet/parser/functions.rb +21 -17
- data/lib/puppet/parser/functions/create_resources.rb +11 -7
- 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 +22 -3
- data/lib/puppet/pops/evaluator/runtime3_converter.rb +2 -2
- 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/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 +19 -15
- data/lib/puppet/property/list.rb +1 -1
- data/lib/puppet/provider/file/windows.rb +1 -1
- data/lib/puppet/provider/group/groupadd.rb +13 -8
- data/lib/puppet/provider/package/apt.rb +67 -1
- data/lib/puppet/provider/package/aptitude.rb +6 -0
- 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 +1 -0
- data/lib/puppet/provider/package/zypper.rb +3 -0
- data/lib/puppet/provider/service/debian.rb +2 -0
- 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 +55 -8
- data/lib/puppet/provider/user/windows_adsi.rb +18 -1
- data/lib/puppet/reference/configuration.rb +6 -5
- data/lib/puppet/resource/type.rb +2 -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/validator/default_validator.rb +1 -1
- data/lib/puppet/test/test_helper.rb +10 -3
- 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 +2 -2
- data/lib/puppet/type.rb +4 -3
- data/lib/puppet/type/file.rb +2 -2
- data/lib/puppet/type/file/source.rb +28 -8
- data/lib/puppet/type/filebucket.rb +1 -1
- data/lib/puppet/type/notify.rb +2 -2
- data/lib/puppet/type/package.rb +3 -3
- data/lib/puppet/type/service.rb +4 -0
- data/lib/puppet/type/user.rb +18 -3
- data/lib/puppet/util.rb +26 -12
- data/lib/puppet/util/autoload.rb +10 -15
- data/lib/puppet/util/character_encoding.rb +9 -5
- 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/posix.rb +54 -5
- 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 +15 -1
- data/lib/puppet/util/windows/monkey_patches/dir.rb +40 -0
- data/lib/puppet/util/windows/security.rb +4 -4
- data/lib/puppet/util/windows/service.rb +1 -1
- data/lib/puppet/util/windows/user.rb +219 -0
- data/lib/puppet/version.rb +1 -1
- data/locales/puppet.pot +342 -312
- data/man/man5/puppet.conf.5 +53 -18
- data/man/man8/puppet-agent.8 +7 -4
- 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 +208 -55
- 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 +19 -1
- 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/node/environment_spec.rb +1 -1
- data/spec/integration/resource/type_collection_spec.rb +2 -6
- data/spec/integration/transaction_spec.rb +4 -9
- 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 +0 -10
- data/spec/integration/util/windows/user_spec.rb +7 -0
- 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_spec.rb +86 -37
- data/spec/unit/confine/feature_spec.rb +1 -1
- data/spec/unit/confine_spec.rb +10 -3
- 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/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_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 +0 -1
- data/spec/unit/http/resolver_spec.rb +24 -5
- 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/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 +4 -4
- 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/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 +0 -9
- data/spec/unit/network/http/api/master/v3/environments_spec.rb +12 -23
- data/spec/unit/network/http/handler_spec.rb +0 -5
- data/spec/unit/node/environment_spec.rb +18 -1
- data/spec/unit/parser/compiler_spec.rb +3 -19
- data/spec/unit/parser/resource_spec.rb +14 -8
- data/spec/unit/parser/templatewrapper_spec.rb +4 -3
- data/spec/unit/pops/evaluator/deferred_resolver_spec.rb +20 -0
- data/spec/unit/pops/loaders/loaders_spec.rb +70 -0
- data/spec/unit/pops/lookup/lookup_spec.rb +25 -0
- data/spec/unit/property_spec.rb +1 -0
- data/spec/unit/provider/exec_spec.rb +4 -3
- data/spec/unit/provider/group/groupadd_spec.rb +5 -2
- data/spec/unit/provider/nameservice_spec.rb +66 -65
- data/spec/unit/provider/package/apt_spec.rb +85 -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 +28 -0
- 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/pw_spec.rb +2 -0
- data/spec/unit/provider/user/useradd_spec.rb +56 -3
- 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 +11 -10
- 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 +14 -8
- 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 +2 -0
- 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 +1 -1
- data/spec/unit/type/file_spec.rb +0 -6
- 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 +36 -3
- data/spec/unit/type/tidy_spec.rb +0 -1
- data/spec/unit/type/user_spec.rb +31 -2
- data/spec/unit/type_spec.rb +2 -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/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_spec.rb +13 -6
- metadata +49 -50
- 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/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
@@ -13,14 +13,14 @@ class Puppet::HTTP::Resolver::Settings < Puppet::HTTP::Resolver
|
|
13
13
|
# @param [Puppet::HTTP::Session] session
|
14
14
|
# @param [Symbol] name the name of the service to be resolved
|
15
15
|
# @param [Puppet::SSL::SSLContext] ssl_context
|
16
|
-
# @param [Proc]
|
17
|
-
#
|
16
|
+
# @param [Proc] canceled_handler (nil) optional callback allowing a resolver
|
17
|
+
# to cancel resolution.
|
18
18
|
#
|
19
19
|
# @return [Puppet::HTTP::Service] if the service successfully connects,
|
20
20
|
# return it. Otherwise, return nil.
|
21
21
|
#
|
22
|
-
def resolve(session, name, ssl_context: nil,
|
22
|
+
def resolve(session, name, ssl_context: nil, canceled_handler: nil)
|
23
23
|
service = Puppet::HTTP::Service.create_service(@client, session, name)
|
24
|
-
check_connection?(session, service, ssl_context: ssl_context
|
24
|
+
check_connection?(session, service, ssl_context: ssl_context) ? service : nil
|
25
25
|
end
|
26
26
|
end
|
@@ -25,21 +25,21 @@ class Puppet::HTTP::Resolver::SRV < Puppet::HTTP::Resolver
|
|
25
25
|
# @param [Puppet::HTTP::Session] session
|
26
26
|
# @param [Symbol] name the service being resolved
|
27
27
|
# @param [Puppet::SSL::SSLContext] ssl_context
|
28
|
-
# @param [Proc]
|
29
|
-
#
|
28
|
+
# @param [Proc] canceled_handler (nil) optional callback allowing a resolver
|
29
|
+
# to cancel resolution.
|
30
30
|
#
|
31
31
|
# @return [Puppet::HTTP::Service] if an available service is found, return
|
32
32
|
# it. Return nil otherwise.
|
33
33
|
#
|
34
|
-
def resolve(session, name, ssl_context: nil,
|
34
|
+
def resolve(session, name, ssl_context: nil, canceled_handler: nil)
|
35
35
|
# Here we pass our HTTP service name as the DNS SRV service name
|
36
36
|
# This is fine for :ca, but note that :puppet and :file are handled
|
37
37
|
# specially in `each_srv_record`.
|
38
38
|
@delegate.each_srv_record(@srv_domain, name) do |server, port|
|
39
39
|
service = Puppet::HTTP::Service.create_service(@client, session, name, server, port)
|
40
|
-
return service if check_connection?(session, service, ssl_context: ssl_context
|
40
|
+
return service if check_connection?(session, service, ssl_context: ssl_context)
|
41
41
|
end
|
42
42
|
|
43
|
-
|
43
|
+
nil
|
44
44
|
end
|
45
45
|
end
|
data/lib/puppet/http/service.rb
CHANGED
@@ -10,7 +10,7 @@ class Puppet::HTTP::Service
|
|
10
10
|
|
11
11
|
# @api private
|
12
12
|
# @return [Array<Symbol>] available services
|
13
|
-
SERVICE_NAMES = [:ca, :fileserver, :puppet, :report].freeze
|
13
|
+
SERVICE_NAMES = [:ca, :fileserver, :puppet, :puppetserver, :report].freeze
|
14
14
|
|
15
15
|
# @api private
|
16
16
|
# @return [Array<Symbol>] format types that are unsupported
|
@@ -43,6 +43,8 @@ class Puppet::HTTP::Service
|
|
43
43
|
Puppet::HTTP::Service::FileServer.new(client, session, server, port)
|
44
44
|
when :puppet
|
45
45
|
::Puppet::HTTP::Service::Compiler.new(client, session, server, port)
|
46
|
+
when :puppetserver
|
47
|
+
::Puppet::HTTP::Service::Puppetserver.new(client, session, server, port)
|
46
48
|
when :report
|
47
49
|
Puppet::HTTP::Service::Report.new(client, session, server, port)
|
48
50
|
else
|
@@ -22,7 +22,7 @@ class Puppet::HTTP::Service::Compiler < Puppet::HTTP::Service
|
|
22
22
|
# create the service.
|
23
23
|
#
|
24
24
|
def initialize(client, session, server, port)
|
25
|
-
url = build_url(API, server || Puppet[:server], port || Puppet[:
|
25
|
+
url = build_url(API, server || Puppet[:server], port || Puppet[:serverport])
|
26
26
|
super(client, session, url)
|
27
27
|
end
|
28
28
|
|
@@ -27,7 +27,7 @@ class Puppet::HTTP::Service::FileServer < Puppet::HTTP::Service
|
|
27
27
|
# create the service.
|
28
28
|
#
|
29
29
|
def initialize(client, session, server, port)
|
30
|
-
url = build_url(API, server || Puppet[:server], port || Puppet[:
|
30
|
+
url = build_url(API, server || Puppet[:server], port || Puppet[:serverport])
|
31
31
|
super(client, session, url)
|
32
32
|
end
|
33
33
|
|
@@ -0,0 +1,39 @@
|
|
1
|
+
# The puppetserver service.
|
2
|
+
#
|
3
|
+
# @api private
|
4
|
+
#
|
5
|
+
class Puppet::HTTP::Service::Puppetserver < Puppet::HTTP::Service
|
6
|
+
# @param [Puppet::HTTP::Client] client
|
7
|
+
# @param [Puppet::HTTP::Session] session
|
8
|
+
# @param [String] server If an explicit server is given,
|
9
|
+
# create a service using that server. If server is nil, the default value
|
10
|
+
# is used to create the service.
|
11
|
+
# @param [Integer] port If an explicit port is given, create
|
12
|
+
# a service using that port. If port is nil, the default value is used to
|
13
|
+
# create the service.
|
14
|
+
# @api private
|
15
|
+
#
|
16
|
+
def initialize(client, session, server, port)
|
17
|
+
url = build_url('', server || Puppet[:server], port || Puppet[:serverport])
|
18
|
+
super(client, session, url)
|
19
|
+
end
|
20
|
+
|
21
|
+
# Request the puppetserver's simple status
|
22
|
+
#
|
23
|
+
# @param [Puppet::SSL::SSLContext] ssl_context to use when establishing
|
24
|
+
# the connection.
|
25
|
+
# @return Puppet::HTTP::Response The HTTP response
|
26
|
+
# @api private
|
27
|
+
#
|
28
|
+
def get_simple_status(ssl_context: nil)
|
29
|
+
response = @client.get(
|
30
|
+
with_base_url("/status/v1/simple/master"),
|
31
|
+
headers: add_puppet_headers({}),
|
32
|
+
options: {ssl_context: ssl_context}
|
33
|
+
)
|
34
|
+
|
35
|
+
process_response(response)
|
36
|
+
|
37
|
+
[response, response.body.to_s]
|
38
|
+
end
|
39
|
+
end
|
data/lib/puppet/http/session.rb
CHANGED
@@ -64,20 +64,21 @@ class Puppet::HTTP::Session
|
|
64
64
|
cached = @resolved_services[name]
|
65
65
|
return cached if cached
|
66
66
|
|
67
|
-
|
68
|
-
|
67
|
+
canceled = false
|
68
|
+
canceled_handler = lambda { |cancel| canceled = cancel }
|
69
69
|
|
70
70
|
@resolvers.each do |resolver|
|
71
71
|
Puppet.debug("Resolving service '#{name}' using #{resolver.class}")
|
72
|
-
service = resolver.resolve(self, name, ssl_context: ssl_context,
|
72
|
+
service = resolver.resolve(self, name, ssl_context: ssl_context, canceled_handler: canceled_handler)
|
73
73
|
if service
|
74
74
|
@resolved_services[name] = service
|
75
75
|
Puppet.debug("Resolved service '#{name}' to #{service.url}")
|
76
76
|
return service
|
77
|
+
elsif canceled
|
78
|
+
break
|
77
79
|
end
|
78
80
|
end
|
79
81
|
|
80
|
-
resolution_exceptions.each { |e| Puppet.log_exception(e) }
|
81
82
|
raise Puppet::HTTP::RouteError, "No more routes to #{name}"
|
82
83
|
end
|
83
84
|
|
@@ -22,7 +22,7 @@ class Puppet::Indirector::Exec < Puppet::Indirector::Terminus
|
|
22
22
|
end
|
23
23
|
|
24
24
|
if output =~ /\A\s*\Z/ # all whitespace
|
25
|
-
Puppet.debug "Empty response for #{name} from #{self.name} terminus"
|
25
|
+
Puppet.debug { "Empty response for #{name} from #{self.name} terminus" }
|
26
26
|
return nil
|
27
27
|
else
|
28
28
|
return output
|
@@ -0,0 +1,60 @@
|
|
1
|
+
# module containing common methods used by json and yaml facts indirection terminus
|
2
|
+
module Puppet::Indirector::FactSearch
|
3
|
+
def node_matches?(facts, options)
|
4
|
+
options.each do |key, value|
|
5
|
+
type, name, operator = key.to_s.split(".")
|
6
|
+
operator ||= 'eq'
|
7
|
+
|
8
|
+
return false unless node_matches_option?(type, name, operator, value, facts)
|
9
|
+
end
|
10
|
+
return true
|
11
|
+
end
|
12
|
+
|
13
|
+
def node_matches_option?(type, name, operator, value, facts)
|
14
|
+
case type
|
15
|
+
when "meta"
|
16
|
+
case name
|
17
|
+
when "timestamp"
|
18
|
+
compare_timestamp(operator, facts.timestamp, Time.parse(value))
|
19
|
+
end
|
20
|
+
when "facts"
|
21
|
+
compare_facts(operator, facts.values[name], value)
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
def compare_facts(operator, value1, value2)
|
26
|
+
return false unless value1
|
27
|
+
|
28
|
+
case operator
|
29
|
+
when "eq"
|
30
|
+
value1.to_s == value2.to_s
|
31
|
+
when "le"
|
32
|
+
value1.to_f <= value2.to_f
|
33
|
+
when "ge"
|
34
|
+
value1.to_f >= value2.to_f
|
35
|
+
when "lt"
|
36
|
+
value1.to_f < value2.to_f
|
37
|
+
when "gt"
|
38
|
+
value1.to_f > value2.to_f
|
39
|
+
when "ne"
|
40
|
+
value1.to_s != value2.to_s
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
def compare_timestamp(operator, value1, value2)
|
45
|
+
case operator
|
46
|
+
when "eq"
|
47
|
+
value1 == value2
|
48
|
+
when "le"
|
49
|
+
value1 <= value2
|
50
|
+
when "ge"
|
51
|
+
value1 >= value2
|
52
|
+
when "lt"
|
53
|
+
value1 < value2
|
54
|
+
when "gt"
|
55
|
+
value1 > value2
|
56
|
+
when "ne"
|
57
|
+
value1 != value2
|
58
|
+
end
|
59
|
+
end
|
60
|
+
end
|
@@ -55,7 +55,7 @@ class Puppet::Node::Facts::Facter < Puppet::Indirector::Code
|
|
55
55
|
if Puppet::Util::Log.sendlevel?(:info)
|
56
56
|
Puppet.info _("Loading facts")
|
57
57
|
Dir.glob("#{dir}/*.rb").each do |file|
|
58
|
-
Puppet.debug "Loading facts from #{file}"
|
58
|
+
Puppet.debug { "Loading facts from #{file}" }
|
59
59
|
end
|
60
60
|
end
|
61
61
|
|
@@ -71,7 +71,7 @@ class Puppet::Node::Facts::Facter < Puppet::Indirector::Code
|
|
71
71
|
request.environment.modules.each do |m|
|
72
72
|
if m.has_external_facts?
|
73
73
|
dir = m.plugin_fact_directory
|
74
|
-
Puppet.debug "Loading external facts from #{dir}"
|
74
|
+
Puppet.debug { "Loading external facts from #{dir}" }
|
75
75
|
dirs << dir
|
76
76
|
end
|
77
77
|
end
|
@@ -79,7 +79,7 @@ class Puppet::Node::Facts::Facter < Puppet::Indirector::Code
|
|
79
79
|
# Add system external fact directory if it exists
|
80
80
|
if FileTest.directory?(Puppet[:pluginfactdest])
|
81
81
|
dir = Puppet[:pluginfactdest]
|
82
|
-
Puppet.debug "Loading external facts from #{dir}"
|
82
|
+
Puppet.debug { "Loading external facts from #{dir}" }
|
83
83
|
dirs << dir
|
84
84
|
end
|
85
85
|
|
@@ -0,0 +1,27 @@
|
|
1
|
+
require 'puppet/node/facts'
|
2
|
+
require 'puppet/indirector/json'
|
3
|
+
require 'puppet/indirector/fact_search'
|
4
|
+
|
5
|
+
class Puppet::Node::Facts::Json < Puppet::Indirector::JSON
|
6
|
+
desc "Store client facts as flat files, serialized using JSON, or
|
7
|
+
return deserialized facts from disk."
|
8
|
+
|
9
|
+
include Puppet::Indirector::FactSearch
|
10
|
+
|
11
|
+
def search(request)
|
12
|
+
node_names = []
|
13
|
+
Dir.glob(json_dir_path).each do |file|
|
14
|
+
facts = load_json_from_file(file, '')
|
15
|
+
if facts && node_matches?(facts, request.options)
|
16
|
+
node_names << facts.name
|
17
|
+
end
|
18
|
+
end
|
19
|
+
node_names
|
20
|
+
end
|
21
|
+
|
22
|
+
private
|
23
|
+
|
24
|
+
def json_dir_path
|
25
|
+
self.path("*")
|
26
|
+
end
|
27
|
+
end
|
@@ -1,10 +1,13 @@
|
|
1
1
|
require 'puppet/node/facts'
|
2
2
|
require 'puppet/indirector/yaml'
|
3
|
+
require 'puppet/indirector/fact_search'
|
3
4
|
|
4
5
|
class Puppet::Node::Facts::Yaml < Puppet::Indirector::Yaml
|
5
6
|
desc "Store client facts as flat files, serialized using YAML, or
|
6
7
|
return deserialized facts from disk."
|
7
8
|
|
9
|
+
include Puppet::Indirector::FactSearch
|
10
|
+
|
8
11
|
def search(request)
|
9
12
|
node_names = []
|
10
13
|
Dir.glob(yaml_dir_path).each do |file|
|
@@ -20,65 +23,7 @@ class Puppet::Node::Facts::Yaml < Puppet::Indirector::Yaml
|
|
20
23
|
|
21
24
|
# Return the path to a given node's file.
|
22
25
|
def yaml_dir_path
|
23
|
-
base = Puppet.run_mode.
|
26
|
+
base = Puppet.run_mode.server? ? Puppet[:yamldir] : Puppet[:clientyamldir]
|
24
27
|
File.join(base, 'facts', '*.yaml')
|
25
28
|
end
|
26
|
-
|
27
|
-
def node_matches?(facts, options)
|
28
|
-
options.each do |key, value|
|
29
|
-
type, name, operator = key.to_s.split(".")
|
30
|
-
operator ||= 'eq'
|
31
|
-
|
32
|
-
return false unless node_matches_option?(type, name, operator, value, facts)
|
33
|
-
end
|
34
|
-
return true
|
35
|
-
end
|
36
|
-
|
37
|
-
def node_matches_option?(type, name, operator, value, facts)
|
38
|
-
case type
|
39
|
-
when "meta"
|
40
|
-
case name
|
41
|
-
when "timestamp"
|
42
|
-
compare_timestamp(operator, facts.timestamp, Time.parse(value))
|
43
|
-
end
|
44
|
-
when "facts"
|
45
|
-
compare_facts(operator, facts.values[name], value)
|
46
|
-
end
|
47
|
-
end
|
48
|
-
|
49
|
-
def compare_facts(operator, value1, value2)
|
50
|
-
return false unless value1
|
51
|
-
|
52
|
-
case operator
|
53
|
-
when "eq"
|
54
|
-
value1.to_s == value2.to_s
|
55
|
-
when "le"
|
56
|
-
value1.to_f <= value2.to_f
|
57
|
-
when "ge"
|
58
|
-
value1.to_f >= value2.to_f
|
59
|
-
when "lt"
|
60
|
-
value1.to_f < value2.to_f
|
61
|
-
when "gt"
|
62
|
-
value1.to_f > value2.to_f
|
63
|
-
when "ne"
|
64
|
-
value1.to_s != value2.to_s
|
65
|
-
end
|
66
|
-
end
|
67
|
-
|
68
|
-
def compare_timestamp(operator, value1, value2)
|
69
|
-
case operator
|
70
|
-
when "eq"
|
71
|
-
value1 == value2
|
72
|
-
when "le"
|
73
|
-
value1 <= value2
|
74
|
-
when "ge"
|
75
|
-
value1 >= value2
|
76
|
-
when "lt"
|
77
|
-
value1 < value2
|
78
|
-
when "gt"
|
79
|
-
value1 > value2
|
80
|
-
when "ne"
|
81
|
-
value1 != value2
|
82
|
-
end
|
83
|
-
end
|
84
29
|
end
|
@@ -10,6 +10,7 @@ class Puppet::Indirector::FileMetadata::Http < Puppet::Indirector::GenericHttp
|
|
10
10
|
|
11
11
|
def find(request)
|
12
12
|
checksum_type = request.options[:checksum_type]
|
13
|
+
# See URL encoding comment in Puppet::Type::File::ParamSource#chunk_file_from_source
|
13
14
|
uri = URI(request.uri)
|
14
15
|
client = Puppet.runtime[:http]
|
15
16
|
head = client.head(uri, options: {include_system_store: true})
|
@@ -1,6 +1,10 @@
|
|
1
1
|
require 'puppet/indirector/terminus'
|
2
2
|
require 'hiera/scope'
|
3
3
|
|
4
|
+
# This class can't be collapsed into Puppet::Indirector::DataBindings::Hiera
|
5
|
+
# because some community plugins rely on this class directly, see PUP-1843.
|
6
|
+
# This class is deprecated and will be deleted in a future release.
|
7
|
+
# Use `Puppet::DataBinding.indirection.terminus(:hiera)` instead.
|
4
8
|
class Puppet::Indirector::Hiera < Puppet::Indirector::Terminus
|
5
9
|
def initialize(*args)
|
6
10
|
if ! Puppet.features.hiera?
|
@@ -269,7 +269,7 @@ class Puppet::Indirector::Indirection
|
|
269
269
|
return nil
|
270
270
|
end
|
271
271
|
|
272
|
-
Puppet.debug "Using cached #{self.name} for #{request.key}"
|
272
|
+
Puppet.debug { "Using cached #{self.name} for #{request.key}" }
|
273
273
|
cached
|
274
274
|
rescue => detail
|
275
275
|
Puppet.log_exception(detail, _("Cached %{indirection} for %{request} failed: %{detail}") % { indirection: self.name, request: request.key, detail: detail })
|
@@ -41,12 +41,16 @@ class Puppet::Indirector::JSON < Puppet::Indirector::Terminus
|
|
41
41
|
raise ArgumentError, _("invalid key")
|
42
42
|
end
|
43
43
|
|
44
|
-
base =
|
44
|
+
base = data_dir
|
45
45
|
File.join(base, self.class.indirection_name.to_s, name.to_s + ext)
|
46
46
|
end
|
47
47
|
|
48
48
|
private
|
49
49
|
|
50
|
+
def data_dir()
|
51
|
+
Puppet.run_mode.server? ? Puppet[:server_datadir] : Puppet[:client_datadir]
|
52
|
+
end
|
53
|
+
|
50
54
|
def load_json_from_file(file, key)
|
51
55
|
json = nil
|
52
56
|
|
@@ -48,7 +48,7 @@ class Puppet::Indirector::Msgpack < Puppet::Indirector::Terminus
|
|
48
48
|
raise ArgumentError, _("invalid key")
|
49
49
|
end
|
50
50
|
|
51
|
-
base = Puppet.run_mode.
|
51
|
+
base = Puppet.run_mode.server? ? Puppet[:server_datadir] : Puppet[:client_datadir]
|
52
52
|
File.join(base, self.class.indirection_name.to_s, name.to_s + ext)
|
53
53
|
end
|
54
54
|
|
@@ -0,0 +1,34 @@
|
|
1
|
+
require 'puppet/transaction/report'
|
2
|
+
require 'puppet/indirector/json'
|
3
|
+
|
4
|
+
class Puppet::Transaction::Report::Json < Puppet::Indirector::JSON
|
5
|
+
include Puppet::Util::SymbolicFileMode
|
6
|
+
|
7
|
+
desc "Store last report as a flat file, serialized using JSON."
|
8
|
+
|
9
|
+
# Force report to be saved there
|
10
|
+
def path(name,ext='.json')
|
11
|
+
Puppet[:lastrunreport]
|
12
|
+
end
|
13
|
+
|
14
|
+
def save(request)
|
15
|
+
filename = path(request.key)
|
16
|
+
mode = Puppet.settings.setting(:lastrunreport).mode
|
17
|
+
|
18
|
+
unless valid_symbolic_mode?(mode)
|
19
|
+
raise Puppet::DevError, _("replace_file mode: %{mode} is invalid") % { mode: mode }
|
20
|
+
end
|
21
|
+
|
22
|
+
mode = symbolic_mode_to_int(normalize_symbolic_mode(mode))
|
23
|
+
|
24
|
+
FileUtils.mkdir_p(File.dirname(filename))
|
25
|
+
|
26
|
+
begin
|
27
|
+
Puppet::FileSystem.replace_file(filename, mode) do |fh|
|
28
|
+
fh.print JSON.dump(request.instance)
|
29
|
+
end
|
30
|
+
rescue TypeError => detail
|
31
|
+
Puppet.err _("Could not save %{indirection} %{request}: %{detail}") % { indirection: self.name, request: request.key, detail: detail }
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|