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
@@ -200,7 +200,7 @@ module LexerSupport
|
|
200
200
|
lex_error_without_pos(
|
201
201
|
Puppet::Pops::Issues::ILLEGAL_BOM,
|
202
202
|
{ :format_name => name,
|
203
|
-
:bytes => "[#{bom.values[0, size].map { |b|
|
203
|
+
:bytes => "[#{bom.values[0, size].map { |b| '%X' % b }.join(' ')}]" }
|
204
204
|
)
|
205
205
|
end
|
206
206
|
|
@@ -141,7 +141,7 @@ class Locator
|
|
141
141
|
satisfied = false
|
142
142
|
v = nil
|
143
143
|
|
144
|
-
while low < high
|
144
|
+
while low < high
|
145
145
|
mid = low + ((high - low) / 2)
|
146
146
|
v = (ary[mid] > value)
|
147
147
|
if v == true
|
@@ -161,9 +161,9 @@ class Locator
|
|
161
161
|
end
|
162
162
|
|
163
163
|
return nil if low == ary.length
|
164
|
-
return nil
|
164
|
+
return nil unless satisfied
|
165
165
|
|
166
|
-
|
166
|
+
low
|
167
167
|
end
|
168
168
|
|
169
169
|
def hash
|
@@ -192,7 +192,7 @@ class Locator
|
|
192
192
|
# If not found it is after last
|
193
193
|
# clear cache
|
194
194
|
@prev_offset = @prev_line = nil
|
195
|
-
|
195
|
+
line_index.size
|
196
196
|
end
|
197
197
|
end
|
198
198
|
|
@@ -77,7 +77,7 @@ class Parser
|
|
77
77
|
def parse_file(file)
|
78
78
|
unless Puppet::FileSystem.exist?(file)
|
79
79
|
unless file =~ /\.pp$/
|
80
|
-
file
|
80
|
+
file += ".pp"
|
81
81
|
end
|
82
82
|
end
|
83
83
|
@lexer.file = file
|
@@ -193,16 +193,15 @@ class Parser
|
|
193
193
|
# where the "10, notice" forms an argument list. The parser builds an Array with the expressions and includes
|
194
194
|
# the comma tokens to enable the error to be reported against the first comma.
|
195
195
|
#
|
196
|
-
|
197
|
-
|
198
|
-
|
199
|
-
|
200
|
-
|
201
|
-
|
202
|
-
|
203
|
-
|
204
|
-
|
205
|
-
end
|
196
|
+
|
197
|
+
Factory.transform_calls(expressions)
|
198
|
+
rescue Factory::ArgsToNonCallError => e
|
199
|
+
# e.args[1] is the first comma token in the list
|
200
|
+
# e.name_expr is the function name expression
|
201
|
+
if e.name_expr.is_a?(Factory) && e.name_expr.model_class <= Model::QualifiedName
|
202
|
+
error(e.args[1], _("attempt to pass argument list to the function '%{name}' which cannot be called without parentheses") % { name: e.name_expr['value'] })
|
203
|
+
else
|
204
|
+
error(e.args[1], _("illegal comma separated argument list"))
|
206
205
|
end
|
207
206
|
end
|
208
207
|
|
@@ -229,8 +228,7 @@ class Parser
|
|
229
228
|
_, token = @lexer.emit_completed([:NOOP, '', 0], locator.string.bytesize)
|
230
229
|
loc(no_op, token)
|
231
230
|
# Program with a Noop
|
232
|
-
|
233
|
-
program
|
231
|
+
Factory.PROGRAM(no_op, [], locator)
|
234
232
|
end
|
235
233
|
|
236
234
|
# Performs the parsing and returns the resulting model.
|
@@ -243,7 +241,7 @@ class Parser
|
|
243
241
|
@yydebug = false
|
244
242
|
main = yyparse(@lexer, :scan)
|
245
243
|
end
|
246
|
-
|
244
|
+
main
|
247
245
|
ensure
|
248
246
|
@lexer.clear
|
249
247
|
@namestack = []
|
@@ -196,7 +196,7 @@ class PNParser
|
|
196
196
|
end
|
197
197
|
|
198
198
|
def consume_identifier(s)
|
199
|
-
while @char_types[peek_cp] >= TYPE_IDENTIFIER
|
199
|
+
while @char_types[peek_cp] >= TYPE_IDENTIFIER
|
200
200
|
@pos += 1
|
201
201
|
end
|
202
202
|
id = @text[s...@pos]
|
@@ -287,7 +287,7 @@ class PNParser
|
|
287
287
|
c = peek_cp
|
288
288
|
end
|
289
289
|
|
290
|
-
while @char_types[c] == TYPE_DIGIT
|
290
|
+
while @char_types[c] == TYPE_DIGIT
|
291
291
|
@pos += 1
|
292
292
|
c = peek_cp
|
293
293
|
count += 1
|
@@ -296,7 +296,7 @@ class PNParser
|
|
296
296
|
end
|
297
297
|
|
298
298
|
def skip_white
|
299
|
-
while @char_types[peek_cp] == TYPE_WS
|
299
|
+
while @char_types[peek_cp] == TYPE_WS
|
300
300
|
@pos += 1
|
301
301
|
end
|
302
302
|
end
|
@@ -13,15 +13,15 @@ module Parser
|
|
13
13
|
module SlurpSupport
|
14
14
|
include LexerSupport
|
15
15
|
|
16
|
-
SLURP_SQ_PATTERN = /(?:[^\\]|^)(
|
17
|
-
SLURP_DQ_PATTERN = /(?:[^\\]|^)(
|
18
|
-
SLURP_UQ_PATTERN = /(?:[^\\]|^)(
|
16
|
+
SLURP_SQ_PATTERN = /(?:[^\\]|^)(?:\\{2})*'/
|
17
|
+
SLURP_DQ_PATTERN = /(?:[^\\]|^)(?:\\{2})*("|[$]\{?)/
|
18
|
+
SLURP_UQ_PATTERN = /(?:[^\\]|^)(?:\\{2})*([$]\{?|\z)/
|
19
19
|
# unquoted, no escapes
|
20
20
|
SLURP_UQNE_PATTERN = /(\$\{?|\z)/m
|
21
21
|
SLURP_ALL_PATTERN = /.*(\z)/m
|
22
|
-
SQ_ESCAPES = %w
|
23
|
-
DQ_ESCAPES = %w
|
24
|
-
UQ_ESCAPES = %w
|
22
|
+
SQ_ESCAPES = %w[\\ ']
|
23
|
+
DQ_ESCAPES = %w[\\ $ ' " r n t s u] + ["\r\n", "\n"]
|
24
|
+
UQ_ESCAPES = %w[\\ $ r n t s u] + ["\r\n", "\n"]
|
25
25
|
|
26
26
|
def slurp_sqstring
|
27
27
|
# skip the leading '
|
@@ -76,14 +76,14 @@ module SlurpSupport
|
|
76
76
|
# If later a \u is found it is warned not to be a unicode escape
|
77
77
|
if escapes.include?('u')
|
78
78
|
# gsub must be repeated to cater for adjacent escapes
|
79
|
-
while
|
79
|
+
while str.gsub!(/((?:[^\\]|^)(?:\\{2})*)\\u(?:([\da-fA-F]{4})|\{([\da-fA-F]{1,6})\})/m) { ::Regexp.last_match(1) + [(::Regexp.last_match(2) || ::Regexp.last_match(3)).hex].pack("U") }
|
80
80
|
# empty block. Everything happens in the gsub block
|
81
81
|
end
|
82
82
|
end
|
83
83
|
|
84
84
|
begin
|
85
85
|
str.gsub!(/\\([^\r\n]|(?:\r?\n))/m) {
|
86
|
-
ch =
|
86
|
+
ch = ::Regexp.last_match(1)
|
87
87
|
if escapes.include? ch
|
88
88
|
case ch
|
89
89
|
when 'r'; "\r"
|
data/lib/puppet/pops/patterns.rb
CHANGED
@@ -13,48 +13,48 @@ module Puppet::Pops::Patterns
|
|
13
13
|
# Thus, a hex number has group 3 value, an octal value has group 4 (if it starts with 0), and no group 3
|
14
14
|
# and a floating point value has group 4 and group 5.
|
15
15
|
#
|
16
|
-
NUMERIC =
|
16
|
+
NUMERIC = /\A[[:blank:]]*([-+]?)[[:blank:]]*((0[xX][0-9A-Fa-f]+)|(0?\d+)((?:\.\d+)?(?:[eE]-?\d+)?))[[:blank:]]*\z/
|
17
17
|
|
18
18
|
# Special expression that tests if there is whitespace between sign and number. The expression is used
|
19
19
|
# to strip such whitespace when normal Float or Integer conversion fails.
|
20
|
-
WS_BETWEEN_SIGN_AND_NUMBER =
|
20
|
+
WS_BETWEEN_SIGN_AND_NUMBER = /\A([+-])[[:blank:]]+(.*)\z/
|
21
21
|
|
22
22
|
# ILLEGAL_P3_1_HOSTNAME matches if a hostname contains illegal characters.
|
23
23
|
# This check does not prevent pathological names like 'a....b', '.....', "---". etc.
|
24
|
-
ILLEGAL_HOSTNAME_CHARS =
|
24
|
+
ILLEGAL_HOSTNAME_CHARS = /[^-\w.]/
|
25
25
|
|
26
26
|
# NAME matches a name the same way as the lexer.
|
27
|
-
NAME =
|
27
|
+
NAME = /\A((::)?[a-z]\w*)(::[a-z]\w*)*\z/
|
28
28
|
|
29
29
|
# CLASSREF_EXT matches a class reference the same way as the lexer - i.e. the external source form
|
30
30
|
# where each part must start with a capital letter A-Z.
|
31
31
|
#
|
32
|
-
CLASSREF_EXT =
|
32
|
+
CLASSREF_EXT = /\A((::){0,1}[A-Z]\w*)+\z/
|
33
33
|
|
34
34
|
# Same as CLASSREF_EXT but cannot start with '::'
|
35
35
|
#
|
36
|
-
CLASSREF_EXT_DECL =
|
36
|
+
CLASSREF_EXT_DECL = /\A[A-Z]\w*(?:::[A-Z]\w*)*\z/
|
37
37
|
|
38
38
|
# CLASSREF matches a class reference the way it is represented internally in the
|
39
39
|
# model (i.e. in lower case).
|
40
40
|
#
|
41
|
-
CLASSREF =
|
41
|
+
CLASSREF = /\A((::){0,1}[a-z]\w*)+\z/
|
42
42
|
|
43
43
|
# Same as CLASSREF but cannot start with '::'
|
44
44
|
#
|
45
|
-
CLASSREF_DECL =
|
45
|
+
CLASSREF_DECL = /\A[a-z]\w*(?:::[a-z]\w*)*\z/
|
46
46
|
|
47
47
|
# DOLLAR_VAR matches a variable name including the initial $ character
|
48
|
-
DOLLAR_VAR =
|
48
|
+
DOLLAR_VAR = /\$(::)?(\w+::)*\w+/
|
49
49
|
|
50
50
|
# VAR_NAME matches the name part of a variable (The $ character is not included)
|
51
51
|
# Note, that only the final segment may start with an underscore.
|
52
52
|
# Note, regexp sensitive to backtracking
|
53
|
-
VAR_NAME =
|
53
|
+
VAR_NAME = /\A(?:::)?(?:[a-z]\w*::)*[a-z_]\w*\z/
|
54
54
|
|
55
55
|
# PARAM_NAME matches the name part of a parameter (The $ character is not included)
|
56
|
-
PARAM_NAME =
|
56
|
+
PARAM_NAME = /\A[a-z_]\w*\z/
|
57
57
|
|
58
58
|
# A Numeric var name must be the decimal number 0, or a decimal number not starting with 0
|
59
|
-
NUMERIC_VAR_NAME =
|
59
|
+
NUMERIC_VAR_NAME = /\A(?:0|(?:[1-9][0-9]*))\z/
|
60
60
|
end
|
data/lib/puppet/pops/pcore.rb
CHANGED
@@ -10,7 +10,7 @@ module Pcore
|
|
10
10
|
TYPE_URI = Types::TypeFactory.pattern(TYPE_URI_RX)
|
11
11
|
TYPE_URI_ALIAS = Types::PTypeAliasType.new('Pcore::URI', nil, TYPE_URI)
|
12
12
|
TYPE_SIMPLE_TYPE_NAME = Types::TypeFactory.pattern(/\A[A-Z]\w*\z/)
|
13
|
-
TYPE_QUALIFIED_REFERENCE = Types::TypeFactory.pattern(/\A[A-Z]
|
13
|
+
TYPE_QUALIFIED_REFERENCE = Types::TypeFactory.pattern(/\A[A-Z]\w*(?:::[A-Z]\w*)*\z/)
|
14
14
|
TYPE_MEMBER_NAME = Types::PPatternType.new([Types::PRegexpType.new(Patterns::PARAM_NAME)])
|
15
15
|
|
16
16
|
KEY_PCORE_URI = 'pcore_uri'
|
data/lib/puppet/pops/pn.rb
CHANGED
@@ -116,7 +116,7 @@ module PN
|
|
116
116
|
end
|
117
117
|
|
118
118
|
def to_data
|
119
|
-
{ '^' => [@name] + @elements.map
|
119
|
+
{ '^' => [@name] + @elements.map(&:to_data) }
|
120
120
|
end
|
121
121
|
end
|
122
122
|
|
@@ -166,7 +166,7 @@ module PN
|
|
166
166
|
end
|
167
167
|
|
168
168
|
def to_data
|
169
|
-
@elements.map
|
169
|
+
@elements.map(&:to_data)
|
170
170
|
end
|
171
171
|
end
|
172
172
|
|
@@ -32,7 +32,7 @@ module Puppet
|
|
32
32
|
@stack = Puppet::ThreadLocal.new { Array.new }
|
33
33
|
|
34
34
|
def self.stack(file, line, obj, message, args, &block)
|
35
|
-
file = 'unknown' if
|
35
|
+
file = 'unknown' if file.nil? || file == ''
|
36
36
|
line = 0 if line.nil?
|
37
37
|
|
38
38
|
result = nil
|
@@ -143,7 +143,7 @@ class AbstractReader
|
|
143
143
|
read_payload(data) do |ep|
|
144
144
|
sec = ep.read
|
145
145
|
nsec = ep.read
|
146
|
-
Time::Timestamp.new(sec *
|
146
|
+
Time::Timestamp.new(sec * 1_000_000_000 + nsec)
|
147
147
|
end
|
148
148
|
end
|
149
149
|
|
@@ -151,7 +151,7 @@ class AbstractReader
|
|
151
151
|
read_payload(data) do |ep|
|
152
152
|
sec = ep.read
|
153
153
|
nsec = ep.read
|
154
|
-
Time::Timespan.new(sec *
|
154
|
+
Time::Timespan.new(sec * 1_000_000_000 + nsec)
|
155
155
|
end
|
156
156
|
end
|
157
157
|
|
@@ -178,11 +178,11 @@ class AbstractWriter
|
|
178
178
|
end
|
179
179
|
|
180
180
|
register_type(Extension::TIME, Time::Timestamp) do |o|
|
181
|
-
build_payload { |ep| nsecs = o.nsecs; ep.write(nsecs /
|
181
|
+
build_payload { |ep| nsecs = o.nsecs; ep.write(nsecs / 1_000_000_000); ep.write(nsecs % 1_000_000_000) }
|
182
182
|
end
|
183
183
|
|
184
184
|
register_type(Extension::TIMESPAN, Time::Timespan) do |o|
|
185
|
-
build_payload { |ep| nsecs = o.nsecs; ep.write(nsecs /
|
185
|
+
build_payload { |ep| nsecs = o.nsecs; ep.write(nsecs / 1_000_000_000); ep.write(nsecs % 1_000_000_000) }
|
186
186
|
end
|
187
187
|
|
188
188
|
register_type(Extension::VERSION, SemanticPuppet::Version) do |o|
|
@@ -213,7 +213,7 @@ class AbstractWriter
|
|
213
213
|
end
|
214
214
|
|
215
215
|
def to_s
|
216
|
-
|
216
|
+
self.class.name.to_s
|
217
217
|
end
|
218
218
|
|
219
219
|
def inspect
|
@@ -107,7 +107,7 @@ class Timestamp < TimeData
|
|
107
107
|
fraction = parsed[:sec_fraction]
|
108
108
|
|
109
109
|
# Convert msec rational found in _strptime hash to usec
|
110
|
-
fraction
|
110
|
+
fraction *= 1_000_000 unless fraction.nil?
|
111
111
|
|
112
112
|
# Create the Time instance and adjust for timezone
|
113
113
|
parsed_time = ::Time.utc(parsed[:year], parsed[:mon], parsed[:mday], parsed[:hour], parsed[:min], parsed[:sec], fraction)
|
@@ -37,7 +37,7 @@ class ClassLoader
|
|
37
37
|
def self.provide_from_type(type)
|
38
38
|
case type
|
39
39
|
when PRuntimeType
|
40
|
-
raise ArgumentError
|
40
|
+
raise ArgumentError, "Only Runtime type 'ruby' is supported, got #{type.runtime}" unless type.runtime == :ruby
|
41
41
|
|
42
42
|
provide_from_string(type.runtime_type_name)
|
43
43
|
|
@@ -105,11 +105,9 @@ class ClassLoader
|
|
105
105
|
|
106
106
|
def self.find_class(name_path)
|
107
107
|
name_path.reduce(Object) do |ns, name|
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
return nil
|
112
|
-
end
|
108
|
+
ns.const_get(name, false) # don't search ancestors
|
109
|
+
rescue NameError
|
110
|
+
return nil
|
113
111
|
end
|
114
112
|
end
|
115
113
|
private_class_method :find_class
|
@@ -32,7 +32,7 @@ module Puppet::Pops::Types
|
|
32
32
|
# @raise [ArgumentError] In case an `Iterable` cannot be produced
|
33
33
|
# @api public
|
34
34
|
def self.asserted_iterable(my_caller, obj, infer_elements = false)
|
35
|
-
iter =
|
35
|
+
iter = on(obj, nil, infer_elements)
|
36
36
|
raise ArgumentError, "#{my_caller.class}(): wrong argument type (#{obj.class}; is not Iterable." if iter.nil?
|
37
37
|
|
38
38
|
iter
|
@@ -152,7 +152,7 @@ class PInitType < PTypeWithContainedType
|
|
152
152
|
# The Optional is the same as Variant[T,Undef].
|
153
153
|
# The NotUndef is not meaningful to create instances of
|
154
154
|
if @type.instance_of?(PInitType) || @type.instance_of?(POptionalType) || @type.instance_of?(PNotUndefType)
|
155
|
-
raise ArgumentError
|
155
|
+
raise ArgumentError
|
156
156
|
end
|
157
157
|
|
158
158
|
new_func = @type.new_function
|
@@ -170,7 +170,7 @@ class PObjectType < PMetaType
|
|
170
170
|
# @raises [Puppet::ParseError] if the assertion fails
|
171
171
|
# @api private
|
172
172
|
def assert_can_be_overridden(member)
|
173
|
-
unless
|
173
|
+
unless instance_of?(member.class)
|
174
174
|
raise Puppet::ParseError, _("%{member} attempts to override %{label}") % { member: member.label, label: label }
|
175
175
|
end
|
176
176
|
if @final && !(constant? && member.constant?)
|
@@ -261,7 +261,7 @@ class PObjectType < PMetaType
|
|
261
261
|
# @api private
|
262
262
|
def create_dispatch(instance)
|
263
263
|
# TODO: Assumes Ruby implementation for now
|
264
|
-
if
|
264
|
+
if callable_type.is_a?(PVariantType)
|
265
265
|
callable_type.types.map do |ct|
|
266
266
|
Functions::Dispatch.new(ct, RubyGenerator.protect_reserved_name(name), [], false, ct.block_type.nil? ? nil : 'block')
|
267
267
|
end
|
@@ -656,7 +656,7 @@ class PObjectType < PMetaType
|
|
656
656
|
index = param_names.index(ip)
|
657
657
|
if index.nil?
|
658
658
|
raise Serialization::SerializationError,
|
659
|
-
"Initializer for class #{impl_class.name} parameter '#{ip}' does not match any of the
|
659
|
+
"Initializer for class #{impl_class.name} parameter '#{ip}' does not match any of the attributes of type #{name}"
|
660
660
|
end
|
661
661
|
new_param_types << param_types[index]
|
662
662
|
end
|
@@ -901,7 +901,7 @@ class PObjectType < PMetaType
|
|
901
901
|
tc = TypeCalculator.singleton
|
902
902
|
constants, others = @attributes.partition do |_, a|
|
903
903
|
a.kind == ATTRIBUTE_KIND_CONSTANT && a.type == tc.infer(a.value).generalize
|
904
|
-
end.map
|
904
|
+
end.map(&:to_h)
|
905
905
|
|
906
906
|
result[KEY_ATTRIBUTES] = compressed_members_hash(others) unless others.empty?
|
907
907
|
unless constants.empty?
|
@@ -1111,7 +1111,7 @@ class PObjectType < PMetaType
|
|
1111
1111
|
# @return [PObjectType] the topmost parent who's #equality_attributes include the given _attr_
|
1112
1112
|
def find_equality_definer_of(attr)
|
1113
1113
|
type = self
|
1114
|
-
|
1114
|
+
until type.nil?
|
1115
1115
|
p = type.resolved_parent
|
1116
1116
|
return type unless p.is_a?(PObjectType)
|
1117
1117
|
return type unless p.equality_attributes.include?(attr.name)
|
@@ -209,12 +209,10 @@ class PObjectTypeExtension < PAnyType
|
|
209
209
|
def test_instance?(o, guard)
|
210
210
|
eval = Parser::EvaluatingParser.singleton.evaluator
|
211
211
|
@parameters.keys.all? do |pn|
|
212
|
-
|
213
|
-
|
214
|
-
|
215
|
-
|
216
|
-
false
|
217
|
-
end
|
212
|
+
m = o.public_method(pn)
|
213
|
+
m.arity == 0 ? eval.match?(m.call, @parameters[pn]) : false
|
214
|
+
rescue NameError
|
215
|
+
false
|
218
216
|
end
|
219
217
|
end
|
220
218
|
|
@@ -158,7 +158,7 @@ class PSemVerRangeType < PAnyType
|
|
158
158
|
end
|
159
159
|
|
160
160
|
def from_hash(hash)
|
161
|
-
from_versions(hash['min'], hash.fetch('max'
|
161
|
+
from_versions(hash['min'], hash.fetch('max', :default), hash.fetch('exclude_max', false))
|
162
162
|
end
|
163
163
|
end
|
164
164
|
end
|
@@ -17,7 +17,7 @@ module Types
|
|
17
17
|
# @return [Boolean] `true` if this range intersects with the other range
|
18
18
|
# @api public
|
19
19
|
def intersect?(o)
|
20
|
-
|
20
|
+
instance_of?(o.class) && !(@to < o.numeric_from || o.numeric_to < @from)
|
21
21
|
end
|
22
22
|
|
23
23
|
# Returns the lower bound of the numeric range or `nil` if no lower bound is set.
|
@@ -94,7 +94,7 @@ module Types
|
|
94
94
|
end
|
95
95
|
|
96
96
|
def _assignable?(o, guard)
|
97
|
-
|
97
|
+
instance_of?(o.class) && numeric_from <= o.numeric_from && numeric_to >= o.numeric_to
|
98
98
|
end
|
99
99
|
end
|
100
100
|
|
@@ -183,7 +183,7 @@ class PTypeSetType < PMetaType
|
|
183
183
|
result[KEY_NAME] = @name
|
184
184
|
result[KEY_VERSION] = @version.to_s unless @version.nil?
|
185
185
|
result[KEY_TYPES] = @types unless @types.empty?
|
186
|
-
result[KEY_REFERENCES] = @references.transform_values
|
186
|
+
result[KEY_REFERENCES] = @references.transform_values(&:_pcore_init_hash) unless @references.empty?
|
187
187
|
result
|
188
188
|
end
|
189
189
|
|
@@ -359,20 +359,20 @@ class PTypeSetType < PMetaType
|
|
359
359
|
end
|
360
360
|
|
361
361
|
DEFAULT =
|
362
|
-
|
363
|
-
|
364
|
-
|
365
|
-
|
366
|
-
|
367
|
-
|
368
|
-
|
369
|
-
|
362
|
+
|
363
|
+
new({
|
364
|
+
KEY_NAME => 'DefaultTypeSet',
|
365
|
+
KEY_NAME_AUTHORITY => Pcore::RUNTIME_NAME_AUTHORITY,
|
366
|
+
Pcore::KEY_PCORE_URI => Pcore::PCORE_URI,
|
367
|
+
Pcore::KEY_PCORE_VERSION => Pcore::PCORE_VERSION,
|
368
|
+
KEY_VERSION => SemanticPuppet::Version.new(0, 0, 0)
|
369
|
+
})
|
370
370
|
|
371
371
|
protected
|
372
372
|
|
373
373
|
# @api_private
|
374
374
|
def _assignable?(o, guard)
|
375
|
-
|
375
|
+
instance_of?(o.class) && (self == DEFAULT || eql?(o))
|
376
376
|
end
|
377
377
|
|
378
378
|
private
|
@@ -34,7 +34,7 @@ class PURIType < PAnyType
|
|
34
34
|
TypeFactory.optional(PATH) => PStringType::NON_EMPTY,
|
35
35
|
TypeFactory.optional(QUERY) => PStringType::NON_EMPTY,
|
36
36
|
TypeFactory.optional(FRAGMENT) => PStringType::NON_EMPTY,
|
37
|
-
TypeFactory.optional(OPAQUE) => PStringType::NON_EMPTY
|
37
|
+
TypeFactory.optional(OPAQUE) => PStringType::NON_EMPTY
|
38
38
|
)
|
39
39
|
|
40
40
|
TYPE_STRING_PARAM =
|
@@ -46,7 +46,7 @@ class PURIType < PAnyType
|
|
46
46
|
TypeFactory.type_type(PPatternType::DEFAULT),
|
47
47
|
TypeFactory.type_type(PEnumType::DEFAULT),
|
48
48
|
TypeFactory.type_type(PNotUndefType::DEFAULT),
|
49
|
-
TypeFactory.type_type(PUndefType::DEFAULT)
|
49
|
+
TypeFactory.type_type(PUndefType::DEFAULT)
|
50
50
|
]))
|
51
51
|
|
52
52
|
TYPE_INTEGER_PARAM =
|
@@ -55,7 +55,7 @@ class PURIType < PAnyType
|
|
55
55
|
.new([
|
56
56
|
PIntegerType.new(0),
|
57
57
|
TypeFactory.type_type(PNotUndefType::DEFAULT),
|
58
|
-
TypeFactory.type_type(PUndefType::DEFAULT)
|
58
|
+
TypeFactory.type_type(PUndefType::DEFAULT)
|
59
59
|
]))
|
60
60
|
|
61
61
|
TYPE_URI_PARAM_HASH_TYPE = TypeFactory.struct(
|
@@ -66,7 +66,7 @@ class PURIType < PAnyType
|
|
66
66
|
TypeFactory.optional(PATH) => TYPE_STRING_PARAM,
|
67
67
|
TypeFactory.optional(QUERY) => TYPE_STRING_PARAM,
|
68
68
|
TypeFactory.optional(FRAGMENT) => TYPE_STRING_PARAM,
|
69
|
-
TypeFactory.optional(OPAQUE) => TYPE_STRING_PARAM
|
69
|
+
TypeFactory.optional(OPAQUE) => TYPE_STRING_PARAM
|
70
70
|
)
|
71
71
|
|
72
72
|
TYPE_URI_PARAM_TYPE = PVariantType.new([PStringType::NON_EMPTY, TYPE_URI_PARAM_HASH_TYPE])
|
@@ -46,7 +46,7 @@ class RecursionGuard
|
|
46
46
|
def with_this(instance)
|
47
47
|
if (@state & SELF_RECURSION_IN_THIS) == 0
|
48
48
|
tc = this_count
|
49
|
-
@state
|
49
|
+
@state |= SELF_RECURSION_IN_THIS if this_put(instance)
|
50
50
|
if tc < this_count
|
51
51
|
# recursive state detected
|
52
52
|
result = yield(@state)
|
@@ -66,7 +66,7 @@ class RecursionGuard
|
|
66
66
|
def with_that(instance)
|
67
67
|
if (@state & SELF_RECURSION_IN_THAT) == 0
|
68
68
|
tc = that_count
|
69
|
-
@state
|
69
|
+
@state |= SELF_RECURSION_IN_THAT if that_put(instance)
|
70
70
|
if tc < that_count
|
71
71
|
# recursive state detected
|
72
72
|
result = yield(@state)
|
@@ -85,7 +85,7 @@ class RecursionGuard
|
|
85
85
|
# @return [Integer] the resulting state
|
86
86
|
def add_this(instance)
|
87
87
|
if (@state & SELF_RECURSION_IN_THIS) == 0
|
88
|
-
@state
|
88
|
+
@state |= SELF_RECURSION_IN_THIS if this_put(instance)
|
89
89
|
end
|
90
90
|
@state
|
91
91
|
end
|
@@ -95,7 +95,7 @@ class RecursionGuard
|
|
95
95
|
# @return [Integer] the resulting state
|
96
96
|
def add_that(instance)
|
97
97
|
if (@state & SELF_RECURSION_IN_THAT) == 0
|
98
|
-
@state
|
98
|
+
@state |= SELF_RECURSION_IN_THAT if that_put(instance)
|
99
99
|
end
|
100
100
|
@state
|
101
101
|
end
|
@@ -64,7 +64,7 @@ class RubyGenerator < TypeFormatter
|
|
64
64
|
class_body(key, EMPTY_ARRAY, class_def)
|
65
65
|
cls = Class.new(parent_class)
|
66
66
|
cls.class_eval(class_def)
|
67
|
-
cls.define_singleton_method(:_pcore_type) {
|
67
|
+
cls.define_singleton_method(:_pcore_type) { key }
|
68
68
|
key.implementation_class = cls
|
69
69
|
end
|
70
70
|
hash[key] = cls
|
@@ -220,7 +220,7 @@ class RubyGenerator < TypeFormatter
|
|
220
220
|
end
|
221
221
|
|
222
222
|
init_params = others.reject { |a| a.kind == PObjectType::ATTRIBUTE_KIND_DERIVED }
|
223
|
-
opt, non_opt = init_params.partition
|
223
|
+
opt, non_opt = init_params.partition(&:value?)
|
224
224
|
derived_attrs, obj_attrs = others.select { |a| a.container.equal?(obj) }.partition { |ip| ip.kind == PObjectType::ATTRIBUTE_KIND_DERIVED }
|
225
225
|
|
226
226
|
include_type = obj.equality_include_type? && !(obj.parent.is_a?(PObjectType) && obj.parent.equality_include_type?)
|