puppet 6.14.0 → 6.19.0
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
@@ -190,7 +190,7 @@ Copyright (c) 2011 Puppet Inc., LLC Licensed under the Apache 2.0 License
|
|
190
190
|
text = Puppet::FileSystem.read(options[:catalog], :encoding => 'utf-8')
|
191
191
|
end
|
192
192
|
env = Puppet.lookup(:environments).get(Puppet[:environment])
|
193
|
-
Puppet.override(:current_environment => env, :loaders =>
|
193
|
+
Puppet.override(:current_environment => env, :loaders => create_loaders(env)) do
|
194
194
|
catalog = read_catalog(text)
|
195
195
|
apply_catalog(catalog)
|
196
196
|
end
|
@@ -204,7 +204,7 @@ Copyright (c) 2011 Puppet Inc., LLC Licensed under the Apache 2.0 License
|
|
204
204
|
apply_environment = get_configured_environment(node, manifest)
|
205
205
|
|
206
206
|
# TRANSLATORS "puppet apply" is a program command and should not be translated
|
207
|
-
Puppet.override({:current_environment => apply_environment}, _("For puppet apply")) do
|
207
|
+
Puppet.override({:current_environment => apply_environment, :loaders => create_loaders(apply_environment)}, _("For puppet apply")) do
|
208
208
|
configure_node_facts(node, facts)
|
209
209
|
|
210
210
|
# Allow users to load the classes that puppet agent creates.
|
@@ -235,30 +235,23 @@ Copyright (c) 2011 Puppet Inc., LLC Licensed under the Apache 2.0 License
|
|
235
235
|
exit(1)
|
236
236
|
end
|
237
237
|
|
238
|
-
#
|
239
|
-
|
240
|
-
# required steps as it is expensive to set up loaders twice (once for
|
241
|
-
# resolution and once for the apply).
|
242
|
-
#
|
243
|
-
exit_status = Puppet.override(:loaders => Puppet::Pops::Loaders.new(apply_environment)) do
|
238
|
+
# Resolve all deferred values and replace them / mutate the catalog
|
239
|
+
Puppet::Pops::Evaluator::DeferredResolver.resolve_and_replace(node.facts, catalog)
|
244
240
|
|
245
|
-
|
246
|
-
|
241
|
+
# Translate it to a RAL catalog
|
242
|
+
catalog = catalog.to_ral
|
247
243
|
|
248
|
-
|
249
|
-
catalog = catalog.to_ral
|
244
|
+
catalog.finalize
|
250
245
|
|
251
|
-
|
246
|
+
catalog.retrieval_duration = Time.now - starttime
|
252
247
|
|
253
|
-
|
248
|
+
if options[:write_catalog_summary]
|
249
|
+
catalog.write_class_file
|
250
|
+
catalog.write_resource_file
|
251
|
+
end
|
254
252
|
|
255
|
-
|
256
|
-
catalog.write_class_file
|
257
|
-
catalog.write_resource_file
|
258
|
-
end
|
253
|
+
exit_status = apply_catalog(catalog)
|
259
254
|
|
260
|
-
apply_catalog(catalog)
|
261
|
-
end
|
262
255
|
if not exit_status
|
263
256
|
exit(1)
|
264
257
|
elsif options[:detailed_exitcodes] then
|
@@ -313,6 +306,11 @@ Copyright (c) 2011 Puppet Inc., LLC Licensed under the Apache 2.0 License
|
|
313
306
|
|
314
307
|
private
|
315
308
|
|
309
|
+
def create_loaders(env)
|
310
|
+
# Ignore both 'cached_puppet_lib' and pcore resource type loaders
|
311
|
+
Puppet::Pops::Loaders.new(env, false, false)
|
312
|
+
end
|
313
|
+
|
316
314
|
def read_catalog(text)
|
317
315
|
facts = get_facts()
|
318
316
|
node = get_node()
|
@@ -259,7 +259,7 @@ Licensed under the Apache 2.0 License
|
|
259
259
|
end
|
260
260
|
end
|
261
261
|
devices.collect do |devicename,device|
|
262
|
-
pool = Puppet.runtime[
|
262
|
+
pool = Puppet.runtime[:http].pool
|
263
263
|
Puppet.override(:http_pool => pool) do
|
264
264
|
# TODO when we drop support for ruby < 2.5 we can remove the extra block here
|
265
265
|
begin
|
@@ -292,7 +292,7 @@ Copyright (c) 2011 Puppet Inc., LLC Licensed under the Apache 2.0 License
|
|
292
292
|
Puppet::Log.level = :info
|
293
293
|
end
|
294
294
|
|
295
|
-
|
295
|
+
exit(Puppet.settings.print_configs ? 0 : 1) if Puppet.settings.print_configs?
|
296
296
|
|
297
297
|
require 'puppet/file_bucket/dipper'
|
298
298
|
begin
|
@@ -300,19 +300,10 @@ Copyright (c) 2011 Puppet Inc., LLC Licensed under the Apache 2.0 License
|
|
300
300
|
path = options[:bucket] || Puppet[:clientbucketdir]
|
301
301
|
@client = Puppet::FileBucket::Dipper.new(:Path => path)
|
302
302
|
else
|
303
|
-
|
304
|
-
|
305
|
-
|
306
|
-
|
307
|
-
@client = Puppet::FileBucket::Dipper.new(
|
308
|
-
:Server => server[0],
|
309
|
-
:Port => server[1]
|
310
|
-
)
|
311
|
-
else
|
312
|
-
#TRANSLATORS 'server' is the name of a setting and should not be translated
|
313
|
-
Puppet.debug _("Selected server from the `server` setting: %{server}") % {server: Puppet[:server]}
|
314
|
-
@client = Puppet::FileBucket::Dipper.new(:Server => Puppet[:server])
|
315
|
-
end
|
303
|
+
session = Puppet.lookup(:http_session)
|
304
|
+
api = session.route_to(:puppet)
|
305
|
+
|
306
|
+
@client = Puppet::FileBucket::Dipper.new(Server: api.url.host, Port: api.url.port)
|
316
307
|
end
|
317
308
|
rescue => detail
|
318
309
|
Puppet.log_exception(detail)
|
@@ -8,7 +8,7 @@ class Puppet::Application::Lookup < Puppet::Application
|
|
8
8
|
RUN_HELP = _("Run 'puppet lookup --help' for more details").freeze
|
9
9
|
DEEP_MERGE_OPTIONS = '--knock-out-prefix, --sort-merged-arrays, and --merge-hash-arrays'.freeze
|
10
10
|
|
11
|
-
run_mode :
|
11
|
+
run_mode :server
|
12
12
|
|
13
13
|
# Options for lookup
|
14
14
|
option('--merge TYPE') do |arg|
|
@@ -90,7 +90,13 @@ class Puppet::Application::Lookup < Puppet::Application
|
|
90
90
|
|
91
91
|
exit(Puppet.settings.print_configs ? 0 : 1) if Puppet.settings.print_configs?
|
92
92
|
|
93
|
-
|
93
|
+
if options[:node]
|
94
|
+
Puppet::Util.skip_external_facts do
|
95
|
+
Puppet.settings.use :main, :server, :ssl, :metrics
|
96
|
+
end
|
97
|
+
else
|
98
|
+
Puppet.settings.use :main, :server, :ssl, :metrics
|
99
|
+
end
|
94
100
|
|
95
101
|
setup_terminuses
|
96
102
|
end
|
@@ -102,7 +108,7 @@ class Puppet::Application::Lookup < Puppet::Application
|
|
102
108
|
def help
|
103
109
|
<<-HELP
|
104
110
|
|
105
|
-
puppet
|
111
|
+
puppet-lookup(8) -- #{summary}
|
106
112
|
========
|
107
113
|
|
108
114
|
SYNOPSIS
|
@@ -364,6 +370,12 @@ Copyright (c) 2015 Puppet Inc., LLC Licensed under the Apache 2.0 License
|
|
364
370
|
|
365
371
|
Puppet[:code] = 'undef' unless options[:compile]
|
366
372
|
compiler = Puppet::Parser::Compiler.new(node)
|
367
|
-
|
373
|
+
if options[:node]
|
374
|
+
Puppet::Util.skip_external_facts do
|
375
|
+
compiler.compile { |catalog| yield(compiler.topscope); catalog }
|
376
|
+
end
|
377
|
+
else
|
378
|
+
compiler.compile { |catalog| yield(compiler.topscope); catalog }
|
379
|
+
end
|
368
380
|
end
|
369
381
|
end
|
@@ -90,7 +90,7 @@ HELP
|
|
90
90
|
@cert_provider = Puppet::X509::CertProvider.new
|
91
91
|
@ssl_provider = Puppet::SSL::SSLProvider.new
|
92
92
|
@machine = Puppet::SSL::StateMachine.new
|
93
|
-
@session = Puppet.runtime[
|
93
|
+
@session = Puppet.runtime[:http].create_session
|
94
94
|
end
|
95
95
|
|
96
96
|
def setup_logs
|
@@ -182,7 +182,7 @@ HELP
|
|
182
182
|
route = create_route(ssl_context)
|
183
183
|
Puppet.info _("Downloading certificate '%{name}' from %{url}") % { name: Puppet[:certname], url: route.url }
|
184
184
|
|
185
|
-
x509 = route.get_certificate(Puppet[:certname], ssl_context: ssl_context)
|
185
|
+
_, x509 = route.get_certificate(Puppet[:certname], ssl_context: ssl_context)
|
186
186
|
cert = OpenSSL::X509::Certificate.new(x509)
|
187
187
|
Puppet.notice _("Downloaded certificate '%{name}' with fingerprint %{fingerprint}") % { name: Puppet[:certname], fingerprint: fingerprint(cert) }
|
188
188
|
|
@@ -226,7 +226,7 @@ HELP
|
|
226
226
|
begin
|
227
227
|
ssl_context = @machine.ensure_ca_certificates
|
228
228
|
route = create_route(ssl_context)
|
229
|
-
cert = route.get_certificate(certname, ssl_context: ssl_context)
|
229
|
+
_, cert = route.get_certificate(certname, ssl_context: ssl_context)
|
230
230
|
rescue Puppet::HTTP::ResponseError => e
|
231
231
|
if e.response.code.to_i != 404
|
232
232
|
raise Puppet::Error.new(_("Failed to connect to the CA to determine if certificate %{certname} has been cleaned") % { certname: certname }, e)
|
data/lib/puppet/configurer.rb
CHANGED
@@ -53,6 +53,7 @@ class Puppet::Configurer
|
|
53
53
|
def initialize(transaction_uuid = nil, job_id = nil)
|
54
54
|
@running = false
|
55
55
|
@splayed = false
|
56
|
+
@running_failure = false
|
56
57
|
@cached_catalog_status = 'not_used'
|
57
58
|
@environment = Puppet[:environment]
|
58
59
|
@transaction_uuid = transaction_uuid || SecureRandom.uuid
|
@@ -65,9 +66,16 @@ class Puppet::Configurer
|
|
65
66
|
# Get the remote catalog, yo. Returns nil if no catalog can be found.
|
66
67
|
def retrieve_catalog(facts, query_options)
|
67
68
|
query_options ||= {}
|
68
|
-
|
69
|
+
if Puppet[:use_cached_catalog] || @running_failure
|
70
|
+
result = retrieve_catalog_from_cache(query_options)
|
71
|
+
end
|
72
|
+
|
69
73
|
if result
|
70
|
-
|
74
|
+
if Puppet[:use_cached_catalog]
|
75
|
+
@cached_catalog_status = 'explicitly_requested'
|
76
|
+
elsif @running_failure
|
77
|
+
@cached_catalog_status = 'on_failure'
|
78
|
+
end
|
71
79
|
|
72
80
|
Puppet.info _("Using cached catalog from environment '%{environment}'") % { environment: result.environment }
|
73
81
|
else
|
@@ -194,12 +202,12 @@ class Puppet::Configurer
|
|
194
202
|
# This just passes any options on to the catalog,
|
195
203
|
# which accepts :tags and :ignoreschedules.
|
196
204
|
def run(options = {})
|
197
|
-
pool = Puppet.runtime[
|
205
|
+
pool = Puppet.runtime[:http].pool
|
198
206
|
# We create the report pre-populated with default settings for
|
199
207
|
# environment and transaction_uuid very early, this is to ensure
|
200
208
|
# they are sent regardless of any catalog compilation failures or
|
201
209
|
# exceptions.
|
202
|
-
options[:report] ||= Puppet::Transaction::Report.new(nil, @environment, @transaction_uuid, @job_id)
|
210
|
+
options[:report] ||= Puppet::Transaction::Report.new(nil, @environment, @transaction_uuid, @job_id, options[:start_time] || Time.now)
|
203
211
|
report = options[:report]
|
204
212
|
init_storage
|
205
213
|
|
@@ -215,10 +223,26 @@ class Puppet::Configurer
|
|
215
223
|
# mode. We shouldn't try to do any failover in that case.
|
216
224
|
if options[:catalog].nil? && do_failover
|
217
225
|
server, port = find_functional_server
|
218
|
-
|
219
|
-
|
220
|
-
|
221
|
-
|
226
|
+
begin
|
227
|
+
if server.nil?
|
228
|
+
raise Puppet::Error, _("Could not select a functional puppet server from server_list: '%{server_list}'") % { server_list: Puppet.settings.value(:server_list, Puppet[:environment].to_sym, true) }
|
229
|
+
else
|
230
|
+
#TRANSLATORS 'server_list' is the name of a setting and should not be translated
|
231
|
+
Puppet.debug _("Selected puppet server from the `server_list` setting: %{server}:%{port}") % { server: server, port: port }
|
232
|
+
report.server_used = "#{server}:#{port}"
|
233
|
+
end
|
234
|
+
rescue Puppet::Error => detail
|
235
|
+
if Puppet[:usecacheonfailure]
|
236
|
+
options[:pluginsync] = false
|
237
|
+
@running_failure = true
|
238
|
+
if server.nil?
|
239
|
+
server = Puppet[:server_list].first[0]
|
240
|
+
port = Puppet[:server_list].first[1] || Puppet[:serverport]
|
241
|
+
end
|
242
|
+
Puppet.log_exception(detail)
|
243
|
+
else
|
244
|
+
raise detail
|
245
|
+
end
|
222
246
|
end
|
223
247
|
Puppet.override(server: server, serverport: port) do
|
224
248
|
completed = run_internal(options)
|
@@ -235,9 +259,13 @@ class Puppet::Configurer
|
|
235
259
|
end
|
236
260
|
|
237
261
|
def run_internal(options)
|
238
|
-
start = Time.now
|
239
262
|
report = options[:report]
|
240
263
|
|
264
|
+
if options[:start_time]
|
265
|
+
startup_time = Time.now - options[:start_time]
|
266
|
+
report.add_times(:startup_time, startup_time)
|
267
|
+
end
|
268
|
+
|
241
269
|
# If a cached catalog is explicitly requested, attempt to retrieve it. Skip the node request,
|
242
270
|
# don't pluginsync and switch to the catalog's environment if we successfully retrieve it.
|
243
271
|
if Puppet[:use_cached_catalog]
|
@@ -299,6 +327,15 @@ class Puppet::Configurer
|
|
299
327
|
report.environment = @environment
|
300
328
|
query_options = nil
|
301
329
|
facts = nil
|
330
|
+
|
331
|
+
new_env = Puppet::Node::Environment.remote(@environment)
|
332
|
+
Puppet.push_context(
|
333
|
+
{
|
334
|
+
current_environment: new_env,
|
335
|
+
loaders: Puppet::Pops::Loaders.new(new_env, true)
|
336
|
+
},
|
337
|
+
"Local node environment #{@environment} for configurer transaction"
|
338
|
+
)
|
302
339
|
else
|
303
340
|
Puppet.info _("Using configured environment '%{env}'") % { env: @environment }
|
304
341
|
end
|
@@ -309,19 +346,18 @@ class Puppet::Configurer
|
|
309
346
|
end
|
310
347
|
end
|
311
348
|
|
312
|
-
|
313
|
-
|
314
|
-
|
315
|
-
|
316
|
-
|
317
|
-
|
318
|
-
|
319
|
-
|
349
|
+
# This is to maintain compatibility with anyone using this class
|
350
|
+
# aside from agent, apply, device.
|
351
|
+
unless Puppet.lookup(:loaders) { nil }
|
352
|
+
new_env = Puppet::Node::Environment.remote(@environment)
|
353
|
+
Puppet.push_context(
|
354
|
+
{
|
355
|
+
current_environment: new_env,
|
356
|
+
loaders: Puppet::Pops::Loaders.new(new_env, true)
|
357
|
+
},
|
358
|
+
"Local node environment #{@environment} for configurer transaction"
|
359
|
+
)
|
320
360
|
end
|
321
|
-
Puppet.push_context({
|
322
|
-
:current_environment => local_node_environment,
|
323
|
-
:loaders => Puppet::Pops::Loaders.new(local_node_environment, true)
|
324
|
-
}, "Local node environment for configurer transaction")
|
325
361
|
|
326
362
|
query_options, facts = get_facts(options) unless query_options
|
327
363
|
query_options[:configured_environment] = configured_environment
|
@@ -402,7 +438,7 @@ class Puppet::Configurer
|
|
402
438
|
end
|
403
439
|
|
404
440
|
report.cached_catalog_status ||= @cached_catalog_status
|
405
|
-
report.add_times(:total, Time.now -
|
441
|
+
report.add_times(:total, Time.now - report.time)
|
406
442
|
report.finalize_report
|
407
443
|
Puppet::Util::Log.close(report)
|
408
444
|
send_report(report)
|
@@ -455,7 +491,7 @@ class Puppet::Configurer
|
|
455
491
|
::Facter.clear
|
456
492
|
facts = find_facts
|
457
493
|
|
458
|
-
client = Puppet.runtime[
|
494
|
+
client = Puppet.runtime[:http]
|
459
495
|
session = client.create_session
|
460
496
|
puppet = session.route_to(:puppet)
|
461
497
|
|
@@ -526,6 +562,14 @@ class Puppet::Configurer
|
|
526
562
|
end
|
527
563
|
|
528
564
|
def download_plugins(remote_environment_for_plugins)
|
529
|
-
|
565
|
+
begin
|
566
|
+
@handler.download_plugins(remote_environment_for_plugins)
|
567
|
+
rescue Puppet::Error => detail
|
568
|
+
if !Puppet[:ignore_plugin_errors] && Puppet[:usecacheonfailure]
|
569
|
+
@running_failure = true
|
570
|
+
else
|
571
|
+
raise detail
|
572
|
+
end
|
573
|
+
end
|
530
574
|
end
|
531
575
|
end
|
@@ -11,32 +11,53 @@ class Puppet::Configurer::Downloader
|
|
11
11
|
files = []
|
12
12
|
begin
|
13
13
|
catalog.apply do |trans|
|
14
|
+
unless Puppet[:ignore_plugin_errors]
|
15
|
+
# Propagate the first failure associated with the transaction. The any_failed?
|
16
|
+
# method returns the first resource status that failed or nil, not a boolean.
|
17
|
+
first_failure = trans.any_failed?
|
18
|
+
if first_failure
|
19
|
+
event = (first_failure.events || []).first
|
20
|
+
detail = event ? event.message : 'unknown'
|
21
|
+
raise Puppet::Error.new(_("Failed to retrieve %{name}: %{detail}") % { name: name, detail: detail })
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
14
25
|
trans.changed?.each do |resource|
|
15
26
|
yield resource if block_given?
|
16
27
|
files << resource[:path]
|
17
28
|
end
|
18
29
|
end
|
19
30
|
rescue Puppet::Error => detail
|
20
|
-
Puppet
|
31
|
+
if Puppet[:ignore_plugin_errors]
|
32
|
+
Puppet.log_exception(detail, _("Could not retrieve %{name}: %{detail}") % { name: name, detail: detail })
|
33
|
+
else
|
34
|
+
raise detail
|
35
|
+
end
|
21
36
|
end
|
22
37
|
files
|
23
38
|
end
|
24
39
|
|
25
40
|
def initialize(name, path, source, ignore = nil, environment = nil, source_permissions = :ignore)
|
26
41
|
@name, @path, @source, @ignore, @environment, @source_permissions = name, path, source, ignore, environment, source_permissions
|
27
|
-
end
|
28
42
|
|
29
|
-
def catalog
|
30
|
-
catalog = Puppet::Resource::Catalog.new("PluginSync", @environment)
|
31
|
-
catalog.host_config = false
|
32
|
-
catalog.add_resource(file)
|
33
|
-
catalog
|
34
43
|
end
|
35
44
|
|
36
45
|
def file
|
37
|
-
|
38
|
-
|
39
|
-
|
46
|
+
unless @file
|
47
|
+
args = default_arguments.merge(:path => path, :source => source)
|
48
|
+
args[:ignore] = ignore.split if ignore
|
49
|
+
@file = Puppet::Type.type(:file).new(args)
|
50
|
+
end
|
51
|
+
@file
|
52
|
+
end
|
53
|
+
|
54
|
+
def catalog
|
55
|
+
unless @catalog
|
56
|
+
@catalog = Puppet::Resource::Catalog.new("PluginSync", @environment)
|
57
|
+
@catalog.host_config = false
|
58
|
+
@catalog.add_resource(file)
|
59
|
+
end
|
60
|
+
@catalog
|
40
61
|
end
|
41
62
|
|
42
63
|
private
|
@@ -36,7 +36,7 @@ class Puppet::Configurer::PluginHandler
|
|
36
36
|
locales = Gem::Version.new(server_agent_version) >= SUPPORTED_LOCALES_MOUNT_AGENT_VERSION
|
37
37
|
unless locales
|
38
38
|
session = Puppet.lookup(:http_session)
|
39
|
-
locales = session.supports?(:puppet, 'locales')
|
39
|
+
locales = session.supports?(:fileserver, 'locales') || session.supports?(:puppet, 'locales')
|
40
40
|
end
|
41
41
|
|
42
42
|
if locales
|
data/lib/puppet/confine.rb
CHANGED
@@ -26,7 +26,7 @@ class Puppet::Confine
|
|
26
26
|
require "puppet/confine/#{name}"
|
27
27
|
rescue LoadError => detail
|
28
28
|
unless detail.to_s =~ /No such file|cannot load such file/i
|
29
|
-
|
29
|
+
Puppet.warning("Could not load confine test '#{name}': #{detail}")
|
30
30
|
end
|
31
31
|
# Could not find file
|
32
32
|
if !Puppet[:always_retry_plugins]
|
@@ -67,7 +67,7 @@ class Puppet::Confine
|
|
67
67
|
def valid?
|
68
68
|
values.each do |value|
|
69
69
|
unless pass?(value)
|
70
|
-
Puppet.debug
|
70
|
+
Puppet.debug { label + ": " + message(value) }
|
71
71
|
return false
|
72
72
|
end
|
73
73
|
end
|