puppet 6.13.0-universal-darwin → 6.18.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/CONTRIBUTING.md +7 -13
- data/Gemfile +4 -2
- data/Gemfile.lock +36 -32
- data/README.md +17 -24
- data/ext/windows/service/daemon.rb +3 -3
- data/lib/puppet.rb +33 -9
- data/lib/puppet/agent.rb +20 -14
- data/lib/puppet/application/agent.rb +26 -17
- data/lib/puppet/application/apply.rb +18 -20
- data/lib/puppet/application/describe.rb +7 -5
- data/lib/puppet/application/device.rb +2 -2
- data/lib/puppet/application/filebucket.rb +19 -15
- data/lib/puppet/application/lookup.rb +16 -4
- data/lib/puppet/application/plugin.rb +1 -0
- data/lib/puppet/application/ssl.rb +4 -4
- data/lib/puppet/configurer.rb +58 -57
- data/lib/puppet/configurer/downloader.rb +31 -10
- data/lib/puppet/configurer/plugin_handler.rb +10 -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 +92 -12
- data/lib/puppet/environments.rb +4 -5
- 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/plugin.rb +2 -2
- data/lib/puppet/feature/base.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/eyaml_lookup_key.rb +13 -8
- data/lib/puppet/functions/filter.rb +1 -0
- data/lib/puppet/functions/lstrip.rb +4 -4
- 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 +263 -73
- data/lib/puppet/http/external_client.rb +90 -0
- data/lib/puppet/http/redirector.rb +43 -7
- data/lib/puppet/http/resolver.rb +46 -3
- data/lib/puppet/http/resolver/server_list.rb +76 -16
- data/lib/puppet/http/resolver/settings.rb +23 -3
- data/lib/puppet/http/resolver/srv.rb +29 -3
- data/lib/puppet/http/response.rb +87 -1
- data/lib/puppet/http/retry_after_handler.rb +39 -0
- data/lib/puppet/http/service.rb +97 -12
- data/lib/puppet/http/service/ca.rb +76 -14
- data/lib/puppet/http/service/compiler.rb +249 -16
- data/lib/puppet/http/service/file_server.rb +141 -20
- data/lib/puppet/http/service/report.rb +47 -17
- data/lib/puppet/http/session.rb +96 -7
- data/lib/puppet/indirector.rb +1 -1
- data/lib/puppet/indirector/catalog/rest.rb +34 -0
- data/lib/puppet/indirector/exec.rb +1 -1
- data/lib/puppet/indirector/facts/facter.rb +3 -3
- data/lib/puppet/indirector/facts/rest.rb +42 -0
- 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 +30 -0
- data/lib/puppet/indirector/file_metadata/http.rb +28 -8
- data/lib/puppet/indirector/file_metadata/rest.rb +52 -0
- data/lib/puppet/indirector/hiera.rb +4 -0
- data/lib/puppet/indirector/indirection.rb +1 -1
- data/lib/puppet/indirector/node/rest.rb +24 -0
- data/lib/puppet/indirector/report/processor.rb +2 -2
- data/lib/puppet/indirector/report/rest.rb +19 -0
- data/lib/puppet/indirector/report/yaml.rb +23 -0
- data/lib/puppet/indirector/request.rb +1 -1
- data/lib/puppet/indirector/rest.rb +12 -0
- data/lib/puppet/indirector/status/rest.rb +18 -0
- data/lib/puppet/loaders.rb +6 -0
- 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/base_pool.rb +7 -2
- 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 +8 -5
- 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/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/evaluator_impl.rb +5 -5
- 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/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/groupadd.rb +9 -4
- 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/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/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/rpm.rb +6 -213
- data/lib/puppet/provider/package/yum.rb +100 -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 +8 -0
- data/lib/puppet/resource/type_collection.rb +20 -16
- data/lib/puppet/runtime.rb +31 -1
- data/lib/puppet/settings.rb +3 -1
- data/lib/puppet/settings/http_extra_headers_setting.rb +25 -0
- 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 +81 -35
- 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 +21 -14
- data/lib/puppet/transaction.rb +2 -2
- data/lib/puppet/transaction/persistence.rb +1 -1
- data/lib/puppet/transaction/report.rb +3 -3
- data/lib/puppet/trusted_external.rb +29 -1
- data/lib/puppet/type.rb +21 -8
- data/lib/puppet/type/file.rb +51 -13
- data/lib/puppet/type/file/checksum.rb +4 -4
- data/lib/puppet/type/file/source.rb +75 -64
- 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/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/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 +641 -511
- data/man/man5/puppet.conf.5 +75 -10
- data/man/man8/puppet-agent.8 +7 -7
- data/man/man8/puppet-apply.8 +1 -1
- data/man/man8/puppet-catalog.8 +1 -1
- data/man/man8/puppet-config.8 +1 -1
- 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 +1 -1
- data/man/man8/puppet-filebucket.8 +17 -2
- 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 +1 -1
- 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 +2 -2
- data/man/man8/puppet-status.8 +1 -1
- 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/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/fixtures/vcr/cassettes/Puppet_Type_File/when_sourcing/from_http/using_md5/should_fetch_if_not_on_the_local_disk.yml +1 -67
- data/spec/fixtures/vcr/cassettes/Puppet_Type_File/when_sourcing/from_http/using_md5/should_not_update_if_content_on_disk_is_up-to-date.yml +1 -69
- data/spec/fixtures/vcr/cassettes/Puppet_Type_File/when_sourcing/from_http/using_md5/should_update_if_content_differs_on_disk.yml +1 -69
- data/spec/fixtures/vcr/cassettes/Puppet_Type_File/when_sourcing/from_http/using_mtime/should_fetch_if_mtime_is_older_on_disk.yml +1 -67
- data/spec/fixtures/vcr/cassettes/Puppet_Type_File/when_sourcing/from_http/using_mtime/should_fetch_if_no_header_specified.yml +1 -65
- data/spec/fixtures/vcr/cassettes/Puppet_Type_File/when_sourcing/from_http/using_mtime/should_fetch_if_not_on_the_local_disk.yml +1 -67
- data/spec/fixtures/vcr/cassettes/Puppet_Type_File/when_sourcing/from_http/using_mtime/should_not_update_if_mtime_is_newer_on_disk.yml +1 -67
- data/spec/integration/application/agent_spec.rb +475 -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/data_binding_spec.rb +82 -0
- data/spec/integration/defaults_spec.rb +1 -2
- data/spec/integration/directory_environments_spec.rb +17 -17
- data/spec/integration/http/client_spec.rb +47 -37
- 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 +93 -20
- 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 +6 -1
- 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/unit/agent_spec.rb +80 -26
- data/spec/unit/application/agent_spec.rb +12 -9
- data/spec/unit/application/describe_spec.rb +88 -50
- data/spec/unit/application/device_spec.rb +2 -2
- data/spec/unit/application/face_base_spec.rb +6 -4
- data/spec/unit/application/facts_spec.rb +39 -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/configurer/downloader_spec.rb +10 -0
- data/spec/unit/configurer/fact_handler_spec.rb +4 -4
- data/spec/unit/configurer/plugin_handler_spec.rb +36 -19
- data/spec/unit/configurer_spec.rb +64 -46
- 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 +8 -0
- data/spec/unit/face/config_spec.rb +3 -1
- data/spec/unit/face/module/search_spec.rb +17 -0
- data/spec/unit/face/plugin_spec.rb +12 -10
- 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 +10 -0
- data/spec/unit/functions/lookup_spec.rb +13 -0
- data/spec/unit/http/client_spec.rb +321 -36
- data/spec/unit/http/external_client_spec.rb +201 -0
- data/spec/unit/http/resolver_spec.rb +34 -3
- data/spec/unit/http/response_spec.rb +75 -0
- data/spec/unit/http/service/ca_spec.rb +53 -12
- data/spec/unit/http/service/compiler_spec.rb +332 -28
- data/spec/unit/http/service/file_server_spec.rb +100 -12
- data/spec/unit/http/service/report_spec.rb +19 -9
- data/spec/unit/http/service_spec.rb +94 -6
- data/spec/unit/http/session_spec.rb +159 -8
- data/spec/unit/indirector/catalog/compiler_spec.rb +1 -0
- data/spec/unit/indirector/catalog/rest_spec.rb +59 -2
- data/spec/unit/indirector/facts/rest_spec.rb +79 -24
- data/spec/unit/indirector/file_bucket_file/rest_spec.rb +82 -2
- data/spec/unit/indirector/file_content/rest_spec.rb +53 -2
- data/spec/unit/indirector/file_metadata/http_spec.rb +194 -0
- data/spec/unit/indirector/file_metadata/rest_spec.rb +110 -2
- data/spec/unit/indirector/node/rest_spec.rb +57 -2
- data/spec/unit/indirector/report/rest_spec.rb +58 -51
- data/spec/unit/indirector/request_spec.rb +1 -1
- data/spec/unit/indirector/resource/ral_spec.rb +7 -8
- data/spec/unit/indirector/rest_spec.rb +13 -0
- data/spec/unit/indirector/status/rest_spec.rb +43 -2
- 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/connection_spec.rb +552 -190
- data/spec/unit/network/http/nocache_pool_spec.rb +22 -0
- data/spec/unit/network/http/pool_spec.rb +59 -13
- 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/group/groupadd_spec.rb +22 -8
- 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/gem_spec.rb +40 -0
- data/spec/unit/provider/package/pacman_spec.rb +6 -21
- 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/rpm_spec.rb +0 -212
- data/spec/unit/provider/package/yum_spec.rb +243 -1
- data/spec/unit/provider/package/zypper_spec.rb +98 -0
- data/spec/unit/provider/service/init_spec.rb +42 -0
- data/spec/unit/provider/service/openbsd_spec.rb +9 -0
- data/spec/unit/provider/service/openwrt_spec.rb +1 -0
- data/spec/unit/provider/service/redhat_spec.rb +9 -0
- data/spec/unit/provider/service/systemd_spec.rb +93 -18
- 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/settings/autosign_setting_spec.rb +1 -1
- data/spec/unit/settings/http_extra_headers_spec.rb +64 -0
- 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 +99 -13
- 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 +5 -1
- data/spec/unit/transaction_spec.rb +0 -2
- data/spec/unit/type/file/ensure_spec.rb +1 -2
- data/spec/unit/type/file/source_spec.rb +89 -38
- data/spec/unit/type/file_spec.rb +122 -96
- 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 +3 -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 +102 -54
- data/spec/unit/util/rpm_compare_spec.rb +196 -0
- 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 +84 -52
- data/COMMITTERS.md +0 -244
- 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 -61
- 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
@@ -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
|
@@ -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
|
|
@@ -4,9 +4,51 @@ require 'puppet/indirector/rest'
|
|
4
4
|
class Puppet::Node::Facts::Rest < Puppet::Indirector::REST
|
5
5
|
desc "Find and save facts about nodes over HTTP via REST."
|
6
6
|
|
7
|
+
def find(request)
|
8
|
+
return super unless use_http_client?
|
9
|
+
|
10
|
+
session = Puppet.lookup(:http_session)
|
11
|
+
api = session.route_to(:puppet)
|
12
|
+
_, facts = api.get_facts(
|
13
|
+
request.key,
|
14
|
+
environment: request.environment.to_s
|
15
|
+
)
|
16
|
+
facts
|
17
|
+
rescue Puppet::HTTP::ResponseError => e
|
18
|
+
if e.response.code == 404
|
19
|
+
return nil unless request.options[:fail_on_404]
|
20
|
+
|
21
|
+
_, body = parse_response(e.response.nethttp)
|
22
|
+
msg = _("Find %{uri} resulted in 404 with the message: %{body}") % { uri: elide(e.response.url.path, 100), body: body }
|
23
|
+
raise Puppet::Error, msg
|
24
|
+
else
|
25
|
+
raise convert_to_http_error(e.response.nethttp)
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
7
29
|
def save(request)
|
8
30
|
raise ArgumentError, _("PUT does not accept options") unless request.options.empty?
|
9
31
|
|
32
|
+
return legacy_save(request) unless use_http_client?
|
33
|
+
|
34
|
+
session = Puppet.lookup(:http_session)
|
35
|
+
api = session.route_to(:puppet)
|
36
|
+
api.put_facts(
|
37
|
+
request.key,
|
38
|
+
facts: request.instance,
|
39
|
+
environment: request.environment.to_s
|
40
|
+
)
|
41
|
+
|
42
|
+
# preserve existing behavior
|
43
|
+
nil
|
44
|
+
rescue Puppet::HTTP::ResponseError => e
|
45
|
+
# always raise even if fail_on_404 is false
|
46
|
+
raise convert_to_http_error(e.response.nethttp)
|
47
|
+
end
|
48
|
+
|
49
|
+
private
|
50
|
+
|
51
|
+
def legacy_save(request)
|
10
52
|
response = do_request(request) do |req|
|
11
53
|
http_put(req, IndirectedRoutes.request_to_uri(req), req.instance.render, headers.merge({ "Content-Type" => req.instance.mime }))
|
12
54
|
end
|
@@ -4,5 +4,53 @@ require 'puppet/file_bucket/file'
|
|
4
4
|
module Puppet::FileBucketFile
|
5
5
|
class Rest < Puppet::Indirector::REST
|
6
6
|
desc "This is a REST based mechanism to send/retrieve file to/from the filebucket"
|
7
|
+
|
8
|
+
def head(request)
|
9
|
+
return super unless use_http_client?
|
10
|
+
|
11
|
+
session = Puppet.lookup(:http_session)
|
12
|
+
api = session.route_to(:puppet)
|
13
|
+
api.head_filebucket_file(
|
14
|
+
request.key,
|
15
|
+
environment: request.environment.to_s,
|
16
|
+
bucket_path: request.options[:bucket_path],
|
17
|
+
)
|
18
|
+
rescue Puppet::HTTP::ResponseError => e
|
19
|
+
return nil if e.response.code == 404
|
20
|
+
raise convert_to_http_error(e.response.nethttp)
|
21
|
+
end
|
22
|
+
|
23
|
+
def find(request)
|
24
|
+
return super unless use_http_client?
|
25
|
+
|
26
|
+
session = Puppet.lookup(:http_session)
|
27
|
+
api = session.route_to(:puppet)
|
28
|
+
_, filebucket_file = api.get_filebucket_file(
|
29
|
+
request.key,
|
30
|
+
environment: request.environment.to_s,
|
31
|
+
bucket_path: request.options[:bucket_path],
|
32
|
+
diff_with: request.options[:diff_with],
|
33
|
+
list_all: request.options[:list_all],
|
34
|
+
fromdate: request.options[:fromdate],
|
35
|
+
todate: request.options[:todate],
|
36
|
+
)
|
37
|
+
filebucket_file
|
38
|
+
rescue Puppet::HTTP::ResponseError => e
|
39
|
+
raise convert_to_http_error(e.response.nethttp)
|
40
|
+
end
|
41
|
+
|
42
|
+
def save(request)
|
43
|
+
return super unless use_http_client?
|
44
|
+
|
45
|
+
session = Puppet.lookup(:http_session)
|
46
|
+
api = session.route_to(:puppet)
|
47
|
+
api.put_filebucket_file(
|
48
|
+
request.key,
|
49
|
+
body: request.instance.render,
|
50
|
+
environment: request.environment.to_s,
|
51
|
+
)
|
52
|
+
rescue Puppet::HTTP::ResponseError => e
|
53
|
+
raise convert_to_http_error(e.response.nethttp)
|
54
|
+
end
|
7
55
|
end
|
8
56
|
end
|
@@ -10,6 +10,11 @@ class Puppet::Indirector::FileContent::Http < Puppet::Indirector::GenericHttp
|
|
10
10
|
|
11
11
|
@http_method = :get
|
12
12
|
|
13
|
+
def initialize
|
14
|
+
Puppet.deprecation_warning(_("Puppet::Indirector::FileContent::Http is deprecated. Use Puppet::HTTP::Client instead."))
|
15
|
+
super
|
16
|
+
end
|
17
|
+
|
13
18
|
def find(request)
|
14
19
|
response = super
|
15
20
|
model.from_binary(uncompress_body(response))
|
@@ -6,4 +6,34 @@ class Puppet::Indirector::FileContent::Rest < Puppet::Indirector::REST
|
|
6
6
|
desc "Retrieve file contents via a REST HTTP interface."
|
7
7
|
|
8
8
|
use_srv_service(:fileserver)
|
9
|
+
|
10
|
+
def find(request)
|
11
|
+
return super unless use_http_client?
|
12
|
+
|
13
|
+
content = StringIO.new
|
14
|
+
content.binmode
|
15
|
+
|
16
|
+
url = URI.parse(Puppet::Util.uri_encode(request.uri))
|
17
|
+
session = Puppet.lookup(:http_session)
|
18
|
+
api = session.route_to(:fileserver, url: url)
|
19
|
+
|
20
|
+
api.get_file_content(
|
21
|
+
path: Puppet::Util.uri_unescape(url.path),
|
22
|
+
environment: request.environment.to_s,
|
23
|
+
) do |data|
|
24
|
+
content << data
|
25
|
+
end
|
26
|
+
|
27
|
+
Puppet::FileServing::Content.from_binary(content.string)
|
28
|
+
rescue Puppet::HTTP::ResponseError => e
|
29
|
+
if e.response.code == 404
|
30
|
+
return nil unless request.options[:fail_on_404]
|
31
|
+
|
32
|
+
_, body = parse_response(e.response.nethttp)
|
33
|
+
msg = _("Find %{uri} resulted in 404 with the message: %{body}") % { uri: elide(e.response.url.path, 100), body: body }
|
34
|
+
raise Puppet::Error, msg
|
35
|
+
else
|
36
|
+
raise convert_to_http_error(e.response.nethttp)
|
37
|
+
end
|
38
|
+
end
|
9
39
|
end
|
@@ -8,20 +8,40 @@ class Puppet::Indirector::FileMetadata::Http < Puppet::Indirector::GenericHttp
|
|
8
8
|
|
9
9
|
include Puppet::FileServing::TerminusHelper
|
10
10
|
|
11
|
-
@http_method = :head
|
12
|
-
|
13
11
|
def find(request)
|
14
|
-
|
12
|
+
checksum_type = request.options[:checksum_type]
|
13
|
+
# See URL encoding comment in Puppet::Type::File::ParamSource#chunk_file_from_source
|
14
|
+
uri = URI(request.uri)
|
15
|
+
client = Puppet.runtime[:http]
|
16
|
+
head = client.head(uri, options: {include_system_store: true})
|
17
|
+
|
18
|
+
return create_httpmetadata(head, checksum_type) if head.success?
|
15
19
|
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
20
|
+
case head.code
|
21
|
+
when 403, 405
|
22
|
+
# AMZ presigned URL and puppetserver may return 403
|
23
|
+
# instead of 405. Fallback to partial get
|
24
|
+
get = partial_get(client, uri)
|
25
|
+
return create_httpmetadata(get, checksum_type) if get.success?
|
21
26
|
end
|
27
|
+
|
28
|
+
nil
|
22
29
|
end
|
23
30
|
|
24
31
|
def search(request)
|
25
32
|
raise Puppet::Error, _("cannot lookup multiple files")
|
26
33
|
end
|
34
|
+
|
35
|
+
private
|
36
|
+
|
37
|
+
def partial_get(client, uri)
|
38
|
+
client.get(uri, headers: {'Range' => 'bytes=0-0'}, options: {include_system_store: true})
|
39
|
+
end
|
40
|
+
|
41
|
+
def create_httpmetadata(http_request, checksum_type)
|
42
|
+
metadata = Puppet::FileServing::HttpMetadata.new(http_request)
|
43
|
+
metadata.checksum_type = checksum_type if checksum_type
|
44
|
+
metadata.collect
|
45
|
+
metadata
|
46
|
+
end
|
27
47
|
end
|
@@ -6,4 +6,56 @@ class Puppet::Indirector::FileMetadata::Rest < Puppet::Indirector::REST
|
|
6
6
|
desc "Retrieve file metadata via a REST HTTP interface."
|
7
7
|
|
8
8
|
use_srv_service(:fileserver)
|
9
|
+
|
10
|
+
def find(request)
|
11
|
+
return super unless use_http_client?
|
12
|
+
|
13
|
+
url = URI.parse(Puppet::Util.uri_encode(request.uri))
|
14
|
+
session = Puppet.lookup(:http_session)
|
15
|
+
api = session.route_to(:fileserver, url: url)
|
16
|
+
|
17
|
+
_, file_metadata = api.get_file_metadata(
|
18
|
+
path: Puppet::Util.uri_unescape(url.path),
|
19
|
+
environment: request.environment.to_s,
|
20
|
+
links: request.options[:links],
|
21
|
+
checksum_type: request.options[:checksum_type],
|
22
|
+
source_permissions: request.options[:source_permissions]
|
23
|
+
)
|
24
|
+
file_metadata
|
25
|
+
rescue Puppet::HTTP::ResponseError => e
|
26
|
+
if e.response.code == 404
|
27
|
+
return nil unless request.options[:fail_on_404]
|
28
|
+
|
29
|
+
_, body = parse_response(e.response.nethttp)
|
30
|
+
msg = _("Find %{uri} resulted in 404 with the message: %{body}") % { uri: elide(e.response.url.path, 100), body: body }
|
31
|
+
raise Puppet::Error, msg
|
32
|
+
else
|
33
|
+
raise convert_to_http_error(e.response.nethttp)
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
def search(request)
|
38
|
+
return super unless use_http_client?
|
39
|
+
|
40
|
+
url = URI.parse(Puppet::Util.uri_encode(request.uri))
|
41
|
+
session = Puppet.lookup(:http_session)
|
42
|
+
api = session.route_to(:fileserver, url: url)
|
43
|
+
|
44
|
+
_, file_metadatas = api.get_file_metadatas(
|
45
|
+
path: Puppet::Util.uri_unescape(url.path),
|
46
|
+
environment: request.environment.to_s,
|
47
|
+
recurse: request.options[:recurse],
|
48
|
+
recurselimit: request.options[:recurselimit],
|
49
|
+
ignore: request.options[:ignore],
|
50
|
+
links: request.options[:links],
|
51
|
+
checksum_type: request.options[:checksum_type],
|
52
|
+
source_permissions: request.options[:source_permissions],
|
53
|
+
)
|
54
|
+
file_metadatas
|
55
|
+
rescue Puppet::HTTP::ResponseError => e
|
56
|
+
# since it's search, return empty array instead of nil
|
57
|
+
return [] if e.response.code == 404
|
58
|
+
|
59
|
+
raise convert_to_http_error(e.response.nethttp)
|
60
|
+
end
|
9
61
|
end
|
@@ -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 })
|
@@ -4,4 +4,28 @@ require 'puppet/indirector/rest'
|
|
4
4
|
class Puppet::Node::Rest < Puppet::Indirector::REST
|
5
5
|
desc "Get a node via REST. Puppet agent uses this to allow the puppet master
|
6
6
|
to override its environment."
|
7
|
+
|
8
|
+
def find(request)
|
9
|
+
return super unless use_http_client?
|
10
|
+
|
11
|
+
session = Puppet.lookup(:http_session)
|
12
|
+
api = session.route_to(:puppet)
|
13
|
+
_, node = api.get_node(
|
14
|
+
request.key,
|
15
|
+
environment: request.environment.to_s,
|
16
|
+
configured_environment: request.options[:configured_environment],
|
17
|
+
transaction_uuid: request.options[:transaction_uuid]
|
18
|
+
)
|
19
|
+
node
|
20
|
+
rescue Puppet::HTTP::ResponseError => e
|
21
|
+
if e.response.code == 404
|
22
|
+
return nil unless request.options[:fail_on_404]
|
23
|
+
|
24
|
+
_, body = parse_response(e.response.nethttp)
|
25
|
+
msg = _("Find %{uri} resulted in 404 with the message: %{body}") % { uri: elide(e.response.url.path, 100), body: body }
|
26
|
+
raise Puppet::Error, msg
|
27
|
+
else
|
28
|
+
raise convert_to_http_error(e.response.nethttp)
|
29
|
+
end
|
30
|
+
end
|
7
31
|
end
|
@@ -26,9 +26,9 @@ class Puppet::Transaction::Report::Processor < Puppet::Indirector::Code
|
|
26
26
|
# LAK:NOTE This isn't necessarily the best design, but it's backward
|
27
27
|
# compatible and that's good enough for now.
|
28
28
|
def process(report)
|
29
|
-
Puppet.debug "Received report to process from #{report.host}"
|
29
|
+
Puppet.debug { "Received report to process from #{report.host}" }
|
30
30
|
processors do |mod|
|
31
|
-
Puppet.debug "Processing report from #{report.host} with processor #{mod}"
|
31
|
+
Puppet.debug { "Processing report from #{report.host} with processor #{mod}" }
|
32
32
|
# We have to use a dup because we're including a module in the
|
33
33
|
# report.
|
34
34
|
newrep = report.dup
|
@@ -7,6 +7,25 @@ class Puppet::Transaction::Report::Rest < Puppet::Indirector::REST
|
|
7
7
|
use_port_setting(:report_port)
|
8
8
|
use_srv_service(:report)
|
9
9
|
|
10
|
+
def save(request)
|
11
|
+
return super unless use_http_client?
|
12
|
+
|
13
|
+
session = Puppet.lookup(:http_session)
|
14
|
+
api = session.route_to(:report)
|
15
|
+
response = api.put_report(
|
16
|
+
request.key,
|
17
|
+
request.instance,
|
18
|
+
environment: request.environment.to_s
|
19
|
+
)
|
20
|
+
content_type, body = parse_response(response)
|
21
|
+
deserialize_save(content_type, body)
|
22
|
+
rescue Puppet::HTTP::ResponseError => e
|
23
|
+
return nil if e.response.code == 404
|
24
|
+
|
25
|
+
raise convert_to_http_error(e.response.nethttp)
|
26
|
+
end
|
27
|
+
|
28
|
+
# This is called by the superclass when not using our httpclient.
|
10
29
|
def handle_response(request, response)
|
11
30
|
if !response.is_a?(Net::HTTPSuccess)
|
12
31
|
server_version = response[Puppet::Network::HTTP::HEADER_PUPPET_VERSION]
|
@@ -2,10 +2,33 @@ require 'puppet/transaction/report'
|
|
2
2
|
require 'puppet/indirector/yaml'
|
3
3
|
|
4
4
|
class Puppet::Transaction::Report::Yaml < Puppet::Indirector::Yaml
|
5
|
+
include Puppet::Util::SymbolicFileMode
|
6
|
+
|
5
7
|
desc "Store last report as a flat file, serialized using YAML."
|
6
8
|
|
7
9
|
# Force report to be saved there
|
8
10
|
def path(name,ext='.yaml')
|
9
11
|
Puppet[:lastrunreport]
|
10
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 YAML.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
|
11
34
|
end
|
@@ -52,6 +52,13 @@ class Puppet::Indirector::REST < Puppet::Indirector::Terminus
|
|
52
52
|
Puppet::Util::Connection.determine_port(port_setting, server_setting)
|
53
53
|
end
|
54
54
|
|
55
|
+
# Should we use puppet's http client to make requests. Will return
|
56
|
+
# false when running in puppetserver
|
57
|
+
def use_http_client?
|
58
|
+
Puppet::Network::HttpPool.http_client_class == Puppet::Network::HTTP::Connection ||
|
59
|
+
Puppet::Network::HttpPool.http_client_class == Puppet::Network::HTTP::ConnectionAdapter
|
60
|
+
end
|
61
|
+
|
55
62
|
# Provide appropriate headers.
|
56
63
|
def headers
|
57
64
|
# yaml is not allowed on the network
|
@@ -105,6 +112,7 @@ class Puppet::Indirector::REST < Puppet::Indirector::Terminus
|
|
105
112
|
end
|
106
113
|
|
107
114
|
def find(request)
|
115
|
+
Puppet.deprecation_warning(_("Puppet::Indirector::Rest#find is deprecated. Use Puppet::HTTP::Client instead."))
|
108
116
|
uri, body = IndirectedRoutes.request_to_uri_and_body(request)
|
109
117
|
uri_with_query_string = "#{uri}?#{body}"
|
110
118
|
|
@@ -143,6 +151,7 @@ class Puppet::Indirector::REST < Puppet::Indirector::Terminus
|
|
143
151
|
end
|
144
152
|
|
145
153
|
def head(request)
|
154
|
+
Puppet.deprecation_warning(_("Puppet::Indirector::Rest#head is deprecated. Use Puppet::HTTP::Client instead."))
|
146
155
|
response = do_request(request) do |req|
|
147
156
|
http_head(req, IndirectedRoutes.request_to_uri(req), headers)
|
148
157
|
end
|
@@ -155,6 +164,7 @@ class Puppet::Indirector::REST < Puppet::Indirector::Terminus
|
|
155
164
|
end
|
156
165
|
|
157
166
|
def search(request)
|
167
|
+
Puppet.deprecation_warning(_("Puppet::Indirector::Rest#search is deprecated. Use Puppet::HTTP::Client instead."))
|
158
168
|
response = do_request(request) do |req|
|
159
169
|
http_get(req, IndirectedRoutes.request_to_uri(req), headers)
|
160
170
|
end
|
@@ -168,6 +178,7 @@ class Puppet::Indirector::REST < Puppet::Indirector::Terminus
|
|
168
178
|
end
|
169
179
|
|
170
180
|
def destroy(request)
|
181
|
+
Puppet.deprecation_warning(_("Puppet::Indirector::Rest#destroy is deprecated. Use Puppet::HTTP::Client instead."))
|
171
182
|
raise ArgumentError, _("DELETE does not accept options") unless request.options.empty?
|
172
183
|
|
173
184
|
response = do_request(request) do |req|
|
@@ -183,6 +194,7 @@ class Puppet::Indirector::REST < Puppet::Indirector::Terminus
|
|
183
194
|
end
|
184
195
|
|
185
196
|
def save(request)
|
197
|
+
Puppet.deprecation_warning(_("Puppet::Indirector::Rest#save is deprecated. Use Puppet::HTTP::Client instead."))
|
186
198
|
raise ArgumentError, _("PUT does not accept options") unless request.options.empty?
|
187
199
|
|
188
200
|
response = do_request(request) do |req|
|