puppet 6.14.0-x64-mingw32 → 6.19.0-x64-mingw32
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of puppet might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/CODEOWNERS +2 -7
- data/Gemfile +4 -2
- data/Gemfile.lock +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
@@ -20,7 +20,7 @@ class Puppet::Node::Facts::Yaml < Puppet::Indirector::Yaml
|
|
20
20
|
|
21
21
|
# Return the path to a given node's file.
|
22
22
|
def yaml_dir_path
|
23
|
-
base = Puppet.run_mode.
|
23
|
+
base = Puppet.run_mode.server? ? Puppet[:yamldir] : Puppet[:clientyamldir]
|
24
24
|
File.join(base, 'facts', '*.yaml')
|
25
25
|
end
|
26
26
|
|
@@ -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))
|
@@ -18,7 +18,7 @@ class Puppet::Indirector::FileContent::Rest < Puppet::Indirector::REST
|
|
18
18
|
api = session.route_to(:fileserver, url: url)
|
19
19
|
|
20
20
|
api.get_file_content(
|
21
|
-
path:
|
21
|
+
path: Puppet::Util.uri_unescape(url.path),
|
22
22
|
environment: request.environment.to_s,
|
23
23
|
) do |data|
|
24
24
|
content << data
|
@@ -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
|
@@ -14,13 +14,14 @@ class Puppet::Indirector::FileMetadata::Rest < Puppet::Indirector::REST
|
|
14
14
|
session = Puppet.lookup(:http_session)
|
15
15
|
api = session.route_to(:fileserver, url: url)
|
16
16
|
|
17
|
-
api.get_file_metadata(
|
18
|
-
path:
|
17
|
+
_, file_metadata = api.get_file_metadata(
|
18
|
+
path: Puppet::Util.uri_unescape(url.path),
|
19
19
|
environment: request.environment.to_s,
|
20
20
|
links: request.options[:links],
|
21
21
|
checksum_type: request.options[:checksum_type],
|
22
22
|
source_permissions: request.options[:source_permissions]
|
23
23
|
)
|
24
|
+
file_metadata
|
24
25
|
rescue Puppet::HTTP::ResponseError => e
|
25
26
|
if e.response.code == 404
|
26
27
|
return nil unless request.options[:fail_on_404]
|
@@ -40,8 +41,8 @@ class Puppet::Indirector::FileMetadata::Rest < Puppet::Indirector::REST
|
|
40
41
|
session = Puppet.lookup(:http_session)
|
41
42
|
api = session.route_to(:fileserver, url: url)
|
42
43
|
|
43
|
-
api.get_file_metadatas(
|
44
|
-
path:
|
44
|
+
_, file_metadatas = api.get_file_metadatas(
|
45
|
+
path: Puppet::Util.uri_unescape(url.path),
|
45
46
|
environment: request.environment.to_s,
|
46
47
|
recurse: request.options[:recurse],
|
47
48
|
recurselimit: request.options[:recurselimit],
|
@@ -50,6 +51,7 @@ class Puppet::Indirector::FileMetadata::Rest < Puppet::Indirector::REST
|
|
50
51
|
checksum_type: request.options[:checksum_type],
|
51
52
|
source_permissions: request.options[:source_permissions],
|
52
53
|
)
|
54
|
+
file_metadatas
|
53
55
|
rescue Puppet::HTTP::ResponseError => e
|
54
56
|
# since it's search, return empty array instead of nil
|
55
57
|
return [] if e.response.code == 404
|
@@ -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,7 +41,7 @@ class Puppet::Indirector::JSON < Puppet::Indirector::Terminus
|
|
41
41
|
raise ArgumentError, _("invalid key")
|
42
42
|
end
|
43
43
|
|
44
|
-
base = Puppet.run_mode.
|
44
|
+
base = Puppet.run_mode.server? ? Puppet[:server_datadir] : Puppet[:client_datadir]
|
45
45
|
File.join(base, self.class.indirection_name.to_s, name.to_s + ext)
|
46
46
|
end
|
47
47
|
|
@@ -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
|
|
@@ -10,12 +10,13 @@ class Puppet::Node::Rest < Puppet::Indirector::REST
|
|
10
10
|
|
11
11
|
session = Puppet.lookup(:http_session)
|
12
12
|
api = session.route_to(:puppet)
|
13
|
-
api.get_node(
|
13
|
+
_, node = api.get_node(
|
14
14
|
request.key,
|
15
15
|
environment: request.environment.to_s,
|
16
16
|
configured_environment: request.options[:configured_environment],
|
17
17
|
transaction_uuid: request.options[:transaction_uuid]
|
18
18
|
)
|
19
|
+
node
|
19
20
|
rescue Puppet::HTTP::ResponseError => e
|
20
21
|
if e.response.code == 404
|
21
22
|
return nil unless request.options[:fail_on_404]
|
@@ -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
|
@@ -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
|
@@ -231,9 +231,9 @@ class Puppet::Indirector::Request
|
|
231
231
|
debug_once _("Selected port from the first entry of the `server_list` setting: %{port}") % {port: primary_server[1]}
|
232
232
|
primary_server[1]
|
233
233
|
else
|
234
|
-
#TRANSLATORS '
|
235
|
-
debug_once _("Selected port from the `
|
236
|
-
Puppet.settings[:
|
234
|
+
#TRANSLATORS 'serverport' is the name of a setting and should not be translated
|
235
|
+
debug_once _("Selected port from the `serverport` setting: %{port}") % {port: Puppet.settings[:serverport]}
|
236
|
+
Puppet.settings[:serverport]
|
237
237
|
end
|
238
238
|
end
|
239
239
|
end
|
@@ -277,7 +277,7 @@ class Puppet::Indirector::Request
|
|
277
277
|
# If the URI class can look up the scheme, it will provide a port,
|
278
278
|
# otherwise it will default to '0'.
|
279
279
|
if uri.port.to_i == 0 and uri.scheme == "puppet"
|
280
|
-
@port = Puppet.settings[:
|
280
|
+
@port = Puppet.settings[:serverport].to_i
|
281
281
|
else
|
282
282
|
@port = uri.port.to_i
|
283
283
|
end
|
@@ -290,6 +290,6 @@ class Puppet::Indirector::Request
|
|
290
290
|
@protocol = uri.scheme
|
291
291
|
end
|
292
292
|
|
293
|
-
@key =
|
293
|
+
@key = Puppet::Util.uri_unescape(uri.path.sub(/^\//, ''))
|
294
294
|
end
|
295
295
|
end
|
@@ -55,7 +55,8 @@ class Puppet::Indirector::REST < Puppet::Indirector::Terminus
|
|
55
55
|
# Should we use puppet's http client to make requests. Will return
|
56
56
|
# false when running in puppetserver
|
57
57
|
def use_http_client?
|
58
|
-
Puppet::Network::HttpPool.http_client_class == Puppet::Network::HTTP::Connection
|
58
|
+
Puppet::Network::HttpPool.http_client_class == Puppet::Network::HTTP::Connection ||
|
59
|
+
Puppet::Network::HttpPool.http_client_class == Puppet::Network::HTTP::ConnectionAdapter
|
59
60
|
end
|
60
61
|
|
61
62
|
# Provide appropriate headers.
|
@@ -111,6 +112,7 @@ class Puppet::Indirector::REST < Puppet::Indirector::Terminus
|
|
111
112
|
end
|
112
113
|
|
113
114
|
def find(request)
|
115
|
+
Puppet.deprecation_warning(_("Puppet::Indirector::Rest#find is deprecated. Use Puppet::HTTP::Client instead."))
|
114
116
|
uri, body = IndirectedRoutes.request_to_uri_and_body(request)
|
115
117
|
uri_with_query_string = "#{uri}?#{body}"
|
116
118
|
|
@@ -149,6 +151,7 @@ class Puppet::Indirector::REST < Puppet::Indirector::Terminus
|
|
149
151
|
end
|
150
152
|
|
151
153
|
def head(request)
|
154
|
+
Puppet.deprecation_warning(_("Puppet::Indirector::Rest#head is deprecated. Use Puppet::HTTP::Client instead."))
|
152
155
|
response = do_request(request) do |req|
|
153
156
|
http_head(req, IndirectedRoutes.request_to_uri(req), headers)
|
154
157
|
end
|
@@ -161,6 +164,7 @@ class Puppet::Indirector::REST < Puppet::Indirector::Terminus
|
|
161
164
|
end
|
162
165
|
|
163
166
|
def search(request)
|
167
|
+
Puppet.deprecation_warning(_("Puppet::Indirector::Rest#search is deprecated. Use Puppet::HTTP::Client instead."))
|
164
168
|
response = do_request(request) do |req|
|
165
169
|
http_get(req, IndirectedRoutes.request_to_uri(req), headers)
|
166
170
|
end
|
@@ -174,6 +178,7 @@ class Puppet::Indirector::REST < Puppet::Indirector::Terminus
|
|
174
178
|
end
|
175
179
|
|
176
180
|
def destroy(request)
|
181
|
+
Puppet.deprecation_warning(_("Puppet::Indirector::Rest#destroy is deprecated. Use Puppet::HTTP::Client instead."))
|
177
182
|
raise ArgumentError, _("DELETE does not accept options") unless request.options.empty?
|
178
183
|
|
179
184
|
response = do_request(request) do |req|
|
@@ -189,6 +194,7 @@ class Puppet::Indirector::REST < Puppet::Indirector::Terminus
|
|
189
194
|
end
|
190
195
|
|
191
196
|
def save(request)
|
197
|
+
Puppet.deprecation_warning(_("Puppet::Indirector::Rest#save is deprecated. Use Puppet::HTTP::Client instead."))
|
192
198
|
raise ArgumentError, _("PUT does not accept options") unless request.options.empty?
|
193
199
|
|
194
200
|
response = do_request(request) do |req|
|
@@ -11,7 +11,8 @@ class Puppet::Indirector::Status::Rest < Puppet::Indirector::REST
|
|
11
11
|
|
12
12
|
session = Puppet.lookup(:http_session)
|
13
13
|
api = session.route_to(:puppet)
|
14
|
-
api.get_status(request.key)
|
14
|
+
_, status = api.get_status(request.key)
|
15
|
+
status
|
15
16
|
rescue Puppet::HTTP::ResponseError => e
|
16
17
|
if e.response.code == 404
|
17
18
|
return nil unless request.options[:fail_on_404]
|
@@ -40,7 +40,7 @@ class Puppet::Indirector::Yaml < Puppet::Indirector::Terminus
|
|
40
40
|
raise ArgumentError, _("invalid key")
|
41
41
|
end
|
42
42
|
|
43
|
-
base = Puppet.run_mode.
|
43
|
+
base = Puppet.run_mode.server? ? Puppet[:yamldir] : Puppet[:clientyamldir]
|
44
44
|
File.join(base, self.class.indirection_name.to_s, name.to_s + ext)
|
45
45
|
end
|
46
46
|
|
@@ -70,68 +70,68 @@ module Manager
|
|
70
70
|
# @dsl type
|
71
71
|
# @api public
|
72
72
|
def newtype(name, options = {}, &block)
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
# First make sure we don't have a method sitting around
|
81
|
-
name = name.intern
|
82
|
-
newmethod = "new#{name}"
|
73
|
+
@manager_lock.synchronize do
|
74
|
+
# Handle backward compatibility
|
75
|
+
unless options.is_a?(Hash)
|
76
|
+
#TRANSLATORS 'Puppet::Type.newtype' should not be translated
|
77
|
+
Puppet.warning(_("Puppet::Type.newtype(%{name}) now expects a hash as the second argument, not %{argument}") %
|
78
|
+
{ name: name, argument: options.inspect})
|
79
|
+
end
|
83
80
|
|
84
|
-
|
85
|
-
|
81
|
+
# First make sure we don't have a method sitting around
|
82
|
+
name = name.intern
|
83
|
+
newmethod = "new#{name}"
|
86
84
|
|
87
|
-
|
85
|
+
# Used for method manipulation.
|
86
|
+
selfobj = singleton_class
|
88
87
|
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
88
|
+
if @types.include?(name)
|
89
|
+
if self.respond_to?(newmethod)
|
90
|
+
# Remove the old newmethod
|
91
|
+
selfobj.send(:remove_method,newmethod)
|
92
|
+
end
|
93
93
|
end
|
94
|
-
end
|
95
|
-
|
96
|
-
# Then create the class.
|
97
94
|
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
#
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
95
|
+
# Then create the class.
|
96
|
+
|
97
|
+
klass = genclass(
|
98
|
+
name,
|
99
|
+
:parent => Puppet::Type,
|
100
|
+
:overwrite => true,
|
101
|
+
:hash => @types,
|
102
|
+
:attributes => options,
|
103
|
+
&block
|
104
|
+
)
|
105
|
+
|
106
|
+
# Now define a "new<type>" method for convenience.
|
107
|
+
if self.respond_to? newmethod
|
108
|
+
# Refuse to overwrite existing methods like 'newparam' or 'newtype'.
|
109
|
+
#TRANSLATORS 'new%{method}' will become a method name, do not translate this string
|
110
|
+
Puppet.warning(_("'new%{method}' method already exists; skipping") % { method: name.to_s })
|
111
|
+
else
|
112
|
+
selfobj.send(:define_method, newmethod) do |*args|
|
113
|
+
klass.new(*args)
|
114
|
+
end
|
115
115
|
end
|
116
|
-
end
|
117
116
|
|
118
|
-
|
119
|
-
|
120
|
-
|
117
|
+
# If they've got all the necessary methods defined and they haven't
|
118
|
+
# already added the property, then do so now.
|
119
|
+
klass.ensurable if klass.ensurable? and ! klass.validproperty?(:ensure)
|
121
120
|
|
122
|
-
|
121
|
+
# Now set up autoload any providers that might exist for this type.
|
123
122
|
|
124
|
-
|
123
|
+
klass.providerloader = Puppet::Util::Autoload.new(klass, "puppet/provider/#{klass.name}")
|
125
124
|
|
126
|
-
|
127
|
-
|
128
|
-
|
125
|
+
# We have to load everything so that we can figure out the default provider.
|
126
|
+
klass.providerloader.loadall(Puppet.lookup(:current_environment))
|
127
|
+
klass.providify unless klass.providers.empty?
|
129
128
|
|
130
|
-
|
131
|
-
|
132
|
-
|
129
|
+
loc = block_given? ? block.source_location : nil
|
130
|
+
uri = loc.nil? ? nil : URI("#{Puppet::Util.path_to_uri(loc[0])}?line=#{loc[1]}")
|
131
|
+
Puppet::Pops::Loaders.register_runtime3_type(name, uri)
|
133
132
|
|
134
|
-
|
133
|
+
klass
|
134
|
+
end
|
135
135
|
end
|
136
136
|
|
137
137
|
# Removes an existing type.
|
@@ -151,47 +151,47 @@ module Manager
|
|
151
151
|
# @return [Puppet::Type, nil] the type or nil if the type was not defined and could not be loaded
|
152
152
|
#
|
153
153
|
def type(name)
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
154
|
+
@manager_lock.synchronize do
|
155
|
+
# Avoid loading if name obviously is not a type name
|
156
|
+
if name.to_s.include?(':')
|
157
|
+
return nil
|
158
|
+
end
|
158
159
|
|
159
|
-
|
160
|
+
# We are overwhelmingly symbols here, which usually match, so it is worth
|
161
|
+
# having this special-case to return quickly. Like, 25K symbols vs. 300
|
162
|
+
# strings in this method. --daniel 2012-07-17
|
163
|
+
return @types[name] if @types.include? name
|
160
164
|
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
+
# Try mangling the name, if it is a string.
|
166
|
+
if name.is_a? String
|
167
|
+
name = name.downcase.intern
|
168
|
+
return @types[name] if @types.include? name
|
169
|
+
end
|
170
|
+
# Try loading the type.
|
171
|
+
if typeloader.load(name, Puppet.lookup(:current_environment))
|
172
|
+
#TRANSLATORS 'puppet/type/%{name}' should not be translated
|
173
|
+
Puppet.warning(_("Loaded puppet/type/%{name} but no class was created") % { name: name }) unless @types.include? name
|
174
|
+
elsif !Puppet[:always_retry_plugins]
|
175
|
+
# PUP-5482 - Only look for a type once if plugin retry is disabled
|
176
|
+
@types[name] = nil
|
177
|
+
end
|
165
178
|
|
166
|
-
|
167
|
-
|
168
|
-
name = name.downcase.intern
|
169
|
-
return @types[name] if @types.include? name
|
170
|
-
end
|
171
|
-
# Try loading the type.
|
172
|
-
if typeloader.load(name, Puppet.lookup(:current_environment))
|
173
|
-
#TRANSLATORS 'puppet/type/%{name}' should not be translated
|
174
|
-
Puppet.warning(_("Loaded puppet/type/%{name} but no class was created") % { name: name }) unless @types.include? name
|
175
|
-
elsif !Puppet[:always_retry_plugins]
|
176
|
-
# PUP-5482 - Only look for a type once if plugin retry is disabled
|
177
|
-
@types[name] = nil
|
179
|
+
# ...and I guess that is that, eh.
|
180
|
+
return @types[name]
|
178
181
|
end
|
179
|
-
|
180
|
-
# ...and I guess that is that, eh.
|
181
|
-
return @types[name]
|
182
182
|
end
|
183
183
|
|
184
184
|
# Creates a loader for Puppet types.
|
185
185
|
# Defaults to an instance of {Puppet::Util::Autoload} if no other auto loader has been set.
|
186
186
|
# @return [Puppet::Util::Autoload] the loader to use.
|
187
187
|
# @api private
|
188
|
-
def typeloader
|
189
|
-
|
190
|
-
|
191
|
-
|
188
|
+
def typeloader
|
189
|
+
unless defined?(@typeloader)
|
190
|
+
@typeloader = Puppet::Util::Autoload.new(self, "puppet/type")
|
191
|
+
end
|
192
192
|
|
193
|
-
|
194
|
-
end
|
193
|
+
@typeloader
|
194
|
+
end
|
195
195
|
end
|
196
196
|
end
|
197
197
|
|