puppet 8.5.0-universal-darwin → 8.6.0-universal-darwin
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/Gemfile.lock +29 -26
- data/ext/windows/service/daemon.rb +49 -55
- data/lib/hiera/scope.rb +3 -3
- data/lib/hiera_puppet.rb +1 -1
- data/lib/puppet/agent/disabler.rb +1 -1
- data/lib/puppet/application/agent.rb +2 -2
- data/lib/puppet/application/apply.rb +2 -2
- data/lib/puppet/application/describe.rb +6 -6
- data/lib/puppet/application/device.rb +99 -100
- data/lib/puppet/application/doc.rb +1 -1
- data/lib/puppet/application/face_base.rb +7 -7
- data/lib/puppet/application/filebucket.rb +1 -1
- data/lib/puppet/application/lookup.rb +5 -5
- data/lib/puppet/application/resource.rb +10 -3
- data/lib/puppet/application/ssl.rb +3 -3
- data/lib/puppet/application.rb +16 -18
- data/lib/puppet/coercion.rb +1 -1
- data/lib/puppet/configurer/downloader.rb +9 -4
- data/lib/puppet/configurer/fact_handler.rb +12 -13
- data/lib/puppet/configurer.rb +16 -18
- data/lib/puppet/confine/feature.rb +1 -1
- data/lib/puppet/confine/variable.rb +1 -1
- data/lib/puppet/confine.rb +2 -2
- data/lib/puppet/confine_collection.rb +1 -1
- data/lib/puppet/confiner.rb +2 -2
- data/lib/puppet/daemon.rb +3 -3
- data/lib/puppet/datatypes.rb +5 -6
- data/lib/puppet/defaults.rb +14 -8
- data/lib/puppet/environments.rb +3 -7
- data/lib/puppet/error.rb +3 -3
- data/lib/puppet/external/dot.rb +42 -34
- data/lib/puppet/face/catalog/select.rb +1 -1
- data/lib/puppet/face/epp.rb +7 -9
- data/lib/puppet/face/help.rb +12 -12
- data/lib/puppet/face/module/changes.rb +1 -3
- data/lib/puppet/face/module/list.rb +37 -37
- data/lib/puppet/face/node/clean.rb +1 -1
- data/lib/puppet/face/parser.rb +6 -8
- data/lib/puppet/face/report.rb +5 -7
- data/lib/puppet/facter_impl.rb +1 -1
- data/lib/puppet/feature/base.rb +9 -11
- data/lib/puppet/feature/pe_license.rb +1 -1
- data/lib/puppet/feature/ssh.rb +1 -1
- data/lib/puppet/feature/telnet.rb +3 -5
- data/lib/puppet/feature/zlib.rb +1 -1
- data/lib/puppet/ffi/windows/constants.rb +1 -1
- data/lib/puppet/ffi/windows/functions.rb +2 -2
- data/lib/puppet/ffi/windows/structs.rb +3 -3
- data/lib/puppet/file_bucket/dipper.rb +4 -4
- data/lib/puppet/file_bucket/file.rb +4 -4
- data/lib/puppet/file_serving/base.rb +5 -5
- data/lib/puppet/file_serving/configuration/parser.rb +9 -9
- data/lib/puppet/file_serving/configuration.rb +3 -3
- data/lib/puppet/file_serving/fileset.rb +13 -13
- data/lib/puppet/file_serving/http_metadata.rb +1 -1
- data/lib/puppet/file_serving/metadata.rb +13 -9
- data/lib/puppet/file_serving/mount/file.rb +6 -6
- data/lib/puppet/file_serving/mount/locales.rb +2 -4
- data/lib/puppet/file_serving/mount/pluginfacts.rb +2 -4
- data/lib/puppet/file_serving/mount/plugins.rb +2 -4
- data/lib/puppet/file_serving/mount.rb +1 -1
- data/lib/puppet/file_system/file_impl.rb +3 -3
- data/lib/puppet/file_system/memory_impl.rb +1 -1
- data/lib/puppet/file_system/path_pattern.rb +1 -1
- data/lib/puppet/file_system/uniquefile.rb +17 -16
- data/lib/puppet/file_system/windows.rb +26 -18
- data/lib/puppet/forge/cache.rb +2 -2
- data/lib/puppet/forge/errors.rb +1 -1
- data/lib/puppet/forge/repository.rb +2 -2
- data/lib/puppet/forge.rb +13 -19
- data/lib/puppet/functions/abs.rb +2 -2
- data/lib/puppet/functions/camelcase.rb +1 -1
- data/lib/puppet/functions/compare.rb +2 -2
- data/lib/puppet/functions/contain.rb +1 -1
- data/lib/puppet/functions/defined.rb +2 -2
- data/lib/puppet/functions/dig.rb +1 -1
- data/lib/puppet/functions/eyaml_lookup_key.rb +11 -13
- data/lib/puppet/functions/get.rb +1 -1
- data/lib/puppet/functions/hocon_data.rb +3 -5
- data/lib/puppet/functions/import.rb +1 -1
- data/lib/puppet/functions/json_data.rb +4 -6
- data/lib/puppet/functions/max.rb +2 -2
- data/lib/puppet/functions/min.rb +2 -2
- data/lib/puppet/functions/new.rb +1 -1
- data/lib/puppet/functions/reduce.rb +6 -10
- data/lib/puppet/functions/regsubst.rb +2 -2
- data/lib/puppet/functions/require.rb +1 -1
- data/lib/puppet/functions/yaml_data.rb +11 -13
- data/lib/puppet/functions.rb +32 -37
- data/lib/puppet/generate/type.rb +2 -2
- data/lib/puppet/gettext/config.rb +9 -9
- data/lib/puppet/graph/rb_tree_map.rb +31 -23
- data/lib/puppet/graph/relationship_graph.rb +12 -12
- data/lib/puppet/graph/simple_graph.rb +8 -10
- data/lib/puppet/http/client.rb +1 -1
- data/lib/puppet/http/dns.rb +4 -4
- data/lib/puppet/http/external_client.rb +1 -1
- data/lib/puppet/http/factory.rb +1 -1
- data/lib/puppet/http/proxy.rb +15 -15
- data/lib/puppet/http/redirector.rb +6 -2
- data/lib/puppet/http/resolver.rb +2 -2
- data/lib/puppet/http/retry_after_handler.rb +2 -2
- data/lib/puppet/http/service/ca.rb +1 -1
- data/lib/puppet/http/service/compiler.rb +4 -4
- data/lib/puppet/http/service/file_server.rb +1 -1
- data/lib/puppet/http/service/report.rb +2 -2
- data/lib/puppet/http/service.rb +9 -13
- data/lib/puppet/http/session.rb +1 -1
- data/lib/puppet/http/site.rb +1 -1
- data/lib/puppet/indirector/catalog/compiler.rb +44 -45
- data/lib/puppet/indirector/catalog/rest.rb +7 -5
- data/lib/puppet/indirector/catalog/store_configs.rb +1 -1
- data/lib/puppet/indirector/exec.rb +2 -2
- data/lib/puppet/indirector/face.rb +7 -9
- data/lib/puppet/indirector/fact_search.rb +1 -1
- data/lib/puppet/indirector/facts/facter.rb +6 -6
- data/lib/puppet/indirector/facts/json.rb +1 -1
- data/lib/puppet/indirector/facts/store_configs.rb +1 -1
- data/lib/puppet/indirector/file_bucket_file/file.rb +17 -17
- data/lib/puppet/indirector/file_bucket_file/rest.rb +3 -3
- data/lib/puppet/indirector/file_content/rest.rb +1 -1
- data/lib/puppet/indirector/file_metadata/rest.rb +1 -1
- data/lib/puppet/indirector/hiera.rb +1 -1
- data/lib/puppet/indirector/indirection.rb +27 -29
- data/lib/puppet/indirector/json.rb +4 -4
- data/lib/puppet/indirector/memory.rb +2 -2
- data/lib/puppet/indirector/msgpack.rb +5 -5
- data/lib/puppet/indirector/node/store_configs.rb +1 -1
- data/lib/puppet/indirector/none.rb +1 -1
- data/lib/puppet/indirector/report/json.rb +1 -1
- data/lib/puppet/indirector/report/yaml.rb +1 -1
- data/lib/puppet/indirector/request.rb +4 -4
- data/lib/puppet/indirector/resource/ral.rb +2 -4
- data/lib/puppet/indirector/resource/store_configs.rb +1 -1
- data/lib/puppet/indirector/terminus.rb +4 -4
- data/lib/puppet/indirector/yaml.rb +3 -3
- data/lib/puppet/info_service/class_information_service.rb +5 -8
- data/lib/puppet/info_service/task_information_service.rb +6 -7
- data/lib/puppet/interface/action.rb +5 -5
- data/lib/puppet/interface/action_manager.rb +5 -5
- data/lib/puppet/interface/documentation.rb +5 -5
- data/lib/puppet/interface/face_collection.rb +7 -7
- data/lib/puppet/interface/option.rb +2 -2
- data/lib/puppet/interface/option_manager.rb +6 -6
- data/lib/puppet/interface.rb +4 -4
- data/lib/puppet/metatype/manager.rb +2 -2
- data/lib/puppet/module/plan.rb +10 -10
- data/lib/puppet/module/task.rb +8 -8
- data/lib/puppet/module.rb +39 -41
- data/lib/puppet/module_tool/applications/application.rb +10 -8
- data/lib/puppet/module_tool/applications/installer.rb +53 -50
- data/lib/puppet/module_tool/applications/unpacker.rb +6 -8
- data/lib/puppet/module_tool/applications/upgrader.rb +37 -34
- data/lib/puppet/module_tool/checksums.rb +2 -2
- data/lib/puppet/module_tool/dependency.rb +1 -1
- data/lib/puppet/module_tool/errors/base.rb +1 -1
- data/lib/puppet/module_tool/install_directory.rb +1 -1
- data/lib/puppet/module_tool/local_tarball.rb +3 -5
- data/lib/puppet/module_tool/metadata.rb +12 -8
- data/lib/puppet/module_tool/shared_behaviors.rb +27 -12
- data/lib/puppet/module_tool/tar/mini.rb +3 -3
- data/lib/puppet/module_tool.rb +4 -4
- data/lib/puppet/network/client_request.rb +5 -3
- data/lib/puppet/network/format.rb +2 -2
- data/lib/puppet/network/format_support.rb +1 -1
- data/lib/puppet/network/formats.rb +1 -1
- data/lib/puppet/network/http/api/indirected_routes.rb +24 -44
- data/lib/puppet/network/http/api/server/v3.rb +1 -1
- data/lib/puppet/network/http/connection.rb +1 -1
- data/lib/puppet/network/http/handler.rb +8 -12
- data/lib/puppet/network/http/request.rb +1 -1
- data/lib/puppet/network/http/route.rb +9 -9
- data/lib/puppet/node/environment.rb +21 -23
- data/lib/puppet/node/facts.rb +1 -1
- data/lib/puppet/node.rb +5 -5
- data/lib/puppet/pal/json_catalog_encoder.rb +1 -1
- data/lib/puppet/pal/pal_impl.rb +48 -50
- data/lib/puppet/pal/plan_signature.rb +1 -1
- data/lib/puppet/pal/task_signature.rb +1 -1
- data/lib/puppet/parameter/package_options.rb +1 -1
- data/lib/puppet/parameter/value.rb +2 -2
- data/lib/puppet/parameter/value_collection.rb +7 -7
- data/lib/puppet/parameter.rb +8 -9
- data/lib/puppet/parser/ast/block_expression.rb +2 -2
- data/lib/puppet/parser/ast/hostclass.rb +1 -1
- data/lib/puppet/parser/ast/pops_bridge.rb +3 -4
- data/lib/puppet/parser/ast/resource.rb +4 -4
- data/lib/puppet/parser/ast/resourceparam.rb +4 -4
- data/lib/puppet/parser/ast.rb +14 -15
- data/lib/puppet/parser/compiler.rb +26 -28
- data/lib/puppet/parser/functions/create_resources.rb +3 -3
- data/lib/puppet/parser/functions/fail.rb +1 -1
- data/lib/puppet/parser/functions/generate.rb +2 -2
- data/lib/puppet/parser/functions/tag.rb +1 -1
- data/lib/puppet/parser/functions.rb +2 -2
- data/lib/puppet/parser/relationship.rb +3 -1
- data/lib/puppet/parser/resource/param.rb +2 -2
- data/lib/puppet/parser/resource.rb +23 -23
- data/lib/puppet/parser/scope.rb +10 -10
- data/lib/puppet/parser/script_compiler.rb +1 -1
- data/lib/puppet/parser/templatewrapper.rb +1 -1
- data/lib/puppet/parser/type_loader.rb +10 -12
- data/lib/puppet/parser.rb +1 -1
- data/lib/puppet/pops/adaptable.rb +1 -1
- data/lib/puppet/pops/evaluator/access_operator.rb +8 -8
- data/lib/puppet/pops/evaluator/callable_signature.rb +4 -4
- data/lib/puppet/pops/evaluator/collector_transformer.rb +4 -4
- data/lib/puppet/pops/evaluator/collectors/abstract_collector.rb +7 -7
- data/lib/puppet/pops/evaluator/collectors/fixed_set_collector.rb +6 -6
- data/lib/puppet/pops/evaluator/compare_operator.rb +10 -10
- data/lib/puppet/pops/evaluator/deferred_resolver.rb +1 -1
- data/lib/puppet/pops/evaluator/epp_evaluator.rb +2 -2
- data/lib/puppet/pops/evaluator/evaluator_impl.rb +56 -60
- data/lib/puppet/pops/evaluator/literal_evaluator.rb +4 -0
- data/lib/puppet/pops/evaluator/relationship_operator.rb +2 -2
- data/lib/puppet/pops/evaluator/runtime3_converter.rb +3 -3
- data/lib/puppet/pops/evaluator/runtime3_support.rb +1 -1
- data/lib/puppet/pops/functions/dispatcher.rb +3 -3
- data/lib/puppet/pops/functions/function.rb +14 -16
- data/lib/puppet/pops/issue_reporter.rb +2 -2
- data/lib/puppet/pops/label_provider.rb +2 -2
- data/lib/puppet/pops/loader/dependency_loader.rb +3 -3
- data/lib/puppet/pops/loader/loader.rb +4 -4
- data/lib/puppet/pops/loader/loader_paths.rb +3 -3
- data/lib/puppet/pops/loader/module_loaders.rb +11 -11
- data/lib/puppet/pops/loader/ruby_data_type_instantiator.rb +1 -1
- data/lib/puppet/pops/loader/ruby_function_instantiator.rb +1 -1
- data/lib/puppet/pops/loader/ruby_legacy_function_instantiator.rb +5 -1
- data/lib/puppet/pops/loader/static_loader.rb +3 -3
- data/lib/puppet/pops/loaders.rb +3 -3
- data/lib/puppet/pops/lookup/data_dig_function_provider.rb +1 -1
- data/lib/puppet/pops/lookup/explainer.rb +2 -2
- data/lib/puppet/pops/lookup/global_data_provider.rb +1 -1
- data/lib/puppet/pops/lookup/hiera_config.rb +15 -11
- data/lib/puppet/pops/lookup/interpolation.rb +3 -3
- data/lib/puppet/pops/lookup/key_recorder.rb +1 -1
- data/lib/puppet/pops/lookup/location_resolver.rb +1 -1
- data/lib/puppet/pops/lookup/lookup_adapter.rb +7 -7
- data/lib/puppet/pops/lookup/sub_lookup.rb +1 -1
- data/lib/puppet/pops/merge_strategy.rb +6 -6
- data/lib/puppet/pops/migration/migration_checker.rb +1 -1
- data/lib/puppet/pops/model/ast_transformer.rb +9 -11
- data/lib/puppet/pops/model/factory.rb +4 -5
- data/lib/puppet/pops/parser/epp_parser.rb +2 -2
- data/lib/puppet/pops/parser/epp_support.rb +1 -1
- data/lib/puppet/pops/parser/evaluating_parser.rb +2 -2
- data/lib/puppet/pops/parser/heredoc_support.rb +4 -4
- data/lib/puppet/pops/parser/interpolation_support.rb +3 -3
- data/lib/puppet/pops/parser/lexer2.rb +20 -12
- data/lib/puppet/pops/parser/lexer_support.rb +1 -1
- data/lib/puppet/pops/parser/locator.rb +4 -4
- data/lib/puppet/pops/parser/parser_support.rb +12 -14
- data/lib/puppet/pops/parser/pn_parser.rb +3 -3
- data/lib/puppet/pops/parser/slurp_support.rb +8 -8
- data/lib/puppet/pops/patterns.rb +12 -12
- data/lib/puppet/pops/pcore.rb +1 -1
- data/lib/puppet/pops/pn.rb +2 -2
- data/lib/puppet/pops/puppet_stack.rb +1 -1
- data/lib/puppet/pops/resource/resource_type_impl.rb +1 -1
- data/lib/puppet/pops/serialization/abstract_reader.rb +2 -2
- data/lib/puppet/pops/serialization/abstract_writer.rb +3 -3
- data/lib/puppet/pops/time/timestamp.rb +1 -1
- data/lib/puppet/pops/types/class_loader.rb +4 -6
- data/lib/puppet/pops/types/iterable.rb +1 -1
- data/lib/puppet/pops/types/p_binary_type.rb +1 -1
- data/lib/puppet/pops/types/p_init_type.rb +1 -1
- data/lib/puppet/pops/types/p_object_type.rb +5 -5
- data/lib/puppet/pops/types/p_object_type_extension.rb +4 -6
- data/lib/puppet/pops/types/p_sem_ver_range_type.rb +1 -1
- data/lib/puppet/pops/types/p_sensitive_type.rb +1 -1
- data/lib/puppet/pops/types/p_timespan_type.rb +2 -2
- data/lib/puppet/pops/types/p_type_set_type.rb +10 -10
- data/lib/puppet/pops/types/p_uri_type.rb +4 -4
- data/lib/puppet/pops/types/recursion_guard.rb +4 -4
- data/lib/puppet/pops/types/ruby_generator.rb +2 -2
- data/lib/puppet/pops/types/string_converter.rb +12 -8
- data/lib/puppet/pops/types/tree_iterators.rb +4 -6
- data/lib/puppet/pops/types/type_calculator.rb +10 -10
- data/lib/puppet/pops/types/type_factory.rb +7 -3
- data/lib/puppet/pops/types/type_formatter.rb +22 -24
- data/lib/puppet/pops/types/type_mismatch_describer.rb +24 -24
- data/lib/puppet/pops/types/types.rb +28 -24
- data/lib/puppet/pops/utils.rb +38 -42
- data/lib/puppet/pops/validation/checker4_0.rb +10 -10
- data/lib/puppet/pops/validation/tasks_checker.rb +1 -1
- data/lib/puppet/pops/validation/validator_factory_4_0.rb +2 -0
- data/lib/puppet/pops/validation.rb +4 -4
- data/lib/puppet/pops/visitor.rb +2 -2
- data/lib/puppet/property/ensure.rb +12 -14
- data/lib/puppet/property/keyvalue.rb +4 -4
- data/lib/puppet/property/list.rb +4 -4
- data/lib/puppet/property/ordered_list.rb +1 -1
- data/lib/puppet/property.rb +31 -33
- data/lib/puppet/provider/exec.rb +2 -2
- data/lib/puppet/provider/file/posix.rb +19 -17
- data/lib/puppet/provider/file/windows.rb +13 -19
- data/lib/puppet/provider/group/directoryservice.rb +3 -2
- data/lib/puppet/provider/group/groupadd.rb +4 -4
- data/lib/puppet/provider/group/windows_adsi.rb +2 -2
- data/lib/puppet/provider/nameservice/directoryservice.rb +29 -29
- data/lib/puppet/provider/nameservice/objectadd.rb +2 -4
- data/lib/puppet/provider/nameservice/pw.rb +1 -2
- data/lib/puppet/provider/nameservice.rb +8 -8
- data/lib/puppet/provider/package/aix.rb +19 -19
- data/lib/puppet/provider/package/appdmg.rb +2 -2
- data/lib/puppet/provider/package/apple.rb +1 -1
- data/lib/puppet/provider/package/apt.rb +18 -18
- data/lib/puppet/provider/package/aptitude.rb +1 -3
- data/lib/puppet/provider/package/aptrpm.rb +9 -9
- data/lib/puppet/provider/package/blastwave.rb +10 -14
- data/lib/puppet/provider/package/dnfmodule.rb +3 -3
- data/lib/puppet/provider/package/dpkg.rb +11 -13
- data/lib/puppet/provider/package/fink.rb +14 -14
- data/lib/puppet/provider/package/freebsd.rb +1 -1
- data/lib/puppet/provider/package/gem.rb +12 -14
- data/lib/puppet/provider/package/macports.rb +2 -2
- data/lib/puppet/provider/package/nim.rb +10 -10
- data/lib/puppet/provider/package/openbsd.rb +22 -22
- data/lib/puppet/provider/package/opkg.rb +6 -6
- data/lib/puppet/provider/package/pacman.rb +35 -29
- data/lib/puppet/provider/package/pip.rb +25 -24
- data/lib/puppet/provider/package/pkg.rb +15 -15
- data/lib/puppet/provider/package/pkgdmg.rb +10 -10
- data/lib/puppet/provider/package/pkgin.rb +2 -2
- data/lib/puppet/provider/package/pkgng.rb +5 -5
- data/lib/puppet/provider/package/pkgutil.rb +17 -21
- data/lib/puppet/provider/package/portage.rb +59 -61
- data/lib/puppet/provider/package/ports.rb +12 -11
- data/lib/puppet/provider/package/portupgrade.rb +35 -35
- data/lib/puppet/provider/package/puppetserver_gem.rb +10 -9
- data/lib/puppet/provider/package/rpm.rb +26 -26
- data/lib/puppet/provider/package/rug.rb +7 -9
- data/lib/puppet/provider/package/sun.rb +4 -4
- data/lib/puppet/provider/package/up2date.rb +5 -7
- data/lib/puppet/provider/package/urpmi.rb +6 -6
- data/lib/puppet/provider/package/windows/exe_package.rb +7 -7
- data/lib/puppet/provider/package/windows/msi_package.rb +3 -3
- data/lib/puppet/provider/package/windows/package.rb +2 -2
- data/lib/puppet/provider/package/windows.rb +3 -5
- data/lib/puppet/provider/package/yum.rb +33 -37
- data/lib/puppet/provider/package/zypper.rb +12 -14
- data/lib/puppet/provider/package.rb +1 -1
- data/lib/puppet/provider/package_targetable.rb +1 -1
- data/lib/puppet/provider/parsedfile.rb +9 -9
- data/lib/puppet/provider/service/base.rb +16 -21
- data/lib/puppet/provider/service/bsd.rb +4 -4
- data/lib/puppet/provider/service/daemontools.rb +31 -31
- data/lib/puppet/provider/service/debian.rb +6 -6
- data/lib/puppet/provider/service/freebsd.rb +36 -36
- data/lib/puppet/provider/service/gentoo.rb +6 -6
- data/lib/puppet/provider/service/init.rb +19 -19
- data/lib/puppet/provider/service/launchd.rb +22 -22
- data/lib/puppet/provider/service/openbsd.rb +10 -10
- data/lib/puppet/provider/service/openrc.rb +1 -1
- data/lib/puppet/provider/service/openwrt.rb +3 -3
- data/lib/puppet/provider/service/rcng.rb +3 -3
- data/lib/puppet/provider/service/redhat.rb +4 -4
- data/lib/puppet/provider/service/runit.rb +6 -6
- data/lib/puppet/provider/service/service.rb +5 -7
- data/lib/puppet/provider/service/smf.rb +28 -27
- data/lib/puppet/provider/service/src.rb +7 -7
- data/lib/puppet/provider/service/systemd.rb +31 -37
- data/lib/puppet/provider/service/upstart.rb +17 -17
- data/lib/puppet/provider/service/windows.rb +7 -7
- data/lib/puppet/provider/user/aix.rb +4 -2
- data/lib/puppet/provider/user/directoryservice.rb +34 -36
- data/lib/puppet/provider/user/hpux.rb +10 -14
- data/lib/puppet/provider/user/pw.rb +1 -1
- data/lib/puppet/provider/user/user_role_add.rb +16 -18
- data/lib/puppet/provider/user/useradd.rb +7 -7
- data/lib/puppet/provider/user/windows_adsi.rb +1 -1
- data/lib/puppet/provider.rb +8 -8
- data/lib/puppet/reference/indirection.rb +3 -0
- data/lib/puppet/reference/metaparameter.rb +1 -1
- data/lib/puppet/reference/providers.rb +3 -3
- data/lib/puppet/reference/type.rb +1 -1
- data/lib/puppet/relationship.rb +4 -5
- data/lib/puppet/reports/http.rb +1 -1
- data/lib/puppet/reports/log.rb +2 -2
- data/lib/puppet/reports/store.rb +4 -4
- data/lib/puppet/reports.rb +2 -2
- data/lib/puppet/resource/catalog.rb +16 -16
- data/lib/puppet/resource/status.rb +3 -3
- data/lib/puppet/resource/type.rb +8 -8
- data/lib/puppet/resource/type_collection.rb +1 -1
- data/lib/puppet/resource.rb +41 -41
- data/lib/puppet/scheduler/scheduler.rb +1 -1
- data/lib/puppet/settings/alias_setting.rb +3 -5
- data/lib/puppet/settings/base_setting.rb +11 -11
- data/lib/puppet/settings/boolean_setting.rb +2 -2
- data/lib/puppet/settings/config_file.rb +5 -4
- data/lib/puppet/settings/duration_setting.rb +2 -2
- data/lib/puppet/settings/environment_conf.rb +3 -3
- data/lib/puppet/settings/file_or_directory_setting.rb +2 -2
- data/lib/puppet/settings/file_setting.rb +11 -11
- data/lib/puppet/settings/ini_file.rb +3 -3
- data/lib/puppet/settings/port_setting.rb +1 -1
- data/lib/puppet/settings/priority_setting.rb +2 -2
- data/lib/puppet/settings/ttl_setting.rb +2 -2
- data/lib/puppet/settings/value_translator.rb +8 -8
- data/lib/puppet/settings.rb +65 -70
- data/lib/puppet/ssl/base.rb +2 -4
- data/lib/puppet/ssl/certificate_request.rb +18 -22
- data/lib/puppet/ssl/certificate_request_attributes.rb +3 -3
- data/lib/puppet/ssl/oids.rb +2 -2
- data/lib/puppet/ssl/openssl_loader.rb +4 -4
- data/lib/puppet/syntax_checkers/base64.rb +3 -3
- data/lib/puppet/syntax_checkers/epp.rb +3 -3
- data/lib/puppet/syntax_checkers/json.rb +3 -3
- data/lib/puppet/syntax_checkers/pp.rb +3 -3
- data/lib/puppet/transaction/additional_resource_generator.rb +1 -1
- data/lib/puppet/transaction/event.rb +2 -2
- data/lib/puppet/transaction/event_manager.rb +5 -5
- data/lib/puppet/transaction/persistence.rb +12 -14
- data/lib/puppet/transaction/report.rb +4 -4
- data/lib/puppet/transaction/resource_harness.rb +2 -2
- data/lib/puppet/transaction.rb +14 -18
- data/lib/puppet/type/component.rb +3 -3
- data/lib/puppet/type/exec.rb +43 -45
- data/lib/puppet/type/file/checksum_value.rb +1 -1
- data/lib/puppet/type/file/content.rb +6 -6
- data/lib/puppet/type/file/ctime.rb +2 -2
- data/lib/puppet/type/file/data_sync.rb +3 -3
- data/lib/puppet/type/file/ensure.rb +16 -15
- data/lib/puppet/type/file/mode.rb +9 -9
- data/lib/puppet/type/file/mtime.rb +2 -2
- data/lib/puppet/type/file/selcontext.rb +14 -14
- data/lib/puppet/type/file/source.rb +19 -21
- data/lib/puppet/type/file/target.rb +11 -11
- data/lib/puppet/type/file.rb +21 -21
- data/lib/puppet/type/filebucket.rb +3 -3
- data/lib/puppet/type/group.rb +3 -3
- data/lib/puppet/type/notify.rb +2 -2
- data/lib/puppet/type/package.rb +4 -4
- data/lib/puppet/type/resources.rb +6 -6
- data/lib/puppet/type/schedule.rb +9 -9
- data/lib/puppet/type/service.rb +6 -8
- data/lib/puppet/type/tidy.rb +22 -24
- data/lib/puppet/type/user.rb +13 -13
- data/lib/puppet/type.rb +76 -88
- data/lib/puppet/util/at_fork/solaris.rb +33 -37
- data/lib/puppet/util/autoload.rb +2 -2
- data/lib/puppet/util/backups.rb +9 -9
- data/lib/puppet/util/character_encoding.rb +7 -6
- data/lib/puppet/util/checksums.rb +2 -2
- data/lib/puppet/util/classgen.rb +8 -8
- data/lib/puppet/util/colors.rb +1 -1
- data/lib/puppet/util/command_line/puppet_option_parser.rb +1 -1
- data/lib/puppet/util/command_line/trollop.rb +42 -46
- data/lib/puppet/util/command_line.rb +2 -2
- data/lib/puppet/util/constant_inflector.rb +2 -2
- data/lib/puppet/util/diff.rb +19 -21
- data/lib/puppet/util/docs.rb +2 -2
- data/lib/puppet/util/errors.rb +9 -9
- data/lib/puppet/util/execution.rb +32 -9
- data/lib/puppet/util/feature.rb +1 -1
- data/lib/puppet/util/fileparsing.rb +12 -16
- data/lib/puppet/util/filetype.rb +36 -40
- data/lib/puppet/util/inifile.rb +6 -12
- data/lib/puppet/util/ldap/connection.rb +1 -1
- data/lib/puppet/util/ldap/manager.rb +10 -12
- data/lib/puppet/util/lockfile.rb +6 -8
- data/lib/puppet/util/log/destination.rb +2 -2
- data/lib/puppet/util/log/destinations.rb +4 -4
- data/lib/puppet/util/log.rb +12 -9
- data/lib/puppet/util/logging.rb +11 -11
- data/lib/puppet/util/metric.rb +3 -3
- data/lib/puppet/util/monkey_patches.rb +5 -7
- data/lib/puppet/util/network_device/config.rb +3 -3
- data/lib/puppet/util/package/version/debian.rb +27 -28
- data/lib/puppet/util/package/version/pip.rb +5 -5
- data/lib/puppet/util/package/version/range/eq.rb +1 -1
- data/lib/puppet/util/package/version/rpm.rb +1 -1
- data/lib/puppet/util/package.rb +2 -2
- data/lib/puppet/util/pidlock.rb +2 -2
- data/lib/puppet/util/platform.rb +1 -1
- data/lib/puppet/util/plist.rb +8 -10
- data/lib/puppet/util/posix.rb +17 -17
- data/lib/puppet/util/profiler/aggregate.rb +1 -1
- data/lib/puppet/util/provider_features.rb +3 -3
- data/lib/puppet/util/rdoc/code_objects.rb +3 -3
- data/lib/puppet/util/rdoc/generators/puppet_generator.rb +63 -64
- data/lib/puppet/util/rdoc/generators/template/puppet/puppet.rb +23 -23
- data/lib/puppet/util/rdoc/parser/puppet_parser_core.rb +12 -12
- data/lib/puppet/util/rdoc/parser/puppet_parser_rdoc2.rb +1 -1
- data/lib/puppet/util/rdoc/parser.rb +1 -1
- data/lib/puppet/util/reference.rb +13 -9
- data/lib/puppet/util/retry_action.rb +1 -1
- data/lib/puppet/util/rpm_compare.rb +17 -18
- data/lib/puppet/util/rubygems.rb +1 -1
- data/lib/puppet/util/selinux.rb +7 -7
- data/lib/puppet/util/storage.rb +10 -12
- data/lib/puppet/util/suidmanager.rb +18 -19
- data/lib/puppet/util/symbolic_file_mode.rb +71 -75
- data/lib/puppet/util/tag_set.rb +2 -2
- data/lib/puppet/util/tagging.rb +8 -10
- data/lib/puppet/util/terminal.rb +4 -4
- data/lib/puppet/util/user_attr.rb +7 -7
- data/lib/puppet/util/watcher.rb +3 -5
- data/lib/puppet/util/windows/access_control_list.rb +1 -1
- data/lib/puppet/util/windows/adsi.rb +42 -42
- data/lib/puppet/util/windows/daemon.rb +64 -68
- data/lib/puppet/util/windows/error.rb +2 -2
- data/lib/puppet/util/windows/file.rb +18 -25
- data/lib/puppet/util/windows/monkey_patches/process.rb +1 -1
- data/lib/puppet/util/windows/principal.rb +8 -8
- data/lib/puppet/util/windows/process.rb +16 -28
- data/lib/puppet/util/windows/registry.rb +16 -15
- data/lib/puppet/util/windows/root_certs.rb +2 -2
- data/lib/puppet/util/windows/security.rb +31 -31
- data/lib/puppet/util/windows/service.rb +11 -11
- data/lib/puppet/util/windows/sid.rb +8 -8
- data/lib/puppet/util/windows/user.rb +18 -20
- data/lib/puppet/util/yaml.rb +1 -1
- data/lib/puppet/util.rb +55 -46
- data/lib/puppet/version.rb +2 -2
- data/lib/puppet/x509/pem_store.rb +1 -1
- data/lib/puppet.rb +3 -3
- data/man/man5/puppet.conf.5 +10 -2
- data/man/man8/puppet-agent.8 +1 -1
- data/man/man8/puppet-apply.8 +1 -1
- data/man/man8/puppet-catalog.8 +1 -1
- data/man/man8/puppet-config.8 +1 -1
- data/man/man8/puppet-describe.8 +1 -1
- data/man/man8/puppet-device.8 +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 +1 -1
- data/man/man8/puppet-lookup.8 +1 -1
- data/man/man8/puppet-module.8 +1 -1
- data/man/man8/puppet-node.8 +1 -1
- data/man/man8/puppet-parser.8 +1 -1
- data/man/man8/puppet-plugin.8 +1 -1
- data/man/man8/puppet-report.8 +1 -1
- data/man/man8/puppet-resource.8 +5 -1
- data/man/man8/puppet-script.8 +1 -1
- data/man/man8/puppet-ssl.8 +1 -1
- data/man/man8/puppet.8 +2 -2
- metadata +2 -2
@@ -37,7 +37,7 @@ class Puppet::Parameter::ValueCollection
|
|
37
37
|
@doc << @strings.collect do |value|
|
38
38
|
aliases = value.aliases
|
39
39
|
if aliases && !aliases.empty?
|
40
|
-
"`#{value.name}` (also called `#{aliases.join(
|
40
|
+
"`#{value.name}` (also called `#{aliases.join(', ')}`)"
|
41
41
|
else
|
42
42
|
"`#{value.name}`"
|
43
43
|
end
|
@@ -45,7 +45,7 @@ class Puppet::Parameter::ValueCollection
|
|
45
45
|
end
|
46
46
|
|
47
47
|
unless regexes.empty?
|
48
|
-
@doc << "Values can match `#{regexes.join(
|
48
|
+
@doc << "Values can match `#{regexes.join('`, `')}`."
|
49
49
|
end
|
50
50
|
end
|
51
51
|
|
@@ -103,12 +103,12 @@ class Puppet::Parameter::ValueCollection
|
|
103
103
|
instance = match?(value)
|
104
104
|
if instance
|
105
105
|
if instance.regex?
|
106
|
-
|
106
|
+
value
|
107
107
|
else
|
108
|
-
|
108
|
+
instance.name
|
109
109
|
end
|
110
110
|
else
|
111
|
-
|
111
|
+
value
|
112
112
|
end
|
113
113
|
end
|
114
114
|
|
@@ -153,7 +153,7 @@ class Puppet::Parameter::ValueCollection
|
|
153
153
|
if block_given?
|
154
154
|
devfail "Cannot use :call value ':none' in combination with a block for property '#{self.class.name}'" if call_opt == :none
|
155
155
|
value.block = block
|
156
|
-
value.method ||= "set_#{value.name}"
|
156
|
+
value.method ||= "set_#{value.name}" unless value.regex?
|
157
157
|
elsif call_opt == :instead
|
158
158
|
devfail "Cannot use :call value ':instead' without a block for property '#{self.class.name}'"
|
159
159
|
end
|
@@ -208,6 +208,6 @@ class Puppet::Parameter::ValueCollection
|
|
208
208
|
# @api private
|
209
209
|
#
|
210
210
|
def values
|
211
|
-
@strings.collect
|
211
|
+
@strings.collect(&:name)
|
212
212
|
end
|
213
213
|
end
|
data/lib/puppet/parameter.rb
CHANGED
@@ -119,9 +119,9 @@ class Puppet::Parameter
|
|
119
119
|
@doc << "\n\n#{vals}"
|
120
120
|
end
|
121
121
|
|
122
|
-
features =
|
122
|
+
features = required_features
|
123
123
|
if features
|
124
|
-
@doc << "\n\nRequires features #{features.flatten.collect
|
124
|
+
@doc << "\n\nRequires features #{features.flatten.collect(&:to_s).join(' ')}."
|
125
125
|
end
|
126
126
|
@addeddocvals = true
|
127
127
|
end
|
@@ -385,8 +385,7 @@ class Puppet::Parameter
|
|
385
385
|
#
|
386
386
|
def noop
|
387
387
|
@noop ||= false
|
388
|
-
|
389
|
-
tmp
|
388
|
+
@noop || resource.noop || Puppet[:noop] || false
|
390
389
|
end
|
391
390
|
|
392
391
|
# Returns an array of strings representing the containment hierarchy
|
@@ -396,9 +395,9 @@ class Puppet::Parameter
|
|
396
395
|
# @api private
|
397
396
|
def pathbuilder
|
398
397
|
if @resource
|
399
|
-
|
398
|
+
[@resource.pathbuilder, name]
|
400
399
|
else
|
401
|
-
|
400
|
+
[name]
|
402
401
|
end
|
403
402
|
end
|
404
403
|
|
@@ -447,7 +446,7 @@ class Puppet::Parameter
|
|
447
446
|
Puppet.debug { "Reraising #{detail}" }
|
448
447
|
raise
|
449
448
|
rescue => detail
|
450
|
-
raise Puppet::DevError, _("Munging failed for value %{value} in class %{class_name}: %{detail}") % { value: value.inspect, class_name:
|
449
|
+
raise Puppet::DevError, _("Munging failed for value %{value} in class %{class_name}: %{detail}") % { value: value.inspect, class_name: name, detail: detail }, detail.backtrace
|
451
450
|
end
|
452
451
|
ret
|
453
452
|
end
|
@@ -483,7 +482,7 @@ class Puppet::Parameter
|
|
483
482
|
rescue Puppet::Error, TypeError
|
484
483
|
raise
|
485
484
|
rescue => detail
|
486
|
-
raise Puppet::DevError, _("Validate method failed for class %{class_name}: %{detail}") % { class_name:
|
485
|
+
raise Puppet::DevError, _("Validate method failed for class %{class_name}: %{detail}") % { class_name: name, detail: detail }, detail.backtrace
|
487
486
|
end
|
488
487
|
end
|
489
488
|
|
@@ -540,7 +539,7 @@ class Puppet::Parameter
|
|
540
539
|
@tags = []
|
541
540
|
# This might not be true in testing
|
542
541
|
@tags = @resource.tags if @resource.respond_to? :tags
|
543
|
-
@tags <<
|
542
|
+
@tags << name.to_s
|
544
543
|
end
|
545
544
|
@tags
|
546
545
|
end
|
@@ -8,10 +8,10 @@ class Puppet::Parser::AST::BlockExpression < Puppet::Parser::AST::Branch
|
|
8
8
|
end
|
9
9
|
|
10
10
|
def sequence_with(other)
|
11
|
-
Puppet::Parser::AST::BlockExpression.new(:children =>
|
11
|
+
Puppet::Parser::AST::BlockExpression.new(:children => children + other.children)
|
12
12
|
end
|
13
13
|
|
14
14
|
def to_s
|
15
|
-
"[" + @children.collect
|
15
|
+
"[" + @children.collect(&:to_s).join(', ') + "]"
|
16
16
|
end
|
17
17
|
end
|
@@ -59,7 +59,7 @@ class Puppet::Parser::AST::PopsBridge
|
|
59
59
|
|
60
60
|
class ExpressionSupportingReturn < Expression
|
61
61
|
def evaluate(scope)
|
62
|
-
|
62
|
+
catch(:return) do
|
63
63
|
return catch(:next) do
|
64
64
|
return super(scope)
|
65
65
|
end
|
@@ -152,7 +152,7 @@ class Puppet::Parser::AST::PopsBridge
|
|
152
152
|
return result unless definition.parameters.size > 0
|
153
153
|
|
154
154
|
# No need to do anything if there are no typed parameters
|
155
|
-
typed_parameters = definition.parameters.select
|
155
|
+
typed_parameters = definition.parameters.select(&:type_expr)
|
156
156
|
return result if typed_parameters.empty?
|
157
157
|
|
158
158
|
# If there are typed parameters, they need to be evaluated to produce the corresponding type
|
@@ -173,7 +173,7 @@ class Puppet::Parser::AST::PopsBridge
|
|
173
173
|
|
174
174
|
# Obtains the scope or issues a warning if :global_scope is not bound
|
175
175
|
def obtain_scope
|
176
|
-
|
176
|
+
Puppet.lookup(:global_scope) do
|
177
177
|
# This occurs when testing and when applying a catalog (there is no scope available then), and
|
178
178
|
# when running tests that run a partial setup.
|
179
179
|
# This is bad if the logic is trying to compile, but a warning can not be issues since it is a normal
|
@@ -181,7 +181,6 @@ class Puppet::Parser::AST::PopsBridge
|
|
181
181
|
Puppet.debug { _("Instantiating Resource with type checked parameters - scope is missing, skipping type checking.") }
|
182
182
|
nil
|
183
183
|
end
|
184
|
-
scope
|
185
184
|
end
|
186
185
|
|
187
186
|
# Produces a hash with data for Definition and HostClass
|
@@ -20,7 +20,7 @@ class Puppet::Parser::AST::Resource < Puppet::Parser::AST::Branch
|
|
20
20
|
# because sometimes the :virtual attribute is set *after*
|
21
21
|
# :exported, in which case it clobbers :exported if :exported
|
22
22
|
# is true. Argh, this was a very tough one to track down.
|
23
|
-
virt =
|
23
|
+
virt = virtual || exported
|
24
24
|
|
25
25
|
# First level of implicit iteration: build a resource for each
|
26
26
|
# instance. This handles things like:
|
@@ -44,9 +44,9 @@ class Puppet::Parser::AST::Resource < Puppet::Parser::AST::Branch
|
|
44
44
|
resource = Puppet::Parser::Resource.new(
|
45
45
|
fully_qualified_type, resource_title,
|
46
46
|
:parameters => paramobjects,
|
47
|
-
:file =>
|
48
|
-
:line =>
|
49
|
-
:exported =>
|
47
|
+
:file => file,
|
48
|
+
:line => line,
|
49
|
+
:exported => exported,
|
50
50
|
:virtual => virt,
|
51
51
|
:source => scope.source,
|
52
52
|
:scope => scope,
|
@@ -17,13 +17,13 @@ class Puppet::Parser::AST::ResourceParam < Puppet::Parser::AST::Branch
|
|
17
17
|
# Return the parameter and the value.
|
18
18
|
def evaluate(scope)
|
19
19
|
value = @value.safeevaluate(scope)
|
20
|
-
|
20
|
+
Puppet::Parser::Resource::Param.new(
|
21
21
|
:name => @param,
|
22
22
|
:value => value.nil? ? :undef : value,
|
23
23
|
:source => scope.source,
|
24
|
-
:line =>
|
25
|
-
:file =>
|
26
|
-
:add =>
|
24
|
+
:line => line,
|
25
|
+
:file => file,
|
26
|
+
:add => add
|
27
27
|
)
|
28
28
|
end
|
29
29
|
|
data/lib/puppet/parser/ast.rb
CHANGED
@@ -28,21 +28,20 @@ class Puppet::Parser::AST
|
|
28
28
|
def safeevaluate(scope)
|
29
29
|
# We duplicate code here, rather than using exceptwrap, because this
|
30
30
|
# is called so many times during parsing.
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
end
|
31
|
+
|
32
|
+
evaluate(scope)
|
33
|
+
rescue Puppet::Pops::Evaluator::PuppetStopIteration => detail
|
34
|
+
raise detail
|
35
|
+
# # Only deals with StopIteration from the break() function as a general
|
36
|
+
# # StopIteration is a general runtime problem
|
37
|
+
# raise Puppet::ParseError.new(detail.message, detail.file, detail.line, detail)
|
38
|
+
rescue Puppet::Error => detail
|
39
|
+
raise adderrorcontext(detail)
|
40
|
+
rescue => detail
|
41
|
+
error = Puppet::ParseError.new(detail.to_s, nil, nil, detail)
|
42
|
+
# We can't use self.fail here because it always expects strings,
|
43
|
+
# not exceptions.
|
44
|
+
raise adderrorcontext(error, detail)
|
46
45
|
end
|
47
46
|
|
48
47
|
def initialize(file: nil, line: nil, pos: nil)
|
@@ -24,16 +24,16 @@ class Puppet::Parser::Compiler
|
|
24
24
|
node.environment.check_for_reparse
|
25
25
|
|
26
26
|
errors = node.environment.validation_errors
|
27
|
-
|
27
|
+
unless errors.empty?
|
28
28
|
errors.each { |e| Puppet.err(e) } if errors.size > 1
|
29
29
|
errmsg = [
|
30
30
|
_("Compilation has been halted because: %{error}") % { error: errors.first },
|
31
|
-
_("For more information, see https://puppet.com/docs/puppet/latest/environments_about.html")
|
31
|
+
_("For more information, see https://puppet.com/docs/puppet/latest/environments_about.html")
|
32
32
|
]
|
33
33
|
raise(Puppet::Error, errmsg.join(' '))
|
34
34
|
end
|
35
35
|
|
36
|
-
new(node, :code_id => code_id).compile
|
36
|
+
new(node, :code_id => code_id).compile(&:to_resource)
|
37
37
|
rescue Puppet::ParseErrorWithIssue => detail
|
38
38
|
detail.node = node.name
|
39
39
|
Puppet.log_exception(detail)
|
@@ -79,7 +79,7 @@ class Puppet::Parser::Compiler
|
|
79
79
|
# Note that this will fail if the resource is not unique.
|
80
80
|
@catalog.add_resource(resource)
|
81
81
|
|
82
|
-
if
|
82
|
+
if !resource.class? and resource[:stage]
|
83
83
|
# TRANSLATORS "stage" is a keyword in Puppet and should not be translated
|
84
84
|
raise ArgumentError, _("Only classes can set 'stage'; normal resources like %{resource} cannot change run stage") % { resource: resource }
|
85
85
|
end
|
@@ -216,7 +216,7 @@ class Puppet::Parser::Compiler
|
|
216
216
|
break if astnode
|
217
217
|
end
|
218
218
|
|
219
|
-
unless
|
219
|
+
unless astnode ||= krt.node("default")
|
220
220
|
raise Puppet::ParseError, _("Could not find node statement with name 'default' or '%{names}'") % { names: node.names.join(", ") }
|
221
221
|
end
|
222
222
|
|
@@ -251,14 +251,14 @@ class Puppet::Parser::Compiler
|
|
251
251
|
|
252
252
|
if class_parameters
|
253
253
|
resources = ensure_classes_with_parameters(scope, hostclasses, class_parameters)
|
254
|
-
|
254
|
+
unless lazy_evaluate
|
255
255
|
resources.each(&:evaluate)
|
256
256
|
end
|
257
257
|
|
258
258
|
resources
|
259
259
|
else
|
260
260
|
already_included, newly_included = ensure_classes_without_parameters(scope, hostclasses)
|
261
|
-
|
261
|
+
unless lazy_evaluate
|
262
262
|
newly_included.each(&:evaluate)
|
263
263
|
end
|
264
264
|
|
@@ -345,17 +345,15 @@ class Puppet::Parser::Compiler
|
|
345
345
|
exceptwrap do
|
346
346
|
Puppet::Util::Profiler.profile(_("Evaluated definitions"), [:compiler, :evaluate_definitions]) do
|
347
347
|
urs = unevaluated_resources.each do |resource|
|
348
|
-
|
349
|
-
|
350
|
-
|
351
|
-
|
352
|
-
|
353
|
-
|
354
|
-
|
355
|
-
|
356
|
-
|
357
|
-
fail(Puppet::Pops::Issues::RUNTIME_ERROR, resource, { :detail => e.message }, e.original || e)
|
358
|
-
end
|
348
|
+
resource.evaluate
|
349
|
+
rescue Puppet::Pops::Evaluator::PuppetStopIteration => detail
|
350
|
+
# needs to be handled specifically as the error has the file/line/position where this
|
351
|
+
# occurred rather than the resource
|
352
|
+
fail(Puppet::Pops::Issues::RUNTIME_ERROR, detail, { :detail => detail.message }, detail)
|
353
|
+
rescue Puppet::Error => e
|
354
|
+
# PuppetError has the ability to wrap an exception, if so, use the wrapped exception's
|
355
|
+
# call stack instead
|
356
|
+
fail(Puppet::Pops::Issues::RUNTIME_ERROR, resource, { :detail => e.message }, e.original || e)
|
359
357
|
end
|
360
358
|
!urs.empty?
|
361
359
|
end
|
@@ -413,7 +411,7 @@ class Puppet::Parser::Compiler
|
|
413
411
|
def fail_on_unevaluated_overrides
|
414
412
|
remaining = @resource_overrides.values.flatten.collect(&:ref)
|
415
413
|
|
416
|
-
|
414
|
+
unless remaining.empty?
|
417
415
|
raise Puppet::ParseError, _("Could not find resource(s) %{resources} for overriding") % { resources: remaining.join(', ') }
|
418
416
|
end
|
419
417
|
end
|
@@ -424,7 +422,7 @@ class Puppet::Parser::Compiler
|
|
424
422
|
#
|
425
423
|
def fail_on_unevaluated_resource_collections
|
426
424
|
remaining = @collections.collect(&:unresolved_resources).flatten.compact
|
427
|
-
|
425
|
+
unless remaining.empty?
|
428
426
|
raise Puppet::ParseError, _("Failed to realize virtual resources %{resources}") % { resources: remaining.join(', ') }
|
429
427
|
end
|
430
428
|
end
|
@@ -484,14 +482,14 @@ class Puppet::Parser::Compiler
|
|
484
482
|
def metaparams_as_data(resource, params)
|
485
483
|
data = nil
|
486
484
|
params.each do |param|
|
487
|
-
|
488
|
-
|
489
|
-
|
490
|
-
|
491
|
-
|
492
|
-
|
493
|
-
|
494
|
-
|
485
|
+
next if resource[param].nil?
|
486
|
+
|
487
|
+
# Because we could be creating a hash for every resource,
|
488
|
+
# and we actually probably don't often have any data here at all,
|
489
|
+
# we're optimizing a bit by only creating a hash if there's
|
490
|
+
# any data to put in it.
|
491
|
+
data ||= {}
|
492
|
+
data[param] = resource[param]
|
495
493
|
end
|
496
494
|
data
|
497
495
|
end
|
@@ -61,10 +61,10 @@ ENDHEREDOC
|
|
61
61
|
end
|
62
62
|
|
63
63
|
raise ArgumentError, (_("create_resources(): wrong number of arguments (%{count}; must be 2 or 3)") % { count: args.length }) if args.length > 3
|
64
|
-
raise ArgumentError,
|
64
|
+
raise ArgumentError, _('create_resources(): second argument must be a hash') unless args[1].is_a?(Hash)
|
65
65
|
|
66
66
|
if args.length == 3
|
67
|
-
raise ArgumentError,
|
67
|
+
raise ArgumentError, _('create_resources(): third argument, if provided, must be a hash') unless args[2].is_a?(Hash)
|
68
68
|
end
|
69
69
|
|
70
70
|
type, instances, defaults = args
|
@@ -105,7 +105,7 @@ ENDHEREDOC
|
|
105
105
|
Puppet::Parser::Resource::Param.new(
|
106
106
|
:name => name,
|
107
107
|
:value => value, # wide open to various data types, must be correct
|
108
|
-
:source =>
|
108
|
+
:source => source, # TODO: support :line => line, :file => file,
|
109
109
|
:add => false
|
110
110
|
)
|
111
111
|
end
|
@@ -8,6 +8,6 @@ Puppet::Parser::Functions.newfunction(
|
|
8
8
|
concatenated, and passed to the exception-handler.
|
9
9
|
DOC
|
10
10
|
) do |vals|
|
11
|
-
vals = vals.collect
|
11
|
+
vals = vals.collect(&:to_s).join(" ") if vals.is_a? Array
|
12
12
|
raise Puppet::ParseError, vals.to_s
|
13
13
|
end
|
@@ -17,9 +17,9 @@ Puppet::Parser::Functions.newfunction(:generate, :arity => -2, :type => :rvalue,
|
|
17
17
|
raise Puppet::ParseError, _("Generators must be fully qualified") unless Puppet::Util.absolute_path?(args[0])
|
18
18
|
|
19
19
|
if Puppet::Util::Platform.windows?
|
20
|
-
valid = args[0] =~
|
20
|
+
valid = args[0] =~ %r{^[a-z]:(?:[/\\][-.~\w]+)+$}i
|
21
21
|
else
|
22
|
-
valid = args[0] =~
|
22
|
+
valid = args[0] =~ %r{^[-/\w.+]+$}
|
23
23
|
end
|
24
24
|
|
25
25
|
unless valid
|
@@ -215,7 +215,7 @@ module Puppet::Parser::Functions
|
|
215
215
|
raise ArgumentError, _("%{name}(): Wrong number of arguments given (%{arg_count} for minimum %{min_arg_count})") % { name: name, arg_count: args[0].size, min_arg_count: (arity + 1).abs }
|
216
216
|
end
|
217
217
|
|
218
|
-
r = Puppet::Pops::Evaluator::Runtime3FunctionArgumentConverter.convert_return(
|
218
|
+
r = Puppet::Pops::Evaluator::Runtime3FunctionArgumentConverter.convert_return(send(real_fname, args[0]))
|
219
219
|
# avoid leaking aribtrary value if not being an rvalue function
|
220
220
|
options[:type] == :rvalue ? r : nil
|
221
221
|
else
|
@@ -263,7 +263,7 @@ module Puppet::Parser::Functions
|
|
263
263
|
ret = ''.dup
|
264
264
|
|
265
265
|
merged_functions(environment).sort { |a, b| a[0].to_s <=> b[0].to_s }.each do |name, hash|
|
266
|
-
ret << "#{name}\n#{
|
266
|
+
ret << "#{name}\n#{'-' * name.to_s.length}\n"
|
267
267
|
if hash[:doc]
|
268
268
|
ret << Puppet::Util::Docs.scrub(hash[:doc])
|
269
269
|
else
|
@@ -26,12 +26,12 @@ class Puppet::Parser::Resource::Param
|
|
26
26
|
end
|
27
27
|
|
28
28
|
def to_s
|
29
|
-
"#{
|
29
|
+
"#{name} => #{value}"
|
30
30
|
end
|
31
31
|
|
32
32
|
def self.from_param(param, value)
|
33
33
|
new_param = param.dup
|
34
34
|
new_param.value = value
|
35
|
-
|
35
|
+
new_param
|
36
36
|
end
|
37
37
|
end
|
@@ -21,7 +21,7 @@ class Puppet::Parser::Resource < Puppet::Resource
|
|
21
21
|
|
22
22
|
# Determine whether the provided parameter name is a relationship parameter.
|
23
23
|
def self.relationship_parameter?(name)
|
24
|
-
@relationship_names ||= Puppet::Type.relationship_params.collect
|
24
|
+
@relationship_names ||= Puppet::Type.relationship_params.collect(&:name)
|
25
25
|
@relationship_names.include?(name)
|
26
26
|
end
|
27
27
|
|
@@ -33,7 +33,7 @@ class Puppet::Parser::Resource < Puppet::Resource
|
|
33
33
|
def [](param)
|
34
34
|
param = param.intern
|
35
35
|
if param == :title
|
36
|
-
return
|
36
|
+
return title
|
37
37
|
end
|
38
38
|
|
39
39
|
if @parameters.has_key?(param)
|
@@ -57,7 +57,7 @@ class Puppet::Parser::Resource < Puppet::Resource
|
|
57
57
|
# is drawn from the class to the stage. The stage for containment
|
58
58
|
# defaults to main, if none is specified.
|
59
59
|
def add_edge_to_stage
|
60
|
-
return unless
|
60
|
+
return unless class?
|
61
61
|
|
62
62
|
stage = catalog.resource(:stage, self[:stage] || (scope && scope.resource && scope.resource[:stage]) || :main)
|
63
63
|
unless stage
|
@@ -136,13 +136,13 @@ class Puppet::Parser::Resource < Puppet::Resource
|
|
136
136
|
|
137
137
|
if with_defaults
|
138
138
|
scope.lookupdefaults(self.type).each_pair do |name, param|
|
139
|
-
|
140
|
-
self.debug "Adding default for #{name}"
|
139
|
+
next if @parameters.include?(name)
|
141
140
|
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
141
|
+
debug "Adding default for #{name}"
|
142
|
+
|
143
|
+
param = param.dup
|
144
|
+
@parameters[name] = param
|
145
|
+
tag(*param.value) if param.name == :tag
|
146
146
|
end
|
147
147
|
end
|
148
148
|
end
|
@@ -150,9 +150,9 @@ class Puppet::Parser::Resource < Puppet::Resource
|
|
150
150
|
# Is this resource modeling an isomorphic resource type?
|
151
151
|
def isomorphic?
|
152
152
|
if builtin_type?
|
153
|
-
|
153
|
+
resource_type.isomorphic?
|
154
154
|
else
|
155
|
-
|
155
|
+
true
|
156
156
|
end
|
157
157
|
end
|
158
158
|
|
@@ -161,7 +161,7 @@ class Puppet::Parser::Resource < Puppet::Resource
|
|
161
161
|
def merge(resource)
|
162
162
|
# Test the resource scope, to make sure the resource is even allowed
|
163
163
|
# to override.
|
164
|
-
unless
|
164
|
+
unless source.equal?(resource.source) || resource.source.child_of?(source)
|
165
165
|
raise Puppet::ParseError.new(_("Only subclasses can override parameters"), resource.file, resource.line)
|
166
166
|
end
|
167
167
|
|
@@ -190,7 +190,7 @@ class Puppet::Parser::Resource < Puppet::Resource
|
|
190
190
|
end
|
191
191
|
|
192
192
|
def name
|
193
|
-
self[:name] ||
|
193
|
+
self[:name] || title
|
194
194
|
end
|
195
195
|
|
196
196
|
# A temporary occasion, until I get paths in the scopes figured out.
|
@@ -200,10 +200,10 @@ class Puppet::Parser::Resource < Puppet::Resource
|
|
200
200
|
# if we ever receive a parameter named 'tag', set
|
201
201
|
# the resource tags with its value.
|
202
202
|
def set_parameter(param, value = nil)
|
203
|
-
|
203
|
+
unless param.is_a?(Puppet::Parser::Resource::Param)
|
204
204
|
param = param.name if param.is_a?(Puppet::Pops::Resource::Param)
|
205
205
|
param = Puppet::Parser::Resource::Param.new(
|
206
|
-
:name => param, :value => value, :source =>
|
206
|
+
:name => param, :value => value, :source => source
|
207
207
|
)
|
208
208
|
end
|
209
209
|
|
@@ -219,16 +219,16 @@ class Puppet::Parser::Resource < Puppet::Resource
|
|
219
219
|
value = param.value
|
220
220
|
value = (:undef == value) ? nil : value
|
221
221
|
|
222
|
-
|
223
|
-
|
224
|
-
|
225
|
-
|
226
|
-
|
227
|
-
|
228
|
-
else
|
222
|
+
next if value.nil?
|
223
|
+
|
224
|
+
case param.name
|
225
|
+
when :before, :subscribe, :notify, :require
|
226
|
+
if value.is_a?(Array)
|
227
|
+
value = value.flatten.reject { |v| v.nil? || :undef == v }
|
229
228
|
end
|
230
|
-
|
229
|
+
else
|
231
230
|
end
|
231
|
+
result[param.name] = value
|
232
232
|
end)
|
233
233
|
end
|
234
234
|
|
data/lib/puppet/parser/scope.rb
CHANGED
@@ -17,7 +17,7 @@ class Puppet::Parser::Scope
|
|
17
17
|
extend Forwardable
|
18
18
|
|
19
19
|
# Variables that always exist with nil value even if not set
|
20
|
-
BUILT_IN_VARS = [
|
20
|
+
BUILT_IN_VARS = %w[module_name caller_module_name].freeze
|
21
21
|
EMPTY_HASH = {}.freeze
|
22
22
|
|
23
23
|
Puppet::Util.logmethods(self)
|
@@ -260,7 +260,7 @@ class Puppet::Parser::Scope
|
|
260
260
|
end
|
261
261
|
|
262
262
|
def to_hash
|
263
|
-
@params.select { |_, access| access.assigned? }.transform_values
|
263
|
+
@params.select { |_, access| access.assigned? }.transform_values(&:value)
|
264
264
|
end
|
265
265
|
end
|
266
266
|
|
@@ -283,8 +283,8 @@ class Puppet::Parser::Scope
|
|
283
283
|
def exist?(name)
|
284
284
|
# Note !! ensure the answer is boolean
|
285
285
|
!!if name =~ /^(.*)::(.+)$/
|
286
|
-
class_name =
|
287
|
-
variable_name =
|
286
|
+
class_name = ::Regexp.last_match(1)
|
287
|
+
variable_name = ::Regexp.last_match(2)
|
288
288
|
return true if class_name == '' && BUILT_IN_VARS.include?(variable_name)
|
289
289
|
|
290
290
|
# lookup class, but do not care if it is not evaluated since that will result
|
@@ -425,7 +425,7 @@ class Puppet::Parser::Scope
|
|
425
425
|
# additive -- it collects all of the defaults, with defaults
|
426
426
|
# in closer scopes overriding those in later scopes.
|
427
427
|
#
|
428
|
-
# The lookupdefaults searches in the
|
428
|
+
# The lookupdefaults searches in the order:
|
429
429
|
#
|
430
430
|
# * inherited
|
431
431
|
# * contained (recursive)
|
@@ -625,7 +625,7 @@ class Puppet::Parser::Scope
|
|
625
625
|
end
|
626
626
|
end
|
627
627
|
# report with leading '::' by using empty class_name
|
628
|
-
|
628
|
+
handle_not_found('', fqn, options)
|
629
629
|
end
|
630
630
|
|
631
631
|
# @api private
|
@@ -676,7 +676,7 @@ class Puppet::Parser::Scope
|
|
676
676
|
def to_hash(recursive = true, include_undef = false)
|
677
677
|
if recursive and has_enclosing_scope?
|
678
678
|
target = enclosing_scope.to_hash(recursive)
|
679
|
-
|
679
|
+
unless (inherited = inherited_scope).nil?
|
680
680
|
target.merge!(inherited.to_hash(recursive))
|
681
681
|
end
|
682
682
|
else
|
@@ -773,7 +773,7 @@ class Puppet::Parser::Scope
|
|
773
773
|
# when you need to set options.
|
774
774
|
def setvar(name, value, options = EMPTY_HASH)
|
775
775
|
if name =~ /^[0-9]+$/
|
776
|
-
raise Puppet::ParseError
|
776
|
+
raise Puppet::ParseError, _("Cannot assign to a numeric match result variable '$%{name}'") % { name: name } # unless options[:ephemeral]
|
777
777
|
end
|
778
778
|
unless name.is_a? String
|
779
779
|
raise Puppet::ParseError, _("Scope variable name %{name} is a %{class_type}, not a string") % { name: name.inspect, class_type: name.class }
|
@@ -894,7 +894,7 @@ class Puppet::Parser::Scope
|
|
894
894
|
# shorten the path if possible
|
895
895
|
path = detail[0]
|
896
896
|
env_path = nil
|
897
|
-
env_path = environment.configuration.path_to_env unless
|
897
|
+
env_path = environment.configuration.path_to_env unless environment.nil? || environment.configuration.nil?
|
898
898
|
# check module paths first since they may be in the environment (i.e. they are longer)
|
899
899
|
module_path = environment.full_modulepath.detect { |m_path| path.start_with?(m_path) }
|
900
900
|
if module_path
|
@@ -1046,7 +1046,7 @@ class Puppet::Parser::Scope
|
|
1046
1046
|
|
1047
1047
|
def method_missing(method, *args, &block)
|
1048
1048
|
method.to_s =~ /^function_(.*)$/
|
1049
|
-
name =
|
1049
|
+
name = ::Regexp.last_match(1)
|
1050
1050
|
super unless name
|
1051
1051
|
super unless Puppet::Parser::Functions.function(name)
|
1052
1052
|
# In odd circumstances, this might not end up defined by the previous
|