puppet 8.5.0-universal-darwin → 8.6.0-universal-darwin
Sign up to get free protection for your applications and to get access to all the features.
- 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
|