puppet 8.5.1-universal-darwin → 8.7.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 +6 -2
- data/Gemfile.lock +55 -48
- data/Rakefile +45 -22
- data/examples/hiera/README.md +68 -57
- data/examples/hiera/data/common.yaml +12 -0
- data/examples/hiera/data/dc1.yaml +6 -0
- data/examples/hiera/hiera.yaml +15 -0
- data/examples/hiera/modules/ntp/data/common.yaml +4 -0
- data/examples/hiera/modules/ntp/hiera.yaml +9 -0
- data/examples/hiera/modules/ntp/manifests/config.pp +16 -4
- data/examples/hiera/modules/ntp/templates/ntp.conf.epp +3 -0
- data/examples/hiera/modules/users/manifests/common.pp +7 -2
- data/examples/hiera/modules/users/manifests/dc1.pp +7 -2
- data/examples/hiera/site.pp +1 -1
- data/ext/project_data.yaml +0 -45
- 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 +4 -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/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 +5 -5
- 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/module_data_provider.rb +9 -9
- 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 +1 -1
- 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/aix_object.rb +1 -1
- 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 +32 -11
- 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/xbps.rb +127 -0
- 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/scheduler/splay_job.rb +9 -0
- 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 +51 -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 +60 -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 +18 -19
- 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/com.rb +2 -2
- 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/locales/puppet.pot +604 -600
- 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 +23 -27
- data/examples/hiera/etc/hiera.yaml +0 -15
- data/examples/hiera/etc/hieradb/common.yaml +0 -3
- data/examples/hiera/etc/hieradb/dc1.yaml +0 -6
- data/examples/hiera/etc/hieradb/development.yaml +0 -2
- data/examples/hiera/etc/puppet.conf +0 -3
- data/examples/hiera/modules/data/manifests/common.pp +0 -4
- data/examples/hiera/modules/ntp/manifests/data.pp +0 -4
- data/examples/hiera/modules/ntp/templates/ntp.conf.erb +0 -3
- data/examples/hiera/modules/users/manifests/development.pp +0 -4
- data/tasks/benchmark.rake +0 -180
- data/tasks/cfpropertylist.rake +0 -15
- data/tasks/ci.rake +0 -24
- data/tasks/generate_ast_model.rake +0 -90
- data/tasks/generate_cert_fixtures.rake +0 -199
- data/tasks/manpages.rake +0 -67
- data/tasks/memwalk.rake +0 -195
- data/tasks/parallel.rake +0 -410
- data/tasks/parser.rake +0 -22
- data/tasks/yard.rake +0 -59
data/lib/puppet/forge/errors.rb
CHANGED
@@ -69,7 +69,7 @@ class Puppet::Forge
|
|
69
69
|
# repository at +release+ (e.g. "myuser-mymodule").
|
70
70
|
def retrieve(release)
|
71
71
|
path = @host.chomp('/') + release
|
72
|
-
|
72
|
+
cache.retrieve(path)
|
73
73
|
end
|
74
74
|
|
75
75
|
# Return the URI string for this repository.
|
@@ -80,7 +80,7 @@ class Puppet::Forge
|
|
80
80
|
# Return the cache key for this repository, this a hashed string based on
|
81
81
|
# the URI.
|
82
82
|
def cache_key
|
83
|
-
|
83
|
+
@cache_key ||= [
|
84
84
|
@host.to_s.gsub(/[^[:alnum:]]+/, '_').sub(/_$/, ''),
|
85
85
|
Digest::SHA1.hexdigest(@host.to_s)
|
86
86
|
].join('-').freeze
|
data/lib/puppet/forge.rb
CHANGED
@@ -114,7 +114,7 @@ class Puppet::Forge < SemanticPuppet::Dependency::Source
|
|
114
114
|
uri = decode_uri(response['pagination']['next'])
|
115
115
|
end
|
116
116
|
|
117
|
-
|
117
|
+
releases
|
118
118
|
end
|
119
119
|
|
120
120
|
def make_http_request(*args)
|
@@ -134,13 +134,11 @@ class Puppet::Forge < SemanticPuppet::Dependency::Source
|
|
134
134
|
|
135
135
|
if meta['dependencies']
|
136
136
|
dependencies = meta['dependencies'].collect do |dep|
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
' ' + _("Exception was: %{detail}") % { detail: e }
|
143
|
-
end
|
137
|
+
Puppet::ModuleTool::Metadata.new.add_dependency(dep['name'], dep['version_requirement'], dep['repository'])
|
138
|
+
Puppet::ModuleTool.parse_module_dependency(release, dep)[0..1]
|
139
|
+
rescue ArgumentError => e
|
140
|
+
raise ArgumentError, _("Malformed dependency: %{name}.") % { name: dep['name'] } +
|
141
|
+
' ' + _("Exception was: %{detail}") % { detail: e }
|
144
142
|
end
|
145
143
|
else
|
146
144
|
dependencies = []
|
@@ -150,7 +148,7 @@ class Puppet::Forge < SemanticPuppet::Dependency::Source
|
|
150
148
|
end
|
151
149
|
|
152
150
|
def install(dir)
|
153
|
-
staging_dir =
|
151
|
+
staging_dir = prepare
|
154
152
|
|
155
153
|
module_dir = dir + name[/-(.*)/, 1]
|
156
154
|
module_dir.rmtree if module_dir.exist?
|
@@ -163,7 +161,7 @@ class Puppet::Forge < SemanticPuppet::Dependency::Source
|
|
163
161
|
|
164
162
|
# Return the Pathname object representing the directory where the
|
165
163
|
# module release archive was unpacked the to.
|
166
|
-
|
164
|
+
module_dir
|
167
165
|
ensure
|
168
166
|
staging_dir.rmtree if staging_dir.exist?
|
169
167
|
end
|
@@ -202,9 +200,7 @@ class Puppet::Forge < SemanticPuppet::Dependency::Source
|
|
202
200
|
end
|
203
201
|
|
204
202
|
def tmpfile
|
205
|
-
@file ||= Tempfile.new(name, Puppet::Forge::Cache.base_path).tap
|
206
|
-
f.binmode
|
207
|
-
end
|
203
|
+
@file ||= Tempfile.new(name, Puppet::Forge::Cache.base_path).tap(&:binmode)
|
208
204
|
end
|
209
205
|
# rubocop:enable Naming/MemoizedInstanceVariableName
|
210
206
|
|
@@ -227,15 +223,13 @@ class Puppet::Forge < SemanticPuppet::Dependency::Source
|
|
227
223
|
end
|
228
224
|
|
229
225
|
def unpack(file, destination)
|
230
|
-
|
231
|
-
|
232
|
-
|
233
|
-
raise RuntimeError, _("Could not extract contents of module archive: %{message}") % { message: e.message }
|
234
|
-
end
|
226
|
+
Puppet::ModuleTool::Applications::Unpacker.unpack(file.path, destination)
|
227
|
+
rescue Puppet::ExecutionFailure => e
|
228
|
+
raise RuntimeError, _("Could not extract contents of module archive: %{message}") % { message: e.message }
|
235
229
|
end
|
236
230
|
|
237
231
|
def deprecated?
|
238
|
-
@data['module'] &&
|
232
|
+
@data['module'] && !@data['module']['deprecated_at'].nil?
|
239
233
|
end
|
240
234
|
end
|
241
235
|
|
data/lib/puppet/functions/abs.rb
CHANGED
@@ -53,9 +53,9 @@ Puppet::Functions.create_function(:abs) do
|
|
53
53
|
# version of this function.
|
54
54
|
#
|
55
55
|
case x
|
56
|
-
when
|
56
|
+
when /^-?(?:\d+)(?:\.\d+){1}$/
|
57
57
|
x.to_f.abs
|
58
|
-
when
|
58
|
+
when /^-?\d+$/
|
59
59
|
x.to_i.abs
|
60
60
|
else
|
61
61
|
raise(ArgumentError, 'abs(): Requires float or integer to work with - was given non decimal string')
|
@@ -98,7 +98,7 @@ Puppet::Functions.create_function(:compare) do
|
|
98
98
|
end
|
99
99
|
|
100
100
|
def on_error(a, b, *ignore_case)
|
101
|
-
|
101
|
+
unless ignore_case.empty?
|
102
102
|
unless a.is_a?(String) && b.is_a?(String)
|
103
103
|
# TRANSLATORS 'compare' is a name
|
104
104
|
return _("compare(): The third argument (ignore case) can only be used when comparing strings")
|
@@ -115,7 +115,7 @@ Puppet::Functions.create_function(:compare) do
|
|
115
115
|
|
116
116
|
if a.class != b.class
|
117
117
|
# TRANSLATORS 'compare' is a name
|
118
|
-
|
118
|
+
_("compare(): Can only compare values of the same type (or for Timestamp/Timespan also against Numeric). Got %{type_a} and %{type_b}") % {
|
119
119
|
type_a: type_label(a), type_b: type_label(b)
|
120
120
|
}
|
121
121
|
end
|
@@ -48,7 +48,7 @@ Puppet::Functions.create_function(:contain, Puppet::Functions::InternalFunction)
|
|
48
48
|
# This is the same as calling the include function but faster and does not rely on the include
|
49
49
|
# function.
|
50
50
|
(scope.compiler.evaluate_classes(classes, scope, false) || []).each do |resource|
|
51
|
-
|
51
|
+
unless scope.catalog.edge?(containing_resource, resource)
|
52
52
|
scope.catalog.add_edge(containing_resource, resource)
|
53
53
|
end
|
54
54
|
end
|
@@ -101,7 +101,7 @@
|
|
101
101
|
# @since 3.8.1 type specific requests with future parser
|
102
102
|
# @since 4.0.0
|
103
103
|
#
|
104
|
-
Puppet::Functions.create_function(:
|
104
|
+
Puppet::Functions.create_function(:defined, Puppet::Functions::InternalFunction) do
|
105
105
|
dispatch :is_defined do
|
106
106
|
scope_param
|
107
107
|
required_repeated_param 'Variant[String, Type[CatalogEntry], Type[Type[CatalogEntry]]]', :vals
|
@@ -112,7 +112,7 @@ Puppet::Functions.create_function(:'defined', Puppet::Functions::InternalFunctio
|
|
112
112
|
case val
|
113
113
|
when String
|
114
114
|
if val =~ /^\$(.+)$/
|
115
|
-
scope.exist?(
|
115
|
+
scope.exist?(Regexp.last_match(1))
|
116
116
|
else
|
117
117
|
case val
|
118
118
|
when ''
|
data/lib/puppet/functions/dig.rb
CHANGED
@@ -40,7 +40,7 @@ Puppet::Functions.create_function(:dig) do
|
|
40
40
|
args.reduce(data) do |d, k|
|
41
41
|
return nil if d.nil? || k.nil?
|
42
42
|
|
43
|
-
|
43
|
+
unless d.is_a?(Array) || d.is_a?(Hash)
|
44
44
|
t = Puppet::Pops::Types::TypeCalculator.infer(d)
|
45
45
|
msg = _("The given data does not contain a Collection at %{walked_path}, got '%{type}'") % { walked_path: walked_path, type: t }
|
46
46
|
error_data = Puppet::DataTypes::Error.new(
|
@@ -47,21 +47,19 @@ Puppet::Functions.create_function(:eyaml_lookup_key) do
|
|
47
47
|
def load_data_hash(options, context)
|
48
48
|
path = options['path']
|
49
49
|
context.cached_file_data(path) do |content|
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
raise Puppet::DataBinding::LookupError, msg if Puppet[:strict] == :error && data != false
|
50
|
+
data = Puppet::Util::Yaml.safe_load(content, [Symbol], path)
|
51
|
+
if data.is_a?(Hash)
|
52
|
+
Puppet::Pops::Lookup::HieraConfig.symkeys_to_string(data)
|
53
|
+
else
|
54
|
+
msg = _("%{path}: file does not contain a valid yaml hash") % { path: path }
|
55
|
+
raise Puppet::DataBinding::LookupError, msg if Puppet[:strict] == :error && data != false
|
57
56
|
|
58
|
-
|
59
|
-
|
60
|
-
end
|
61
|
-
rescue Puppet::Util::Yaml::YamlLoadError => ex
|
62
|
-
# YamlLoadErrors include the absolute path to the file, so no need to add that
|
63
|
-
raise Puppet::DataBinding::LookupError, _("Unable to parse %{message}") % { message: ex.message }
|
57
|
+
Puppet.warning(msg)
|
58
|
+
{}
|
64
59
|
end
|
60
|
+
rescue Puppet::Util::Yaml::YamlLoadError => ex
|
61
|
+
# YamlLoadErrors include the absolute path to the file, so no need to add that
|
62
|
+
raise Puppet::DataBinding::LookupError, _("Unable to parse %{message}") % { message: ex.message }
|
65
63
|
end
|
66
64
|
end
|
67
65
|
|
data/lib/puppet/functions/get.rb
CHANGED
@@ -138,7 +138,7 @@ Puppet::Functions.create_function(:get, Puppet::Functions::InternalFunction) do
|
|
138
138
|
|
139
139
|
begin
|
140
140
|
result = call_function('dig', value, *segments)
|
141
|
-
|
141
|
+
result.nil? ? default_value : result
|
142
142
|
rescue Puppet::ErrorWithData => e
|
143
143
|
if block_given?
|
144
144
|
yield(e.error_data)
|
@@ -29,11 +29,9 @@ Puppet::Functions.create_function(:hocon_data) do
|
|
29
29
|
def hocon_data(options, context)
|
30
30
|
path = options['path']
|
31
31
|
context.cached_file_data(path) do |content|
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
raise Puppet::DataBinding::LookupError, _("Unable to parse (%{path}): %{message}") % { path: path, message: ex.message }
|
36
|
-
end
|
32
|
+
Hocon.parse(content)
|
33
|
+
rescue Hocon::ConfigError => ex
|
34
|
+
raise Puppet::DataBinding::LookupError, _("Unable to parse (%{path}): %{message}") % { path: path, message: ex.message }
|
37
35
|
end
|
38
36
|
end
|
39
37
|
|
@@ -20,12 +20,10 @@ Puppet::Functions.create_function(:json_data) do
|
|
20
20
|
def json_data(options, context)
|
21
21
|
path = options['path']
|
22
22
|
context.cached_file_data(path) do |content|
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
raise Puppet::DataBinding::LookupError, "Unable to parse (%{path}): %{message}" % { path: path, message: ex.message }
|
28
|
-
end
|
23
|
+
Puppet::Util::Json.load(content)
|
24
|
+
rescue Puppet::Util::Json::ParseError => ex
|
25
|
+
# Filename not included in message, so we add it here.
|
26
|
+
raise Puppet::DataBinding::LookupError, "Unable to parse (%{path}): %{message}" % { path: path, message: ex.message }
|
29
27
|
end
|
30
28
|
end
|
31
29
|
|
data/lib/puppet/functions/max.rb
CHANGED
@@ -146,7 +146,7 @@ Puppet::Functions.create_function(:max) do
|
|
146
146
|
assert_arg_count(args)
|
147
147
|
|
148
148
|
args.max do |a, b|
|
149
|
-
if a.to_s =~
|
149
|
+
if a.to_s =~ /\A^-?\d+([._eE]\d+)?\z/ && b.to_s =~ /\A-?\d+([._eE]\d+)?\z/
|
150
150
|
Puppet.warn_once('deprecations', 'max_function_numeric_coerce_string',
|
151
151
|
_("The max() function's auto conversion of String to Numeric is deprecated - change to convert input before calling, or use lambda"))
|
152
152
|
a.to_f <=> b.to_f
|
@@ -232,7 +232,7 @@ Puppet::Functions.create_function(:max) do
|
|
232
232
|
args.max do |a, b|
|
233
233
|
as = a.to_s
|
234
234
|
bs = b.to_s
|
235
|
-
if as =~
|
235
|
+
if as =~ /\A^-?\d+([._eE]\d+)?\z/ && bs =~ /\A-?\d+([._eE]\d+)?\z/
|
236
236
|
Puppet.warn_once('deprecations', 'max_function_numeric_coerce_string',
|
237
237
|
_("The max() function's auto conversion of String to Numeric is deprecated - change to convert input before calling, or use lambda"))
|
238
238
|
a.to_f <=> b.to_f
|
data/lib/puppet/functions/min.rb
CHANGED
@@ -145,7 +145,7 @@ Puppet::Functions.create_function(:min) do
|
|
145
145
|
assert_arg_count(args)
|
146
146
|
|
147
147
|
args.min do |a, b|
|
148
|
-
if a.to_s =~
|
148
|
+
if a.to_s =~ /\A^-?\d+([._eE]\d+)?\z/ && b.to_s =~ /\A-?\d+([._eE]\d+)?\z/
|
149
149
|
Puppet.warn_once('deprecations', 'min_function_numeric_coerce_string',
|
150
150
|
_("The min() function's auto conversion of String to Numeric is deprecated - change to convert input before calling, or use lambda"))
|
151
151
|
a.to_f <=> b.to_f
|
@@ -231,7 +231,7 @@ Puppet::Functions.create_function(:min) do
|
|
231
231
|
args.min do |a, b|
|
232
232
|
as = a.to_s
|
233
233
|
bs = b.to_s
|
234
|
-
if as =~
|
234
|
+
if as =~ /\A^-?\d+([._eE]\d+)?\z/ && bs =~ /\A-?\d+([._eE]\d+)?\z/
|
235
235
|
Puppet.warn_once('deprecations', 'min_function_numeric_coerce_string',
|
236
236
|
_("The min() function's auto conversion of String to Numeric is deprecated - change to convert input before calling, or use lambda"))
|
237
237
|
a.to_f <=> b.to_f
|
data/lib/puppet/functions/new.rb
CHANGED
@@ -994,7 +994,7 @@ Puppet::Functions.create_function(:new, Puppet::Functions::InternalFunction) do
|
|
994
994
|
return args[0] if args.size == 1 && !t.is_a?(Puppet::Pops::Types::PInitType) && t.instance?(args[0])
|
995
995
|
|
996
996
|
result = assert_type(t, new_function_for_type(t).call(scope, *args))
|
997
|
-
|
997
|
+
block_given? ? yield(result) : result
|
998
998
|
end
|
999
999
|
|
1000
1000
|
def new_function_for_type(t)
|
@@ -142,22 +142,18 @@ Puppet::Functions.create_function(:reduce) do
|
|
142
142
|
def reduce_without_memo(enumerable)
|
143
143
|
enum = Puppet::Pops::Types::Iterable.asserted_iterable(self, enumerable)
|
144
144
|
enum.reduce do |memo, x|
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
return memo
|
149
|
-
end
|
145
|
+
yield(memo, x)
|
146
|
+
rescue StopIteration
|
147
|
+
return memo
|
150
148
|
end
|
151
149
|
end
|
152
150
|
|
153
151
|
def reduce_with_memo(enumerable, given_memo)
|
154
152
|
enum = Puppet::Pops::Types::Iterable.asserted_iterable(self, enumerable)
|
155
153
|
enum.reduce(given_memo) do |memo, x|
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
return memo
|
160
|
-
end
|
154
|
+
yield(memo, x)
|
155
|
+
rescue StopIteration
|
156
|
+
return memo
|
161
157
|
end
|
162
158
|
end
|
163
159
|
end
|
@@ -78,7 +78,7 @@ Puppet::Functions.create_function(:regsubst) do
|
|
78
78
|
def regsubst_string(target, pattern, replacement, flags = nil, encoding = nil)
|
79
79
|
re_flags = 0
|
80
80
|
operation = :sub
|
81
|
-
|
81
|
+
unless flags.nil?
|
82
82
|
flags.split(//).each do |f|
|
83
83
|
case f
|
84
84
|
when 'G' then operation = :gsub
|
@@ -92,7 +92,7 @@ Puppet::Functions.create_function(:regsubst) do
|
|
92
92
|
end
|
93
93
|
|
94
94
|
def regsubst_regexp(target, pattern, replacement, flags = nil)
|
95
|
-
pattern =
|
95
|
+
pattern = pattern.pattern || '' if pattern.is_a?(Puppet::Pops::Types::PRegexpType)
|
96
96
|
inner_regsubst(target, pattern, replacement, flags == 'G' ? :gsub : :sub)
|
97
97
|
end
|
98
98
|
|
@@ -70,7 +70,7 @@ Puppet::Functions.create_function(:require, Puppet::Functions::InternalFunction)
|
|
70
70
|
classes.each do |klass|
|
71
71
|
# lookup the class in the scopes
|
72
72
|
klass = (classobj = krt.find_hostclass(klass)) ? classobj.name : nil
|
73
|
-
raise Puppet::ParseError
|
73
|
+
raise Puppet::ParseError, _("Could not find class %{klass}") % { klass: klass } unless klass
|
74
74
|
|
75
75
|
ref = Puppet::Resource.new(:class, klass)
|
76
76
|
resource = scope.resource
|
@@ -22,21 +22,19 @@ Puppet::Functions.create_function(:yaml_data) do
|
|
22
22
|
def yaml_data(options, context)
|
23
23
|
path = options['path']
|
24
24
|
context.cached_file_data(path) do |content|
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
raise Puppet::DataBinding::LookupError, msg if Puppet[:strict] == :error && data != false
|
25
|
+
data = Puppet::Util::Yaml.safe_load(content, [Symbol], path)
|
26
|
+
if data.is_a?(Hash)
|
27
|
+
Puppet::Pops::Lookup::HieraConfig.symkeys_to_string(data)
|
28
|
+
else
|
29
|
+
msg = _("%{path}: file does not contain a valid yaml hash" % { path: path })
|
30
|
+
raise Puppet::DataBinding::LookupError, msg if Puppet[:strict] == :error && data != false
|
32
31
|
|
33
|
-
|
34
|
-
|
35
|
-
end
|
36
|
-
rescue Puppet::Util::Yaml::YamlLoadError => ex
|
37
|
-
# YamlLoadErrors include the absolute path to the file, so no need to add that
|
38
|
-
raise Puppet::DataBinding::LookupError, _("Unable to parse %{message}") % { message: ex.message }
|
32
|
+
Puppet.warning(msg)
|
33
|
+
{}
|
39
34
|
end
|
35
|
+
rescue Puppet::Util::Yaml::YamlLoadError => ex
|
36
|
+
# YamlLoadErrors include the absolute path to the file, so no need to add that
|
37
|
+
raise Puppet::DataBinding::LookupError, _("Unable to parse %{message}") % { message: ex.message }
|
40
38
|
end
|
41
39
|
end
|
42
40
|
|
data/lib/puppet/functions.rb
CHANGED
@@ -188,12 +188,11 @@ module Puppet::Functions
|
|
188
188
|
# and it will fail unless protected with an if defined? if the local
|
189
189
|
# variable does not exist in the block's binder.
|
190
190
|
#
|
191
|
-
|
192
|
-
|
193
|
-
|
194
|
-
|
195
|
-
|
196
|
-
end
|
191
|
+
|
192
|
+
loader = block.binding.eval('loader_injected_arg if defined?(loader_injected_arg)')
|
193
|
+
create_loaded_function(func_name, loader, function_base, &block)
|
194
|
+
rescue StandardError => e
|
195
|
+
raise ArgumentError, _("Function Load Error for function '%{function_name}': %{message}") % { function_name: func_name, message: e.message }
|
197
196
|
end
|
198
197
|
|
199
198
|
# Creates a function in, or in a local loader under the given loader.
|
@@ -570,7 +569,7 @@ module Puppet::Functions
|
|
570
569
|
@block_name = nil
|
571
570
|
@return_type = nil
|
572
571
|
@argument_mismatch_hander = argument_mismatch_handler
|
573
|
-
|
572
|
+
instance_eval(&block)
|
574
573
|
callable_t = create_callable(@types, @block_type, @return_type, @min, @max)
|
575
574
|
@dispatcher.add(Puppet::Pops::Functions::Dispatch.new(callable_t, meth_name, @names, @max == :default, @block_name, @injections, @weaving, @argument_mismatch_hander))
|
576
575
|
end
|
@@ -591,14 +590,12 @@ module Puppet::Functions
|
|
591
590
|
end
|
592
591
|
|
593
592
|
def internal_type_parse(type_string, loader)
|
594
|
-
|
595
|
-
|
596
|
-
|
597
|
-
|
598
|
-
|
599
|
-
|
600
|
-
}
|
601
|
-
end
|
593
|
+
Puppet::Pops::Types::TypeParser.singleton.parse(type_string, loader)
|
594
|
+
rescue StandardError => e
|
595
|
+
raise ArgumentError, _("Parsing of type string '\"%{type_string}\"' failed with message: <%{message}>.\n") % {
|
596
|
+
type_string: type_string,
|
597
|
+
message: e.message
|
598
|
+
}
|
602
599
|
end
|
603
600
|
private :internal_type_parse
|
604
601
|
end
|
@@ -688,10 +685,10 @@ module Puppet::Functions
|
|
688
685
|
PARAM_NAMES = [
|
689
686
|
[],
|
690
687
|
['p0'].freeze,
|
691
|
-
[
|
692
|
-
[
|
693
|
-
[
|
694
|
-
[
|
688
|
+
%w[p0 p1].freeze,
|
689
|
+
%w[p0 p1 p2].freeze,
|
690
|
+
%w[p0 p1 p2 p3].freeze,
|
691
|
+
%w[p0 p1 p2 p3 p4].freeze
|
695
692
|
]
|
696
693
|
|
697
694
|
# Creates an anonymous Function3x class that wraps a 3x function
|
@@ -746,25 +743,23 @@ module Puppet::Functions
|
|
746
743
|
# used to support other features than calling.
|
747
744
|
#
|
748
745
|
def call(scope, *args, &block)
|
746
|
+
result = catch(:return) do
|
747
|
+
mapped_args = Puppet::Pops::Evaluator::Runtime3FunctionArgumentConverter.map_args(args, scope, '')
|
748
|
+
# this is the scope.function_xxx(...) call
|
749
|
+
return scope.send(self.class.method3x, mapped_args)
|
750
|
+
end
|
751
|
+
result.value
|
752
|
+
rescue Puppet::Pops::Evaluator::Next => jumper
|
753
|
+
begin
|
754
|
+
throw :next, jumper.value
|
755
|
+
rescue Puppet::Parser::Scope::UNCAUGHT_THROW_EXCEPTION
|
756
|
+
raise Puppet::ParseError.new("next() from context where this is illegal", jumper.file, jumper.line)
|
757
|
+
end
|
758
|
+
rescue Puppet::Pops::Evaluator::Return => jumper
|
749
759
|
begin
|
750
|
-
|
751
|
-
|
752
|
-
|
753
|
-
return scope.send(self.class.method3x, mapped_args)
|
754
|
-
end
|
755
|
-
return result.value
|
756
|
-
rescue Puppet::Pops::Evaluator::Next => jumper
|
757
|
-
begin
|
758
|
-
throw :next, jumper.value
|
759
|
-
rescue Puppet::Parser::Scope::UNCAUGHT_THROW_EXCEPTION
|
760
|
-
raise Puppet::ParseError.new("next() from context where this is illegal", jumper.file, jumper.line)
|
761
|
-
end
|
762
|
-
rescue Puppet::Pops::Evaluator::Return => jumper
|
763
|
-
begin
|
764
|
-
throw :return, jumper
|
765
|
-
rescue Puppet::Parser::Scope::UNCAUGHT_THROW_EXCEPTION
|
766
|
-
raise Puppet::ParseError.new("return() from context where this is illegal", jumper.file, jumper.line)
|
767
|
-
end
|
760
|
+
throw :return, jumper
|
761
|
+
rescue Puppet::Parser::Scope::UNCAUGHT_THROW_EXCEPTION
|
762
|
+
raise Puppet::ParseError.new("return() from context where this is illegal", jumper.file, jumper.line)
|
768
763
|
end
|
769
764
|
end
|
770
765
|
end
|
data/lib/puppet/generate/type.rb
CHANGED
@@ -135,7 +135,7 @@ module Puppet
|
|
135
135
|
end
|
136
136
|
|
137
137
|
# Sort the inputs by path
|
138
|
-
inputs.sort_by!
|
138
|
+
inputs.sort_by!(&:path)
|
139
139
|
end
|
140
140
|
|
141
141
|
def self.bad_input?
|
@@ -155,7 +155,7 @@ module Puppet
|
|
155
155
|
def self.generate(inputs, outputdir = nil, force = false)
|
156
156
|
# remove files for non existing inputs
|
157
157
|
unless outputdir.nil?
|
158
|
-
filenames_to_keep = inputs.map
|
158
|
+
filenames_to_keep = inputs.map(&:output_name)
|
159
159
|
existing_files = Puppet::FileSystem.children(outputdir).map { |f| Puppet::FileSystem.basename(f) }
|
160
160
|
files_to_remove = existing_files - filenames_to_keep
|
161
161
|
files_to_remove.each do |f|
|
@@ -43,9 +43,9 @@ module Puppet::GettextConfig
|
|
43
43
|
# @return [String] the active locale
|
44
44
|
def self.current_locale
|
45
45
|
if gettext_loaded?
|
46
|
-
|
46
|
+
FastGettext.default_locale
|
47
47
|
else
|
48
|
-
|
48
|
+
'en'
|
49
49
|
end
|
50
50
|
end
|
51
51
|
|
@@ -55,7 +55,7 @@ module Puppet::GettextConfig
|
|
55
55
|
def self.loaded_text_domains
|
56
56
|
return [] if @gettext_disabled || !gettext_loaded?
|
57
57
|
|
58
|
-
|
58
|
+
FastGettext.translation_repositories.keys
|
59
59
|
end
|
60
60
|
|
61
61
|
# @api private
|
@@ -191,11 +191,11 @@ module Puppet::GettextConfig
|
|
191
191
|
# @return [String] path to the config, or nil if not found
|
192
192
|
def self.puppet_locale_path
|
193
193
|
if Puppet::FileSystem.exist?(LOCAL_PATH)
|
194
|
-
|
194
|
+
LOCAL_PATH
|
195
195
|
elsif Puppet::Util::Platform.windows? && Puppet::FileSystem.exist?(WINDOWS_PATH)
|
196
|
-
|
196
|
+
WINDOWS_PATH
|
197
197
|
elsif !Puppet::Util::Platform.windows? && Puppet::FileSystem.exist?(POSIX_PATH)
|
198
|
-
|
198
|
+
POSIX_PATH
|
199
199
|
else
|
200
200
|
nil
|
201
201
|
end
|
@@ -207,9 +207,9 @@ module Puppet::GettextConfig
|
|
207
207
|
# @return [Symbol] :mo if in a package structure, :po otherwise
|
208
208
|
def self.translation_mode(conf_path)
|
209
209
|
if WINDOWS_PATH == conf_path || POSIX_PATH == conf_path
|
210
|
-
|
210
|
+
:mo
|
211
211
|
else
|
212
|
-
|
212
|
+
:po
|
213
213
|
end
|
214
214
|
end
|
215
215
|
|
@@ -239,7 +239,7 @@ module Puppet::GettextConfig
|
|
239
239
|
end
|
240
240
|
|
241
241
|
add_repository_to_domain(project_name, locale_dir, file_format, text_domain)
|
242
|
-
|
242
|
+
true
|
243
243
|
end
|
244
244
|
|
245
245
|
# @api private
|