puppet 6.15.0-x64-mingw32 → 6.19.1-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 +29 -27
- data/README.md +3 -4
- data/Rakefile +4 -12
- data/lib/puppet.rb +32 -8
- data/lib/puppet/agent.rb +18 -4
- data/lib/puppet/agent/locker.rb +0 -7
- data/lib/puppet/application/agent.rb +23 -8
- 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/lookup.rb +16 -4
- data/lib/puppet/application/plugin.rb +1 -0
- data/lib/puppet/application/ssl.rb +1 -1
- data/lib/puppet/configurer.rb +61 -21
- data/lib/puppet/configurer/downloader.rb +31 -10
- 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 +119 -39
- data/lib/puppet/environments.rb +51 -10
- 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 +1 -1
- 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 +4 -4
- 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/filter.rb +1 -0
- data/lib/puppet/functions/lstrip.rb +4 -4
- data/lib/puppet/functions/new.rb +8 -3
- data/lib/puppet/functions/reverse_each.rb +1 -1
- data/lib/puppet/functions/rstrip.rb +4 -4
- data/lib/puppet/functions/step.rb +1 -1
- data/lib/puppet/functions/strip.rb +4 -4
- data/lib/puppet/gettext/config.rb +5 -5
- data/lib/puppet/gettext/module_translations.rb +4 -4
- data/lib/puppet/http.rb +1 -0
- data/lib/puppet/http/client.rb +28 -12
- data/lib/puppet/http/external_client.rb +0 -6
- data/lib/puppet/http/redirector.rb +9 -7
- data/lib/puppet/http/resolver.rb +5 -8
- data/lib/puppet/http/resolver/server_list.rb +18 -36
- data/lib/puppet/http/resolver/settings.rb +4 -4
- data/lib/puppet/http/resolver/srv.rb +5 -5
- data/lib/puppet/http/response.rb +19 -0
- data/lib/puppet/http/service.rb +3 -1
- data/lib/puppet/http/service/compiler.rb +1 -1
- data/lib/puppet/http/service/file_server.rb +1 -1
- data/lib/puppet/http/service/puppetserver.rb +39 -0
- data/lib/puppet/http/session.rb +5 -4
- data/lib/puppet/indirector.rb +1 -1
- data/lib/puppet/indirector/catalog/compiler.rb +1 -1
- data/lib/puppet/indirector/exec.rb +1 -1
- data/lib/puppet/indirector/facts/facter.rb +3 -3
- data/lib/puppet/indirector/facts/yaml.rb +1 -1
- 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 +2 -2
- 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/report/processor.rb +2 -2
- data/lib/puppet/indirector/request.rb +5 -5
- data/lib/puppet/indirector/rest.rb +7 -1
- data/lib/puppet/indirector/yaml.rb +1 -1
- 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/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/route.rb +2 -2
- data/lib/puppet/network/http_pool.rb +2 -2
- data/lib/puppet/node/environment.rb +12 -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 +31 -4
- 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 +29 -26
- 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 +21 -17
- 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 +18 -11
- data/lib/puppet/pops/lookup/context.rb +1 -1
- data/lib/puppet/pops/lookup/hiera_config.rb +14 -1
- data/lib/puppet/pops/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/package/aix.rb +17 -2
- data/lib/puppet/provider/package/apt.rb +38 -1
- data/lib/puppet/provider/package/aptitude.rb +1 -1
- data/lib/puppet/provider/package/dnfmodule.rb +24 -4
- data/lib/puppet/provider/package/dpkg.rb +1 -1
- data/lib/puppet/provider/package/gem.rb +4 -2
- data/lib/puppet/provider/package/pip.rb +60 -37
- data/lib/puppet/provider/package/pip2.rb +17 -0
- data/lib/puppet/provider/package/portage.rb +2 -2
- data/lib/puppet/provider/package/puppet_gem.rb +5 -0
- data/lib/puppet/provider/package/puppetserver_gem.rb +180 -0
- data/lib/puppet/provider/package/yum.rb +9 -1
- data/lib/puppet/provider/package/zypper.rb +62 -1
- data/lib/puppet/provider/service/systemd.rb +21 -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 +7 -3
- data/lib/puppet/resource.rb +2 -1
- data/lib/puppet/resource/type.rb +10 -1
- data/lib/puppet/rest/route.rb +2 -2
- data/lib/puppet/runtime.rb +25 -2
- data/lib/puppet/settings.rb +43 -6
- 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 +33 -8
- 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 +12 -8
- data/lib/puppet/trusted_external.rb +29 -1
- data/lib/puppet/type.rb +15 -7
- data/lib/puppet/type/file.rb +40 -15
- data/lib/puppet/type/file/checksum.rb +4 -4
- data/lib/puppet/type/file/source.rb +33 -13
- data/lib/puppet/type/filebucket.rb +1 -1
- data/lib/puppet/type/notify.rb +2 -2
- data/lib/puppet/type/package.rb +16 -1
- data/lib/puppet/type/service.rb +59 -8
- data/lib/puppet/type/user.rb +19 -10
- data/lib/puppet/util.rb +41 -3
- data/lib/puppet/util/autoload.rb +10 -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/log/destinations.rb +1 -10
- data/lib/puppet/util/package/version/range.rb +4 -1
- data/lib/puppet/util/package/version/range/eq.rb +14 -0
- data/lib/puppet/util/provider_features.rb +1 -1
- data/lib/puppet/util/reference.rb +1 -1
- data/lib/puppet/util/run_mode.rb +5 -1
- data/lib/puppet/util/windows.rb +1 -0
- data/lib/puppet/util/windows/api_types.rb +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/registry.rb +11 -11
- data/lib/puppet/util/windows/security.rb +4 -4
- data/lib/puppet/util/windows/service.rb +43 -26
- data/lib/puppet/util/windows/user.rb +242 -8
- data/lib/puppet/version.rb +1 -1
- data/locales/puppet.pot +541 -427
- data/man/man5/puppet.conf.5 +84 -19
- 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/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-enabled.txt → dnf-module-list.txt} +6 -0
- data/spec/fixtures/unit/provider/package/puppetserver_gem/gem-list-local-packages +30 -0
- data/spec/fixtures/unit/provider/package/zypper/zypper-search-uninstalled.out +13 -0
- data/spec/integration/application/agent_spec.rb +202 -52
- data/spec/integration/application/apply_spec.rb +149 -149
- 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 +70 -21
- data/spec/integration/application/help_spec.rb +42 -0
- data/spec/integration/application/lookup_spec.rb +13 -0
- data/spec/integration/application/module_spec.rb +68 -0
- data/spec/integration/application/plugin_spec.rb +75 -2
- 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 +6 -1
- data/spec/integration/indirector/facts/facter_spec.rb +8 -6
- data/spec/integration/network/http_pool_spec.rb +73 -0
- data/spec/integration/node/environment_spec.rb +1 -1
- 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 +7 -2
- 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_spec/https.rb +6 -0
- data/spec/lib/puppet_spec/matchers.rb +0 -80
- data/spec/lib/puppet_spec/puppetserver.rb +8 -0
- data/spec/shared_contexts/types_setup.rb +2 -0
- data/spec/unit/agent_spec.rb +47 -1
- data/spec/unit/application/agent_spec.rb +7 -8
- 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/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 +86 -37
- 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/environments_spec.rb +99 -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 +1 -2
- data/spec/unit/http/client_spec.rb +74 -19
- data/spec/unit/http/external_client_spec.rb +9 -9
- data/spec/unit/http/resolver_spec.rb +24 -5
- data/spec/unit/http/response_spec.rb +6 -0
- data/spec/unit/http/service/ca_spec.rb +2 -3
- data/spec/unit/http/service/compiler_spec.rb +2 -3
- data/spec/unit/http/service/file_server_spec.rb +2 -3
- data/spec/unit/http/service/puppetserver_spec.rb +82 -0
- data/spec/unit/http/service/report_spec.rb +2 -3
- data/spec/unit/http/service_spec.rb +0 -1
- data/spec/unit/http/session_spec.rb +8 -21
- 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_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 +63 -57
- data/spec/unit/network/http_spec.rb +1 -1
- data/spec/unit/node/environment_spec.rb +18 -1
- 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/package/aix_spec.rb +29 -0
- data/spec/unit/provider/package/apt_spec.rb +77 -0
- data/spec/unit/provider/package/aptitude_spec.rb +1 -0
- data/spec/unit/provider/package/dnfmodule_spec.rb +25 -5
- data/spec/unit/provider/package/dpkg_spec.rb +22 -7
- data/spec/unit/provider/package/openbsd_spec.rb +2 -0
- data/spec/unit/provider/package/pip2_spec.rb +36 -0
- data/spec/unit/provider/package/pip_spec.rb +42 -16
- data/spec/unit/provider/package/portage_spec.rb +5 -0
- data/spec/unit/provider/package/puppet_gem_spec.rb +4 -1
- data/spec/unit/provider/package/puppetserver_gem_spec.rb +137 -0
- data/spec/unit/provider/package/yum_spec.rb +47 -8
- 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 +87 -19
- 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 +82 -0
- data/spec/unit/puppet_pal_2pec.rb +40 -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 +1 -1
- 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 +182 -22
- data/spec/unit/ssl/ssl_provider_spec.rb +69 -43
- data/spec/unit/ssl/state_machine_spec.rb +52 -8
- 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 +3 -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/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/range_spec.rb +22 -1
- data/spec/unit/util/run_mode_spec.rb +6 -6
- 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_spec.rb +3 -3
- data/spec/unit/x509/cert_provider_spec.rb +1 -1
- data/tasks/manpages.rake +5 -35
- metadata +43 -49
- data/spec/integration/faces/config_spec.rb +0 -91
- data/spec/integration/faces/documentation_spec.rb +0 -57
- data/spec/integration/file_bucket/file_spec.rb +0 -50
- data/spec/integration/file_serving/content_spec.rb +0 -7
- data/spec/integration/file_serving/fileset_spec.rb +0 -12
- data/spec/integration/file_serving/metadata_spec.rb +0 -8
- data/spec/integration/file_serving/terminus_helper_spec.rb +0 -20
- data/spec/integration/file_system/uniquefile_spec.rb +0 -26
- data/spec/integration/module_tool/forge_spec.rb +0 -51
- data/spec/integration/module_tool/tar/mini_spec.rb +0 -28
- data/spec/integration/provider/service/init_spec.rb +0 -48
- data/spec/integration/provider/service/systemd_spec.rb +0 -25
- data/spec/integration/provider/service/windows_spec.rb +0 -50
- data/spec/integration/reference/providers_spec.rb +0 -21
- data/spec/integration/reports_spec.rb +0 -13
- data/spec/integration/ssl/certificate_request_spec.rb +0 -44
- data/spec/integration/ssl/host_spec.rb +0 -72
- data/spec/integration/ssl/key_spec.rb +0 -99
- data/spec/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
@@ -218,7 +218,7 @@ class Puppet::Network::HTTP::API::IndirectedRoutes
|
|
218
218
|
return formatter if formatter
|
219
219
|
|
220
220
|
raise Puppet::Network::HTTP::Error::HTTPNotAcceptableError.new(
|
221
|
-
_("No supported formats are acceptable (Accept: %{accepted_formats})") % { accepted_formats: formats },
|
221
|
+
_("No supported formats are acceptable (Accept: %{accepted_formats})") % { accepted_formats: formats.map(&:mime).join(', ') },
|
222
222
|
Puppet::Network::HTTP::Issues::UNSUPPORTED_FORMAT)
|
223
223
|
end
|
224
224
|
|
@@ -1,8 +1,11 @@
|
|
1
1
|
require 'puppet/util/json'
|
2
2
|
require 'puppet/parser/environment_compiler'
|
3
3
|
|
4
|
+
# @deprecated application orchestration will be removed in puppet 7
|
4
5
|
class Puppet::Network::HTTP::API::Master::V3::Environment
|
5
6
|
def call(request, response)
|
7
|
+
Puppet.deprecation_warning("Application orchestration is deprecated. See https://puppet.com/docs/puppet/5.5/deprecated_language.html")
|
8
|
+
|
6
9
|
env_name = request.routing_path.split('/').last
|
7
10
|
env = Puppet.lookup(:environments).get(env_name)
|
8
11
|
code_id = request.params[:code_id]
|
@@ -20,9 +20,11 @@ module Puppet::Network::HTTP::Compression
|
|
20
20
|
def uncompress_body(response)
|
21
21
|
case response['content-encoding']
|
22
22
|
when 'gzip'
|
23
|
+
Puppet.deprecation_warning(_('Puppet::Network::HTTP::Compression::Active#uncompress_body is deprecated.'))
|
23
24
|
# ZLib::GzipReader has an associated encoding, by default Encoding.default_external
|
24
25
|
return Zlib::GzipReader.new(StringIO.new(response.body), :encoding => Encoding::BINARY).read
|
25
26
|
when 'deflate'
|
27
|
+
Puppet.deprecation_warning(_('Puppet::Network::HTTP::Compression::Active#uncompress_body is deprecated.'))
|
26
28
|
return Zlib::Inflate.new.inflate(response.body)
|
27
29
|
when nil, 'identity'
|
28
30
|
return response.body
|
@@ -32,6 +34,7 @@ module Puppet::Network::HTTP::Compression
|
|
32
34
|
end
|
33
35
|
|
34
36
|
def uncompress(response)
|
37
|
+
Puppet.deprecation_warning(_('Puppet::Network::HTTP::Compression::Active#uncompress is deprecated.'))
|
35
38
|
raise Net::HTTPError.new("No block passed", response) unless block_given?
|
36
39
|
|
37
40
|
case response['content-encoding']
|
@@ -71,6 +74,7 @@ module Puppet::Network::HTTP::Compression
|
|
71
74
|
end
|
72
75
|
|
73
76
|
def uncompress(chunk)
|
77
|
+
Puppet.deprecation_warning(_('Puppet::Network::HTTP::Compression::ZlibAdapter#uncompress is deprecated.'))
|
74
78
|
out = @uncompressor.inflate(chunk)
|
75
79
|
@first = false
|
76
80
|
return out
|
@@ -97,6 +101,7 @@ module Puppet::Network::HTTP::Compression
|
|
97
101
|
|
98
102
|
module None
|
99
103
|
def uncompress_body(response)
|
104
|
+
Puppet.deprecation_warning(_('Puppet::Network::HTTP::Compression::None#uncompress_body is deprecated.'))
|
100
105
|
response.body
|
101
106
|
end
|
102
107
|
|
@@ -105,12 +110,14 @@ module Puppet::Network::HTTP::Compression
|
|
105
110
|
end
|
106
111
|
|
107
112
|
def uncompress(response)
|
113
|
+
Puppet.deprecation_warning(_('Puppet::Network::HTTP::Compression::None#uncompress is deprecated.'))
|
108
114
|
yield IdentityAdapter.new
|
109
115
|
end
|
110
116
|
end
|
111
117
|
|
112
118
|
class IdentityAdapter
|
113
119
|
def uncompress(chunk)
|
120
|
+
Puppet.deprecation_warning(_('Puppet::Network::HTTP::Compression::IdentityAdapter#uncompress is deprecated.'))
|
114
121
|
chunk
|
115
122
|
end
|
116
123
|
|
@@ -343,6 +343,8 @@ module Puppet::Network::HTTP
|
|
343
343
|
end
|
344
344
|
|
345
345
|
def with_connection(site, &block)
|
346
|
+
Puppet.deprecation_warning(_('Puppet::Network::HTTP::Connection is deprecated. Please use Puppet::Network::HTTP::ConnectionAdapter instead.'))
|
347
|
+
|
346
348
|
response = nil
|
347
349
|
@pool.with_connection(site, @verifier) do |conn|
|
348
350
|
response = yield conn
|
@@ -0,0 +1,184 @@
|
|
1
|
+
class Puppet::Network::HTTP::ConnectionAdapter < Puppet::Network::HTTP::Connection
|
2
|
+
def initialize(host, port, options = {})
|
3
|
+
super(host, port, options)
|
4
|
+
|
5
|
+
@client = Puppet.runtime[:http]
|
6
|
+
end
|
7
|
+
|
8
|
+
def get(path, headers = {}, options = {})
|
9
|
+
headers ||= {}
|
10
|
+
options[:ssl_context] ||= resolve_ssl_context
|
11
|
+
options[:redirect_limit] ||= @redirect_limit
|
12
|
+
|
13
|
+
with_error_handling do
|
14
|
+
resp = @client.get(to_url(path), headers: headers, options: options)
|
15
|
+
resp.nethttp
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
def post(path, data, headers = nil, options = {})
|
20
|
+
headers ||= {}
|
21
|
+
headers['Content-Type'] ||= "application/x-www-form-urlencoded"
|
22
|
+
data ||= ''
|
23
|
+
options[:ssl_context] ||= resolve_ssl_context
|
24
|
+
options[:redirect_limit] ||= @redirect_limit
|
25
|
+
|
26
|
+
with_error_handling do
|
27
|
+
resp = @client.post(to_url(path), data, headers: headers, options: options)
|
28
|
+
resp.nethttp
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
def head(path, headers = {}, options = {})
|
33
|
+
headers ||= {}
|
34
|
+
options[:ssl_context] ||= resolve_ssl_context
|
35
|
+
options[:redirect_limit] ||= @redirect_limit
|
36
|
+
|
37
|
+
with_error_handling do
|
38
|
+
resp = @client.head(to_url(path), headers: headers, options: options)
|
39
|
+
resp.nethttp
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
def delete(path, headers = {'Depth' => 'Infinity'}, options = {})
|
44
|
+
headers ||= {}
|
45
|
+
options[:ssl_context] ||= resolve_ssl_context
|
46
|
+
options[:redirect_limit] ||= @redirect_limit
|
47
|
+
|
48
|
+
with_error_handling do
|
49
|
+
resp = @client.delete(to_url(path), headers: headers, options: options)
|
50
|
+
resp.nethttp
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
54
|
+
def put(path, data, headers = nil, options = {})
|
55
|
+
headers ||= {}
|
56
|
+
headers['Content-Type'] ||= "application/x-www-form-urlencoded"
|
57
|
+
data ||= ''
|
58
|
+
options[:ssl_context] ||= resolve_ssl_context
|
59
|
+
options[:redirect_limit] ||= @redirect_limit
|
60
|
+
|
61
|
+
with_error_handling do
|
62
|
+
resp = @client.put(to_url(path), data, headers: headers, options: options)
|
63
|
+
resp.nethttp
|
64
|
+
end
|
65
|
+
end
|
66
|
+
|
67
|
+
def request_get(*args, &block)
|
68
|
+
path, headers = *args
|
69
|
+
headers ||= {}
|
70
|
+
options = {
|
71
|
+
ssl_context: resolve_ssl_context,
|
72
|
+
redirect_limit: @redirect_limit
|
73
|
+
}
|
74
|
+
|
75
|
+
resp = @client.get(to_url(path), headers: headers, options: options) do |response|
|
76
|
+
yield response.nethttp if block_given?
|
77
|
+
end
|
78
|
+
resp.nethttp
|
79
|
+
end
|
80
|
+
|
81
|
+
def request_head(*args, &block)
|
82
|
+
path, headers = *args
|
83
|
+
headers ||= {}
|
84
|
+
options = {
|
85
|
+
ssl_context: resolve_ssl_context,
|
86
|
+
redirect_limit: @redirect_limit
|
87
|
+
}
|
88
|
+
|
89
|
+
response = @client.head(to_url(path), headers: headers, options: options)
|
90
|
+
yield response.nethttp if block_given?
|
91
|
+
response.nethttp
|
92
|
+
end
|
93
|
+
|
94
|
+
def request_post(*args, &block)
|
95
|
+
path, data, headers = *args
|
96
|
+
headers ||= {}
|
97
|
+
headers['Content-Type'] ||= "application/x-www-form-urlencoded"
|
98
|
+
options = {
|
99
|
+
ssl_context: resolve_ssl_context,
|
100
|
+
redirect_limit: @redirect_limit
|
101
|
+
}
|
102
|
+
|
103
|
+
resp = @client.post(to_url(path), data, headers: headers, options: options) do |response|
|
104
|
+
yield response.nethttp if block_given?
|
105
|
+
end
|
106
|
+
resp.nethttp
|
107
|
+
end
|
108
|
+
|
109
|
+
private
|
110
|
+
|
111
|
+
# The old Connection class ignores the ssl_context on the Puppet stack,
|
112
|
+
# and always loads certs/keys based on what is currently in the filesystem.
|
113
|
+
# If the files are missing, it would attempt to bootstrap the certs/keys
|
114
|
+
# while in the process of making a network request, due to the call to
|
115
|
+
# Puppet.lookup(:ssl_host) in Puppet::SSL::Validator::DefaultValidator#setup_connection.
|
116
|
+
# This class doesn't preserve the boostrap behavior because that is handled
|
117
|
+
# outside of this class, and can only be triggered by running `puppet ssl` or
|
118
|
+
# `puppet agent`.
|
119
|
+
def resolve_ssl_context
|
120
|
+
# don't need an ssl context for http connections
|
121
|
+
return nil unless @site.use_ssl?
|
122
|
+
|
123
|
+
# if our verifier has an ssl_context, use that
|
124
|
+
ctx = @verifier.ssl_context
|
125
|
+
return ctx if ctx
|
126
|
+
|
127
|
+
# load available certs
|
128
|
+
cert = Puppet::X509::CertProvider.new
|
129
|
+
ssl = Puppet::SSL::SSLProvider.new
|
130
|
+
begin
|
131
|
+
password = cert.load_private_key_password
|
132
|
+
ssl.load_context(certname: Puppet[:certname], password: password)
|
133
|
+
rescue Puppet::SSL::SSLError => e
|
134
|
+
Puppet.log_exception(e)
|
135
|
+
|
136
|
+
# if we don't have cacerts, then create a root context that doesn't
|
137
|
+
# trust anything. The old code used to fallback to VERIFY_NONE,
|
138
|
+
# which we don't want to emulate.
|
139
|
+
ssl.create_root_context(cacerts: [])
|
140
|
+
end
|
141
|
+
end
|
142
|
+
|
143
|
+
def to_url(path)
|
144
|
+
if path =~ /^https?:\/\//
|
145
|
+
# The old Connection class accepts a URL as the request path, and sends
|
146
|
+
# it in "absolute-form" in the request line, e.g. GET https://puppet:8140/.
|
147
|
+
# See https://httpwg.org/specs/rfc7230.html#absolute-form. It just so happens
|
148
|
+
# to work because HTTP 1.1 servers are required to accept absolute-form even
|
149
|
+
# though clients are only supposed to send them to proxies, so the proxy knows
|
150
|
+
# what upstream server to CONNECT to. This method creates a URL using the
|
151
|
+
# scheme/host/port that the connection was created with, and appends the path
|
152
|
+
# and query portions of the absolute-form. The resulting request will use "origin-form"
|
153
|
+
# as it should have done all along.
|
154
|
+
abs_form = URI(path)
|
155
|
+
url = URI("#{@site.addr}/#{normalize_path(abs_form.path)}")
|
156
|
+
url.query = abs_form.query if abs_form.query
|
157
|
+
url
|
158
|
+
else
|
159
|
+
URI("#{@site.addr}/#{normalize_path(path)}")
|
160
|
+
end
|
161
|
+
end
|
162
|
+
|
163
|
+
def normalize_path(path)
|
164
|
+
if path[0] == '/'
|
165
|
+
path[1..-1]
|
166
|
+
else
|
167
|
+
path
|
168
|
+
end
|
169
|
+
end
|
170
|
+
|
171
|
+
def with_error_handling(&block)
|
172
|
+
yield
|
173
|
+
rescue Puppet::HTTP::TooManyRedirects => e
|
174
|
+
raise Puppet::Network::HTTP::RedirectionLimitExceededException.new(_("Too many HTTP redirections for %{host}:%{port}") % { host: @host, port: @port }, e)
|
175
|
+
rescue Puppet::HTTP::HTTPError => e
|
176
|
+
Puppet.log_exception(e, e.message)
|
177
|
+
case e.cause
|
178
|
+
when Net::OpenTimeout, Net::ReadTimeout, Net::HTTPError, EOFError
|
179
|
+
raise e.cause
|
180
|
+
else
|
181
|
+
raise e
|
182
|
+
end
|
183
|
+
end
|
184
|
+
end
|
@@ -3,6 +3,7 @@
|
|
3
3
|
# @api private
|
4
4
|
class Puppet::Network::HTTP::NoCachePool < Puppet::Network::HTTP::BasePool
|
5
5
|
def initialize(factory = Puppet::Network::HTTP::Factory.new)
|
6
|
+
Puppet.deprecation_warning(_('Puppet::Network::HTTP::NoCachePool is deprecated.'))
|
6
7
|
@factory = factory
|
7
8
|
end
|
8
9
|
|
@@ -67,11 +67,11 @@ class Puppet::Network::HTTP::Route
|
|
67
67
|
end
|
68
68
|
|
69
69
|
def matches?(request)
|
70
|
-
Puppet.debug
|
70
|
+
Puppet.debug { "Evaluating match for #{self.inspect}" }
|
71
71
|
if match(request.routing_path)
|
72
72
|
return true
|
73
73
|
else
|
74
|
-
Puppet.debug
|
74
|
+
Puppet.debug { "Did not match path (#{request.routing_path.inspect})" }
|
75
75
|
end
|
76
76
|
return false
|
77
77
|
end
|
@@ -1,4 +1,5 @@
|
|
1
1
|
require 'puppet/network/http/connection'
|
2
|
+
require 'puppet/network/http/connection_adapter'
|
2
3
|
require 'puppet/util/platform'
|
3
4
|
|
4
5
|
module Puppet::Network; end
|
@@ -12,14 +13,13 @@ module Puppet::Network; end
|
|
12
13
|
#
|
13
14
|
module Puppet::Network::HttpPool
|
14
15
|
|
15
|
-
@http_client_class = Puppet::Network::HTTP::
|
16
|
+
@http_client_class = Puppet::Network::HTTP::ConnectionAdapter
|
16
17
|
|
17
18
|
def self.http_client_class
|
18
19
|
@http_client_class
|
19
20
|
end
|
20
21
|
def self.http_client_class=(klass)
|
21
22
|
@http_client_class = klass
|
22
|
-
Puppet.runtime['http'] = Puppet::HTTP::ExternalClient.new(klass)
|
23
23
|
end
|
24
24
|
|
25
25
|
# Retrieve a connection for the given host and port.
|
@@ -266,7 +266,7 @@ class Puppet::Node::Environment
|
|
266
266
|
# @param name [String] The module name
|
267
267
|
# @return [Puppet::Module, nil] The module if found, else nil
|
268
268
|
def module(name)
|
269
|
-
|
269
|
+
modules_by_name[name]
|
270
270
|
end
|
271
271
|
|
272
272
|
# Locate a module instance by the full forge name (EG authorname/module)
|
@@ -298,7 +298,7 @@ class Puppet::Node::Environment
|
|
298
298
|
if @modules.nil?
|
299
299
|
module_references = []
|
300
300
|
project = Puppet.lookup(:bolt_project) { nil }
|
301
|
-
seen_modules = if project
|
301
|
+
seen_modules = if project && project.load_as_module?
|
302
302
|
module_references << project.to_h
|
303
303
|
{ project.name => true }
|
304
304
|
else
|
@@ -327,6 +327,12 @@ class Puppet::Node::Environment
|
|
327
327
|
@modules
|
328
328
|
end
|
329
329
|
|
330
|
+
# @api private
|
331
|
+
def modules_by_name
|
332
|
+
@modules_by_name ||= Hash[modules.map { |mod| [mod.name, mod] }]
|
333
|
+
end
|
334
|
+
private :modules_by_name
|
335
|
+
|
330
336
|
# Generate a warning if the given directory in a module path entry is named `lib`.
|
331
337
|
#
|
332
338
|
# @api private
|
@@ -335,9 +341,10 @@ class Puppet::Node::Environment
|
|
335
341
|
# @param name [String] The directory name
|
336
342
|
def warn_about_mistaken_path(path, name)
|
337
343
|
if name == "lib"
|
338
|
-
Puppet.debug
|
339
|
-
|
340
|
-
|
344
|
+
Puppet.debug {
|
345
|
+
"Warning: Found directory named 'lib' in module path ('#{path}/lib'); unless you \
|
346
|
+
are expecting to load a module named 'lib', your module path may be set incorrectly."
|
347
|
+
}
|
341
348
|
end
|
342
349
|
end
|
343
350
|
|
data/lib/puppet/node/facts.rb
CHANGED
@@ -116,8 +116,25 @@ class Puppet::Node::Facts
|
|
116
116
|
@timestamp = Time.now
|
117
117
|
end
|
118
118
|
|
119
|
+
def to_yaml
|
120
|
+
facts_to_display = Psych.parse_stream(YAML.dump(self))
|
121
|
+
quote_special_strings(facts_to_display)
|
122
|
+
end
|
123
|
+
|
119
124
|
private
|
120
125
|
|
126
|
+
def quote_special_strings(fact_hash)
|
127
|
+
fact_hash.grep(Psych::Nodes::Scalar).each do |node|
|
128
|
+
next unless node.value =~ /:/
|
129
|
+
|
130
|
+
node.plain = false
|
131
|
+
node.quoted = true
|
132
|
+
node.style = Psych::Nodes::Scalar::DOUBLE_QUOTED
|
133
|
+
end
|
134
|
+
|
135
|
+
fact_hash.yaml
|
136
|
+
end
|
137
|
+
|
121
138
|
def sanitize_fact(fact)
|
122
139
|
if fact.is_a? Hash then
|
123
140
|
ret = {}
|
@@ -97,6 +97,11 @@ module Pal
|
|
97
97
|
internal_compiler.evaluate_additions
|
98
98
|
end
|
99
99
|
|
100
|
+
# Attempts to evaluate AST for node defnintions https://puppet.com/docs/puppet/latest/lang_node_definitions.html
|
101
|
+
# if there are any.
|
102
|
+
def evaluate_ast_node
|
103
|
+
internal_compiler.evaluate_ast_node
|
104
|
+
end
|
100
105
|
end
|
101
106
|
|
102
107
|
end
|
data/lib/puppet/pal/pal_impl.rb
CHANGED
@@ -49,6 +49,7 @@ module Pal
|
|
49
49
|
# If given at the environment level, the facts given here are merged with higher priority.
|
50
50
|
# @param variables [Hash] optional map of fully qualified variable name to value. If given at the environment level, the variables
|
51
51
|
# given here are merged with higher priority.
|
52
|
+
# @param set_local_facts [Boolean] when true, the $facts, $server_facts, and $trusted variables are set for the scope.
|
52
53
|
# @param block [Proc] the block performing operations on compiler
|
53
54
|
# @return [Object] what the block returns
|
54
55
|
# @yieldparam [Puppet::Pal::ScriptCompiler] compiler, a ScriptCompiler to perform operations on.
|
@@ -59,6 +60,7 @@ module Pal
|
|
59
60
|
code_string: nil,
|
60
61
|
facts: nil,
|
61
62
|
variables: nil,
|
63
|
+
set_local_facts: true,
|
62
64
|
&block
|
63
65
|
)
|
64
66
|
# TRANSLATORS: do not translate variable name strings in these assertions
|
@@ -91,7 +93,7 @@ module Pal
|
|
91
93
|
|
92
94
|
# If manifest_file is nil, the #main method will use the env configured manifest
|
93
95
|
# to do things in the block while a Script Compiler is in effect
|
94
|
-
main(manifest_file, facts, variables, :script, &block)
|
96
|
+
main(manifest_file, facts, variables, :script, set_local_facts, &block)
|
95
97
|
ensure
|
96
98
|
Puppet[:tasks] = previous_tasks_value
|
97
99
|
Puppet[:code] = previous_code_value
|
@@ -191,7 +193,7 @@ module Pal
|
|
191
193
|
|
192
194
|
# If manifest_file is nil, the #main method will use the env configured manifest
|
193
195
|
# to do things in the block while a Script Compiler is in effect
|
194
|
-
main(manifest_file, facts, variables, :catalog, &block)
|
196
|
+
main(manifest_file, facts, variables, :catalog, false, &block)
|
195
197
|
ensure
|
196
198
|
# Clean up after ourselves
|
197
199
|
Puppet[:tasks] = previous_tasks_value
|
@@ -379,7 +381,13 @@ module Pal
|
|
379
381
|
# Picks up information from the puppet context and configures a script compiler which is given to
|
380
382
|
# the provided block
|
381
383
|
#
|
382
|
-
def self.main(
|
384
|
+
def self.main(
|
385
|
+
manifest,
|
386
|
+
facts,
|
387
|
+
variables,
|
388
|
+
internal_compiler_class,
|
389
|
+
set_local_facts
|
390
|
+
)
|
383
391
|
# Configure the load path
|
384
392
|
env = Puppet.lookup(:pal_env)
|
385
393
|
env.each_plugin_directory do |dir|
|
@@ -424,7 +432,6 @@ module Pal
|
|
424
432
|
begin
|
425
433
|
node.sanitize()
|
426
434
|
compiler = create_internal_compiler(internal_compiler_class, node)
|
427
|
-
add_variables(compiler.topscope, pal_variables)
|
428
435
|
|
429
436
|
case internal_compiler_class
|
430
437
|
when :script
|
@@ -435,11 +442,31 @@ module Pal
|
|
435
442
|
overrides[:pal_catalog_compiler] = overrides[:pal_compiler] = pal_compiler
|
436
443
|
end
|
437
444
|
|
445
|
+
# When scripting the trusted data are always local; default is to set them anyway
|
446
|
+
# When compiling for a catalog, the catalog compiler does this
|
447
|
+
if set_local_facts
|
448
|
+
compiler.topscope.set_trusted(node.trusted_data)
|
449
|
+
|
450
|
+
# Server facts are always about the local node's version etc.
|
451
|
+
compiler.topscope.set_server_facts(node.server_facts)
|
452
|
+
|
453
|
+
# Set $facts for the node running the script
|
454
|
+
facts_hash = node.facts.nil? ? {} : node.facts.values
|
455
|
+
compiler.topscope.set_facts(facts_hash)
|
456
|
+
|
457
|
+
# create the $settings:: variables
|
458
|
+
compiler.topscope.merge_settings(node.environment.name, false)
|
459
|
+
end
|
460
|
+
|
438
461
|
# Make compiler available to Puppet#lookup and injection in functions
|
439
462
|
# TODO: The compiler instances should be available under non PAL use as well!
|
440
463
|
# TRANSLATORS: Do not translate, symbolic name
|
441
464
|
Puppet.override(overrides, "PAL::with_#{internal_compiler_class}_compiler") do
|
442
465
|
compiler.compile do | compiler_yield |
|
466
|
+
# In case the varaibles passed to the compiler are PCore types defined in modules, they
|
467
|
+
# need to be deserialized and added from within the this scope, so that loaders are
|
468
|
+
# available during deserizlization.
|
469
|
+
add_variables(compiler.topscope, Puppet::Pops::Serialization::FromDataConverter.convert(pal_variables))
|
443
470
|
# wrap the internal compiler to prevent it from leaking in the PAL API
|
444
471
|
if block_given?
|
445
472
|
yield(pal_compiler)
|