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
@@ -47,7 +47,7 @@ class StringConverter
|
|
47
47
|
end
|
48
48
|
|
49
49
|
def padding
|
50
|
-
|
50
|
+
' ' * 2 * level
|
51
51
|
end
|
52
52
|
end
|
53
53
|
|
@@ -89,7 +89,7 @@ class StringConverter
|
|
89
89
|
|
90
90
|
FMT_PATTERN_STR = '^%([\s\[+#0{<(|-]*)([1-9][0-9]*)?(?:\.([0-9]+))?([a-zA-Z])$'
|
91
91
|
FMT_PATTERN = Regexp.compile(FMT_PATTERN_STR)
|
92
|
-
DELIMITERS = ['[', '{', '(', '<', '|'
|
92
|
+
DELIMITERS = ['[', '{', '(', '<', '|']
|
93
93
|
DELIMITER_MAP = {
|
94
94
|
'[' => ['[', ']'],
|
95
95
|
'{' => ['{', '}'],
|
@@ -119,13 +119,17 @@ class StringConverter
|
|
119
119
|
|
120
120
|
@left = flags.include?('-')
|
121
121
|
@alt = flags.include?('#')
|
122
|
-
@plus =
|
122
|
+
@plus = if flags.include?(' ')
|
123
|
+
:space
|
124
|
+
else
|
125
|
+
flags.include?('+') ? :plus : :ignore
|
126
|
+
end
|
123
127
|
@zero_pad = flags.include?('0')
|
124
128
|
|
125
129
|
@delimiters = nil
|
126
130
|
DELIMITERS.each do |d|
|
127
131
|
next unless flags.include?(d)
|
128
|
-
|
132
|
+
unless @delimiters.nil?
|
129
133
|
raise ArgumentError, "Only one of the delimiters [ { ( < | can be given in the format flags, got '#{fmt}'"
|
130
134
|
end
|
131
135
|
|
@@ -550,7 +554,7 @@ class StringConverter
|
|
550
554
|
end
|
551
555
|
private :validate_input
|
552
556
|
|
553
|
-
FMT_KEYS = %w
|
557
|
+
FMT_KEYS = %w[separator separator2 format string_formats].freeze
|
554
558
|
|
555
559
|
def validate_container_input(fmt)
|
556
560
|
if (fmt.keys - FMT_KEYS).size > 0
|
@@ -786,7 +790,7 @@ class StringConverter
|
|
786
790
|
Kernel.format(f.orig_fmt.gsub('s', substitute), val_to_convert)
|
787
791
|
|
788
792
|
when :p
|
789
|
-
# width & precision applied to string, not the
|
793
|
+
# width & precision applied to string, not the name of the type
|
790
794
|
"Binary(\"#{Kernel.format(f.orig_fmt.tr('p', 's'), val.to_s)}\")"
|
791
795
|
|
792
796
|
when :b
|
@@ -826,7 +830,7 @@ class StringConverter
|
|
826
830
|
f.alt? ? apply_string_flags(f, puppet_quote(c_val)) : Kernel.format(f.orig_fmt.tr('c', 's'), c_val)
|
827
831
|
|
828
832
|
when :C
|
829
|
-
c_val = val.split('::').map
|
833
|
+
c_val = val.split('::').map(&:capitalize).join('::')
|
830
834
|
f.alt? ? apply_string_flags(f, puppet_quote(c_val)) : Kernel.format(f.orig_fmt.tr('C', 's'), c_val)
|
831
835
|
|
832
836
|
when :u
|
@@ -1132,7 +1136,7 @@ class StringConverter
|
|
1132
1136
|
fmt = format_options.find { |k, _| k.assignable?(val_t) }
|
1133
1137
|
return fmt[1] unless fmt.nil?
|
1134
1138
|
|
1135
|
-
|
1139
|
+
Format.new("%s")
|
1136
1140
|
end
|
1137
1141
|
private :get_format
|
1138
1142
|
end
|
@@ -108,12 +108,10 @@ class TreeIterator
|
|
108
108
|
private :indexer_on
|
109
109
|
|
110
110
|
def has_next?(iterator)
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
false
|
116
|
-
end
|
111
|
+
iterator.peek
|
112
|
+
true
|
113
|
+
rescue StopIteration
|
114
|
+
false
|
117
115
|
end
|
118
116
|
private :has_next?
|
119
117
|
|
@@ -132,15 +132,15 @@ class TypeCalculator
|
|
132
132
|
# @api private
|
133
133
|
def self.infer_callable_methods_t(o)
|
134
134
|
# If being a value that cannot have Pcore based methods callable from Puppet Language
|
135
|
-
if
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
135
|
+
if o.is_a?(String) ||
|
136
|
+
o.is_a?(Numeric) ||
|
137
|
+
o.is_a?(TrueClass) ||
|
138
|
+
o.is_a?(FalseClass) ||
|
139
|
+
o.is_a?(Regexp) ||
|
140
|
+
o.instance_of?(Array) ||
|
141
|
+
o.instance_of?(Hash) ||
|
142
|
+
Types::PUndefType::DEFAULT.instance?(o)
|
143
|
+
|
144
144
|
return nil
|
145
145
|
end
|
146
146
|
|
@@ -386,7 +386,7 @@ class TypeCalculator
|
|
386
386
|
end
|
387
387
|
|
388
388
|
if t1.is_a?(PStringType) && (t2.is_a?(PStringType) || t2.is_a?(PEnumType))
|
389
|
-
if
|
389
|
+
if t2.is_a?(PEnumType)
|
390
390
|
return t1.value.nil? ? PEnumType::DEFAULT : PEnumType.new(t2.values | [t1.value])
|
391
391
|
end
|
392
392
|
|
@@ -248,7 +248,11 @@ module TypeFactory
|
|
248
248
|
# @api public
|
249
249
|
#
|
250
250
|
def self.boolean(value = nil)
|
251
|
-
value.nil?
|
251
|
+
if value.nil?
|
252
|
+
PBooleanType::DEFAULT
|
253
|
+
else
|
254
|
+
value ? PBooleanType::TRUE : PBooleanType::FALSE
|
255
|
+
end
|
252
256
|
end
|
253
257
|
|
254
258
|
# Produces the Any type
|
@@ -309,7 +313,7 @@ module TypeFactory
|
|
309
313
|
# @api public
|
310
314
|
#
|
311
315
|
def self.all_callables
|
312
|
-
|
316
|
+
PCallableType::DEFAULT
|
313
317
|
end
|
314
318
|
|
315
319
|
# Produces a Callable type with one signature without support for a block
|
@@ -623,7 +627,7 @@ module TypeFactory
|
|
623
627
|
# @param type_string [String] the string form of the type
|
624
628
|
# @return [PTypeReferenceType] the type reference
|
625
629
|
def self.type_reference(type_string = nil)
|
626
|
-
type_string
|
630
|
+
type_string.nil? ? PTypeReferenceType::DEFAULT : PTypeReferenceType.new(type_string)
|
627
631
|
end
|
628
632
|
|
629
633
|
# Returns true if the given type t is of valid range parameter type (integer
|
@@ -687,37 +687,35 @@ class TypeFormatter
|
|
687
687
|
end
|
688
688
|
|
689
689
|
def append_object_hash(hash)
|
690
|
-
|
691
|
-
|
692
|
-
|
693
|
-
|
694
|
-
|
695
|
-
|
696
|
-
|
697
|
-
|
698
|
-
|
699
|
-
|
700
|
-
|
701
|
-
|
702
|
-
|
703
|
-
|
704
|
-
append_string(fav)
|
705
|
-
end
|
690
|
+
@expanded = false
|
691
|
+
append_array('Object') do
|
692
|
+
append_hash(hash, proc { |k| @bld << symbolic_key(k) }) do |k, v|
|
693
|
+
case k
|
694
|
+
when KEY_ATTRIBUTES, KEY_FUNCTIONS
|
695
|
+
# Types might need to be output as type references
|
696
|
+
append_hash(v) do |_, fv|
|
697
|
+
if fv.is_a?(Hash)
|
698
|
+
append_hash(fv, proc { |fak| @bld << symbolic_key(fak) }) do |fak, fav|
|
699
|
+
case fak
|
700
|
+
when KEY_KIND
|
701
|
+
@bld << fav
|
702
|
+
else
|
703
|
+
append_string(fav)
|
706
704
|
end
|
707
|
-
else
|
708
|
-
append_string(fv)
|
709
705
|
end
|
706
|
+
else
|
707
|
+
append_string(fv)
|
710
708
|
end
|
711
|
-
when KEY_EQUALITY
|
712
|
-
append_array('') { append_strings(v) } if v.is_a?(Array)
|
713
|
-
else
|
714
|
-
append_string(v)
|
715
709
|
end
|
710
|
+
when KEY_EQUALITY
|
711
|
+
append_array('') { append_strings(v) } if v.is_a?(Array)
|
712
|
+
else
|
713
|
+
append_string(v)
|
716
714
|
end
|
717
715
|
end
|
718
|
-
ensure
|
719
|
-
@expanded = true
|
720
716
|
end
|
717
|
+
ensure
|
718
|
+
@expanded = true
|
721
719
|
end
|
722
720
|
|
723
721
|
def append_elements(array, to_be_continued = false)
|
@@ -131,7 +131,7 @@ module Types
|
|
131
131
|
|
132
132
|
chopped_path = @path.clone
|
133
133
|
chopped_path.delete_at(element_index)
|
134
|
-
copy =
|
134
|
+
copy = clone
|
135
135
|
copy.instance_variable_set(:@path, chopped_path)
|
136
136
|
copy
|
137
137
|
end
|
@@ -287,7 +287,7 @@ module Types
|
|
287
287
|
if e.is_a?(Array)
|
288
288
|
if report_detailed?(e, a)
|
289
289
|
a = detailed_actual_to_s(e, a)
|
290
|
-
e = e.map
|
290
|
+
e = e.map(&:to_alias_expanded_s)
|
291
291
|
else
|
292
292
|
e = e.map { |t| short_name(t) }.uniq
|
293
293
|
a = short_name(a)
|
@@ -533,10 +533,10 @@ module Types
|
|
533
533
|
when 0
|
534
534
|
# do nothing
|
535
535
|
when 1
|
536
|
-
raise Puppet::ParseError
|
536
|
+
raise Puppet::ParseError, "#{subject}:#{errors[0].format}"
|
537
537
|
else
|
538
|
-
errors_str = errors.map
|
539
|
-
raise Puppet::ParseError
|
538
|
+
errors_str = errors.map(&:format).join("\n ")
|
539
|
+
raise Puppet::ParseError, "#{subject}:\n #{errors_str}"
|
540
540
|
end
|
541
541
|
end
|
542
542
|
|
@@ -556,7 +556,7 @@ module Types
|
|
556
556
|
when 1
|
557
557
|
errors[0].format.strip
|
558
558
|
else
|
559
|
-
errors.map
|
559
|
+
errors.map(&:format).join("\n ")
|
560
560
|
end
|
561
561
|
end
|
562
562
|
|
@@ -574,10 +574,10 @@ module Types
|
|
574
574
|
when 0
|
575
575
|
# do nothing
|
576
576
|
when 1
|
577
|
-
raise Puppet::ParseError
|
577
|
+
raise Puppet::ParseError, "#{subject}:#{errors[0].format}"
|
578
578
|
else
|
579
|
-
errors_str = errors.map
|
580
|
-
raise Puppet::ParseError
|
579
|
+
errors_str = errors.map(&:format).join("\n ")
|
580
|
+
raise Puppet::ParseError, "#{subject}:\n #{errors_str}"
|
581
581
|
end
|
582
582
|
end
|
583
583
|
end
|
@@ -758,19 +758,19 @@ module Types
|
|
758
758
|
descriptions = variant_descriptions.flatten
|
759
759
|
[size_mismatch_class, MissingRequiredBlock, UnexpectedBlock, TypeMismatch].each do |mismatch_class|
|
760
760
|
mismatches = descriptions.select { |desc| desc.is_a?(mismatch_class) }
|
761
|
-
|
762
|
-
# If they all have the same canonical path, then we can compact this into one
|
763
|
-
generic_mismatch = mismatches.inject do |prev, curr|
|
764
|
-
break nil unless prev.canonical_path == curr.canonical_path
|
761
|
+
next unless mismatches.size == variant_descriptions.size
|
765
762
|
|
766
|
-
|
767
|
-
|
768
|
-
unless
|
769
|
-
|
770
|
-
|
771
|
-
break
|
772
|
-
end
|
763
|
+
# If they all have the same canonical path, then we can compact this into one
|
764
|
+
generic_mismatch = mismatches.inject do |prev, curr|
|
765
|
+
break nil unless prev.canonical_path == curr.canonical_path
|
766
|
+
|
767
|
+
prev.merge(prev.path, curr)
|
773
768
|
end
|
769
|
+
next if generic_mismatch.nil?
|
770
|
+
|
771
|
+
# Report the generic mismatch and skip the rest
|
772
|
+
descriptions = [generic_mismatch]
|
773
|
+
break
|
774
774
|
end
|
775
775
|
descriptions = descriptions.uniq
|
776
776
|
descriptions.size == 1 ? [descriptions[0].chop_path(varying_path_position)] : descriptions
|
@@ -894,7 +894,7 @@ module Types
|
|
894
894
|
end
|
895
895
|
|
896
896
|
def describe_tuple(expected, original, actual, path, size_mismatch_class)
|
897
|
-
return EMPTY_ARRAY if expected == actual || expected.types.empty? &&
|
897
|
+
return EMPTY_ARRAY if expected == actual || expected.types.empty? && actual.is_a?(PArrayType)
|
898
898
|
|
899
899
|
expected_size = expected.size_type || TypeFactory.range(*expected.size_range)
|
900
900
|
|
@@ -954,9 +954,7 @@ module Types
|
|
954
954
|
if param_errors.empty?
|
955
955
|
this_return_t = expected.return_type || PAnyType::DEFAULT
|
956
956
|
that_return_t = actual.return_type || PAnyType::DEFAULT
|
957
|
-
|
958
|
-
[TypeMismatch.new(path + [ReturnTypeElement.new], this_return_t, that_return_t)]
|
959
|
-
else
|
957
|
+
if this_return_t.assignable?(that_return_t)
|
960
958
|
# names are ignored, they are just information
|
961
959
|
# Blocks must be compatible
|
962
960
|
this_block_t = expected.block_type || PUndefType::DEFAULT
|
@@ -966,6 +964,8 @@ module Types
|
|
966
964
|
else
|
967
965
|
[TypeMismatch.new(path + [BlockPathElement.new], this_block_t, that_block_t)]
|
968
966
|
end
|
967
|
+
else
|
968
|
+
[TypeMismatch.new(path + [ReturnTypeElement.new], this_return_t, that_return_t)]
|
969
969
|
end
|
970
970
|
else
|
971
971
|
param_errors
|
@@ -57,7 +57,7 @@ class TypedModelObject < Object
|
|
57
57
|
def self.register_ptypes(loader, ir)
|
58
58
|
types = [
|
59
59
|
Annotation.register_ptype(loader, ir),
|
60
|
-
RubyMethod.register_ptype(loader, ir)
|
60
|
+
RubyMethod.register_ptype(loader, ir)
|
61
61
|
]
|
62
62
|
Types.constants.each do |c|
|
63
63
|
next if c == :PType || c == :PHostClassType
|
@@ -131,7 +131,7 @@ class PAnyType < TypedModelObject
|
|
131
131
|
end
|
132
132
|
when PVariantType
|
133
133
|
# Assignable if all contained types are assignable, or if this is exactly Any
|
134
|
-
return true if
|
134
|
+
return true if instance_of?(PAnyType)
|
135
135
|
# An empty variant may be assignable to NotUndef[T] if T is assignable to empty variant
|
136
136
|
return _assignable?(o, guard) if is_a?(PNotUndefType) && o.types.empty?
|
137
137
|
|
@@ -342,7 +342,7 @@ class PAnyType < TypedModelObject
|
|
342
342
|
# @raises ArgumentError
|
343
343
|
#
|
344
344
|
def self.new_function(type)
|
345
|
-
raise ArgumentError
|
345
|
+
raise ArgumentError, "Creation of new instance of type '#{type}' is not supported"
|
346
346
|
end
|
347
347
|
|
348
348
|
# Answers the question if instances of this type can represent themselves as a string that
|
@@ -400,7 +400,7 @@ class PAnyType < TypedModelObject
|
|
400
400
|
modified = false
|
401
401
|
modified_types = types.map do |t|
|
402
402
|
t_mod = t.send(method, *method_args)
|
403
|
-
modified
|
403
|
+
modified ||= !t.equal?(t_mod)
|
404
404
|
t_mod
|
405
405
|
end
|
406
406
|
if modified
|
@@ -737,7 +737,7 @@ class PScalarDataType < PScalarType
|
|
737
737
|
end
|
738
738
|
|
739
739
|
def instance?(o, guard = nil)
|
740
|
-
|
740
|
+
o.instance_of?(String) || o.is_a?(Integer) || o.is_a?(Float) || o.is_a?(TrueClass) || o.is_a?(FalseClass)
|
741
741
|
end
|
742
742
|
|
743
743
|
DEFAULT = PScalarDataType.new
|
@@ -919,9 +919,9 @@ class PNumericType < PScalarDataType
|
|
919
919
|
|
920
920
|
Puppet::Pops::Utils.to_n(from)
|
921
921
|
rescue TypeError => e
|
922
|
-
raise TypeConversionError
|
922
|
+
raise TypeConversionError, e.message
|
923
923
|
rescue ArgumentError => e
|
924
|
-
raise TypeConversionError
|
924
|
+
raise TypeConversionError, e.message
|
925
925
|
end
|
926
926
|
end
|
927
927
|
end
|
@@ -952,7 +952,7 @@ class PNumericType < PScalarDataType
|
|
952
952
|
# @return [Boolean] `true` if this range intersects with the other range
|
953
953
|
# @api public
|
954
954
|
def intersect?(o)
|
955
|
-
|
955
|
+
instance_of?(o.class) && !(@to < o.numeric_from || o.numeric_to < @from)
|
956
956
|
end
|
957
957
|
|
958
958
|
# Returns the lower bound of the numeric range or `nil` if no lower bound is set.
|
@@ -1088,7 +1088,11 @@ class PIntegerType < PNumericType
|
|
1088
1088
|
# numbers are converted to zero
|
1089
1089
|
# @return [PIntegerType] a positive range
|
1090
1090
|
def to_size
|
1091
|
-
@from >= 0
|
1091
|
+
if @from >= 0
|
1092
|
+
self
|
1093
|
+
else
|
1094
|
+
PIntegerType.new(0, @to < 0 ? 0 : @to)
|
1095
|
+
end
|
1092
1096
|
end
|
1093
1097
|
|
1094
1098
|
def new_function
|
@@ -1142,7 +1146,7 @@ class PIntegerType < PNumericType
|
|
1142
1146
|
begin
|
1143
1147
|
radix == :default ? Integer(from) : Integer(from, radix)
|
1144
1148
|
rescue TypeError => e
|
1145
|
-
raise TypeConversionError
|
1149
|
+
raise TypeConversionError, e.message
|
1146
1150
|
rescue ArgumentError => e
|
1147
1151
|
# Test for special case where there is whitespace between sign and number
|
1148
1152
|
match = Patterns::WS_BETWEEN_SIGN_AND_NUMBER.match(from)
|
@@ -1154,7 +1158,7 @@ class PIntegerType < PNumericType
|
|
1154
1158
|
# Ignored to retain original error
|
1155
1159
|
end
|
1156
1160
|
end
|
1157
|
-
raise TypeConversionError
|
1161
|
+
raise TypeConversionError, e.message
|
1158
1162
|
end
|
1159
1163
|
end
|
1160
1164
|
end
|
@@ -1184,7 +1188,7 @@ class PIntegerType < PNumericType
|
|
1184
1188
|
when 2, 8, 10, 16
|
1185
1189
|
# do nothing
|
1186
1190
|
else
|
1187
|
-
raise ArgumentError
|
1191
|
+
raise ArgumentError, _("Illegal radix: %{radix}, expected 2, 8, 10, 16, or default") % { radix: radix }
|
1188
1192
|
end
|
1189
1193
|
radix
|
1190
1194
|
end
|
@@ -1277,7 +1281,7 @@ class PFloatType < PNumericType
|
|
1277
1281
|
end
|
1278
1282
|
Float(from)
|
1279
1283
|
rescue TypeError => e
|
1280
|
-
raise TypeConversionError
|
1284
|
+
raise TypeConversionError, e.message
|
1281
1285
|
rescue ArgumentError => e
|
1282
1286
|
# Test for special case where there is whitespace between sign and number
|
1283
1287
|
match = Patterns::WS_BETWEEN_SIGN_AND_NUMBER.match(from)
|
@@ -1289,7 +1293,7 @@ class PFloatType < PNumericType
|
|
1289
1293
|
# Ignored to retain original error
|
1290
1294
|
end
|
1291
1295
|
end
|
1292
|
-
raise TypeConversionError
|
1296
|
+
raise TypeConversionError, e.message
|
1293
1297
|
end
|
1294
1298
|
end
|
1295
1299
|
end
|
@@ -1816,7 +1820,7 @@ class PPatternType < PScalarDataType
|
|
1816
1820
|
else
|
1817
1821
|
# the string in String type must match one of the patterns in Pattern type,
|
1818
1822
|
# or Pattern represents all Patterns == all Strings
|
1819
|
-
regexps = @patterns.map
|
1823
|
+
regexps = @patterns.map(&:regexp)
|
1820
1824
|
regexps.empty? || regexps.any? { |re| re.match(v) }
|
1821
1825
|
end
|
1822
1826
|
when PEnumType
|
@@ -1827,7 +1831,7 @@ class PPatternType < PScalarDataType
|
|
1827
1831
|
else
|
1828
1832
|
# all strings in String/Enum type must match one of the patterns in Pattern type,
|
1829
1833
|
# or Pattern represents all Patterns == all Strings
|
1830
|
-
regexps = @patterns.map
|
1834
|
+
regexps = @patterns.map(&:regexp)
|
1831
1835
|
regexps.empty? || o.values.all? { |s| regexps.any? { |re| re.match(s) } }
|
1832
1836
|
end
|
1833
1837
|
when PPatternType
|
@@ -1963,7 +1967,7 @@ class PStructElement < TypedModelObject
|
|
1963
1967
|
end
|
1964
1968
|
|
1965
1969
|
def <=>(o)
|
1966
|
-
|
1970
|
+
name <=> o.name
|
1967
1971
|
end
|
1968
1972
|
|
1969
1973
|
def eql?(o)
|
@@ -2045,8 +2049,8 @@ class PStructType < PAnyType
|
|
2045
2049
|
else
|
2046
2050
|
PIterableType.new(
|
2047
2051
|
PTupleType.new([
|
2048
|
-
PVariantType.maybe_create(@elements.map
|
2049
|
-
PVariantType.maybe_create(@elements.map
|
2052
|
+
PVariantType.maybe_create(@elements.map(&:key_type)),
|
2053
|
+
PVariantType.maybe_create(@elements.map(&:value_type))
|
2050
2054
|
],
|
2051
2055
|
PHashType::KEY_PAIR_TUPLE_SIZE)
|
2052
2056
|
)
|
@@ -2434,7 +2438,7 @@ class PCallableType < PAnyType
|
|
2434
2438
|
return false unless @param_types.instance?(args)
|
2435
2439
|
|
2436
2440
|
if @block_type.nil?
|
2437
|
-
block
|
2441
|
+
block.nil?
|
2438
2442
|
else
|
2439
2443
|
@block_type.instance?(block)
|
2440
2444
|
end
|
@@ -2842,7 +2846,7 @@ class PHashType < PCollectionType
|
|
2842
2846
|
{}
|
2843
2847
|
else
|
2844
2848
|
unless from.size.even?
|
2845
|
-
raise TypeConversionError
|
2849
|
+
raise TypeConversionError, _('odd number of arguments for Hash')
|
2846
2850
|
end
|
2847
2851
|
|
2848
2852
|
Hash[*from]
|
@@ -2854,7 +2858,7 @@ class PHashType < PCollectionType
|
|
2854
2858
|
Hash[*Iterable.on(from).to_a]
|
2855
2859
|
else
|
2856
2860
|
t = TypeCalculator.singleton.infer(from).generalize
|
2857
|
-
raise TypeConversionError
|
2861
|
+
raise TypeConversionError, _("Value of type %{type} cannot be converted to Hash") % { type: t }
|
2858
2862
|
end
|
2859
2863
|
end
|
2860
2864
|
end
|
@@ -3054,7 +3058,7 @@ class PVariantType < PAnyType
|
|
3054
3058
|
not_undefs = parts[0]
|
3055
3059
|
if not_undefs.size > 1
|
3056
3060
|
others = parts[1]
|
3057
|
-
others << PNotUndefType.new(PVariantType.maybe_create(not_undefs.map
|
3061
|
+
others << PNotUndefType.new(PVariantType.maybe_create(not_undefs.map(&:type)).normalize)
|
3058
3062
|
array = others
|
3059
3063
|
end
|
3060
3064
|
end
|
@@ -3097,7 +3101,7 @@ class PVariantType < PAnyType
|
|
3097
3101
|
patterns = parts[0]
|
3098
3102
|
if patterns.size > 1
|
3099
3103
|
others = parts[1]
|
3100
|
-
others << PPatternType.new(patterns.map
|
3104
|
+
others << PPatternType.new(patterns.map(&:patterns).flatten.uniq)
|
3101
3105
|
array = others
|
3102
3106
|
end
|
3103
3107
|
end
|
data/lib/puppet/pops/utils.rb
CHANGED
@@ -45,37 +45,35 @@ module Utils
|
|
45
45
|
# @api public
|
46
46
|
#
|
47
47
|
def self.to_n_with_radix o
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
if !match
|
53
|
-
nil
|
54
|
-
elsif match[5].to_s.length > 0
|
55
|
-
fp_value = match_to_fp(match)
|
56
|
-
fp_value.nil? ? nil : [fp_value, 10]
|
57
|
-
else
|
58
|
-
# Set radix (default is decimal == 10)
|
59
|
-
radix = 10
|
60
|
-
if match[3].to_s.length > 0
|
61
|
-
radix = 16
|
62
|
-
elsif match[4].to_s.length > 1 && match[4][0, 1] == '0'
|
63
|
-
radix = 8
|
64
|
-
end
|
65
|
-
# Ruby 1.8.7 does not have a second argument to Kernel method that creates an
|
66
|
-
# integer from a string, it relies on the prefix 0x, 0X, 0 (and unsupported in puppet binary 'b')
|
67
|
-
# We have the correct string here, match[2] is safe to parse without passing on radix
|
68
|
-
match[1] == '-' ? [-Integer(match[2]), radix] : [Integer(match[2]), radix]
|
69
|
-
end
|
70
|
-
when Numeric
|
71
|
-
# Impossible to calculate radix, assume decimal
|
72
|
-
[o, 10]
|
73
|
-
else
|
48
|
+
case o
|
49
|
+
when String
|
50
|
+
match = Patterns::NUMERIC.match(relativize_name(o))
|
51
|
+
if !match
|
74
52
|
nil
|
53
|
+
elsif match[5].to_s.length > 0
|
54
|
+
fp_value = match_to_fp(match)
|
55
|
+
fp_value.nil? ? nil : [fp_value, 10]
|
56
|
+
else
|
57
|
+
# Set radix (default is decimal == 10)
|
58
|
+
radix = 10
|
59
|
+
if match[3].to_s.length > 0
|
60
|
+
radix = 16
|
61
|
+
elsif match[4].to_s.length > 1 && match[4][0, 1] == '0'
|
62
|
+
radix = 8
|
63
|
+
end
|
64
|
+
# Ruby 1.8.7 does not have a second argument to Kernel method that creates an
|
65
|
+
# integer from a string, it relies on the prefix 0x, 0X, 0 (and unsupported in puppet binary 'b')
|
66
|
+
# We have the correct string here, match[2] is safe to parse without passing on radix
|
67
|
+
match[1] == '-' ? [-Integer(match[2]), radix] : [Integer(match[2]), radix]
|
75
68
|
end
|
76
|
-
|
69
|
+
when Numeric
|
70
|
+
# Impossible to calculate radix, assume decimal
|
71
|
+
[o, 10]
|
72
|
+
else
|
77
73
|
nil
|
78
74
|
end
|
75
|
+
rescue ArgumentError
|
76
|
+
nil
|
79
77
|
end
|
80
78
|
|
81
79
|
# To Numeric (or already numeric)
|
@@ -84,25 +82,23 @@ module Utils
|
|
84
82
|
# A leading '::' is accepted (and ignored)
|
85
83
|
#
|
86
84
|
def self.to_n o
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
if !match
|
92
|
-
nil
|
93
|
-
elsif match[5].to_s.length > 0
|
94
|
-
match_to_fp(match)
|
95
|
-
else
|
96
|
-
match[1] == '-' ? -Integer(match[2]) : Integer(match[2])
|
97
|
-
end
|
98
|
-
when Numeric
|
99
|
-
o
|
100
|
-
else
|
85
|
+
case o
|
86
|
+
when String
|
87
|
+
match = Patterns::NUMERIC.match(relativize_name(o))
|
88
|
+
if !match
|
101
89
|
nil
|
90
|
+
elsif match[5].to_s.length > 0
|
91
|
+
match_to_fp(match)
|
92
|
+
else
|
93
|
+
match[1] == '-' ? -Integer(match[2]) : Integer(match[2])
|
102
94
|
end
|
103
|
-
|
95
|
+
when Numeric
|
96
|
+
o
|
97
|
+
else
|
104
98
|
nil
|
105
99
|
end
|
100
|
+
rescue ArgumentError
|
101
|
+
nil
|
106
102
|
end
|
107
103
|
|
108
104
|
# is the name absolute (i.e. starts with ::)
|