puppet 8.5.0-universal-darwin → 8.6.0-universal-darwin
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/Gemfile.lock +29 -26
- data/ext/windows/service/daemon.rb +49 -55
- data/lib/hiera/scope.rb +3 -3
- data/lib/hiera_puppet.rb +1 -1
- data/lib/puppet/agent/disabler.rb +1 -1
- data/lib/puppet/application/agent.rb +2 -2
- data/lib/puppet/application/apply.rb +2 -2
- data/lib/puppet/application/describe.rb +6 -6
- data/lib/puppet/application/device.rb +99 -100
- data/lib/puppet/application/doc.rb +1 -1
- data/lib/puppet/application/face_base.rb +7 -7
- data/lib/puppet/application/filebucket.rb +1 -1
- data/lib/puppet/application/lookup.rb +5 -5
- data/lib/puppet/application/resource.rb +10 -3
- data/lib/puppet/application/ssl.rb +3 -3
- data/lib/puppet/application.rb +16 -18
- data/lib/puppet/coercion.rb +1 -1
- data/lib/puppet/configurer/downloader.rb +9 -4
- data/lib/puppet/configurer/fact_handler.rb +12 -13
- data/lib/puppet/configurer.rb +16 -18
- data/lib/puppet/confine/feature.rb +1 -1
- data/lib/puppet/confine/variable.rb +1 -1
- data/lib/puppet/confine.rb +2 -2
- data/lib/puppet/confine_collection.rb +1 -1
- data/lib/puppet/confiner.rb +2 -2
- data/lib/puppet/daemon.rb +3 -3
- data/lib/puppet/datatypes.rb +5 -6
- data/lib/puppet/defaults.rb +14 -8
- data/lib/puppet/environments.rb +3 -7
- data/lib/puppet/error.rb +3 -3
- data/lib/puppet/external/dot.rb +42 -34
- data/lib/puppet/face/catalog/select.rb +1 -1
- data/lib/puppet/face/epp.rb +7 -9
- data/lib/puppet/face/help.rb +12 -12
- data/lib/puppet/face/module/changes.rb +1 -3
- data/lib/puppet/face/module/list.rb +37 -37
- data/lib/puppet/face/node/clean.rb +1 -1
- data/lib/puppet/face/parser.rb +6 -8
- data/lib/puppet/face/report.rb +5 -7
- data/lib/puppet/facter_impl.rb +1 -1
- data/lib/puppet/feature/base.rb +9 -11
- data/lib/puppet/feature/pe_license.rb +1 -1
- data/lib/puppet/feature/ssh.rb +1 -1
- data/lib/puppet/feature/telnet.rb +3 -5
- data/lib/puppet/feature/zlib.rb +1 -1
- data/lib/puppet/ffi/windows/constants.rb +1 -1
- data/lib/puppet/ffi/windows/functions.rb +2 -2
- data/lib/puppet/ffi/windows/structs.rb +3 -3
- data/lib/puppet/file_bucket/dipper.rb +4 -4
- data/lib/puppet/file_bucket/file.rb +4 -4
- data/lib/puppet/file_serving/base.rb +5 -5
- data/lib/puppet/file_serving/configuration/parser.rb +9 -9
- data/lib/puppet/file_serving/configuration.rb +3 -3
- data/lib/puppet/file_serving/fileset.rb +13 -13
- data/lib/puppet/file_serving/http_metadata.rb +1 -1
- data/lib/puppet/file_serving/metadata.rb +13 -9
- data/lib/puppet/file_serving/mount/file.rb +6 -6
- data/lib/puppet/file_serving/mount/locales.rb +2 -4
- data/lib/puppet/file_serving/mount/pluginfacts.rb +2 -4
- data/lib/puppet/file_serving/mount/plugins.rb +2 -4
- data/lib/puppet/file_serving/mount.rb +1 -1
- data/lib/puppet/file_system/file_impl.rb +3 -3
- data/lib/puppet/file_system/memory_impl.rb +1 -1
- data/lib/puppet/file_system/path_pattern.rb +1 -1
- data/lib/puppet/file_system/uniquefile.rb +17 -16
- data/lib/puppet/file_system/windows.rb +26 -18
- data/lib/puppet/forge/cache.rb +2 -2
- data/lib/puppet/forge/errors.rb +1 -1
- data/lib/puppet/forge/repository.rb +2 -2
- data/lib/puppet/forge.rb +13 -19
- data/lib/puppet/functions/abs.rb +2 -2
- data/lib/puppet/functions/camelcase.rb +1 -1
- data/lib/puppet/functions/compare.rb +2 -2
- data/lib/puppet/functions/contain.rb +1 -1
- data/lib/puppet/functions/defined.rb +2 -2
- data/lib/puppet/functions/dig.rb +1 -1
- data/lib/puppet/functions/eyaml_lookup_key.rb +11 -13
- data/lib/puppet/functions/get.rb +1 -1
- data/lib/puppet/functions/hocon_data.rb +3 -5
- data/lib/puppet/functions/import.rb +1 -1
- data/lib/puppet/functions/json_data.rb +4 -6
- data/lib/puppet/functions/max.rb +2 -2
- data/lib/puppet/functions/min.rb +2 -2
- data/lib/puppet/functions/new.rb +1 -1
- data/lib/puppet/functions/reduce.rb +6 -10
- data/lib/puppet/functions/regsubst.rb +2 -2
- data/lib/puppet/functions/require.rb +1 -1
- data/lib/puppet/functions/yaml_data.rb +11 -13
- data/lib/puppet/functions.rb +32 -37
- data/lib/puppet/generate/type.rb +2 -2
- data/lib/puppet/gettext/config.rb +9 -9
- data/lib/puppet/graph/rb_tree_map.rb +31 -23
- data/lib/puppet/graph/relationship_graph.rb +12 -12
- data/lib/puppet/graph/simple_graph.rb +8 -10
- data/lib/puppet/http/client.rb +1 -1
- data/lib/puppet/http/dns.rb +4 -4
- data/lib/puppet/http/external_client.rb +1 -1
- data/lib/puppet/http/factory.rb +1 -1
- data/lib/puppet/http/proxy.rb +15 -15
- data/lib/puppet/http/redirector.rb +6 -2
- data/lib/puppet/http/resolver.rb +2 -2
- data/lib/puppet/http/retry_after_handler.rb +2 -2
- data/lib/puppet/http/service/ca.rb +1 -1
- data/lib/puppet/http/service/compiler.rb +4 -4
- data/lib/puppet/http/service/file_server.rb +1 -1
- data/lib/puppet/http/service/report.rb +2 -2
- data/lib/puppet/http/service.rb +9 -13
- data/lib/puppet/http/session.rb +1 -1
- data/lib/puppet/http/site.rb +1 -1
- data/lib/puppet/indirector/catalog/compiler.rb +44 -45
- data/lib/puppet/indirector/catalog/rest.rb +7 -5
- data/lib/puppet/indirector/catalog/store_configs.rb +1 -1
- data/lib/puppet/indirector/exec.rb +2 -2
- data/lib/puppet/indirector/face.rb +7 -9
- data/lib/puppet/indirector/fact_search.rb +1 -1
- data/lib/puppet/indirector/facts/facter.rb +6 -6
- data/lib/puppet/indirector/facts/json.rb +1 -1
- data/lib/puppet/indirector/facts/store_configs.rb +1 -1
- data/lib/puppet/indirector/file_bucket_file/file.rb +17 -17
- data/lib/puppet/indirector/file_bucket_file/rest.rb +3 -3
- data/lib/puppet/indirector/file_content/rest.rb +1 -1
- data/lib/puppet/indirector/file_metadata/rest.rb +1 -1
- data/lib/puppet/indirector/hiera.rb +1 -1
- data/lib/puppet/indirector/indirection.rb +27 -29
- data/lib/puppet/indirector/json.rb +4 -4
- data/lib/puppet/indirector/memory.rb +2 -2
- data/lib/puppet/indirector/msgpack.rb +5 -5
- data/lib/puppet/indirector/node/store_configs.rb +1 -1
- data/lib/puppet/indirector/none.rb +1 -1
- data/lib/puppet/indirector/report/json.rb +1 -1
- data/lib/puppet/indirector/report/yaml.rb +1 -1
- data/lib/puppet/indirector/request.rb +4 -4
- data/lib/puppet/indirector/resource/ral.rb +2 -4
- data/lib/puppet/indirector/resource/store_configs.rb +1 -1
- data/lib/puppet/indirector/terminus.rb +4 -4
- data/lib/puppet/indirector/yaml.rb +3 -3
- data/lib/puppet/info_service/class_information_service.rb +5 -8
- data/lib/puppet/info_service/task_information_service.rb +6 -7
- data/lib/puppet/interface/action.rb +5 -5
- data/lib/puppet/interface/action_manager.rb +5 -5
- data/lib/puppet/interface/documentation.rb +5 -5
- data/lib/puppet/interface/face_collection.rb +7 -7
- data/lib/puppet/interface/option.rb +2 -2
- data/lib/puppet/interface/option_manager.rb +6 -6
- data/lib/puppet/interface.rb +4 -4
- data/lib/puppet/metatype/manager.rb +2 -2
- data/lib/puppet/module/plan.rb +10 -10
- data/lib/puppet/module/task.rb +8 -8
- data/lib/puppet/module.rb +39 -41
- data/lib/puppet/module_tool/applications/application.rb +10 -8
- data/lib/puppet/module_tool/applications/installer.rb +53 -50
- data/lib/puppet/module_tool/applications/unpacker.rb +6 -8
- data/lib/puppet/module_tool/applications/upgrader.rb +37 -34
- data/lib/puppet/module_tool/checksums.rb +2 -2
- data/lib/puppet/module_tool/dependency.rb +1 -1
- data/lib/puppet/module_tool/errors/base.rb +1 -1
- data/lib/puppet/module_tool/install_directory.rb +1 -1
- data/lib/puppet/module_tool/local_tarball.rb +3 -5
- data/lib/puppet/module_tool/metadata.rb +12 -8
- data/lib/puppet/module_tool/shared_behaviors.rb +27 -12
- data/lib/puppet/module_tool/tar/mini.rb +3 -3
- data/lib/puppet/module_tool.rb +4 -4
- data/lib/puppet/network/client_request.rb +5 -3
- data/lib/puppet/network/format.rb +2 -2
- data/lib/puppet/network/format_support.rb +1 -1
- data/lib/puppet/network/formats.rb +1 -1
- data/lib/puppet/network/http/api/indirected_routes.rb +24 -44
- data/lib/puppet/network/http/api/server/v3.rb +1 -1
- data/lib/puppet/network/http/connection.rb +1 -1
- data/lib/puppet/network/http/handler.rb +8 -12
- data/lib/puppet/network/http/request.rb +1 -1
- data/lib/puppet/network/http/route.rb +9 -9
- data/lib/puppet/node/environment.rb +21 -23
- data/lib/puppet/node/facts.rb +1 -1
- data/lib/puppet/node.rb +5 -5
- data/lib/puppet/pal/json_catalog_encoder.rb +1 -1
- data/lib/puppet/pal/pal_impl.rb +48 -50
- data/lib/puppet/pal/plan_signature.rb +1 -1
- data/lib/puppet/pal/task_signature.rb +1 -1
- data/lib/puppet/parameter/package_options.rb +1 -1
- data/lib/puppet/parameter/value.rb +2 -2
- data/lib/puppet/parameter/value_collection.rb +7 -7
- data/lib/puppet/parameter.rb +8 -9
- data/lib/puppet/parser/ast/block_expression.rb +2 -2
- data/lib/puppet/parser/ast/hostclass.rb +1 -1
- data/lib/puppet/parser/ast/pops_bridge.rb +3 -4
- data/lib/puppet/parser/ast/resource.rb +4 -4
- data/lib/puppet/parser/ast/resourceparam.rb +4 -4
- data/lib/puppet/parser/ast.rb +14 -15
- data/lib/puppet/parser/compiler.rb +26 -28
- data/lib/puppet/parser/functions/create_resources.rb +3 -3
- data/lib/puppet/parser/functions/fail.rb +1 -1
- data/lib/puppet/parser/functions/generate.rb +2 -2
- data/lib/puppet/parser/functions/tag.rb +1 -1
- data/lib/puppet/parser/functions.rb +2 -2
- data/lib/puppet/parser/relationship.rb +3 -1
- data/lib/puppet/parser/resource/param.rb +2 -2
- data/lib/puppet/parser/resource.rb +23 -23
- data/lib/puppet/parser/scope.rb +10 -10
- data/lib/puppet/parser/script_compiler.rb +1 -1
- data/lib/puppet/parser/templatewrapper.rb +1 -1
- data/lib/puppet/parser/type_loader.rb +10 -12
- data/lib/puppet/parser.rb +1 -1
- data/lib/puppet/pops/adaptable.rb +1 -1
- data/lib/puppet/pops/evaluator/access_operator.rb +8 -8
- data/lib/puppet/pops/evaluator/callable_signature.rb +4 -4
- data/lib/puppet/pops/evaluator/collector_transformer.rb +4 -4
- data/lib/puppet/pops/evaluator/collectors/abstract_collector.rb +7 -7
- data/lib/puppet/pops/evaluator/collectors/fixed_set_collector.rb +6 -6
- data/lib/puppet/pops/evaluator/compare_operator.rb +10 -10
- data/lib/puppet/pops/evaluator/deferred_resolver.rb +1 -1
- data/lib/puppet/pops/evaluator/epp_evaluator.rb +2 -2
- data/lib/puppet/pops/evaluator/evaluator_impl.rb +56 -60
- data/lib/puppet/pops/evaluator/literal_evaluator.rb +4 -0
- data/lib/puppet/pops/evaluator/relationship_operator.rb +2 -2
- data/lib/puppet/pops/evaluator/runtime3_converter.rb +3 -3
- data/lib/puppet/pops/evaluator/runtime3_support.rb +1 -1
- data/lib/puppet/pops/functions/dispatcher.rb +3 -3
- data/lib/puppet/pops/functions/function.rb +14 -16
- data/lib/puppet/pops/issue_reporter.rb +2 -2
- data/lib/puppet/pops/label_provider.rb +2 -2
- data/lib/puppet/pops/loader/dependency_loader.rb +3 -3
- data/lib/puppet/pops/loader/loader.rb +4 -4
- data/lib/puppet/pops/loader/loader_paths.rb +3 -3
- data/lib/puppet/pops/loader/module_loaders.rb +11 -11
- data/lib/puppet/pops/loader/ruby_data_type_instantiator.rb +1 -1
- data/lib/puppet/pops/loader/ruby_function_instantiator.rb +1 -1
- data/lib/puppet/pops/loader/ruby_legacy_function_instantiator.rb +5 -1
- data/lib/puppet/pops/loader/static_loader.rb +3 -3
- data/lib/puppet/pops/loaders.rb +3 -3
- data/lib/puppet/pops/lookup/data_dig_function_provider.rb +1 -1
- data/lib/puppet/pops/lookup/explainer.rb +2 -2
- data/lib/puppet/pops/lookup/global_data_provider.rb +1 -1
- data/lib/puppet/pops/lookup/hiera_config.rb +15 -11
- data/lib/puppet/pops/lookup/interpolation.rb +3 -3
- data/lib/puppet/pops/lookup/key_recorder.rb +1 -1
- data/lib/puppet/pops/lookup/location_resolver.rb +1 -1
- data/lib/puppet/pops/lookup/lookup_adapter.rb +7 -7
- data/lib/puppet/pops/lookup/sub_lookup.rb +1 -1
- data/lib/puppet/pops/merge_strategy.rb +6 -6
- data/lib/puppet/pops/migration/migration_checker.rb +1 -1
- data/lib/puppet/pops/model/ast_transformer.rb +9 -11
- data/lib/puppet/pops/model/factory.rb +4 -5
- data/lib/puppet/pops/parser/epp_parser.rb +2 -2
- data/lib/puppet/pops/parser/epp_support.rb +1 -1
- data/lib/puppet/pops/parser/evaluating_parser.rb +2 -2
- data/lib/puppet/pops/parser/heredoc_support.rb +4 -4
- data/lib/puppet/pops/parser/interpolation_support.rb +3 -3
- data/lib/puppet/pops/parser/lexer2.rb +20 -12
- data/lib/puppet/pops/parser/lexer_support.rb +1 -1
- data/lib/puppet/pops/parser/locator.rb +4 -4
- data/lib/puppet/pops/parser/parser_support.rb +12 -14
- data/lib/puppet/pops/parser/pn_parser.rb +3 -3
- data/lib/puppet/pops/parser/slurp_support.rb +8 -8
- data/lib/puppet/pops/patterns.rb +12 -12
- data/lib/puppet/pops/pcore.rb +1 -1
- data/lib/puppet/pops/pn.rb +2 -2
- data/lib/puppet/pops/puppet_stack.rb +1 -1
- data/lib/puppet/pops/resource/resource_type_impl.rb +1 -1
- data/lib/puppet/pops/serialization/abstract_reader.rb +2 -2
- data/lib/puppet/pops/serialization/abstract_writer.rb +3 -3
- data/lib/puppet/pops/time/timestamp.rb +1 -1
- data/lib/puppet/pops/types/class_loader.rb +4 -6
- data/lib/puppet/pops/types/iterable.rb +1 -1
- data/lib/puppet/pops/types/p_binary_type.rb +1 -1
- data/lib/puppet/pops/types/p_init_type.rb +1 -1
- data/lib/puppet/pops/types/p_object_type.rb +5 -5
- data/lib/puppet/pops/types/p_object_type_extension.rb +4 -6
- data/lib/puppet/pops/types/p_sem_ver_range_type.rb +1 -1
- data/lib/puppet/pops/types/p_sensitive_type.rb +1 -1
- data/lib/puppet/pops/types/p_timespan_type.rb +2 -2
- data/lib/puppet/pops/types/p_type_set_type.rb +10 -10
- data/lib/puppet/pops/types/p_uri_type.rb +4 -4
- data/lib/puppet/pops/types/recursion_guard.rb +4 -4
- data/lib/puppet/pops/types/ruby_generator.rb +2 -2
- data/lib/puppet/pops/types/string_converter.rb +12 -8
- data/lib/puppet/pops/types/tree_iterators.rb +4 -6
- data/lib/puppet/pops/types/type_calculator.rb +10 -10
- data/lib/puppet/pops/types/type_factory.rb +7 -3
- data/lib/puppet/pops/types/type_formatter.rb +22 -24
- data/lib/puppet/pops/types/type_mismatch_describer.rb +24 -24
- data/lib/puppet/pops/types/types.rb +28 -24
- data/lib/puppet/pops/utils.rb +38 -42
- data/lib/puppet/pops/validation/checker4_0.rb +10 -10
- data/lib/puppet/pops/validation/tasks_checker.rb +1 -1
- data/lib/puppet/pops/validation/validator_factory_4_0.rb +2 -0
- data/lib/puppet/pops/validation.rb +4 -4
- data/lib/puppet/pops/visitor.rb +2 -2
- data/lib/puppet/property/ensure.rb +12 -14
- data/lib/puppet/property/keyvalue.rb +4 -4
- data/lib/puppet/property/list.rb +4 -4
- data/lib/puppet/property/ordered_list.rb +1 -1
- data/lib/puppet/property.rb +31 -33
- data/lib/puppet/provider/exec.rb +2 -2
- data/lib/puppet/provider/file/posix.rb +19 -17
- data/lib/puppet/provider/file/windows.rb +13 -19
- data/lib/puppet/provider/group/directoryservice.rb +3 -2
- data/lib/puppet/provider/group/groupadd.rb +4 -4
- data/lib/puppet/provider/group/windows_adsi.rb +2 -2
- data/lib/puppet/provider/nameservice/directoryservice.rb +29 -29
- data/lib/puppet/provider/nameservice/objectadd.rb +2 -4
- data/lib/puppet/provider/nameservice/pw.rb +1 -2
- data/lib/puppet/provider/nameservice.rb +8 -8
- data/lib/puppet/provider/package/aix.rb +19 -19
- data/lib/puppet/provider/package/appdmg.rb +2 -2
- data/lib/puppet/provider/package/apple.rb +1 -1
- data/lib/puppet/provider/package/apt.rb +18 -18
- data/lib/puppet/provider/package/aptitude.rb +1 -3
- data/lib/puppet/provider/package/aptrpm.rb +9 -9
- data/lib/puppet/provider/package/blastwave.rb +10 -14
- data/lib/puppet/provider/package/dnfmodule.rb +3 -3
- data/lib/puppet/provider/package/dpkg.rb +11 -13
- data/lib/puppet/provider/package/fink.rb +14 -14
- data/lib/puppet/provider/package/freebsd.rb +1 -1
- data/lib/puppet/provider/package/gem.rb +12 -14
- data/lib/puppet/provider/package/macports.rb +2 -2
- data/lib/puppet/provider/package/nim.rb +10 -10
- data/lib/puppet/provider/package/openbsd.rb +22 -22
- data/lib/puppet/provider/package/opkg.rb +6 -6
- data/lib/puppet/provider/package/pacman.rb +35 -29
- data/lib/puppet/provider/package/pip.rb +25 -24
- data/lib/puppet/provider/package/pkg.rb +15 -15
- data/lib/puppet/provider/package/pkgdmg.rb +10 -10
- data/lib/puppet/provider/package/pkgin.rb +2 -2
- data/lib/puppet/provider/package/pkgng.rb +5 -5
- data/lib/puppet/provider/package/pkgutil.rb +17 -21
- data/lib/puppet/provider/package/portage.rb +59 -61
- data/lib/puppet/provider/package/ports.rb +12 -11
- data/lib/puppet/provider/package/portupgrade.rb +35 -35
- data/lib/puppet/provider/package/puppetserver_gem.rb +10 -9
- data/lib/puppet/provider/package/rpm.rb +26 -26
- data/lib/puppet/provider/package/rug.rb +7 -9
- data/lib/puppet/provider/package/sun.rb +4 -4
- data/lib/puppet/provider/package/up2date.rb +5 -7
- data/lib/puppet/provider/package/urpmi.rb +6 -6
- data/lib/puppet/provider/package/windows/exe_package.rb +7 -7
- data/lib/puppet/provider/package/windows/msi_package.rb +3 -3
- data/lib/puppet/provider/package/windows/package.rb +2 -2
- data/lib/puppet/provider/package/windows.rb +3 -5
- data/lib/puppet/provider/package/yum.rb +33 -37
- data/lib/puppet/provider/package/zypper.rb +12 -14
- data/lib/puppet/provider/package.rb +1 -1
- data/lib/puppet/provider/package_targetable.rb +1 -1
- data/lib/puppet/provider/parsedfile.rb +9 -9
- data/lib/puppet/provider/service/base.rb +16 -21
- data/lib/puppet/provider/service/bsd.rb +4 -4
- data/lib/puppet/provider/service/daemontools.rb +31 -31
- data/lib/puppet/provider/service/debian.rb +6 -6
- data/lib/puppet/provider/service/freebsd.rb +36 -36
- data/lib/puppet/provider/service/gentoo.rb +6 -6
- data/lib/puppet/provider/service/init.rb +19 -19
- data/lib/puppet/provider/service/launchd.rb +22 -22
- data/lib/puppet/provider/service/openbsd.rb +10 -10
- data/lib/puppet/provider/service/openrc.rb +1 -1
- data/lib/puppet/provider/service/openwrt.rb +3 -3
- data/lib/puppet/provider/service/rcng.rb +3 -3
- data/lib/puppet/provider/service/redhat.rb +4 -4
- data/lib/puppet/provider/service/runit.rb +6 -6
- data/lib/puppet/provider/service/service.rb +5 -7
- data/lib/puppet/provider/service/smf.rb +28 -27
- data/lib/puppet/provider/service/src.rb +7 -7
- data/lib/puppet/provider/service/systemd.rb +31 -37
- data/lib/puppet/provider/service/upstart.rb +17 -17
- data/lib/puppet/provider/service/windows.rb +7 -7
- data/lib/puppet/provider/user/aix.rb +4 -2
- data/lib/puppet/provider/user/directoryservice.rb +34 -36
- data/lib/puppet/provider/user/hpux.rb +10 -14
- data/lib/puppet/provider/user/pw.rb +1 -1
- data/lib/puppet/provider/user/user_role_add.rb +16 -18
- data/lib/puppet/provider/user/useradd.rb +7 -7
- data/lib/puppet/provider/user/windows_adsi.rb +1 -1
- data/lib/puppet/provider.rb +8 -8
- data/lib/puppet/reference/indirection.rb +3 -0
- data/lib/puppet/reference/metaparameter.rb +1 -1
- data/lib/puppet/reference/providers.rb +3 -3
- data/lib/puppet/reference/type.rb +1 -1
- data/lib/puppet/relationship.rb +4 -5
- data/lib/puppet/reports/http.rb +1 -1
- data/lib/puppet/reports/log.rb +2 -2
- data/lib/puppet/reports/store.rb +4 -4
- data/lib/puppet/reports.rb +2 -2
- data/lib/puppet/resource/catalog.rb +16 -16
- data/lib/puppet/resource/status.rb +3 -3
- data/lib/puppet/resource/type.rb +8 -8
- data/lib/puppet/resource/type_collection.rb +1 -1
- data/lib/puppet/resource.rb +41 -41
- data/lib/puppet/scheduler/scheduler.rb +1 -1
- data/lib/puppet/settings/alias_setting.rb +3 -5
- data/lib/puppet/settings/base_setting.rb +11 -11
- data/lib/puppet/settings/boolean_setting.rb +2 -2
- data/lib/puppet/settings/config_file.rb +5 -4
- data/lib/puppet/settings/duration_setting.rb +2 -2
- data/lib/puppet/settings/environment_conf.rb +3 -3
- data/lib/puppet/settings/file_or_directory_setting.rb +2 -2
- data/lib/puppet/settings/file_setting.rb +11 -11
- data/lib/puppet/settings/ini_file.rb +3 -3
- data/lib/puppet/settings/port_setting.rb +1 -1
- data/lib/puppet/settings/priority_setting.rb +2 -2
- data/lib/puppet/settings/ttl_setting.rb +2 -2
- data/lib/puppet/settings/value_translator.rb +8 -8
- data/lib/puppet/settings.rb +65 -70
- data/lib/puppet/ssl/base.rb +2 -4
- data/lib/puppet/ssl/certificate_request.rb +18 -22
- data/lib/puppet/ssl/certificate_request_attributes.rb +3 -3
- data/lib/puppet/ssl/oids.rb +2 -2
- data/lib/puppet/ssl/openssl_loader.rb +4 -4
- data/lib/puppet/syntax_checkers/base64.rb +3 -3
- data/lib/puppet/syntax_checkers/epp.rb +3 -3
- data/lib/puppet/syntax_checkers/json.rb +3 -3
- data/lib/puppet/syntax_checkers/pp.rb +3 -3
- data/lib/puppet/transaction/additional_resource_generator.rb +1 -1
- data/lib/puppet/transaction/event.rb +2 -2
- data/lib/puppet/transaction/event_manager.rb +5 -5
- data/lib/puppet/transaction/persistence.rb +12 -14
- data/lib/puppet/transaction/report.rb +4 -4
- data/lib/puppet/transaction/resource_harness.rb +2 -2
- data/lib/puppet/transaction.rb +14 -18
- data/lib/puppet/type/component.rb +3 -3
- data/lib/puppet/type/exec.rb +43 -45
- data/lib/puppet/type/file/checksum_value.rb +1 -1
- data/lib/puppet/type/file/content.rb +6 -6
- data/lib/puppet/type/file/ctime.rb +2 -2
- data/lib/puppet/type/file/data_sync.rb +3 -3
- data/lib/puppet/type/file/ensure.rb +16 -15
- data/lib/puppet/type/file/mode.rb +9 -9
- data/lib/puppet/type/file/mtime.rb +2 -2
- data/lib/puppet/type/file/selcontext.rb +14 -14
- data/lib/puppet/type/file/source.rb +19 -21
- data/lib/puppet/type/file/target.rb +11 -11
- data/lib/puppet/type/file.rb +21 -21
- data/lib/puppet/type/filebucket.rb +3 -3
- data/lib/puppet/type/group.rb +3 -3
- data/lib/puppet/type/notify.rb +2 -2
- data/lib/puppet/type/package.rb +4 -4
- data/lib/puppet/type/resources.rb +6 -6
- data/lib/puppet/type/schedule.rb +9 -9
- data/lib/puppet/type/service.rb +6 -8
- data/lib/puppet/type/tidy.rb +22 -24
- data/lib/puppet/type/user.rb +13 -13
- data/lib/puppet/type.rb +76 -88
- data/lib/puppet/util/at_fork/solaris.rb +33 -37
- data/lib/puppet/util/autoload.rb +2 -2
- data/lib/puppet/util/backups.rb +9 -9
- data/lib/puppet/util/character_encoding.rb +7 -6
- data/lib/puppet/util/checksums.rb +2 -2
- data/lib/puppet/util/classgen.rb +8 -8
- data/lib/puppet/util/colors.rb +1 -1
- data/lib/puppet/util/command_line/puppet_option_parser.rb +1 -1
- data/lib/puppet/util/command_line/trollop.rb +42 -46
- data/lib/puppet/util/command_line.rb +2 -2
- data/lib/puppet/util/constant_inflector.rb +2 -2
- data/lib/puppet/util/diff.rb +19 -21
- data/lib/puppet/util/docs.rb +2 -2
- data/lib/puppet/util/errors.rb +9 -9
- data/lib/puppet/util/execution.rb +32 -9
- data/lib/puppet/util/feature.rb +1 -1
- data/lib/puppet/util/fileparsing.rb +12 -16
- data/lib/puppet/util/filetype.rb +36 -40
- data/lib/puppet/util/inifile.rb +6 -12
- data/lib/puppet/util/ldap/connection.rb +1 -1
- data/lib/puppet/util/ldap/manager.rb +10 -12
- data/lib/puppet/util/lockfile.rb +6 -8
- data/lib/puppet/util/log/destination.rb +2 -2
- data/lib/puppet/util/log/destinations.rb +4 -4
- data/lib/puppet/util/log.rb +12 -9
- data/lib/puppet/util/logging.rb +11 -11
- data/lib/puppet/util/metric.rb +3 -3
- data/lib/puppet/util/monkey_patches.rb +5 -7
- data/lib/puppet/util/network_device/config.rb +3 -3
- data/lib/puppet/util/package/version/debian.rb +27 -28
- data/lib/puppet/util/package/version/pip.rb +5 -5
- data/lib/puppet/util/package/version/range/eq.rb +1 -1
- data/lib/puppet/util/package/version/rpm.rb +1 -1
- data/lib/puppet/util/package.rb +2 -2
- data/lib/puppet/util/pidlock.rb +2 -2
- data/lib/puppet/util/platform.rb +1 -1
- data/lib/puppet/util/plist.rb +8 -10
- data/lib/puppet/util/posix.rb +17 -17
- data/lib/puppet/util/profiler/aggregate.rb +1 -1
- data/lib/puppet/util/provider_features.rb +3 -3
- data/lib/puppet/util/rdoc/code_objects.rb +3 -3
- data/lib/puppet/util/rdoc/generators/puppet_generator.rb +63 -64
- data/lib/puppet/util/rdoc/generators/template/puppet/puppet.rb +23 -23
- data/lib/puppet/util/rdoc/parser/puppet_parser_core.rb +12 -12
- data/lib/puppet/util/rdoc/parser/puppet_parser_rdoc2.rb +1 -1
- data/lib/puppet/util/rdoc/parser.rb +1 -1
- data/lib/puppet/util/reference.rb +13 -9
- data/lib/puppet/util/retry_action.rb +1 -1
- data/lib/puppet/util/rpm_compare.rb +17 -18
- data/lib/puppet/util/rubygems.rb +1 -1
- data/lib/puppet/util/selinux.rb +7 -7
- data/lib/puppet/util/storage.rb +10 -12
- data/lib/puppet/util/suidmanager.rb +18 -19
- data/lib/puppet/util/symbolic_file_mode.rb +71 -75
- data/lib/puppet/util/tag_set.rb +2 -2
- data/lib/puppet/util/tagging.rb +8 -10
- data/lib/puppet/util/terminal.rb +4 -4
- data/lib/puppet/util/user_attr.rb +7 -7
- data/lib/puppet/util/watcher.rb +3 -5
- data/lib/puppet/util/windows/access_control_list.rb +1 -1
- data/lib/puppet/util/windows/adsi.rb +42 -42
- data/lib/puppet/util/windows/daemon.rb +64 -68
- data/lib/puppet/util/windows/error.rb +2 -2
- data/lib/puppet/util/windows/file.rb +18 -25
- data/lib/puppet/util/windows/monkey_patches/process.rb +1 -1
- data/lib/puppet/util/windows/principal.rb +8 -8
- data/lib/puppet/util/windows/process.rb +16 -28
- data/lib/puppet/util/windows/registry.rb +16 -15
- data/lib/puppet/util/windows/root_certs.rb +2 -2
- data/lib/puppet/util/windows/security.rb +31 -31
- data/lib/puppet/util/windows/service.rb +11 -11
- data/lib/puppet/util/windows/sid.rb +8 -8
- data/lib/puppet/util/windows/user.rb +18 -20
- data/lib/puppet/util/yaml.rb +1 -1
- data/lib/puppet/util.rb +55 -46
- data/lib/puppet/version.rb +2 -2
- data/lib/puppet/x509/pem_store.rb +1 -1
- data/lib/puppet.rb +3 -3
- data/man/man5/puppet.conf.5 +10 -2
- data/man/man8/puppet-agent.8 +1 -1
- data/man/man8/puppet-apply.8 +1 -1
- data/man/man8/puppet-catalog.8 +1 -1
- data/man/man8/puppet-config.8 +1 -1
- data/man/man8/puppet-describe.8 +1 -1
- data/man/man8/puppet-device.8 +1 -1
- data/man/man8/puppet-doc.8 +1 -1
- data/man/man8/puppet-epp.8 +1 -1
- data/man/man8/puppet-facts.8 +1 -1
- data/man/man8/puppet-filebucket.8 +1 -1
- data/man/man8/puppet-generate.8 +1 -1
- data/man/man8/puppet-help.8 +1 -1
- data/man/man8/puppet-lookup.8 +1 -1
- data/man/man8/puppet-module.8 +1 -1
- data/man/man8/puppet-node.8 +1 -1
- data/man/man8/puppet-parser.8 +1 -1
- data/man/man8/puppet-plugin.8 +1 -1
- data/man/man8/puppet-report.8 +1 -1
- data/man/man8/puppet-resource.8 +5 -1
- data/man/man8/puppet-script.8 +1 -1
- data/man/man8/puppet-ssl.8 +1 -1
- data/man/man8/puppet.8 +2 -2
- metadata +2 -2
@@ -61,14 +61,12 @@ class Puppet::Pops::Model::AstTransformer
|
|
61
61
|
|
62
62
|
# Transforms pops expressions into AST 3.1 statements/expressions
|
63
63
|
def transform(o)
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
loc_data[:file], loc_data[:line], loc_data[:pos], e)
|
71
|
-
end
|
64
|
+
@@transform_visitor.visit_this_0(self, o)
|
65
|
+
rescue StandardError => e
|
66
|
+
loc_data = {}
|
67
|
+
merge_location(loc_data, o)
|
68
|
+
raise Puppet::ParseError.new(_("Error while transforming to Puppet 3 AST: %{message}") % { message: e.message },
|
69
|
+
loc_data[:file], loc_data[:line], loc_data[:pos], e)
|
72
70
|
end
|
73
71
|
|
74
72
|
# Transforms pops expressions into AST 3.1 query expressions
|
@@ -93,11 +91,11 @@ class Puppet::Pops::Model::AstTransformer
|
|
93
91
|
end
|
94
92
|
|
95
93
|
def hostname_LiteralValue(o)
|
96
|
-
|
94
|
+
o.value
|
97
95
|
end
|
98
96
|
|
99
97
|
def hostname_QualifiedName(o)
|
100
|
-
|
98
|
+
o.value
|
101
99
|
end
|
102
100
|
|
103
101
|
def hostname_LiteralNumber(o)
|
@@ -105,7 +103,7 @@ class Puppet::Pops::Model::AstTransformer
|
|
105
103
|
end
|
106
104
|
|
107
105
|
def hostname_LiteralDefault(o)
|
108
|
-
|
106
|
+
'default'
|
109
107
|
end
|
110
108
|
|
111
109
|
def hostname_LiteralRegularExpression(o)
|
@@ -648,7 +648,7 @@ class Factory
|
|
648
648
|
return false unless expr.instance_of?(self) && expr.model_class <= AbstractResource
|
649
649
|
|
650
650
|
expr['form'] = form
|
651
|
-
|
651
|
+
true
|
652
652
|
end
|
653
653
|
|
654
654
|
# Returns symbolic information about an expected shape of a resource expression given the LHS of a resource expr.
|
@@ -1052,8 +1052,7 @@ class Factory
|
|
1052
1052
|
end
|
1053
1053
|
a_hash = HASH(keyed_entries)
|
1054
1054
|
a_hash.record_position(left[KEY_LOCATOR], lbrace_token, rbrace_token)
|
1055
|
-
|
1056
|
-
result
|
1055
|
+
block_or_expression(transform_calls([left, a_hash]))
|
1057
1056
|
end
|
1058
1057
|
|
1059
1058
|
def interpolate_Factory(c)
|
@@ -1062,7 +1061,7 @@ class Factory
|
|
1062
1061
|
|
1063
1062
|
def interpolate_LiteralInteger(c)
|
1064
1063
|
# convert number to a variable
|
1065
|
-
|
1064
|
+
var
|
1066
1065
|
end
|
1067
1066
|
|
1068
1067
|
def interpolate_Object(c)
|
@@ -1070,7 +1069,7 @@ class Factory
|
|
1070
1069
|
end
|
1071
1070
|
|
1072
1071
|
def interpolate_QualifiedName(c)
|
1073
|
-
|
1072
|
+
var
|
1074
1073
|
end
|
1075
1074
|
|
1076
1075
|
# rewrite left expression to variable if it is name, number, and recurse if it is an access expression
|
@@ -14,7 +14,7 @@ class Puppet::Pops::Parser::EppParser < Puppet::Pops::Parser::Parser
|
|
14
14
|
def parse_file(file)
|
15
15
|
unless FileTest.exist?(file)
|
16
16
|
unless file =~ /\.epp$/
|
17
|
-
file
|
17
|
+
file += ".epp"
|
18
18
|
end
|
19
19
|
end
|
20
20
|
@lexer.file = file
|
@@ -43,7 +43,7 @@ class Puppet::Pops::Parser::EppParser < Puppet::Pops::Parser::Parser
|
|
43
43
|
# rescue => except
|
44
44
|
# raise Puppet::ParseError.new(except.message, @lexer.file, @lexer.line, @lexer.pos, except)
|
45
45
|
end
|
46
|
-
|
46
|
+
main
|
47
47
|
ensure
|
48
48
|
@lexer.clear
|
49
49
|
@namestack = []
|
@@ -71,7 +71,7 @@ class EvaluatingParser
|
|
71
71
|
|
72
72
|
def evaluator
|
73
73
|
# Do not use the cached evaluator if this is a migration run
|
74
|
-
if
|
74
|
+
if Puppet.lookup(:migration_checker) { nil }
|
75
75
|
return Evaluator::EvaluatorImpl.new()
|
76
76
|
end
|
77
77
|
|
@@ -146,7 +146,7 @@ class EvaluatingParser
|
|
146
146
|
when '"'
|
147
147
|
escaped << '\\"'
|
148
148
|
when '\\'
|
149
|
-
escaped <<
|
149
|
+
escaped << ((c == '$' || c == 's') ? p : '\\\\') # don't escape \ when followed by s or $
|
150
150
|
else
|
151
151
|
escaped << p
|
152
152
|
end
|
@@ -8,7 +8,7 @@ module HeredocSupport
|
|
8
8
|
# Pattern for heredoc `@(endtag[:syntax][/escapes])
|
9
9
|
# Produces groups for endtag (group 1), syntax (group 2), and escapes (group 3)
|
10
10
|
#
|
11
|
-
PATTERN_HEREDOC = %r{@\(([^:/\r\n
|
11
|
+
PATTERN_HEREDOC = %r{@\(([^:/\r\n)]+)(?::[[:blank:]]*([a-z][a-zA-Z0-9_+]+)[[:blank:]]*)?(?:/((?:\w|[$])*)[[:blank:]]*)?\)}
|
12
12
|
|
13
13
|
def heredoc
|
14
14
|
scn = @scanner
|
@@ -32,7 +32,7 @@ module HeredocSupport
|
|
32
32
|
# Is this a dq string style heredoc? (endtag enclosed in "")
|
33
33
|
if endtag =~ /^"(.*)"$/
|
34
34
|
dqstring_style = true
|
35
|
-
endtag =
|
35
|
+
endtag = ::Regexp.last_match(1).strip
|
36
36
|
end
|
37
37
|
|
38
38
|
lex_error(Issues::HEREDOC_EMPTY_ENDTAG) unless endtag.length >= 1
|
@@ -81,9 +81,9 @@ module HeredocSupport
|
|
81
81
|
# that terminates the heredoc is found.
|
82
82
|
|
83
83
|
# (Endline in EBNF form): WS* ('|' WS*)? ('-' WS*)? endtag WS* \r? (\n|$)
|
84
|
-
endline_pattern = /([[:blank:]]*)(?:([|])[[:blank:]]*)?(?:(
|
84
|
+
endline_pattern = /([[:blank:]]*)(?:([|])[[:blank:]]*)?(?:(-)[[:blank:]]*)?#{Regexp.escape(endtag)}[[:blank:]]*\r?(?:\n|\z)/
|
85
85
|
lines = []
|
86
|
-
|
86
|
+
until scn.eos?
|
87
87
|
one_line = scn.scan_until(/(?:\n|\z)/)
|
88
88
|
raise eof_error unless one_line
|
89
89
|
|
@@ -7,7 +7,7 @@
|
|
7
7
|
# of passing parameters and evaluating conditional logic has a negative impact on performance.
|
8
8
|
#
|
9
9
|
module Puppet::Pops::Parser::InterpolationSupport
|
10
|
-
PATTERN_VARIABLE =
|
10
|
+
PATTERN_VARIABLE = /(::)?(\w+::)*\w+/
|
11
11
|
|
12
12
|
# This is the starting point for a double quoted string with possible interpolation
|
13
13
|
# The structure mimics that of the grammar.
|
@@ -194,7 +194,7 @@ module Puppet::Pops::Parser::InterpolationSupport
|
|
194
194
|
|
195
195
|
scn.skip(self.class::PATTERN_WS)
|
196
196
|
queue_size = queue.size
|
197
|
-
until scn.eos?
|
197
|
+
until scn.eos?
|
198
198
|
token = lex_token
|
199
199
|
if token
|
200
200
|
if token.equal?(queue_base)
|
@@ -242,7 +242,7 @@ module Puppet::Pops::Parser::InterpolationSupport
|
|
242
242
|
def interpolate_uq_to(lexer)
|
243
243
|
interpolate_uq
|
244
244
|
queue = @token_queue
|
245
|
-
until queue.empty?
|
245
|
+
until queue.empty?
|
246
246
|
lexer.enqueue(queue.shift)
|
247
247
|
end
|
248
248
|
end
|
@@ -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
|