puppet 6.14.0-universal-darwin → 6.19.0-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 +36 -34
- data/README.md +3 -4
- data/Rakefile +4 -12
- data/ext/windows/service/daemon.rb +3 -3
- data/lib/puppet.rb +33 -9
- data/lib/puppet/agent.rb +20 -14
- data/lib/puppet/agent/locker.rb +0 -7
- data/lib/puppet/application/agent.rb +25 -9
- 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/filebucket.rb +5 -14
- data/lib/puppet/application/lookup.rb +16 -4
- data/lib/puppet/application/plugin.rb +1 -0
- data/lib/puppet/application/ssl.rb +3 -3
- data/lib/puppet/configurer.rb +68 -24
- data/lib/puppet/configurer/downloader.rb +31 -10
- data/lib/puppet/configurer/plugin_handler.rb +1 -1
- 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 +141 -41
- data/lib/puppet/environments.rb +55 -15
- 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 +2 -2
- 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 +17 -13
- 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/call.rb +1 -1
- 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/reduce.rb +2 -4
- 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 +3 -0
- data/lib/puppet/http/client.rb +215 -60
- data/lib/puppet/http/external_client.rb +90 -0
- data/lib/puppet/http/redirector.rb +43 -7
- data/lib/puppet/http/resolver.rb +43 -3
- data/lib/puppet/http/resolver/server_list.rb +66 -24
- data/lib/puppet/http/resolver/settings.rb +21 -1
- data/lib/puppet/http/resolver/srv.rb +28 -2
- data/lib/puppet/http/response.rb +82 -1
- data/lib/puppet/http/retry_after_handler.rb +39 -0
- data/lib/puppet/http/service.rb +70 -2
- data/lib/puppet/http/service/ca.rb +71 -9
- data/lib/puppet/http/service/compiler.rb +214 -12
- data/lib/puppet/http/service/file_server.rb +106 -5
- data/lib/puppet/http/service/puppetserver.rb +39 -0
- data/lib/puppet/http/service/report.rb +36 -3
- data/lib/puppet/http/session.rb +60 -8
- data/lib/puppet/indirector.rb +1 -1
- data/lib/puppet/indirector/catalog/compiler.rb +1 -1
- data/lib/puppet/indirector/catalog/rest.rb +2 -1
- data/lib/puppet/indirector/exec.rb +1 -1
- data/lib/puppet/indirector/facts/facter.rb +3 -3
- data/lib/puppet/indirector/facts/rest.rb +2 -1
- data/lib/puppet/indirector/facts/yaml.rb +1 -1
- data/lib/puppet/indirector/file_bucket_file/rest.rb +48 -0
- 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 +6 -4
- 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/node/rest.rb +2 -1
- data/lib/puppet/indirector/report/processor.rb +2 -2
- data/lib/puppet/indirector/report/yaml.rb +23 -0
- data/lib/puppet/indirector/request.rb +5 -5
- data/lib/puppet/indirector/rest.rb +7 -1
- data/lib/puppet/indirector/status/rest.rb +2 -1
- data/lib/puppet/indirector/yaml.rb +1 -1
- data/lib/puppet/metatype/manager.rb +80 -80
- 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/base_pool.rb +6 -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/pool.rb +2 -4
- data/lib/puppet/network/http/route.rb +2 -2
- data/lib/puppet/network/http_pool.rb +2 -1
- data/lib/puppet/node/environment.rb +22 -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 +30 -31
- 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 +43 -33
- 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 +18 -9
- 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 +24 -15
- 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/group/windows_adsi.rb +3 -3
- data/lib/puppet/provider/package/aix.rb +17 -2
- data/lib/puppet/provider/package/apt.rb +98 -1
- data/lib/puppet/provider/package/aptitude.rb +1 -1
- data/lib/puppet/provider/package/dnfmodule.rb +61 -14
- data/lib/puppet/provider/package/dpkg.rb +1 -1
- data/lib/puppet/provider/package/gem.rb +45 -9
- data/lib/puppet/provider/package/pacman.rb +2 -5
- data/lib/puppet/provider/package/pip.rb +143 -48
- data/lib/puppet/provider/package/pip2.rb +17 -0
- data/lib/puppet/provider/package/pip3.rb +0 -2
- data/lib/puppet/provider/package/pkgdmg.rb +1 -1
- data/lib/puppet/provider/package/pkgng.rb +16 -4
- data/lib/puppet/provider/package/portage.rb +2 -2
- data/lib/puppet/provider/package/puppet_gem.rb +11 -2
- data/lib/puppet/provider/package/puppetserver_gem.rb +180 -0
- data/lib/puppet/provider/package/rpm.rb +6 -213
- data/lib/puppet/provider/package/yum.rb +101 -20
- data/lib/puppet/provider/package/zypper.rb +62 -1
- data/lib/puppet/provider/service/systemd.rb +22 -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 +15 -9
- data/lib/puppet/resource.rb +2 -1
- data/lib/puppet/resource/type.rb +10 -1
- data/lib/puppet/resource/type_collection.rb +20 -16
- data/lib/puppet/rest/route.rb +2 -2
- data/lib/puppet/runtime.rb +25 -2
- data/lib/puppet/settings.rb +20 -6
- data/lib/puppet/ssl.rb +1 -0
- data/lib/puppet/ssl/host.rb +4 -4
- data/lib/puppet/ssl/oids.rb +1 -0
- 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 +79 -37
- 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 +14 -10
- data/lib/puppet/trusted_external.rb +29 -1
- data/lib/puppet/type.rb +21 -8
- data/lib/puppet/type/file.rb +40 -15
- data/lib/puppet/type/file/checksum.rb +4 -4
- data/lib/puppet/type/file/source.rb +35 -13
- data/lib/puppet/type/filebucket.rb +1 -1
- data/lib/puppet/type/notify.rb +2 -2
- data/lib/puppet/type/package.rb +41 -3
- data/lib/puppet/type/service.rb +59 -8
- data/lib/puppet/type/user.rb +19 -29
- data/lib/puppet/util.rb +41 -3
- data/lib/puppet/util/at_fork.rb +1 -1
- data/lib/puppet/util/autoload.rb +13 -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/instance_loader.rb +14 -10
- data/lib/puppet/util/log/destinations.rb +1 -10
- data/lib/puppet/util/package/version/debian.rb +175 -0
- data/lib/puppet/util/package/version/gem.rb +15 -0
- data/lib/puppet/util/package/version/pip.rb +167 -0
- data/lib/puppet/util/package/version/range.rb +53 -0
- data/lib/puppet/util/package/version/range/eq.rb +14 -0
- data/lib/puppet/util/package/version/range/gt.rb +14 -0
- data/lib/puppet/util/package/version/range/gt_eq.rb +14 -0
- data/lib/puppet/util/package/version/range/lt.rb +14 -0
- data/lib/puppet/util/package/version/range/lt_eq.rb +14 -0
- data/lib/puppet/util/package/version/range/min_max.rb +21 -0
- data/lib/puppet/util/package/version/range/simple.rb +11 -0
- data/lib/puppet/util/package/version/rpm.rb +73 -0
- data/lib/puppet/util/pidlock.rb +13 -7
- data/lib/puppet/util/platform.rb +5 -0
- data/lib/puppet/util/provider_features.rb +1 -1
- data/lib/puppet/util/reference.rb +1 -1
- data/lib/puppet/util/rpm_compare.rb +193 -0
- data/lib/puppet/util/run_mode.rb +5 -1
- data/lib/puppet/util/windows.rb +1 -0
- data/lib/puppet/util/windows/adsi.rb +2 -2
- 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/process.rb +15 -14
- data/lib/puppet/util/windows/registry.rb +11 -11
- data/lib/puppet/util/windows/security.rb +5 -4
- data/lib/puppet/util/windows/service.rb +43 -26
- data/lib/puppet/util/windows/sid.rb +3 -3
- data/lib/puppet/util/windows/user.rb +242 -8
- data/lib/puppet/version.rb +1 -1
- data/locales/puppet.pot +627 -507
- data/man/man5/puppet.conf.5 +93 -20
- 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/ssl/unknown-127.0.0.1-key.pem +67 -0
- data/spec/fixtures/ssl/unknown-127.0.0.1.pem +48 -0
- data/spec/fixtures/ssl/unknown-ca-key.pem +67 -0
- data/spec/fixtures/ssl/unknown-ca.pem +59 -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-installed.txt → dnf-module-list.txt} +8 -0
- data/spec/fixtures/unit/provider/package/pkgng/pkg.version +2 -0
- data/spec/fixtures/unit/provider/package/puppetserver_gem/gem-list-local-packages +30 -0
- data/spec/fixtures/unit/provider/package/yum/yum-check-update-subscription-manager.txt +9 -0
- data/spec/fixtures/unit/provider/package/zypper/zypper-search-uninstalled.out +13 -0
- data/spec/fixtures/unit/provider/service/systemd/list_unit_files_services +9 -0
- data/spec/integration/application/agent_spec.rb +479 -0
- data/spec/integration/application/apply_spec.rb +279 -150
- 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 +239 -0
- 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 +123 -0
- 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 +39 -40
- data/spec/integration/indirector/facts/facter_spec.rb +8 -6
- data/spec/integration/indirector/report/yaml.rb +83 -0
- data/spec/integration/network/http_pool_spec.rb +84 -19
- data/spec/integration/node/environment_spec.rb +15 -0
- 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 +8 -3
- data/spec/integration/util/windows/monkey_patches/dir_spec.rb +11 -0
- data/spec/integration/util/windows/process_spec.rb +26 -32
- data/spec/integration/util/windows/registry_spec.rb +7 -7
- data/spec/integration/util/windows/user_spec.rb +47 -5
- data/spec/integration/util_spec.rb +7 -33
- data/spec/lib/puppet/test_ca.rb +2 -2
- data/spec/lib/puppet_spec/https.rb +16 -7
- data/spec/lib/puppet_spec/matchers.rb +0 -80
- data/spec/lib/puppet_spec/puppetserver.rb +127 -0
- data/spec/shared_contexts/https.rb +29 -0
- data/spec/shared_contexts/types_setup.rb +2 -0
- data/spec/unit/agent_spec.rb +80 -26
- data/spec/unit/application/agent_spec.rb +12 -9
- data/spec/unit/application/device_spec.rb +2 -2
- 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 +22 -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 +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 +87 -38
- 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/defaults_spec.rb +24 -1
- data/spec/unit/environments_spec.rb +107 -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 +11 -2
- data/spec/unit/http/client_spec.rb +173 -59
- data/spec/unit/http/external_client_spec.rb +201 -0
- data/spec/unit/http/resolver_spec.rb +44 -5
- data/spec/unit/http/response_spec.rb +6 -0
- data/spec/unit/http/service/ca_spec.rb +27 -5
- data/spec/unit/http/service/compiler_spec.rb +186 -9
- data/spec/unit/http/service/file_server_spec.rb +37 -6
- data/spec/unit/http/service/puppetserver_spec.rb +82 -0
- data/spec/unit/http/service/report_spec.rb +5 -4
- data/spec/unit/http/service_spec.rb +3 -4
- data/spec/unit/http/session_spec.rb +48 -12
- 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_bucket_file/rest_spec.rb +82 -2
- 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 +3 -3
- 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 +33 -0
- 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/group/windows_adsi_spec.rb +43 -10
- data/spec/unit/provider/package/aix_spec.rb +29 -0
- data/spec/unit/provider/package/apt_spec.rb +107 -0
- data/spec/unit/provider/package/aptitude_spec.rb +1 -0
- data/spec/unit/provider/package/dnfmodule_spec.rb +54 -15
- data/spec/unit/provider/package/dpkg_spec.rb +22 -7
- data/spec/unit/provider/package/gem_spec.rb +40 -0
- data/spec/unit/provider/package/openbsd_spec.rb +2 -0
- data/spec/unit/provider/package/pacman_spec.rb +6 -21
- data/spec/unit/provider/package/pip2_spec.rb +36 -0
- data/spec/unit/provider/package/pip_spec.rb +68 -19
- data/spec/unit/provider/package/pkgdmg_spec.rb +1 -1
- data/spec/unit/provider/package/pkgng_spec.rb +38 -0
- data/spec/unit/provider/package/portage_spec.rb +5 -0
- data/spec/unit/provider/package/puppet_gem_spec.rb +12 -1
- data/spec/unit/provider/package/puppetserver_gem_spec.rb +137 -0
- data/spec/unit/provider/package/rpm_spec.rb +0 -212
- data/spec/unit/provider/package/yum_spec.rb +274 -1
- 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 +95 -18
- 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 +85 -3
- data/spec/unit/puppet_pal_2pec.rb +11 -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 +70 -52
- 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 +44 -22
- data/spec/unit/ssl/host_spec.rb +4 -2
- data/spec/unit/ssl/oids_spec.rb +1 -0
- data/spec/unit/ssl/ssl_provider_spec.rb +69 -43
- data/spec/unit/ssl/state_machine_spec.rb +90 -14
- 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 +7 -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/at_fork_spec.rb +2 -2
- 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/debian_spec.rb +83 -0
- data/spec/unit/util/package/version/pip_spec.rb +464 -0
- data/spec/unit/util/package/version/range_spec.rb +175 -0
- data/spec/unit/util/package/version/rpm_spec.rb +121 -0
- data/spec/unit/util/pidlock_spec.rb +83 -47
- data/spec/unit/util/rpm_compare_spec.rb +196 -0
- data/spec/unit/util/run_mode_spec.rb +6 -6
- data/spec/unit/util/windows/adsi_spec.rb +4 -4
- 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/windows/sid_spec.rb +2 -2
- data/spec/unit/util_spec.rb +3 -3
- data/spec/unit/x509/cert_provider_spec.rb +1 -1
- data/tasks/generate_cert_fixtures.rake +15 -1
- data/tasks/manpages.rake +5 -35
- metadata +90 -51
- data/spec/integration/faces/config_spec.rb +0 -91
- data/spec/integration/faces/documentation_spec.rb +0 -57
- data/spec/integration/faces/plugin_spec.rb +0 -63
- 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 -64
- 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/module.rb
CHANGED
@@ -107,8 +107,7 @@ class Puppet::Module
|
|
107
107
|
define_method(type + '?') do
|
108
108
|
type_subpath = subpath(location)
|
109
109
|
unless Puppet::FileSystem.exist?(type_subpath)
|
110
|
-
Puppet.debug
|
111
|
-
"(file / directory does not exist)")
|
110
|
+
Puppet.debug { "No #{type} found in subpath '#{type_subpath}' (file / directory does not exist)" }
|
112
111
|
return false
|
113
112
|
end
|
114
113
|
|
@@ -49,7 +49,7 @@ module Puppet::Network::FormatSupport
|
|
49
49
|
|
50
50
|
result = put_preferred_format_first(result).map(&:name)
|
51
51
|
|
52
|
-
Puppet.debug "#{friendly_name} supports formats: #{result.join(' ')}"
|
52
|
+
Puppet.debug { "#{friendly_name} supports formats: #{result.join(' ')}" }
|
53
53
|
|
54
54
|
result
|
55
55
|
end
|
@@ -81,7 +81,7 @@ module Puppet::Network::FormatSupport
|
|
81
81
|
}
|
82
82
|
|
83
83
|
if preferred.empty?
|
84
|
-
Puppet.debug "Value of 'preferred_serialization_format' (#{preferred_format}) is invalid for #{friendly_name}, using default (#{list.first.name})"
|
84
|
+
Puppet.debug { "Value of 'preferred_serialization_format' (#{preferred_format}) is invalid for #{friendly_name}, using default (#{list.first.name})" }
|
85
85
|
else
|
86
86
|
list = preferred + list.reject { |format|
|
87
87
|
format.mime.end_with?(preferred_format)
|
@@ -218,7 +218,7 @@ class Puppet::Network::HTTP::API::IndirectedRoutes
|
|
218
218
|
return formatter if formatter
|
219
219
|
|
220
220
|
raise Puppet::Network::HTTP::Error::HTTPNotAcceptableError.new(
|
221
|
-
_("No supported formats are acceptable (Accept: %{accepted_formats})") % { accepted_formats: formats },
|
221
|
+
_("No supported formats are acceptable (Accept: %{accepted_formats})") % { accepted_formats: formats.map(&:mime).join(', ') },
|
222
222
|
Puppet::Network::HTTP::Issues::UNSUPPORTED_FORMAT)
|
223
223
|
end
|
224
224
|
|
@@ -1,8 +1,11 @@
|
|
1
1
|
require 'puppet/util/json'
|
2
2
|
require 'puppet/parser/environment_compiler'
|
3
3
|
|
4
|
+
# @deprecated application orchestration will be removed in puppet 7
|
4
5
|
class Puppet::Network::HTTP::API::Master::V3::Environment
|
5
6
|
def call(request, response)
|
7
|
+
Puppet.deprecation_warning("Application orchestration is deprecated. See https://puppet.com/docs/puppet/5.5/deprecated_language.html")
|
8
|
+
|
6
9
|
env_name = request.routing_path.split('/').last
|
7
10
|
env = Puppet.lookup(:environments).get(env_name)
|
8
11
|
code_id = request.params[:code_id]
|
@@ -26,6 +26,11 @@ class Puppet::Network::HTTP::BasePool
|
|
26
26
|
socket = buffered_io.io
|
27
27
|
return unless socket
|
28
28
|
|
29
|
-
|
29
|
+
cipher = if Puppet::Util::Platform.jruby?
|
30
|
+
socket.cipher
|
31
|
+
else
|
32
|
+
socket.cipher.first
|
33
|
+
end
|
34
|
+
Puppet.debug("Using #{socket.ssl_version} with cipher #{cipher}")
|
30
35
|
end
|
31
36
|
end
|
@@ -20,9 +20,11 @@ module Puppet::Network::HTTP::Compression
|
|
20
20
|
def uncompress_body(response)
|
21
21
|
case response['content-encoding']
|
22
22
|
when 'gzip'
|
23
|
+
Puppet.deprecation_warning(_('Puppet::Network::HTTP::Compression::Active#uncompress_body is deprecated.'))
|
23
24
|
# ZLib::GzipReader has an associated encoding, by default Encoding.default_external
|
24
25
|
return Zlib::GzipReader.new(StringIO.new(response.body), :encoding => Encoding::BINARY).read
|
25
26
|
when 'deflate'
|
27
|
+
Puppet.deprecation_warning(_('Puppet::Network::HTTP::Compression::Active#uncompress_body is deprecated.'))
|
26
28
|
return Zlib::Inflate.new.inflate(response.body)
|
27
29
|
when nil, 'identity'
|
28
30
|
return response.body
|
@@ -32,6 +34,7 @@ module Puppet::Network::HTTP::Compression
|
|
32
34
|
end
|
33
35
|
|
34
36
|
def uncompress(response)
|
37
|
+
Puppet.deprecation_warning(_('Puppet::Network::HTTP::Compression::Active#uncompress is deprecated.'))
|
35
38
|
raise Net::HTTPError.new("No block passed", response) unless block_given?
|
36
39
|
|
37
40
|
case response['content-encoding']
|
@@ -71,6 +74,7 @@ module Puppet::Network::HTTP::Compression
|
|
71
74
|
end
|
72
75
|
|
73
76
|
def uncompress(chunk)
|
77
|
+
Puppet.deprecation_warning(_('Puppet::Network::HTTP::Compression::ZlibAdapter#uncompress is deprecated.'))
|
74
78
|
out = @uncompressor.inflate(chunk)
|
75
79
|
@first = false
|
76
80
|
return out
|
@@ -97,6 +101,7 @@ module Puppet::Network::HTTP::Compression
|
|
97
101
|
|
98
102
|
module None
|
99
103
|
def uncompress_body(response)
|
104
|
+
Puppet.deprecation_warning(_('Puppet::Network::HTTP::Compression::None#uncompress_body is deprecated.'))
|
100
105
|
response.body
|
101
106
|
end
|
102
107
|
|
@@ -105,12 +110,14 @@ module Puppet::Network::HTTP::Compression
|
|
105
110
|
end
|
106
111
|
|
107
112
|
def uncompress(response)
|
113
|
+
Puppet.deprecation_warning(_('Puppet::Network::HTTP::Compression::None#uncompress is deprecated.'))
|
108
114
|
yield IdentityAdapter.new
|
109
115
|
end
|
110
116
|
end
|
111
117
|
|
112
118
|
class IdentityAdapter
|
113
119
|
def uncompress(chunk)
|
120
|
+
Puppet.deprecation_warning(_('Puppet::Network::HTTP::Compression::IdentityAdapter#uncompress is deprecated.'))
|
114
121
|
chunk
|
115
122
|
end
|
116
123
|
|
@@ -343,6 +343,8 @@ module Puppet::Network::HTTP
|
|
343
343
|
end
|
344
344
|
|
345
345
|
def with_connection(site, &block)
|
346
|
+
Puppet.deprecation_warning(_('Puppet::Network::HTTP::Connection is deprecated. Please use Puppet::Network::HTTP::ConnectionAdapter instead.'))
|
347
|
+
|
346
348
|
response = nil
|
347
349
|
@pool.with_connection(site, @verifier) do |conn|
|
348
350
|
response = yield conn
|
@@ -0,0 +1,184 @@
|
|
1
|
+
class Puppet::Network::HTTP::ConnectionAdapter < Puppet::Network::HTTP::Connection
|
2
|
+
def initialize(host, port, options = {})
|
3
|
+
super(host, port, options)
|
4
|
+
|
5
|
+
@client = Puppet.runtime[:http]
|
6
|
+
end
|
7
|
+
|
8
|
+
def get(path, headers = {}, options = {})
|
9
|
+
headers ||= {}
|
10
|
+
options[:ssl_context] ||= resolve_ssl_context
|
11
|
+
options[:redirect_limit] ||= @redirect_limit
|
12
|
+
|
13
|
+
with_error_handling do
|
14
|
+
resp = @client.get(to_url(path), headers: headers, options: options)
|
15
|
+
resp.nethttp
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
def post(path, data, headers = nil, options = {})
|
20
|
+
headers ||= {}
|
21
|
+
headers['Content-Type'] ||= "application/x-www-form-urlencoded"
|
22
|
+
data ||= ''
|
23
|
+
options[:ssl_context] ||= resolve_ssl_context
|
24
|
+
options[:redirect_limit] ||= @redirect_limit
|
25
|
+
|
26
|
+
with_error_handling do
|
27
|
+
resp = @client.post(to_url(path), data, headers: headers, options: options)
|
28
|
+
resp.nethttp
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
def head(path, headers = {}, options = {})
|
33
|
+
headers ||= {}
|
34
|
+
options[:ssl_context] ||= resolve_ssl_context
|
35
|
+
options[:redirect_limit] ||= @redirect_limit
|
36
|
+
|
37
|
+
with_error_handling do
|
38
|
+
resp = @client.head(to_url(path), headers: headers, options: options)
|
39
|
+
resp.nethttp
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
def delete(path, headers = {'Depth' => 'Infinity'}, options = {})
|
44
|
+
headers ||= {}
|
45
|
+
options[:ssl_context] ||= resolve_ssl_context
|
46
|
+
options[:redirect_limit] ||= @redirect_limit
|
47
|
+
|
48
|
+
with_error_handling do
|
49
|
+
resp = @client.delete(to_url(path), headers: headers, options: options)
|
50
|
+
resp.nethttp
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
54
|
+
def put(path, data, headers = nil, options = {})
|
55
|
+
headers ||= {}
|
56
|
+
headers['Content-Type'] ||= "application/x-www-form-urlencoded"
|
57
|
+
data ||= ''
|
58
|
+
options[:ssl_context] ||= resolve_ssl_context
|
59
|
+
options[:redirect_limit] ||= @redirect_limit
|
60
|
+
|
61
|
+
with_error_handling do
|
62
|
+
resp = @client.put(to_url(path), data, headers: headers, options: options)
|
63
|
+
resp.nethttp
|
64
|
+
end
|
65
|
+
end
|
66
|
+
|
67
|
+
def request_get(*args, &block)
|
68
|
+
path, headers = *args
|
69
|
+
headers ||= {}
|
70
|
+
options = {
|
71
|
+
ssl_context: resolve_ssl_context,
|
72
|
+
redirect_limit: @redirect_limit
|
73
|
+
}
|
74
|
+
|
75
|
+
resp = @client.get(to_url(path), headers: headers, options: options) do |response|
|
76
|
+
yield response.nethttp if block_given?
|
77
|
+
end
|
78
|
+
resp.nethttp
|
79
|
+
end
|
80
|
+
|
81
|
+
def request_head(*args, &block)
|
82
|
+
path, headers = *args
|
83
|
+
headers ||= {}
|
84
|
+
options = {
|
85
|
+
ssl_context: resolve_ssl_context,
|
86
|
+
redirect_limit: @redirect_limit
|
87
|
+
}
|
88
|
+
|
89
|
+
response = @client.head(to_url(path), headers: headers, options: options)
|
90
|
+
yield response.nethttp if block_given?
|
91
|
+
response.nethttp
|
92
|
+
end
|
93
|
+
|
94
|
+
def request_post(*args, &block)
|
95
|
+
path, data, headers = *args
|
96
|
+
headers ||= {}
|
97
|
+
headers['Content-Type'] ||= "application/x-www-form-urlencoded"
|
98
|
+
options = {
|
99
|
+
ssl_context: resolve_ssl_context,
|
100
|
+
redirect_limit: @redirect_limit
|
101
|
+
}
|
102
|
+
|
103
|
+
resp = @client.post(to_url(path), data, headers: headers, options: options) do |response|
|
104
|
+
yield response.nethttp if block_given?
|
105
|
+
end
|
106
|
+
resp.nethttp
|
107
|
+
end
|
108
|
+
|
109
|
+
private
|
110
|
+
|
111
|
+
# The old Connection class ignores the ssl_context on the Puppet stack,
|
112
|
+
# and always loads certs/keys based on what is currently in the filesystem.
|
113
|
+
# If the files are missing, it would attempt to bootstrap the certs/keys
|
114
|
+
# while in the process of making a network request, due to the call to
|
115
|
+
# Puppet.lookup(:ssl_host) in Puppet::SSL::Validator::DefaultValidator#setup_connection.
|
116
|
+
# This class doesn't preserve the boostrap behavior because that is handled
|
117
|
+
# outside of this class, and can only be triggered by running `puppet ssl` or
|
118
|
+
# `puppet agent`.
|
119
|
+
def resolve_ssl_context
|
120
|
+
# don't need an ssl context for http connections
|
121
|
+
return nil unless @site.use_ssl?
|
122
|
+
|
123
|
+
# if our verifier has an ssl_context, use that
|
124
|
+
ctx = @verifier.ssl_context
|
125
|
+
return ctx if ctx
|
126
|
+
|
127
|
+
# load available certs
|
128
|
+
cert = Puppet::X509::CertProvider.new
|
129
|
+
ssl = Puppet::SSL::SSLProvider.new
|
130
|
+
begin
|
131
|
+
password = cert.load_private_key_password
|
132
|
+
ssl.load_context(certname: Puppet[:certname], password: password)
|
133
|
+
rescue Puppet::SSL::SSLError => e
|
134
|
+
Puppet.log_exception(e)
|
135
|
+
|
136
|
+
# if we don't have cacerts, then create a root context that doesn't
|
137
|
+
# trust anything. The old code used to fallback to VERIFY_NONE,
|
138
|
+
# which we don't want to emulate.
|
139
|
+
ssl.create_root_context(cacerts: [])
|
140
|
+
end
|
141
|
+
end
|
142
|
+
|
143
|
+
def to_url(path)
|
144
|
+
if path =~ /^https?:\/\//
|
145
|
+
# The old Connection class accepts a URL as the request path, and sends
|
146
|
+
# it in "absolute-form" in the request line, e.g. GET https://puppet:8140/.
|
147
|
+
# See https://httpwg.org/specs/rfc7230.html#absolute-form. It just so happens
|
148
|
+
# to work because HTTP 1.1 servers are required to accept absolute-form even
|
149
|
+
# though clients are only supposed to send them to proxies, so the proxy knows
|
150
|
+
# what upstream server to CONNECT to. This method creates a URL using the
|
151
|
+
# scheme/host/port that the connection was created with, and appends the path
|
152
|
+
# and query portions of the absolute-form. The resulting request will use "origin-form"
|
153
|
+
# as it should have done all along.
|
154
|
+
abs_form = URI(path)
|
155
|
+
url = URI("#{@site.addr}/#{normalize_path(abs_form.path)}")
|
156
|
+
url.query = abs_form.query if abs_form.query
|
157
|
+
url
|
158
|
+
else
|
159
|
+
URI("#{@site.addr}/#{normalize_path(path)}")
|
160
|
+
end
|
161
|
+
end
|
162
|
+
|
163
|
+
def normalize_path(path)
|
164
|
+
if path[0] == '/'
|
165
|
+
path[1..-1]
|
166
|
+
else
|
167
|
+
path
|
168
|
+
end
|
169
|
+
end
|
170
|
+
|
171
|
+
def with_error_handling(&block)
|
172
|
+
yield
|
173
|
+
rescue Puppet::HTTP::TooManyRedirects => e
|
174
|
+
raise Puppet::Network::HTTP::RedirectionLimitExceededException.new(_("Too many HTTP redirections for %{host}:%{port}") % { host: @host, port: @port }, e)
|
175
|
+
rescue Puppet::HTTP::HTTPError => e
|
176
|
+
Puppet.log_exception(e, e.message)
|
177
|
+
case e.cause
|
178
|
+
when Net::OpenTimeout, Net::ReadTimeout, Net::HTTPError, EOFError
|
179
|
+
raise e.cause
|
180
|
+
else
|
181
|
+
raise e
|
182
|
+
end
|
183
|
+
end
|
184
|
+
end
|
@@ -3,6 +3,7 @@
|
|
3
3
|
# @api private
|
4
4
|
class Puppet::Network::HTTP::NoCachePool < Puppet::Network::HTTP::BasePool
|
5
5
|
def initialize(factory = Puppet::Network::HTTP::Factory.new)
|
6
|
+
Puppet.deprecation_warning(_('Puppet::Network::HTTP::NoCachePool is deprecated.'))
|
6
7
|
@factory = factory
|
7
8
|
end
|
8
9
|
|
@@ -9,11 +9,9 @@
|
|
9
9
|
# @api private
|
10
10
|
#
|
11
11
|
class Puppet::Network::HTTP::Pool < Puppet::Network::HTTP::BasePool
|
12
|
-
|
12
|
+
attr_reader :factory, :keepalive_timeout
|
13
13
|
|
14
|
-
|
15
|
-
|
16
|
-
def initialize(keepalive_timeout = FIFTEEN_SECONDS)
|
14
|
+
def initialize(keepalive_timeout)
|
17
15
|
@pool = {}
|
18
16
|
@factory = Puppet::Network::HTTP::Factory.new
|
19
17
|
@keepalive_timeout = keepalive_timeout
|
@@ -67,11 +67,11 @@ class Puppet::Network::HTTP::Route
|
|
67
67
|
end
|
68
68
|
|
69
69
|
def matches?(request)
|
70
|
-
Puppet.debug
|
70
|
+
Puppet.debug { "Evaluating match for #{self.inspect}" }
|
71
71
|
if match(request.routing_path)
|
72
72
|
return true
|
73
73
|
else
|
74
|
-
Puppet.debug
|
74
|
+
Puppet.debug { "Did not match path (#{request.routing_path.inspect})" }
|
75
75
|
end
|
76
76
|
return false
|
77
77
|
end
|
@@ -1,4 +1,5 @@
|
|
1
1
|
require 'puppet/network/http/connection'
|
2
|
+
require 'puppet/network/http/connection_adapter'
|
2
3
|
require 'puppet/util/platform'
|
3
4
|
|
4
5
|
module Puppet::Network; end
|
@@ -12,7 +13,7 @@ module Puppet::Network; end
|
|
12
13
|
#
|
13
14
|
module Puppet::Network::HttpPool
|
14
15
|
|
15
|
-
@http_client_class = Puppet::Network::HTTP::
|
16
|
+
@http_client_class = Puppet::Network::HTTP::ConnectionAdapter
|
16
17
|
|
17
18
|
def self.http_client_class
|
18
19
|
@http_client_class
|
@@ -162,6 +162,10 @@ class Puppet::Node::Environment
|
|
162
162
|
# @api private
|
163
163
|
attr_accessor :loaders
|
164
164
|
|
165
|
+
# Lock for compilation that needs exclusive access to the environment
|
166
|
+
# @api private
|
167
|
+
attr_reader :lock
|
168
|
+
|
165
169
|
# Checks to make sure that this environment did not have a manifest set in
|
166
170
|
# its original environment.conf if Puppet is configured with
|
167
171
|
# +disable_per_environment_manifest+ set true. If it did, the environment's
|
@@ -262,7 +266,7 @@ class Puppet::Node::Environment
|
|
262
266
|
# @param name [String] The module name
|
263
267
|
# @return [Puppet::Module, nil] The module if found, else nil
|
264
268
|
def module(name)
|
265
|
-
|
269
|
+
modules_by_name[name]
|
266
270
|
end
|
267
271
|
|
268
272
|
# Locate a module instance by the full forge name (EG authorname/module)
|
@@ -293,7 +297,13 @@ class Puppet::Node::Environment
|
|
293
297
|
def modules
|
294
298
|
if @modules.nil?
|
295
299
|
module_references = []
|
296
|
-
|
300
|
+
project = Puppet.lookup(:bolt_project) { nil }
|
301
|
+
seen_modules = if project && project.load_as_module?
|
302
|
+
module_references << project.to_h
|
303
|
+
{ project.name => true }
|
304
|
+
else
|
305
|
+
{}
|
306
|
+
end
|
297
307
|
modulepath.each do |path|
|
298
308
|
Dir.entries(path).each do |name|
|
299
309
|
next unless Puppet::Module.is_module_directory?(name, path)
|
@@ -317,6 +327,12 @@ class Puppet::Node::Environment
|
|
317
327
|
@modules
|
318
328
|
end
|
319
329
|
|
330
|
+
# @api private
|
331
|
+
def modules_by_name
|
332
|
+
@modules_by_name ||= Hash[modules.map { |mod| [mod.name, mod] }]
|
333
|
+
end
|
334
|
+
private :modules_by_name
|
335
|
+
|
320
336
|
# Generate a warning if the given directory in a module path entry is named `lib`.
|
321
337
|
#
|
322
338
|
# @api private
|
@@ -325,9 +341,10 @@ class Puppet::Node::Environment
|
|
325
341
|
# @param name [String] The directory name
|
326
342
|
def warn_about_mistaken_path(path, name)
|
327
343
|
if name == "lib"
|
328
|
-
Puppet.debug
|
329
|
-
|
330
|
-
|
344
|
+
Puppet.debug {
|
345
|
+
"Warning: Found directory named 'lib' in module path ('#{path}/lib'); unless you \
|
346
|
+
are expecting to load a module named 'lib', your module path may be set incorrectly."
|
347
|
+
}
|
331
348
|
end
|
332
349
|
end
|
333
350
|
|
data/lib/puppet/node/facts.rb
CHANGED
@@ -116,8 +116,25 @@ class Puppet::Node::Facts
|
|
116
116
|
@timestamp = Time.now
|
117
117
|
end
|
118
118
|
|
119
|
+
def to_yaml
|
120
|
+
facts_to_display = Psych.parse_stream(YAML.dump(self))
|
121
|
+
quote_special_strings(facts_to_display)
|
122
|
+
end
|
123
|
+
|
119
124
|
private
|
120
125
|
|
126
|
+
def quote_special_strings(fact_hash)
|
127
|
+
fact_hash.grep(Psych::Nodes::Scalar).each do |node|
|
128
|
+
next unless node.value =~ /:/
|
129
|
+
|
130
|
+
node.plain = false
|
131
|
+
node.quoted = true
|
132
|
+
node.style = Psych::Nodes::Scalar::DOUBLE_QUOTED
|
133
|
+
end
|
134
|
+
|
135
|
+
fact_hash.yaml
|
136
|
+
end
|
137
|
+
|
121
138
|
def sanitize_fact(fact)
|
122
139
|
if fact.is_a? Hash then
|
123
140
|
ret = {}
|