puppet 8.5.1 → 8.6.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile.lock +23 -20
- data/ext/windows/service/daemon.rb +49 -55
- data/lib/hiera/scope.rb +3 -3
- data/lib/hiera_puppet.rb +1 -1
- data/lib/puppet/agent/disabler.rb +1 -1
- data/lib/puppet/application/agent.rb +2 -2
- data/lib/puppet/application/apply.rb +2 -2
- data/lib/puppet/application/describe.rb +6 -6
- data/lib/puppet/application/device.rb +99 -100
- data/lib/puppet/application/doc.rb +1 -1
- data/lib/puppet/application/face_base.rb +7 -7
- data/lib/puppet/application/filebucket.rb +1 -1
- data/lib/puppet/application/lookup.rb +5 -5
- data/lib/puppet/application/resource.rb +10 -3
- data/lib/puppet/application/ssl.rb +3 -3
- data/lib/puppet/application.rb +16 -18
- data/lib/puppet/coercion.rb +1 -1
- data/lib/puppet/configurer/downloader.rb +9 -4
- data/lib/puppet/configurer/fact_handler.rb +12 -13
- data/lib/puppet/configurer.rb +16 -18
- data/lib/puppet/confine/feature.rb +1 -1
- data/lib/puppet/confine/variable.rb +1 -1
- data/lib/puppet/confine.rb +2 -2
- data/lib/puppet/confine_collection.rb +1 -1
- data/lib/puppet/confiner.rb +2 -2
- data/lib/puppet/daemon.rb +3 -3
- data/lib/puppet/datatypes.rb +5 -6
- data/lib/puppet/defaults.rb +14 -8
- data/lib/puppet/environments.rb +3 -7
- data/lib/puppet/error.rb +3 -3
- data/lib/puppet/external/dot.rb +42 -34
- data/lib/puppet/face/catalog/select.rb +1 -1
- data/lib/puppet/face/epp.rb +7 -9
- data/lib/puppet/face/help.rb +12 -12
- data/lib/puppet/face/module/changes.rb +1 -3
- data/lib/puppet/face/module/list.rb +37 -37
- data/lib/puppet/face/node/clean.rb +1 -1
- data/lib/puppet/face/parser.rb +6 -8
- data/lib/puppet/face/report.rb +5 -7
- data/lib/puppet/facter_impl.rb +1 -1
- data/lib/puppet/feature/base.rb +9 -11
- data/lib/puppet/feature/pe_license.rb +1 -1
- data/lib/puppet/feature/ssh.rb +1 -1
- data/lib/puppet/feature/telnet.rb +3 -5
- data/lib/puppet/feature/zlib.rb +1 -1
- data/lib/puppet/ffi/windows/constants.rb +1 -1
- data/lib/puppet/ffi/windows/functions.rb +2 -2
- data/lib/puppet/ffi/windows/structs.rb +3 -3
- data/lib/puppet/file_bucket/dipper.rb +4 -4
- data/lib/puppet/file_bucket/file.rb +4 -4
- data/lib/puppet/file_serving/base.rb +5 -5
- data/lib/puppet/file_serving/configuration/parser.rb +9 -9
- data/lib/puppet/file_serving/configuration.rb +3 -3
- data/lib/puppet/file_serving/fileset.rb +13 -13
- data/lib/puppet/file_serving/http_metadata.rb +1 -1
- data/lib/puppet/file_serving/metadata.rb +13 -9
- data/lib/puppet/file_serving/mount/file.rb +6 -6
- data/lib/puppet/file_serving/mount/locales.rb +2 -4
- data/lib/puppet/file_serving/mount/pluginfacts.rb +2 -4
- data/lib/puppet/file_serving/mount/plugins.rb +2 -4
- data/lib/puppet/file_serving/mount.rb +1 -1
- data/lib/puppet/file_system/file_impl.rb +3 -3
- data/lib/puppet/file_system/memory_impl.rb +1 -1
- data/lib/puppet/file_system/path_pattern.rb +1 -1
- data/lib/puppet/file_system/uniquefile.rb +17 -16
- data/lib/puppet/file_system/windows.rb +26 -18
- data/lib/puppet/forge/cache.rb +2 -2
- data/lib/puppet/forge/errors.rb +1 -1
- data/lib/puppet/forge/repository.rb +2 -2
- data/lib/puppet/forge.rb +13 -19
- data/lib/puppet/functions/abs.rb +2 -2
- data/lib/puppet/functions/camelcase.rb +1 -1
- data/lib/puppet/functions/compare.rb +2 -2
- data/lib/puppet/functions/contain.rb +1 -1
- data/lib/puppet/functions/defined.rb +2 -2
- data/lib/puppet/functions/dig.rb +1 -1
- data/lib/puppet/functions/eyaml_lookup_key.rb +11 -13
- data/lib/puppet/functions/get.rb +1 -1
- data/lib/puppet/functions/hocon_data.rb +3 -5
- data/lib/puppet/functions/import.rb +1 -1
- data/lib/puppet/functions/json_data.rb +4 -6
- data/lib/puppet/functions/max.rb +2 -2
- data/lib/puppet/functions/min.rb +2 -2
- data/lib/puppet/functions/new.rb +1 -1
- data/lib/puppet/functions/reduce.rb +6 -10
- data/lib/puppet/functions/regsubst.rb +2 -2
- data/lib/puppet/functions/require.rb +1 -1
- data/lib/puppet/functions/yaml_data.rb +11 -13
- data/lib/puppet/functions.rb +32 -37
- data/lib/puppet/generate/type.rb +2 -2
- data/lib/puppet/gettext/config.rb +9 -9
- data/lib/puppet/graph/rb_tree_map.rb +31 -23
- data/lib/puppet/graph/relationship_graph.rb +12 -12
- data/lib/puppet/graph/simple_graph.rb +8 -10
- data/lib/puppet/http/client.rb +1 -1
- data/lib/puppet/http/dns.rb +4 -4
- data/lib/puppet/http/external_client.rb +1 -1
- data/lib/puppet/http/factory.rb +1 -1
- data/lib/puppet/http/proxy.rb +15 -15
- data/lib/puppet/http/redirector.rb +6 -2
- data/lib/puppet/http/resolver.rb +2 -2
- data/lib/puppet/http/retry_after_handler.rb +2 -2
- data/lib/puppet/http/service/ca.rb +1 -1
- data/lib/puppet/http/service/compiler.rb +4 -4
- data/lib/puppet/http/service/file_server.rb +1 -1
- data/lib/puppet/http/service/report.rb +2 -2
- data/lib/puppet/http/service.rb +9 -13
- data/lib/puppet/http/session.rb +1 -1
- data/lib/puppet/http/site.rb +1 -1
- data/lib/puppet/indirector/catalog/compiler.rb +44 -45
- data/lib/puppet/indirector/catalog/rest.rb +7 -5
- data/lib/puppet/indirector/catalog/store_configs.rb +1 -1
- data/lib/puppet/indirector/exec.rb +2 -2
- data/lib/puppet/indirector/face.rb +7 -9
- data/lib/puppet/indirector/fact_search.rb +1 -1
- data/lib/puppet/indirector/facts/facter.rb +6 -6
- data/lib/puppet/indirector/facts/json.rb +1 -1
- data/lib/puppet/indirector/facts/store_configs.rb +1 -1
- data/lib/puppet/indirector/file_bucket_file/file.rb +17 -17
- data/lib/puppet/indirector/file_bucket_file/rest.rb +3 -3
- data/lib/puppet/indirector/file_content/rest.rb +1 -1
- data/lib/puppet/indirector/file_metadata/rest.rb +1 -1
- data/lib/puppet/indirector/hiera.rb +1 -1
- data/lib/puppet/indirector/indirection.rb +27 -29
- data/lib/puppet/indirector/json.rb +4 -4
- data/lib/puppet/indirector/memory.rb +2 -2
- data/lib/puppet/indirector/msgpack.rb +5 -5
- data/lib/puppet/indirector/node/store_configs.rb +1 -1
- data/lib/puppet/indirector/none.rb +1 -1
- data/lib/puppet/indirector/report/json.rb +1 -1
- data/lib/puppet/indirector/report/yaml.rb +1 -1
- data/lib/puppet/indirector/request.rb +4 -4
- data/lib/puppet/indirector/resource/ral.rb +2 -4
- data/lib/puppet/indirector/resource/store_configs.rb +1 -1
- data/lib/puppet/indirector/terminus.rb +4 -4
- data/lib/puppet/indirector/yaml.rb +3 -3
- data/lib/puppet/info_service/class_information_service.rb +5 -8
- data/lib/puppet/info_service/task_information_service.rb +6 -7
- data/lib/puppet/interface/action.rb +5 -5
- data/lib/puppet/interface/action_manager.rb +5 -5
- data/lib/puppet/interface/documentation.rb +5 -5
- data/lib/puppet/interface/face_collection.rb +7 -7
- data/lib/puppet/interface/option.rb +2 -2
- data/lib/puppet/interface/option_manager.rb +6 -6
- data/lib/puppet/interface.rb +4 -4
- data/lib/puppet/metatype/manager.rb +2 -2
- data/lib/puppet/module/plan.rb +10 -10
- data/lib/puppet/module/task.rb +8 -8
- data/lib/puppet/module.rb +39 -41
- data/lib/puppet/module_tool/applications/application.rb +10 -8
- data/lib/puppet/module_tool/applications/installer.rb +53 -50
- data/lib/puppet/module_tool/applications/unpacker.rb +6 -8
- data/lib/puppet/module_tool/applications/upgrader.rb +37 -34
- data/lib/puppet/module_tool/checksums.rb +2 -2
- data/lib/puppet/module_tool/dependency.rb +1 -1
- data/lib/puppet/module_tool/errors/base.rb +1 -1
- data/lib/puppet/module_tool/install_directory.rb +1 -1
- data/lib/puppet/module_tool/local_tarball.rb +3 -5
- data/lib/puppet/module_tool/metadata.rb +12 -8
- data/lib/puppet/module_tool/shared_behaviors.rb +27 -12
- data/lib/puppet/module_tool/tar/mini.rb +3 -3
- data/lib/puppet/module_tool.rb +4 -4
- data/lib/puppet/network/client_request.rb +5 -3
- data/lib/puppet/network/format.rb +2 -2
- data/lib/puppet/network/format_support.rb +1 -1
- data/lib/puppet/network/formats.rb +1 -1
- data/lib/puppet/network/http/api/indirected_routes.rb +24 -44
- data/lib/puppet/network/http/api/server/v3.rb +1 -1
- data/lib/puppet/network/http/connection.rb +1 -1
- data/lib/puppet/network/http/handler.rb +8 -12
- data/lib/puppet/network/http/request.rb +1 -1
- data/lib/puppet/network/http/route.rb +9 -9
- data/lib/puppet/node/environment.rb +21 -23
- data/lib/puppet/node/facts.rb +1 -1
- data/lib/puppet/node.rb +5 -5
- data/lib/puppet/pal/json_catalog_encoder.rb +1 -1
- data/lib/puppet/pal/pal_impl.rb +48 -50
- data/lib/puppet/pal/plan_signature.rb +1 -1
- data/lib/puppet/pal/task_signature.rb +1 -1
- data/lib/puppet/parameter/package_options.rb +1 -1
- data/lib/puppet/parameter/value.rb +2 -2
- data/lib/puppet/parameter/value_collection.rb +7 -7
- data/lib/puppet/parameter.rb +8 -9
- data/lib/puppet/parser/ast/block_expression.rb +2 -2
- data/lib/puppet/parser/ast/hostclass.rb +1 -1
- data/lib/puppet/parser/ast/pops_bridge.rb +3 -4
- data/lib/puppet/parser/ast/resource.rb +4 -4
- data/lib/puppet/parser/ast/resourceparam.rb +4 -4
- data/lib/puppet/parser/ast.rb +14 -15
- data/lib/puppet/parser/compiler.rb +26 -28
- data/lib/puppet/parser/functions/create_resources.rb +3 -3
- data/lib/puppet/parser/functions/fail.rb +1 -1
- data/lib/puppet/parser/functions/generate.rb +2 -2
- data/lib/puppet/parser/functions/tag.rb +1 -1
- data/lib/puppet/parser/functions.rb +2 -2
- data/lib/puppet/parser/relationship.rb +3 -1
- data/lib/puppet/parser/resource/param.rb +2 -2
- data/lib/puppet/parser/resource.rb +23 -23
- data/lib/puppet/parser/scope.rb +10 -10
- data/lib/puppet/parser/script_compiler.rb +1 -1
- data/lib/puppet/parser/templatewrapper.rb +1 -1
- data/lib/puppet/parser/type_loader.rb +10 -12
- data/lib/puppet/parser.rb +1 -1
- data/lib/puppet/pops/adaptable.rb +1 -1
- data/lib/puppet/pops/evaluator/access_operator.rb +8 -8
- data/lib/puppet/pops/evaluator/callable_signature.rb +4 -4
- data/lib/puppet/pops/evaluator/collector_transformer.rb +4 -4
- data/lib/puppet/pops/evaluator/collectors/abstract_collector.rb +7 -7
- data/lib/puppet/pops/evaluator/collectors/fixed_set_collector.rb +6 -6
- data/lib/puppet/pops/evaluator/compare_operator.rb +10 -10
- data/lib/puppet/pops/evaluator/deferred_resolver.rb +1 -1
- data/lib/puppet/pops/evaluator/epp_evaluator.rb +2 -2
- data/lib/puppet/pops/evaluator/evaluator_impl.rb +56 -60
- data/lib/puppet/pops/evaluator/relationship_operator.rb +2 -2
- data/lib/puppet/pops/evaluator/runtime3_converter.rb +3 -3
- data/lib/puppet/pops/evaluator/runtime3_support.rb +1 -1
- data/lib/puppet/pops/functions/dispatcher.rb +3 -3
- data/lib/puppet/pops/functions/function.rb +14 -16
- data/lib/puppet/pops/issue_reporter.rb +2 -2
- data/lib/puppet/pops/label_provider.rb +2 -2
- data/lib/puppet/pops/loader/dependency_loader.rb +3 -3
- data/lib/puppet/pops/loader/loader.rb +4 -4
- data/lib/puppet/pops/loader/loader_paths.rb +3 -3
- data/lib/puppet/pops/loader/module_loaders.rb +11 -11
- data/lib/puppet/pops/loader/ruby_data_type_instantiator.rb +1 -1
- data/lib/puppet/pops/loader/ruby_function_instantiator.rb +1 -1
- data/lib/puppet/pops/loader/ruby_legacy_function_instantiator.rb +5 -1
- data/lib/puppet/pops/loader/static_loader.rb +3 -3
- data/lib/puppet/pops/loaders.rb +3 -3
- data/lib/puppet/pops/lookup/data_dig_function_provider.rb +1 -1
- data/lib/puppet/pops/lookup/explainer.rb +2 -2
- data/lib/puppet/pops/lookup/global_data_provider.rb +1 -1
- data/lib/puppet/pops/lookup/hiera_config.rb +15 -11
- data/lib/puppet/pops/lookup/interpolation.rb +3 -3
- data/lib/puppet/pops/lookup/key_recorder.rb +1 -1
- data/lib/puppet/pops/lookup/location_resolver.rb +1 -1
- data/lib/puppet/pops/lookup/lookup_adapter.rb +7 -7
- data/lib/puppet/pops/lookup/sub_lookup.rb +1 -1
- data/lib/puppet/pops/merge_strategy.rb +6 -6
- data/lib/puppet/pops/migration/migration_checker.rb +1 -1
- data/lib/puppet/pops/model/ast_transformer.rb +9 -11
- data/lib/puppet/pops/model/factory.rb +4 -5
- data/lib/puppet/pops/parser/epp_parser.rb +2 -2
- data/lib/puppet/pops/parser/epp_support.rb +1 -1
- data/lib/puppet/pops/parser/evaluating_parser.rb +2 -2
- data/lib/puppet/pops/parser/heredoc_support.rb +4 -4
- data/lib/puppet/pops/parser/interpolation_support.rb +3 -3
- data/lib/puppet/pops/parser/lexer2.rb +20 -12
- data/lib/puppet/pops/parser/lexer_support.rb +1 -1
- data/lib/puppet/pops/parser/locator.rb +4 -4
- data/lib/puppet/pops/parser/parser_support.rb +12 -14
- data/lib/puppet/pops/parser/pn_parser.rb +3 -3
- data/lib/puppet/pops/parser/slurp_support.rb +8 -8
- data/lib/puppet/pops/patterns.rb +12 -12
- data/lib/puppet/pops/pcore.rb +1 -1
- data/lib/puppet/pops/pn.rb +2 -2
- data/lib/puppet/pops/puppet_stack.rb +1 -1
- data/lib/puppet/pops/resource/resource_type_impl.rb +1 -1
- data/lib/puppet/pops/serialization/abstract_reader.rb +2 -2
- data/lib/puppet/pops/serialization/abstract_writer.rb +3 -3
- data/lib/puppet/pops/time/timestamp.rb +1 -1
- data/lib/puppet/pops/types/class_loader.rb +4 -6
- data/lib/puppet/pops/types/iterable.rb +1 -1
- data/lib/puppet/pops/types/p_binary_type.rb +1 -1
- data/lib/puppet/pops/types/p_init_type.rb +1 -1
- data/lib/puppet/pops/types/p_object_type.rb +5 -5
- data/lib/puppet/pops/types/p_object_type_extension.rb +4 -6
- data/lib/puppet/pops/types/p_sem_ver_range_type.rb +1 -1
- data/lib/puppet/pops/types/p_sensitive_type.rb +1 -1
- data/lib/puppet/pops/types/p_timespan_type.rb +2 -2
- data/lib/puppet/pops/types/p_type_set_type.rb +10 -10
- data/lib/puppet/pops/types/p_uri_type.rb +4 -4
- data/lib/puppet/pops/types/recursion_guard.rb +4 -4
- data/lib/puppet/pops/types/ruby_generator.rb +2 -2
- data/lib/puppet/pops/types/string_converter.rb +12 -8
- data/lib/puppet/pops/types/tree_iterators.rb +4 -6
- data/lib/puppet/pops/types/type_calculator.rb +10 -10
- data/lib/puppet/pops/types/type_factory.rb +7 -3
- data/lib/puppet/pops/types/type_formatter.rb +22 -24
- data/lib/puppet/pops/types/type_mismatch_describer.rb +24 -24
- data/lib/puppet/pops/types/types.rb +28 -24
- data/lib/puppet/pops/utils.rb +38 -42
- data/lib/puppet/pops/validation/checker4_0.rb +10 -10
- data/lib/puppet/pops/validation/tasks_checker.rb +1 -1
- data/lib/puppet/pops/validation/validator_factory_4_0.rb +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/exec.rb +2 -2
- data/lib/puppet/provider/file/posix.rb +19 -17
- data/lib/puppet/provider/file/windows.rb +13 -19
- data/lib/puppet/provider/group/directoryservice.rb +3 -2
- data/lib/puppet/provider/group/groupadd.rb +4 -4
- data/lib/puppet/provider/group/windows_adsi.rb +2 -2
- data/lib/puppet/provider/nameservice/directoryservice.rb +29 -29
- data/lib/puppet/provider/nameservice/objectadd.rb +2 -4
- data/lib/puppet/provider/nameservice/pw.rb +1 -2
- data/lib/puppet/provider/nameservice.rb +8 -8
- data/lib/puppet/provider/package/aix.rb +19 -19
- data/lib/puppet/provider/package/appdmg.rb +2 -2
- data/lib/puppet/provider/package/apple.rb +1 -1
- data/lib/puppet/provider/package/apt.rb +18 -18
- data/lib/puppet/provider/package/aptitude.rb +1 -3
- data/lib/puppet/provider/package/aptrpm.rb +9 -9
- data/lib/puppet/provider/package/blastwave.rb +10 -14
- data/lib/puppet/provider/package/dnfmodule.rb +3 -3
- data/lib/puppet/provider/package/dpkg.rb +11 -13
- data/lib/puppet/provider/package/fink.rb +14 -14
- data/lib/puppet/provider/package/freebsd.rb +1 -1
- data/lib/puppet/provider/package/gem.rb +12 -14
- data/lib/puppet/provider/package/macports.rb +2 -2
- data/lib/puppet/provider/package/nim.rb +10 -10
- data/lib/puppet/provider/package/openbsd.rb +22 -22
- data/lib/puppet/provider/package/opkg.rb +6 -6
- data/lib/puppet/provider/package/pacman.rb +35 -29
- data/lib/puppet/provider/package/pip.rb +25 -24
- data/lib/puppet/provider/package/pkg.rb +15 -15
- data/lib/puppet/provider/package/pkgdmg.rb +10 -10
- data/lib/puppet/provider/package/pkgin.rb +2 -2
- data/lib/puppet/provider/package/pkgng.rb +5 -5
- data/lib/puppet/provider/package/pkgutil.rb +17 -21
- data/lib/puppet/provider/package/portage.rb +59 -61
- data/lib/puppet/provider/package/ports.rb +12 -11
- data/lib/puppet/provider/package/portupgrade.rb +35 -35
- data/lib/puppet/provider/package/puppetserver_gem.rb +10 -9
- data/lib/puppet/provider/package/rpm.rb +26 -26
- data/lib/puppet/provider/package/rug.rb +7 -9
- data/lib/puppet/provider/package/sun.rb +4 -4
- data/lib/puppet/provider/package/up2date.rb +5 -7
- data/lib/puppet/provider/package/urpmi.rb +6 -6
- data/lib/puppet/provider/package/windows/exe_package.rb +7 -7
- data/lib/puppet/provider/package/windows/msi_package.rb +3 -3
- data/lib/puppet/provider/package/windows/package.rb +2 -2
- data/lib/puppet/provider/package/windows.rb +3 -5
- data/lib/puppet/provider/package/yum.rb +33 -37
- data/lib/puppet/provider/package/zypper.rb +12 -14
- data/lib/puppet/provider/package.rb +1 -1
- data/lib/puppet/provider/package_targetable.rb +1 -1
- data/lib/puppet/provider/parsedfile.rb +9 -9
- data/lib/puppet/provider/service/base.rb +16 -21
- data/lib/puppet/provider/service/bsd.rb +4 -4
- data/lib/puppet/provider/service/daemontools.rb +31 -31
- data/lib/puppet/provider/service/debian.rb +6 -6
- data/lib/puppet/provider/service/freebsd.rb +36 -36
- data/lib/puppet/provider/service/gentoo.rb +6 -6
- data/lib/puppet/provider/service/init.rb +19 -19
- data/lib/puppet/provider/service/launchd.rb +22 -22
- data/lib/puppet/provider/service/openbsd.rb +10 -10
- data/lib/puppet/provider/service/openrc.rb +1 -1
- data/lib/puppet/provider/service/openwrt.rb +3 -3
- data/lib/puppet/provider/service/rcng.rb +3 -3
- data/lib/puppet/provider/service/redhat.rb +4 -4
- data/lib/puppet/provider/service/runit.rb +6 -6
- data/lib/puppet/provider/service/service.rb +5 -7
- data/lib/puppet/provider/service/smf.rb +28 -27
- data/lib/puppet/provider/service/src.rb +7 -7
- data/lib/puppet/provider/service/systemd.rb +31 -37
- data/lib/puppet/provider/service/upstart.rb +17 -17
- data/lib/puppet/provider/service/windows.rb +7 -7
- data/lib/puppet/provider/user/aix.rb +4 -2
- data/lib/puppet/provider/user/directoryservice.rb +34 -36
- data/lib/puppet/provider/user/hpux.rb +10 -14
- data/lib/puppet/provider/user/pw.rb +1 -1
- data/lib/puppet/provider/user/user_role_add.rb +16 -18
- data/lib/puppet/provider/user/useradd.rb +7 -7
- data/lib/puppet/provider/user/windows_adsi.rb +1 -1
- data/lib/puppet/provider.rb +8 -8
- data/lib/puppet/reference/indirection.rb +3 -0
- data/lib/puppet/reference/metaparameter.rb +1 -1
- data/lib/puppet/reference/providers.rb +3 -3
- data/lib/puppet/reference/type.rb +1 -1
- data/lib/puppet/relationship.rb +4 -5
- data/lib/puppet/reports/http.rb +1 -1
- data/lib/puppet/reports/log.rb +2 -2
- data/lib/puppet/reports/store.rb +4 -4
- data/lib/puppet/reports.rb +2 -2
- data/lib/puppet/resource/catalog.rb +16 -16
- data/lib/puppet/resource/status.rb +3 -3
- data/lib/puppet/resource/type.rb +8 -8
- data/lib/puppet/resource/type_collection.rb +1 -1
- data/lib/puppet/resource.rb +41 -41
- data/lib/puppet/scheduler/scheduler.rb +1 -1
- data/lib/puppet/settings/alias_setting.rb +3 -5
- data/lib/puppet/settings/base_setting.rb +11 -11
- data/lib/puppet/settings/boolean_setting.rb +2 -2
- data/lib/puppet/settings/config_file.rb +5 -4
- data/lib/puppet/settings/duration_setting.rb +2 -2
- data/lib/puppet/settings/environment_conf.rb +3 -3
- data/lib/puppet/settings/file_or_directory_setting.rb +2 -2
- data/lib/puppet/settings/file_setting.rb +11 -11
- data/lib/puppet/settings/ini_file.rb +3 -3
- data/lib/puppet/settings/port_setting.rb +1 -1
- data/lib/puppet/settings/priority_setting.rb +2 -2
- data/lib/puppet/settings/ttl_setting.rb +2 -2
- data/lib/puppet/settings/value_translator.rb +8 -8
- data/lib/puppet/settings.rb +65 -70
- data/lib/puppet/ssl/base.rb +2 -4
- data/lib/puppet/ssl/certificate_request.rb +18 -22
- data/lib/puppet/ssl/certificate_request_attributes.rb +3 -3
- data/lib/puppet/ssl/oids.rb +2 -2
- data/lib/puppet/ssl/openssl_loader.rb +4 -4
- data/lib/puppet/syntax_checkers/base64.rb +3 -3
- data/lib/puppet/syntax_checkers/epp.rb +3 -3
- data/lib/puppet/syntax_checkers/json.rb +3 -3
- data/lib/puppet/syntax_checkers/pp.rb +3 -3
- data/lib/puppet/transaction/additional_resource_generator.rb +1 -1
- data/lib/puppet/transaction/event.rb +2 -2
- data/lib/puppet/transaction/event_manager.rb +5 -5
- data/lib/puppet/transaction/persistence.rb +12 -14
- data/lib/puppet/transaction/report.rb +4 -4
- data/lib/puppet/transaction/resource_harness.rb +2 -2
- data/lib/puppet/transaction.rb +14 -18
- data/lib/puppet/type/component.rb +3 -3
- data/lib/puppet/type/exec.rb +43 -45
- data/lib/puppet/type/file/checksum_value.rb +1 -1
- data/lib/puppet/type/file/content.rb +6 -6
- data/lib/puppet/type/file/ctime.rb +2 -2
- data/lib/puppet/type/file/data_sync.rb +3 -3
- data/lib/puppet/type/file/ensure.rb +16 -15
- data/lib/puppet/type/file/mode.rb +9 -9
- data/lib/puppet/type/file/mtime.rb +2 -2
- data/lib/puppet/type/file/selcontext.rb +14 -14
- data/lib/puppet/type/file/source.rb +19 -21
- data/lib/puppet/type/file/target.rb +11 -11
- data/lib/puppet/type/file.rb +21 -21
- data/lib/puppet/type/filebucket.rb +3 -3
- data/lib/puppet/type/group.rb +3 -3
- data/lib/puppet/type/notify.rb +2 -2
- data/lib/puppet/type/package.rb +4 -4
- data/lib/puppet/type/resources.rb +6 -6
- data/lib/puppet/type/schedule.rb +9 -9
- data/lib/puppet/type/service.rb +6 -8
- data/lib/puppet/type/tidy.rb +22 -24
- data/lib/puppet/type/user.rb +13 -13
- data/lib/puppet/type.rb +76 -88
- data/lib/puppet/util/at_fork/solaris.rb +33 -37
- data/lib/puppet/util/autoload.rb +2 -2
- data/lib/puppet/util/backups.rb +9 -9
- data/lib/puppet/util/character_encoding.rb +7 -6
- data/lib/puppet/util/checksums.rb +2 -2
- data/lib/puppet/util/classgen.rb +8 -8
- data/lib/puppet/util/colors.rb +1 -1
- data/lib/puppet/util/command_line/puppet_option_parser.rb +1 -1
- data/lib/puppet/util/command_line/trollop.rb +42 -46
- data/lib/puppet/util/command_line.rb +2 -2
- data/lib/puppet/util/constant_inflector.rb +2 -2
- data/lib/puppet/util/diff.rb +19 -21
- data/lib/puppet/util/docs.rb +2 -2
- data/lib/puppet/util/errors.rb +9 -9
- data/lib/puppet/util/execution.rb +32 -9
- data/lib/puppet/util/feature.rb +1 -1
- data/lib/puppet/util/fileparsing.rb +12 -16
- data/lib/puppet/util/filetype.rb +36 -40
- data/lib/puppet/util/inifile.rb +6 -12
- data/lib/puppet/util/ldap/connection.rb +1 -1
- data/lib/puppet/util/ldap/manager.rb +10 -12
- data/lib/puppet/util/lockfile.rb +6 -8
- data/lib/puppet/util/log/destination.rb +2 -2
- data/lib/puppet/util/log/destinations.rb +4 -4
- data/lib/puppet/util/log.rb +12 -9
- data/lib/puppet/util/logging.rb +11 -11
- data/lib/puppet/util/metric.rb +3 -3
- data/lib/puppet/util/monkey_patches.rb +5 -7
- data/lib/puppet/util/network_device/config.rb +3 -3
- data/lib/puppet/util/package/version/debian.rb +27 -28
- data/lib/puppet/util/package/version/pip.rb +5 -5
- data/lib/puppet/util/package/version/range/eq.rb +1 -1
- data/lib/puppet/util/package/version/rpm.rb +1 -1
- data/lib/puppet/util/package.rb +2 -2
- data/lib/puppet/util/pidlock.rb +2 -2
- data/lib/puppet/util/platform.rb +1 -1
- data/lib/puppet/util/plist.rb +8 -10
- data/lib/puppet/util/posix.rb +17 -17
- data/lib/puppet/util/profiler/aggregate.rb +1 -1
- data/lib/puppet/util/provider_features.rb +3 -3
- data/lib/puppet/util/rdoc/code_objects.rb +3 -3
- data/lib/puppet/util/rdoc/generators/puppet_generator.rb +63 -64
- data/lib/puppet/util/rdoc/generators/template/puppet/puppet.rb +23 -23
- data/lib/puppet/util/rdoc/parser/puppet_parser_core.rb +12 -12
- data/lib/puppet/util/rdoc/parser/puppet_parser_rdoc2.rb +1 -1
- data/lib/puppet/util/rdoc/parser.rb +1 -1
- data/lib/puppet/util/reference.rb +13 -9
- data/lib/puppet/util/retry_action.rb +1 -1
- data/lib/puppet/util/rpm_compare.rb +17 -18
- data/lib/puppet/util/rubygems.rb +1 -1
- data/lib/puppet/util/selinux.rb +7 -7
- data/lib/puppet/util/storage.rb +10 -12
- data/lib/puppet/util/suidmanager.rb +18 -19
- data/lib/puppet/util/symbolic_file_mode.rb +71 -75
- data/lib/puppet/util/tag_set.rb +2 -2
- data/lib/puppet/util/tagging.rb +8 -10
- data/lib/puppet/util/terminal.rb +4 -4
- data/lib/puppet/util/user_attr.rb +7 -7
- data/lib/puppet/util/watcher.rb +3 -5
- data/lib/puppet/util/windows/access_control_list.rb +1 -1
- data/lib/puppet/util/windows/adsi.rb +42 -42
- data/lib/puppet/util/windows/daemon.rb +64 -68
- data/lib/puppet/util/windows/error.rb +2 -2
- data/lib/puppet/util/windows/file.rb +18 -25
- data/lib/puppet/util/windows/monkey_patches/process.rb +1 -1
- data/lib/puppet/util/windows/principal.rb +8 -8
- data/lib/puppet/util/windows/process.rb +16 -28
- data/lib/puppet/util/windows/registry.rb +16 -15
- data/lib/puppet/util/windows/root_certs.rb +2 -2
- data/lib/puppet/util/windows/security.rb +31 -31
- data/lib/puppet/util/windows/service.rb +11 -11
- data/lib/puppet/util/windows/sid.rb +8 -8
- data/lib/puppet/util/windows/user.rb +18 -20
- data/lib/puppet/util/yaml.rb +1 -1
- data/lib/puppet/util.rb +55 -46
- data/lib/puppet/version.rb +2 -2
- data/lib/puppet/x509/pem_store.rb +1 -1
- data/lib/puppet.rb +3 -3
- data/man/man5/puppet.conf.5 +10 -2
- data/man/man8/puppet-agent.8 +1 -1
- data/man/man8/puppet-apply.8 +1 -1
- data/man/man8/puppet-catalog.8 +1 -1
- data/man/man8/puppet-config.8 +1 -1
- data/man/man8/puppet-describe.8 +1 -1
- data/man/man8/puppet-device.8 +1 -1
- data/man/man8/puppet-doc.8 +1 -1
- data/man/man8/puppet-epp.8 +1 -1
- data/man/man8/puppet-facts.8 +1 -1
- data/man/man8/puppet-filebucket.8 +1 -1
- data/man/man8/puppet-generate.8 +1 -1
- data/man/man8/puppet-help.8 +1 -1
- data/man/man8/puppet-lookup.8 +1 -1
- data/man/man8/puppet-module.8 +1 -1
- data/man/man8/puppet-node.8 +1 -1
- data/man/man8/puppet-parser.8 +1 -1
- data/man/man8/puppet-plugin.8 +1 -1
- data/man/man8/puppet-report.8 +1 -1
- data/man/man8/puppet-resource.8 +5 -1
- data/man/man8/puppet-script.8 +1 -1
- data/man/man8/puppet-ssl.8 +1 -1
- data/man/man8/puppet.8 +2 -2
- metadata +2 -2
@@ -150,11 +150,11 @@ class Lexer2
|
|
150
150
|
KEYWORDS.each { |k, v| KEYWORD_NAMES[v[0]] = k }
|
151
151
|
KEYWORD_NAMES.freeze
|
152
152
|
|
153
|
-
PATTERN_WS =
|
154
|
-
PATTERN_NON_WS =
|
153
|
+
PATTERN_WS = /[[:blank:]\r]+/
|
154
|
+
PATTERN_NON_WS = /\w+\b?/
|
155
155
|
|
156
156
|
# The single line comment includes the line ending.
|
157
|
-
PATTERN_COMMENT =
|
157
|
+
PATTERN_COMMENT = /#.*\r?/
|
158
158
|
PATTERN_MLCOMMENT = %r{/\*(.*?)\*/}m
|
159
159
|
|
160
160
|
PATTERN_REGEX = %r{/[^/]*/}
|
@@ -170,13 +170,13 @@ class Lexer2
|
|
170
170
|
# The NAME and CLASSREF in 4x are strict. Each segment must start with
|
171
171
|
# a letter a-z and may not contain dashes (\w includes letters, digits and _).
|
172
172
|
#
|
173
|
-
PATTERN_CLASSREF =
|
174
|
-
PATTERN_NAME =
|
173
|
+
PATTERN_CLASSREF = /((::){0,1}[A-Z]\w*)+/
|
174
|
+
PATTERN_NAME = /^((::)?[a-z]\w*)(::[a-z]\w*)*$/
|
175
175
|
|
176
|
-
PATTERN_BARE_WORD =
|
176
|
+
PATTERN_BARE_WORD = /((?:::){0,1}(?:[a-z_](?:[\w-]*\w)?))+/
|
177
177
|
|
178
|
-
PATTERN_DOLLAR_VAR =
|
179
|
-
PATTERN_NUMBER =
|
178
|
+
PATTERN_DOLLAR_VAR = /\$(::)?(\w+::)*\w+/
|
179
|
+
PATTERN_NUMBER = /\b(?:0[xX][0-9A-Fa-f]+|0?\d+(?:\.\d+)?(?:[eE]-?\d+)?)\b/
|
180
180
|
|
181
181
|
# PERFORMANCE NOTE:
|
182
182
|
# Comparison against a frozen string is faster (than unfrozen).
|
@@ -268,7 +268,11 @@ class Lexer2
|
|
268
268
|
'|' => lambda do
|
269
269
|
scn = @scanner
|
270
270
|
la = scn.peek(3)
|
271
|
-
emit(la[1] == '>'
|
271
|
+
emit(if la[1] == '>'
|
272
|
+
la[2] == '>' ? TOKEN_RRCOLLECT : TOKEN_RCOLLECT
|
273
|
+
else
|
274
|
+
TOKEN_PIPE
|
275
|
+
end, scn.pos)
|
272
276
|
end,
|
273
277
|
|
274
278
|
# TOKENS =, =>, ==, =~
|
@@ -522,7 +526,7 @@ class Lexer2
|
|
522
526
|
end
|
523
527
|
end
|
524
528
|
scn.pos = before
|
525
|
-
invalid_number
|
529
|
+
invalid_number ||= scn.peek(after - before)
|
526
530
|
end
|
527
531
|
assert_numeric(invalid_number, before)
|
528
532
|
scn.pos = before + 1
|
@@ -635,7 +639,11 @@ class Lexer2
|
|
635
639
|
@scanner = StringScanner.new(string)
|
636
640
|
@locator = locator || Locator.locator(string, '')
|
637
641
|
@lexing_context[:escapes] = escapes || UQ_ESCAPES
|
638
|
-
@lexing_context[:uq_slurp_pattern] = interpolate
|
642
|
+
@lexing_context[:uq_slurp_pattern] = if interpolate
|
643
|
+
escapes.include?('$') ? SLURP_UQ_PATTERN : SLURP_UQNE_PATTERN
|
644
|
+
else
|
645
|
+
SLURP_ALL_PATTERN
|
646
|
+
end
|
639
647
|
end
|
640
648
|
|
641
649
|
# Convenience method, and for compatibility with older lexer. Use the lex_file instead.
|
@@ -706,7 +714,7 @@ class Lexer2
|
|
706
714
|
scn.skip(PATTERN_WS)
|
707
715
|
|
708
716
|
# This is the lexer's main loop
|
709
|
-
until queue.empty? && scn.eos?
|
717
|
+
until queue.empty? && scn.eos?
|
710
718
|
token = queue.shift || selector[scn.peek(1)].call
|
711
719
|
if token
|
712
720
|
ctx[:after] = token[0]
|
@@ -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])
|