puppet 6.16.0-x64-mingw32 → 6.20.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 -16
- data/Gemfile +6 -2
- data/Gemfile.lock +40 -36
- data/README.md +3 -4
- data/Rakefile +4 -12
- data/lib/puppet/agent.rb +2 -2
- data/lib/puppet/agent/locker.rb +0 -7
- data/lib/puppet/application.rb +10 -6
- data/lib/puppet/application/agent.rb +23 -6
- data/lib/puppet/application/apply.rb +20 -21
- data/lib/puppet/application/device.rb +1 -0
- data/lib/puppet/application/doc.rb +1 -1
- data/lib/puppet/application/filebucket.rb +2 -2
- data/lib/puppet/application/lookup.rb +16 -4
- data/lib/puppet/application/script.rb +1 -0
- data/lib/puppet/application_support.rb +7 -0
- data/lib/puppet/configurer.rb +70 -20
- 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/defaults.rb +113 -46
- data/lib/puppet/environments.rb +84 -59
- data/lib/puppet/face/catalog.rb +1 -1
- data/lib/puppet/face/config.rb +56 -16
- data/lib/puppet/face/epp.rb +12 -2
- data/lib/puppet/face/facts.rb +60 -0
- data/lib/puppet/face/node.rb +3 -3
- data/lib/puppet/face/node/clean.rb +2 -2
- data/lib/puppet/face/status.rb +1 -1
- data/lib/puppet/feature/base.rb +1 -1
- data/lib/puppet/ffi/posix.rb +10 -0
- data/lib/puppet/ffi/posix/constants.rb +14 -0
- data/lib/puppet/ffi/posix/functions.rb +24 -0
- data/lib/puppet/file_bucket/dipper.rb +1 -1
- data/lib/puppet/file_serving/http_metadata.rb +13 -1
- 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 +8 -16
- data/lib/puppet/forge.rb +1 -1
- data/lib/puppet/forge/cache.rb +1 -1
- data/lib/puppet/forge/repository.rb +3 -7
- data/lib/puppet/functions/epp.rb +1 -0
- data/lib/puppet/functions/inline_epp.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 +6 -1
- 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/fact_search.rb +60 -0
- data/lib/puppet/indirector/facts/facter.rb +3 -3
- data/lib/puppet/indirector/facts/json.rb +27 -0
- data/lib/puppet/indirector/facts/yaml.rb +4 -59
- data/lib/puppet/indirector/file_content/rest.rb +1 -1
- data/lib/puppet/indirector/file_metadata/http.rb +25 -5
- 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 +5 -1
- data/lib/puppet/indirector/msgpack.rb +1 -1
- data/lib/puppet/indirector/node/json.rb +8 -0
- data/lib/puppet/indirector/report/json.rb +34 -0
- data/lib/puppet/indirector/report/processor.rb +2 -2
- data/lib/puppet/indirector/request.rb +5 -5
- data/lib/puppet/indirector/yaml.rb +1 -1
- data/lib/puppet/module.rb +1 -2
- data/lib/puppet/module_tool/applications/installer.rb +48 -2
- data/lib/puppet/module_tool/errors/shared.rb +17 -2
- data/lib/puppet/network/format_support.rb +2 -2
- data/lib/puppet/network/formats.rb +2 -1
- 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/connection_adapter.rb +6 -4
- data/lib/puppet/network/http/route.rb +2 -2
- data/lib/puppet/node/environment.rb +12 -5
- data/lib/puppet/node/facts.rb +17 -0
- data/lib/puppet/pal/pal_impl.rb +90 -13
- data/lib/puppet/parameter.rb +1 -1
- data/lib/puppet/parser/ast/leaf.rb +7 -6
- data/lib/puppet/parser/ast/pops_bridge.rb +0 -4
- data/lib/puppet/parser/compiler.rb +1 -1
- 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/resource.rb +3 -2
- data/lib/puppet/parser/resource/param.rb +6 -0
- data/lib/puppet/parser/templatewrapper.rb +1 -1
- 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/deferred_resolver.rb +5 -3
- data/lib/puppet/pops/evaluator/evaluator_impl.rb +27 -8
- 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/model/ast_transformer.rb +1 -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/apt.rb +38 -0
- data/lib/puppet/provider/package/aptitude.rb +1 -1
- data/lib/puppet/provider/package/dpkg.rb +1 -1
- data/lib/puppet/provider/package/gem.rb +4 -2
- data/lib/puppet/provider/package/pip2.rb +17 -0
- 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 +2 -1
- data/lib/puppet/provider/package/zypper.rb +3 -0
- data/lib/puppet/provider/service/windows.rb +23 -7
- data/lib/puppet/provider/user/aix.rb +3 -3
- data/lib/puppet/provider/user/user_role_add.rb +1 -1
- data/lib/puppet/provider/user/useradd.rb +11 -4
- data/lib/puppet/provider/user/windows_adsi.rb +18 -1
- data/lib/puppet/reference/configuration.rb +6 -5
- data/lib/puppet/reports/http.rb +2 -0
- 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/settings.rb +63 -21
- data/lib/puppet/settings/alias_setting.rb +37 -0
- data/lib/puppet/settings/base_setting.rb +26 -2
- data/lib/puppet/ssl/ssl_context.rb +2 -2
- data/lib/puppet/ssl/ssl_provider.rb +20 -1
- data/lib/puppet/ssl/validator/default_validator.rb +1 -1
- data/lib/puppet/test/test_helper.rb +18 -13
- 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 +32 -12
- data/lib/puppet/type/filebucket.rb +1 -1
- data/lib/puppet/type/notify.rb +2 -2
- data/lib/puppet/type/service.rb +53 -0
- data/lib/puppet/type/user.rb +18 -3
- data/lib/puppet/util.rb +41 -3
- data/lib/puppet/util/autoload.rb +10 -15
- 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/fact_dif.rb +62 -0
- data/lib/puppet/util/fileparsing.rb +2 -2
- data/lib/puppet/util/posix.rb +54 -5
- data/lib/puppet/util/provider_features.rb +1 -1
- data/lib/puppet/util/reference.rb +1 -1
- data/lib/puppet/util/rubygems.rb +5 -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 +501 -443
- data/man/man5/puppet.conf.5 +70 -24
- data/man/man8/puppet-agent.8 +8 -5
- data/man/man8/puppet-apply.8 +2 -2
- 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 +2 -2
- data/man/man8/puppet-doc.8 +1 -1
- data/man/man8/puppet-epp.8 +1 -1
- data/man/man8/puppet-facts.8 +32 -1
- data/man/man8/puppet-filebucket.8 +3 -3
- data/man/man8/puppet-generate.8 +1 -1
- data/man/man8/puppet-help.8 +1 -1
- 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 +1 -1
- data/man/man8/puppet-node.8 +7 -4
- data/man/man8/puppet-parser.8 +1 -1
- data/man/man8/puppet-plugin.8 +1 -1
- data/man/man8/puppet-report.8 +4 -1
- data/man/man8/puppet-resource.8 +1 -1
- data/man/man8/puppet-script.8 +2 -2
- 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/agent/cached_deferred_catalog.json +91 -0
- 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/puppetserver_gem/gem-list-local-packages +30 -0
- data/spec/fixtures/unit/provider/user/aix/aix_passwd_file.out +4 -0
- data/spec/integration/application/agent_spec.rb +263 -54
- data/spec/integration/application/apply_spec.rb +168 -149
- 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 +53 -3
- data/spec/integration/configurer_spec.rb +14 -0
- data/spec/integration/data_binding_spec.rb +82 -0
- data/spec/integration/defaults_spec.rb +20 -3
- data/spec/integration/directory_environments_spec.rb +17 -17
- data/spec/integration/environments/setting_hooks_spec.rb +1 -1
- data/spec/integration/indirector/facts/facter_spec.rb +8 -6
- data/spec/integration/network/http_pool_spec.rb +26 -9
- data/spec/integration/node/environment_spec.rb +1 -1
- data/spec/integration/parser/compiler_spec.rb +11 -0
- data/spec/integration/resource/type_collection_spec.rb +2 -6
- data/spec/integration/transaction_spec.rb +4 -9
- 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 +5 -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 -17
- data/spec/integration/util/windows/user_spec.rb +47 -5
- data/spec/integration/util_spec.rb +7 -33
- data/spec/lib/puppet_spec/matchers.rb +0 -80
- data/spec/lib/puppet_spec/puppetserver.rb +8 -0
- data/spec/lib/puppet_spec/settings.rb +6 -1
- data/spec/shared_contexts/types_setup.rb +2 -0
- data/spec/spec_helper.rb +1 -4
- data/spec/unit/agent_spec.rb +8 -6
- data/spec/unit/application/agent_spec.rb +3 -5
- data/spec/unit/application/config_spec.rb +224 -4
- 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 +0 -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 +60 -13
- 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/feature_spec.rb +1 -1
- data/spec/unit/confine_spec.rb +10 -3
- data/spec/unit/context/trusted_information_spec.rb +10 -4
- data/spec/unit/defaults_spec.rb +20 -1
- data/spec/unit/environments_spec.rb +176 -32
- data/spec/unit/face/config_spec.rb +65 -12
- data/spec/unit/face/node_spec.rb +2 -13
- data/spec/unit/file_serving/configuration/parser_spec.rb +0 -1
- data/spec/unit/file_serving/http_metadata_spec.rb +37 -14
- data/spec/unit/file_serving/metadata_spec.rb +3 -3
- 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_helper_spec.rb +11 -4
- data/spec/unit/file_serving/terminus_selector_spec.rb +45 -26
- data/spec/unit/file_system/uniquefile_spec.rb +18 -0
- data/spec/unit/file_system_spec.rb +1 -2
- data/spec/unit/forge/module_release_spec.rb +2 -7
- data/spec/unit/functions/inline_epp_spec.rb +26 -1
- data/spec/unit/http/client_spec.rb +64 -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 +51 -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 +1 -2
- data/spec/unit/http/session_spec.rb +8 -21
- data/spec/unit/indirector/catalog/json_spec.rb +1 -1
- data/spec/unit/indirector/catalog/rest_spec.rb +1 -1
- data/spec/unit/indirector/face_spec.rb +0 -1
- data/spec/unit/indirector/facts/facter_spec.rb +0 -1
- data/spec/unit/indirector/facts/json_spec.rb +255 -0
- data/spec/unit/indirector/facts/rest_spec.rb +1 -1
- data/spec/unit/indirector/file_bucket_file/selector_spec.rb +26 -8
- data/spec/unit/indirector/file_metadata/http_spec.rb +27 -0
- data/spec/unit/indirector/indirection_spec.rb +8 -12
- data/spec/unit/indirector/json_spec.rb +8 -8
- data/spec/unit/indirector/key/file_spec.rb +0 -1
- data/spec/unit/indirector/msgpack_spec.rb +8 -8
- data/spec/unit/indirector/node/json_spec.rb +33 -0
- data/spec/unit/indirector/node/rest_spec.rb +1 -1
- data/spec/{integration/indirector/report/yaml.rb → unit/indirector/report/json_spec.rb} +13 -24
- data/spec/unit/indirector/report/yaml_spec.rb +72 -8
- data/spec/unit/indirector/request_spec.rb +5 -5
- data/spec/unit/indirector/rest_spec.rb +1 -1
- data/spec/unit/indirector/status/rest_spec.rb +1 -1
- data/spec/unit/indirector/yaml_spec.rb +7 -7
- data/spec/unit/indirector_spec.rb +2 -2
- data/spec/unit/interface_spec.rb +3 -3
- data/spec/unit/module_tool/applications/installer_spec.rb +66 -0
- data/spec/unit/module_tool/tar/mini_spec.rb +20 -0
- data/spec/unit/network/authconfig_spec.rb +0 -3
- data/spec/unit/network/format_support_spec.rb +3 -2
- data/spec/unit/network/http/api/indirected_routes_spec.rb +2 -10
- data/spec/unit/network/http/api/master/v3/environments_spec.rb +12 -23
- data/spec/unit/network/http/connection_spec.rb +42 -32
- data/spec/unit/network/http/handler_spec.rb +0 -5
- data/spec/unit/node/environment_spec.rb +18 -1
- data/spec/unit/parser/ast/block_expression_spec.rb +1 -1
- data/spec/unit/parser/compiler_spec.rb +3 -19
- data/spec/unit/parser/environment_compiler_spec.rb +7 -0
- data/spec/unit/parser/resource_spec.rb +14 -8
- data/spec/unit/parser/scope_spec.rb +1 -1
- data/spec/unit/parser/templatewrapper_spec.rb +4 -3
- data/spec/unit/pops/evaluator/deferred_resolver_spec.rb +20 -0
- 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/property_spec.rb +1 -0
- data/spec/unit/provider/exec_spec.rb +4 -3
- data/spec/unit/provider/nameservice_spec.rb +66 -65
- data/spec/unit/provider/package/apt_spec.rb +76 -3
- data/spec/unit/provider/package/aptitude_spec.rb +1 -0
- data/spec/unit/provider/package/base_spec.rb +6 -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/pacman_spec.rb +18 -12
- data/spec/unit/provider/package/pip2_spec.rb +36 -0
- data/spec/unit/provider/package/pip_spec.rb +6 -11
- data/spec/unit/provider/package/pkgdmg_spec.rb +0 -4
- 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 +31 -0
- data/spec/unit/provider/package/zypper_spec.rb +14 -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 +45 -5
- data/spec/unit/provider/service/launchd_spec.rb +5 -6
- data/spec/unit/provider/service/openrc_spec.rb +4 -5
- data/spec/unit/provider/service/openwrt_spec.rb +1 -1
- data/spec/unit/provider/service/redhat_spec.rb +1 -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 +3 -6
- 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/aix_spec.rb +5 -0
- data/spec/unit/provider/user/hpux_spec.rb +1 -1
- data/spec/unit/provider/user/openbsd_spec.rb +1 -0
- data/spec/unit/provider/user/pw_spec.rb +2 -0
- data/spec/unit/provider/user/useradd_spec.rb +23 -16
- data/spec/unit/provider/user/windows_adsi_spec.rb +82 -0
- data/spec/unit/provider_spec.rb +8 -10
- data/spec/unit/puppet_pal_2pec.rb +40 -0
- data/spec/unit/puppet_pal_catalog_spec.rb +45 -0
- data/spec/unit/reports/store_spec.rb +17 -13
- data/spec/unit/resource/capability_finder_spec.rb +6 -1
- data/spec/unit/resource/type_spec.rb +1 -1
- data/spec/unit/resource_spec.rb +14 -13
- data/spec/unit/rest/route_spec.rb +4 -4
- data/spec/unit/settings_spec.rb +576 -239
- data/spec/unit/ssl/base_spec.rb +0 -1
- data/spec/unit/ssl/host_spec.rb +0 -5
- data/spec/unit/ssl/ssl_provider_spec.rb +82 -50
- data/spec/unit/test/test_helper_spec.rb +17 -0
- data/spec/unit/transaction/additional_resource_generator_spec.rb +3 -7
- data/spec/unit/transaction/event_manager_spec.rb +14 -11
- data/spec/unit/transaction/persistence_spec.rb +15 -0
- data/spec/unit/transaction/report_spec.rb +3 -1
- data/spec/unit/transaction_spec.rb +13 -4
- data/spec/unit/type/file/content_spec.rb +0 -1
- data/spec/unit/type/file/selinux_spec.rb +0 -2
- data/spec/unit/type/file/source_spec.rb +4 -4
- data/spec/unit/type/file_spec.rb +122 -102
- data/spec/unit/type/filebucket_spec.rb +1 -1
- data/spec/unit/type/group_spec.rb +13 -6
- data/spec/unit/type/resources_spec.rb +7 -7
- data/spec/unit/type/service_spec.rb +210 -1
- data/spec/unit/type/tidy_spec.rb +0 -1
- data/spec/unit/type/user_spec.rb +31 -2
- data/spec/unit/type_spec.rb +52 -2
- data/spec/unit/util/at_fork_spec.rb +2 -2
- data/spec/unit/util/autoload_spec.rb +5 -1
- data/spec/unit/util/backups_spec.rb +1 -2
- 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/execution_spec.rb +15 -11
- data/spec/unit/util/inifile_spec.rb +6 -14
- data/spec/unit/util/log_spec.rb +8 -7
- data/spec/unit/util/logging_spec.rb +3 -3
- data/spec/unit/util/posix_spec.rb +363 -15
- data/spec/unit/util/rubygems_spec.rb +2 -2
- data/spec/unit/util/run_mode_spec.rb +6 -6
- data/spec/unit/util/selinux_spec.rb +76 -52
- data/spec/unit/util/storage_spec.rb +3 -1
- data/spec/unit/util/suidmanager_spec.rb +44 -41
- 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 +16 -9
- data/spec/unit/x509/cert_provider_spec.rb +1 -1
- metadata +52 -53
- 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/catalog_spec.rb +0 -6
- data/spec/unit/face/man_spec.rb +0 -25
- data/spec/unit/face/module_spec.rb +0 -3
- data/spec/unit/man_spec.rb +0 -31
@@ -448,7 +448,7 @@ class Puppet::Parser::Compiler
|
|
448
448
|
# using the top scope.
|
449
449
|
def newscope(parent, options = {})
|
450
450
|
parent ||= topscope
|
451
|
-
scope = Puppet::Parser::Scope.new(self, options)
|
451
|
+
scope = Puppet::Parser::Scope.new(self, **options)
|
452
452
|
scope.parent = parent
|
453
453
|
scope
|
454
454
|
end
|
@@ -1,6 +1,8 @@
|
|
1
1
|
class Puppet::Parser::Compiler
|
2
2
|
# Validator that asserts that all capability resources that are referenced by 'consume' or 'require' has
|
3
3
|
# been exported by some other resource in the environment
|
4
|
+
#
|
5
|
+
# @deprecated application orchestration will be removed in puppet 7
|
4
6
|
class CatalogValidator::EnvironmentRelationshipValidator < CatalogValidator
|
5
7
|
|
6
8
|
def validate
|
@@ -1,5 +1,7 @@
|
|
1
1
|
class Puppet::Parser::Compiler
|
2
2
|
# Validator that asserts that only application components can appear inside a site.
|
3
|
+
#
|
4
|
+
# @deprecated application orchestration will be removed in puppet 7
|
3
5
|
class CatalogValidator::SiteValidator < CatalogValidator
|
4
6
|
def self.validation_stage?(stage)
|
5
7
|
PRE_FINISH.equal?(stage)
|
@@ -1,5 +1,6 @@
|
|
1
1
|
require 'puppet/parser/compiler'
|
2
2
|
|
3
|
+
# @deprecated application orchestration will be removed in puppet 7
|
3
4
|
class Puppet::Parser::EnvironmentCompiler < Puppet::Parser::Compiler
|
4
5
|
def self.compile(env, code_id=nil)
|
5
6
|
begin
|
@@ -16,7 +17,7 @@ class Puppet::Parser::EnvironmentCompiler < Puppet::Parser::Compiler
|
|
16
17
|
end
|
17
18
|
|
18
19
|
def initialize(node, options = {})
|
19
|
-
super
|
20
|
+
super(node, **options)
|
20
21
|
@overridden_functions = {}
|
21
22
|
end
|
22
23
|
|
@@ -54,6 +55,8 @@ class Puppet::Parser::EnvironmentCompiler < Puppet::Parser::Compiler
|
|
54
55
|
end
|
55
56
|
|
56
57
|
def compile
|
58
|
+
Puppet.deprecation_warning("Application orchestration is deprecated. See https://puppet.com/docs/puppet/5.5/deprecated_language.html")
|
59
|
+
|
57
60
|
add_function_overrides
|
58
61
|
begin
|
59
62
|
Puppet.override(@context_overrides, _("For compiling environment catalog %{env}") % { env: environment.name }) do
|
@@ -77,6 +77,26 @@ module Puppet::Parser::Functions
|
|
77
77
|
# @api private
|
78
78
|
class AnonymousModuleAdapter < Puppet::Pops::Adaptable::Adapter
|
79
79
|
attr_accessor :module
|
80
|
+
|
81
|
+
def self.create_adapter(env)
|
82
|
+
adapter = super(env)
|
83
|
+
adapter.module = Module.new do
|
84
|
+
@metadata = {}
|
85
|
+
|
86
|
+
def self.all_function_info
|
87
|
+
@metadata
|
88
|
+
end
|
89
|
+
|
90
|
+
def self.get_function_info(name)
|
91
|
+
@metadata[name]
|
92
|
+
end
|
93
|
+
|
94
|
+
def self.add_function_info(name, info)
|
95
|
+
@metadata[name] = info
|
96
|
+
end
|
97
|
+
end
|
98
|
+
adapter
|
99
|
+
end
|
80
100
|
end
|
81
101
|
|
82
102
|
@environment_module_lock = Puppet::Concurrent::Lock.new
|
@@ -87,23 +107,7 @@ module Puppet::Parser::Functions
|
|
87
107
|
# @api private
|
88
108
|
def self.environment_module(env)
|
89
109
|
@environment_module_lock.synchronize do
|
90
|
-
AnonymousModuleAdapter.adapt(env)
|
91
|
-
a.module ||= Module.new do
|
92
|
-
@metadata = {}
|
93
|
-
|
94
|
-
def self.all_function_info
|
95
|
-
@metadata
|
96
|
-
end
|
97
|
-
|
98
|
-
def self.get_function_info(name)
|
99
|
-
@metadata[name]
|
100
|
-
end
|
101
|
-
|
102
|
-
def self.add_function_info(name, info)
|
103
|
-
@metadata[name] = info
|
104
|
-
end
|
105
|
-
end
|
106
|
-
end.module
|
110
|
+
AnonymousModuleAdapter.adapt(env).module
|
107
111
|
end
|
108
112
|
end
|
109
113
|
|
@@ -1,5 +1,9 @@
|
|
1
1
|
Puppet::Parser::Functions::newfunction(:create_resources, :arity => -3, :doc => <<-'ENDHEREDOC') do |args|
|
2
2
|
Converts a hash into a set of resources and adds them to the catalog.
|
3
|
+
|
4
|
+
**Note**: Use this function selectively. It's generally better to write resources in
|
5
|
+
[Puppet](https://puppet.com/docs/puppet/latest/lang_resources.html), as
|
6
|
+
resources created with `create_resource` are difficult to read and troubleshoot.
|
3
7
|
|
4
8
|
This function takes two mandatory arguments: a resource type, and a hash describing
|
5
9
|
a set of resources. The hash should be in the form `{title => {parameters} }`:
|
@@ -33,7 +37,7 @@ Puppet::Parser::Functions::newfunction(:create_resources, :arity => -3, :doc =>
|
|
33
37
|
as native resources.
|
34
38
|
|
35
39
|
Virtual and Exported resources may be created by prefixing the type name
|
36
|
-
with @ or @@ respectively.
|
40
|
+
with @ or @@ respectively. For example, the $myusers hash may be exported
|
37
41
|
in the following manner:
|
38
42
|
|
39
43
|
create_resources("@@user", $myusers)
|
@@ -42,9 +46,9 @@ Puppet::Parser::Functions::newfunction(:create_resources, :arity => -3, :doc =>
|
|
42
46
|
|
43
47
|
create_resources("@user", $myusers)
|
44
48
|
|
45
|
-
Note that `create_resources`
|
46
|
-
data binding and
|
47
|
-
final value of a parameter (just as when setting a parameter to `undef` in a
|
49
|
+
Note that `create_resources` filters out parameter values that are `undef` so that normal
|
50
|
+
data binding and Puppet default value expressions are considered (in that order) for the
|
51
|
+
final value of a parameter (just as when setting a parameter to `undef` in a Puppet language
|
48
52
|
resource declaration).
|
49
53
|
ENDHEREDOC
|
50
54
|
if Puppet[:tasks]
|
@@ -63,9 +67,9 @@ Puppet::Parser::Functions::newfunction(:create_resources, :arity => -3, :doc =>
|
|
63
67
|
defaults ||= {}
|
64
68
|
type_name = type.sub(/^@{1,2}/, '').downcase
|
65
69
|
|
66
|
-
# Get file/line information from the
|
67
|
-
# If relayed via other
|
68
|
-
# will be in the original
|
70
|
+
# Get file/line information from the Puppet stack (where call comes from in Puppet source)
|
71
|
+
# If relayed via other Puppet functions in ruby that do not nest their calls, the source position
|
72
|
+
# will be in the original Puppet source.
|
69
73
|
#
|
70
74
|
file, line = Puppet::Pops::PuppetStack.top_of_stack
|
71
75
|
|
@@ -338,10 +338,11 @@ class Puppet::Parser::Resource < Puppet::Resource
|
|
338
338
|
end
|
339
339
|
|
340
340
|
def replace_sensitive_data
|
341
|
-
parameters.
|
341
|
+
parameters.keys.each do |name|
|
342
|
+
param = parameters[name]
|
342
343
|
if param.value.is_a?(Puppet::Pops::Types::PSensitiveType::Sensitive)
|
343
344
|
@sensitive_parameters << name
|
344
|
-
|
345
|
+
parameters[name] = Puppet::Parser::Resource::Param.from_param(param, param.value.unwrap)
|
345
346
|
end
|
346
347
|
end
|
347
348
|
end
|
@@ -50,7 +50,7 @@ class Puppet::Parser::TemplateWrapper
|
|
50
50
|
# @return [Array<String>] The tags defined in the current scope
|
51
51
|
# @api public
|
52
52
|
def tags
|
53
|
-
|
53
|
+
raise NotImplementedError, "Call 'all_tags' instead."
|
54
54
|
end
|
55
55
|
|
56
56
|
# @return [Array<String>] All the defined tags
|
@@ -81,7 +81,7 @@ class Puppet::Parser::TypeLoader
|
|
81
81
|
end
|
82
82
|
|
83
83
|
def parse_file(file)
|
84
|
-
Puppet.debug
|
84
|
+
Puppet.debug { "importing '#{file}' in environment #{environment}" }
|
85
85
|
parser = Puppet::Parser::ParserFactory.parser
|
86
86
|
parser.file = file
|
87
87
|
return parser.parse
|
@@ -118,7 +118,7 @@ class Puppet::Parser::TypeLoader
|
|
118
118
|
# still be parsed. Mark this file as loaded so that
|
119
119
|
# it would not be parsed next time (handle it as if
|
120
120
|
# it was successfully parsed).
|
121
|
-
Puppet.debug
|
121
|
+
Puppet.debug { "Unable to parse '#{file}': #{e.message}" }
|
122
122
|
end
|
123
123
|
else
|
124
124
|
loaded_asts << parse_file(file)
|
@@ -69,11 +69,7 @@ module Adaptable
|
|
69
69
|
#
|
70
70
|
def self.get(o)
|
71
71
|
attr_name = self_attr_name
|
72
|
-
|
73
|
-
o.instance_variable_get(attr_name)
|
74
|
-
else
|
75
|
-
nil
|
76
|
-
end
|
72
|
+
o.instance_variable_get(attr_name)
|
77
73
|
end
|
78
74
|
|
79
75
|
# Returns an existing adapter for the given object, or creates a new adapter if the
|
@@ -94,14 +90,13 @@ module Adaptable
|
|
94
90
|
#
|
95
91
|
def self.adapt(o, &block)
|
96
92
|
attr_name = self_attr_name
|
97
|
-
value = o.instance_variable_get(attr_name)
|
93
|
+
value = o.instance_variable_get(attr_name)
|
98
94
|
adapter = value || associate_adapter(create_adapter(o), o)
|
99
95
|
if block_given?
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
block.call(adapter, o)
|
96
|
+
if block.arity == 1
|
97
|
+
block.call(adapter)
|
98
|
+
else
|
99
|
+
block.call(adapter, o)
|
105
100
|
end
|
106
101
|
end
|
107
102
|
adapter
|
@@ -127,8 +122,7 @@ module Adaptable
|
|
127
122
|
def self.adapt_new(o, &block)
|
128
123
|
adapter = associate_adapter(create_adapter(o), o)
|
129
124
|
if block_given?
|
130
|
-
|
131
|
-
when 1
|
125
|
+
if block.arity == 1
|
132
126
|
block.call(adapter)
|
133
127
|
else
|
134
128
|
block.call(adapter, o)
|
data/lib/puppet/pops/adapters.rb
CHANGED
@@ -99,6 +99,13 @@ module Adapters
|
|
99
99
|
|
100
100
|
class PathsAndNameCacheAdapter < Puppet::Pops::Adaptable::Adapter
|
101
101
|
attr_accessor :cache, :paths
|
102
|
+
|
103
|
+
def self.create_adapter(env)
|
104
|
+
adapter = super(env)
|
105
|
+
adapter.paths = env.modulepath.map { |p| Pathname.new(p) }
|
106
|
+
adapter.cache = {}
|
107
|
+
adapter
|
108
|
+
end
|
102
109
|
end
|
103
110
|
|
104
111
|
# Attempts to find the module that `instance` originates from by looking at it's {SourcePosAdapter} and
|
@@ -117,10 +124,7 @@ module Adapters
|
|
117
124
|
def self.loader_name_by_source(environment, instance, file)
|
118
125
|
file = instance.file if file.nil?
|
119
126
|
return nil if file.nil? || EMPTY_STRING == file
|
120
|
-
pn_adapter = PathsAndNameCacheAdapter.adapt(environment)
|
121
|
-
a.paths ||= environment.modulepath.map { |p| Pathname.new(p) }
|
122
|
-
a.cache ||= {}
|
123
|
-
end
|
127
|
+
pn_adapter = PathsAndNameCacheAdapter.adapt(environment)
|
124
128
|
dir = File.dirname(file)
|
125
129
|
pn_adapter.cache.fetch(dir) do |key|
|
126
130
|
mod = find_module_for_dir(environment, pn_adapter.paths, dir)
|
@@ -45,9 +45,7 @@ class Puppet::Pops::Evaluator::Collectors::AbstractCollector
|
|
45
45
|
return false if objects.empty?
|
46
46
|
|
47
47
|
if @overrides and !objects.empty?
|
48
|
-
overrides[:source].
|
49
|
-
true
|
50
|
-
end
|
48
|
+
overrides[:source].override = true
|
51
49
|
|
52
50
|
objects.each do |res|
|
53
51
|
unless @collected.include?(res.ref)
|
@@ -16,10 +16,12 @@ class DeferredResolver
|
|
16
16
|
#
|
17
17
|
# @param facts [Puppet::Node::Facts] the facts object for the node
|
18
18
|
# @param catalog [Puppet::Resource::Catalog] the catalog where all deferred values should be replaced
|
19
|
+
# @param environment [Puppet::Node::Environment] the environment whose anonymous module methods
|
20
|
+
# are to be mixed into the scope
|
19
21
|
# @return [nil] does not return anything - the catalog is modified as a side effect
|
20
22
|
#
|
21
|
-
def self.resolve_and_replace(facts, catalog)
|
22
|
-
compiler = Puppet::Parser::ScriptCompiler.new(
|
23
|
+
def self.resolve_and_replace(facts, catalog, environment = catalog.environment_instance)
|
24
|
+
compiler = Puppet::Parser::ScriptCompiler.new(environment, catalog.name, true)
|
23
25
|
resolver = new(compiler)
|
24
26
|
resolver.set_facts_variable(facts)
|
25
27
|
# TODO:
|
@@ -108,7 +110,7 @@ class DeferredResolver
|
|
108
110
|
# If any of the arguments to a future is a future it needs to be resolved first
|
109
111
|
func_name = f.name
|
110
112
|
mapped_arguments = map_arguments(f.arguments)
|
111
|
-
# if name starts with $ then this is a call to dig
|
113
|
+
# if name starts with $ then this is a call to dig
|
112
114
|
if func_name[0] == DOLLAR
|
113
115
|
var_name = func_name[1..-1]
|
114
116
|
func_name = DIG
|
@@ -462,10 +462,24 @@ class EvaluatorImpl
|
|
462
462
|
end
|
463
463
|
|
464
464
|
def eval_EppExpression(o, scope)
|
465
|
+
contains_sensitive = false
|
466
|
+
|
465
467
|
scope["@epp"] = []
|
466
468
|
evaluate(o.body, scope)
|
467
|
-
result = scope["@epp"].
|
468
|
-
|
469
|
+
result = scope["@epp"].map do |r|
|
470
|
+
if r.instance_of?(Puppet::Pops::Types::PSensitiveType::Sensitive)
|
471
|
+
contains_sensitive = true
|
472
|
+
string(r.unwrap, scope)
|
473
|
+
else
|
474
|
+
r
|
475
|
+
end
|
476
|
+
end.join
|
477
|
+
|
478
|
+
if contains_sensitive
|
479
|
+
Puppet::Pops::Types::PSensitiveType::Sensitive.new(result)
|
480
|
+
else
|
481
|
+
result
|
482
|
+
end
|
469
483
|
end
|
470
484
|
|
471
485
|
def eval_RenderStringExpression(o, scope)
|
@@ -474,7 +488,12 @@ class EvaluatorImpl
|
|
474
488
|
end
|
475
489
|
|
476
490
|
def eval_RenderExpression(o, scope)
|
477
|
-
|
491
|
+
result = evaluate(o.expr, scope)
|
492
|
+
if result.instance_of?(Puppet::Pops::Types::PSensitiveType::Sensitive)
|
493
|
+
scope["@epp"] << result
|
494
|
+
else
|
495
|
+
scope["@epp"] << string(result, scope)
|
496
|
+
end
|
478
497
|
nil
|
479
498
|
end
|
480
499
|
|
@@ -876,11 +895,11 @@ class EvaluatorImpl
|
|
876
895
|
def eval_ApplyExpression(o, scope)
|
877
896
|
# All expressions are wrapped in an ApplyBlockExpression so we can identify the contents of
|
878
897
|
# that block. However we don't want to serialize the block expression, so unwrap here.
|
879
|
-
body = if o.body.statements.count
|
880
|
-
|
881
|
-
|
882
|
-
|
883
|
-
|
898
|
+
body = if o.body.statements.count == 1
|
899
|
+
o.body.statements[0]
|
900
|
+
else
|
901
|
+
Model::BlockExpression.from_asserted_hash(o.body._pcore_init_hash)
|
902
|
+
end
|
884
903
|
|
885
904
|
Puppet.lookup(:apply_executor).apply(unfold([], o.arguments, scope), body, scope)
|
886
905
|
end
|
@@ -79,9 +79,9 @@ class Runtime3Converter
|
|
79
79
|
|
80
80
|
def convert_String(o, scope, undef_value)
|
81
81
|
# Although wasteful, a dup is needed because user code may mutate these strings when applying
|
82
|
-
# Resources. This does not happen when in
|
82
|
+
# Resources. This does not happen when in server mode since it only uses Resources that are
|
83
83
|
# in puppet core and those are all safe.
|
84
|
-
o.frozen? && !Puppet.run_mode.
|
84
|
+
o.frozen? && !Puppet.run_mode.server? ? o.dup : o
|
85
85
|
end
|
86
86
|
|
87
87
|
def convert_Object(o, scope, undef_value)
|
data/lib/puppet/pops/issues.rb
CHANGED
@@ -920,5 +920,10 @@ module Issues
|
|
920
920
|
LOADER_FAILURE = issue :LOADER_FAILURE, :type do
|
921
921
|
_('Failed to load: %{type_name}') % { type: type }
|
922
922
|
end
|
923
|
+
|
924
|
+
DEPRECATED_APP_ORCHESTRATION = issue :DEPRECATED_APP_ORCHESTRATION, :klass do
|
925
|
+
_("Use of the application-orchestration %{expr} is deprecated. See https://puppet.com/docs/puppet/5.5/deprecated_language.html" % { expr: label(klass) })
|
926
|
+
end
|
927
|
+
|
923
928
|
end
|
924
929
|
end
|
@@ -7,10 +7,12 @@ module Loader
|
|
7
7
|
#
|
8
8
|
# @api private
|
9
9
|
class Runtime3TypeLoader < BaseLoader
|
10
|
-
|
10
|
+
attr_reader :resource_3x_loader
|
11
|
+
|
12
|
+
def initialize(parent_loader, loaders, environment, resource_3x_loader)
|
11
13
|
super(parent_loader, environment.name)
|
12
14
|
@environment = environment
|
13
|
-
@resource_3x_loader =
|
15
|
+
@resource_3x_loader = resource_3x_loader
|
14
16
|
end
|
15
17
|
|
16
18
|
def discover(type, error_collector = nil, name_authority = Pcore::RUNTIME_NAME_AUTHORITY, &block)
|
data/lib/puppet/pops/loaders.rb
CHANGED
@@ -18,18 +18,18 @@ class Loaders
|
|
18
18
|
attr_reader :private_environment_loader
|
19
19
|
attr_reader :environment
|
20
20
|
|
21
|
-
def self.new(environment, for_agent = false)
|
21
|
+
def self.new(environment, for_agent = false, load_from_pcore = true)
|
22
22
|
environment.lock.synchronize do
|
23
23
|
obj = environment.loaders
|
24
24
|
if obj.nil?
|
25
25
|
obj = self.allocate
|
26
|
-
obj.send(:initialize, environment, for_agent)
|
26
|
+
obj.send(:initialize, environment, for_agent, load_from_pcore)
|
27
27
|
end
|
28
28
|
obj
|
29
29
|
end
|
30
30
|
end
|
31
31
|
|
32
|
-
def initialize(environment, for_agent)
|
32
|
+
def initialize(environment, for_agent, load_from_pcore = true)
|
33
33
|
# Protect against environment havoc
|
34
34
|
raise ArgumentError.new(_("Attempt to redefine already initialized loaders for environment")) unless environment.loaders.nil?
|
35
35
|
environment.loaders = self
|
@@ -51,12 +51,13 @@ class Loaders
|
|
51
51
|
# TODO: loaders need to work when also running in an agent doing catalog application. There is no
|
52
52
|
# concept of environment the same way as when running as a master (except when doing apply).
|
53
53
|
# The creation mechanisms should probably differ between the two.
|
54
|
-
@private_environment_loader =
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
54
|
+
@private_environment_loader =
|
55
|
+
if for_agent
|
56
|
+
@puppet_cache_loader = create_puppet_cache_loader
|
57
|
+
create_environment_loader(environment, @puppet_cache_loader, load_from_pcore)
|
58
|
+
else
|
59
|
+
create_environment_loader(environment, @puppet_system_loader, load_from_pcore)
|
60
|
+
end
|
60
61
|
|
61
62
|
Pcore.init_env(@private_environment_loader)
|
62
63
|
|
@@ -362,7 +363,7 @@ class Loaders
|
|
362
363
|
Loader::ModuleLoaders.cached_loader_from(puppet_system_loader, self)
|
363
364
|
end
|
364
365
|
|
365
|
-
def create_environment_loader(environment, parent_loader)
|
366
|
+
def create_environment_loader(environment, parent_loader, load_from_pcore = true)
|
366
367
|
# This defines where to start parsing/evaluating - the "initial import" (to use 3x terminology)
|
367
368
|
# Is either a reference to a single .pp file, or a directory of manifests. If the environment becomes
|
368
369
|
# a module and can hold functions, types etc. then these are available across all other modules without
|
@@ -387,7 +388,13 @@ class Loaders
|
|
387
388
|
else
|
388
389
|
# Create the 3.x resource type loader
|
389
390
|
static_loader.runtime_3_init
|
390
|
-
|
391
|
+
# Create pcore resource type loader, if applicable
|
392
|
+
pcore_resource_type_loader = if load_from_pcore && env_path
|
393
|
+
Loader::ModuleLoaders.pcore_resource_type_loader_from(parent_loader, self, env_path)
|
394
|
+
else
|
395
|
+
nil
|
396
|
+
end
|
397
|
+
@runtime3_type_loader = add_loader_by_name(Loader::Runtime3TypeLoader.new(parent_loader, self, environment, pcore_resource_type_loader))
|
391
398
|
|
392
399
|
if env_path.nil?
|
393
400
|
# Not a real directory environment, cannot work as a module TODO: Drop when legacy env are dropped?
|