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
@@ -118,6 +118,6 @@ class Puppet::Parser::ScriptCompiler
|
|
118
118
|
def evaluate_main
|
119
119
|
@loaders.pre_load
|
120
120
|
program = @loaders.load_main_manifest
|
121
|
-
|
121
|
+
program.nil? ? nil : Puppet::Pops::Parser::EvaluatingParser.singleton.evaluator.evaluate(program, @topscope)
|
122
122
|
end
|
123
123
|
end
|
@@ -67,27 +67,25 @@ class Puppet::Parser::TypeLoader
|
|
67
67
|
return nil if fqname == "" # special-case main.
|
68
68
|
|
69
69
|
files_to_try_for(fqname).each do |filename|
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
return result
|
76
|
-
end
|
77
|
-
rescue TypeLoaderError
|
78
|
-
# I'm not convinced we should just drop these errors, but this
|
79
|
-
# preserves existing behaviours.
|
70
|
+
imported_types = import_from_modules(filename)
|
71
|
+
result = imported_types.find { |t| t.type == type and t.name == fqname }
|
72
|
+
if result
|
73
|
+
Puppet.debug { "Automatically imported #{fqname} from #{filename} into #{environment}" }
|
74
|
+
return result
|
80
75
|
end
|
76
|
+
rescue TypeLoaderError
|
77
|
+
# I'm not convinced we should just drop these errors, but this
|
78
|
+
# preserves existing behaviours.
|
81
79
|
end
|
82
80
|
# Nothing found.
|
83
|
-
|
81
|
+
nil
|
84
82
|
end
|
85
83
|
|
86
84
|
def parse_file(file)
|
87
85
|
Puppet.debug { "importing '#{file}' in environment #{environment}" }
|
88
86
|
parser = Puppet::Parser::ParserFactory.parser
|
89
87
|
parser.file = file
|
90
|
-
|
88
|
+
parser.parse
|
91
89
|
end
|
92
90
|
|
93
91
|
private
|
data/lib/puppet/parser.rb
CHANGED
@@ -16,7 +16,7 @@ require_relative 'parser/relationship'
|
|
16
16
|
require_relative '../puppet/resource/type'
|
17
17
|
require 'monitor'
|
18
18
|
|
19
|
-
require_relative 'parser/compiler/catalog_validator/relationship_validator
|
19
|
+
require_relative 'parser/compiler/catalog_validator/relationship_validator'
|
20
20
|
|
21
21
|
# PUP-3274 This should probably go someplace else
|
22
22
|
class Puppet::LexError < RuntimeError; end
|
@@ -182,7 +182,7 @@ module Adaptable
|
|
182
182
|
# Returns the name of the class, or the name of the type if the class represents an Object type
|
183
183
|
# @return [String] the name of the class or type
|
184
184
|
def self.type_name
|
185
|
-
|
185
|
+
name
|
186
186
|
end
|
187
187
|
|
188
188
|
# Returns a suitable instance variable name for the _name_ of this instance. The name is created by calling
|
@@ -67,7 +67,7 @@ class AccessOperator
|
|
67
67
|
k2 = k2 < 0 ? o.length - k1 + k2 + 1 : k2 # abs length (negative k2 is length from pos to end count)
|
68
68
|
# if k1 is outside, adjust to first position, and adjust length
|
69
69
|
if k1 < 0
|
70
|
-
k2
|
70
|
+
k2 += k1
|
71
71
|
k1 = 0
|
72
72
|
end
|
73
73
|
o[k1, k2]
|
@@ -116,7 +116,7 @@ class AccessOperator
|
|
116
116
|
k2 = k2 < 0 ? o.length - k1 + k2 + 1 : k2 # abs length (negative k2 is length from pos to end count)
|
117
117
|
# if k1 is outside, adjust to first position, and adjust length
|
118
118
|
if k1 < 0
|
119
|
-
k2
|
119
|
+
k2 += k1
|
120
120
|
k1 = 0
|
121
121
|
end
|
122
122
|
# Help ruby always return empty array when asking for a sub array
|
@@ -448,7 +448,7 @@ class AccessOperator
|
|
448
448
|
|
449
449
|
keys.each_with_index do |x, index|
|
450
450
|
fail(Issues::BAD_INTEGER_SLICE_TYPE, @semantic.keys[index],
|
451
|
-
{ :actual => x.class }) unless
|
451
|
+
{ :actual => x.class }) unless x.is_a?(Integer) || x == :default
|
452
452
|
end
|
453
453
|
Types::PIntegerType.new(*keys)
|
454
454
|
end
|
@@ -461,7 +461,7 @@ class AccessOperator
|
|
461
461
|
|
462
462
|
keys.each_with_index do |x, index|
|
463
463
|
fail(Issues::BAD_FLOAT_SLICE_TYPE, @semantic.keys[index],
|
464
|
-
{ :actual => x.class }) unless
|
464
|
+
{ :actual => x.class }) unless x.is_a?(Float) || x.is_a?(Integer) || x == :default
|
465
465
|
end
|
466
466
|
from, to = keys
|
467
467
|
from = from == :default || from.nil? ? nil : Float(from)
|
@@ -556,7 +556,7 @@ class AccessOperator
|
|
556
556
|
else
|
557
557
|
keys.each_with_index do |x, index|
|
558
558
|
fail(Issues::BAD_COLLECTION_SLICE_TYPE, @semantic.keys[start_index + index],
|
559
|
-
{ :actual => x.class }) unless
|
559
|
+
{ :actual => x.class }) unless x.is_a?(Integer) || x == :default
|
560
560
|
end
|
561
561
|
Types::PIntegerType.new(*keys)
|
562
562
|
end
|
@@ -635,7 +635,7 @@ class AccessOperator
|
|
635
635
|
return result_type_array ? [] : nil
|
636
636
|
end
|
637
637
|
|
638
|
-
|
638
|
+
unless o.title.nil?
|
639
639
|
# lookup resource and return one or more parameter values
|
640
640
|
resource = find_resource(scope, o.type_name, o.title)
|
641
641
|
unless resource
|
@@ -665,7 +665,7 @@ class AccessOperator
|
|
665
665
|
Types::PResourceType.new(type_name, t == :no_title ? nil : t)
|
666
666
|
end
|
667
667
|
# returns single type if request was for a single entity, else an array of types (possibly empty)
|
668
|
-
|
668
|
+
result_type_array ? result : result.pop
|
669
669
|
end
|
670
670
|
|
671
671
|
NS = '::'
|
@@ -725,7 +725,7 @@ class AccessOperator
|
|
725
725
|
end
|
726
726
|
|
727
727
|
# returns single type as type, else an array of types
|
728
|
-
|
728
|
+
result_type_array ? result : result.pop
|
729
729
|
end
|
730
730
|
end
|
731
731
|
end
|
@@ -22,7 +22,7 @@ class Puppet::Pops::Evaluator::CallableSignature
|
|
22
22
|
# @api public
|
23
23
|
#
|
24
24
|
def parameter_names
|
25
|
-
raise NotImplementedError
|
25
|
+
raise NotImplementedError
|
26
26
|
end
|
27
27
|
|
28
28
|
# Returns a PCallableType with the type information, required and optional count, and type information about
|
@@ -34,7 +34,7 @@ class Puppet::Pops::Evaluator::CallableSignature
|
|
34
34
|
# @api public
|
35
35
|
#
|
36
36
|
def type
|
37
|
-
raise NotImplementedError
|
37
|
+
raise NotImplementedError
|
38
38
|
end
|
39
39
|
|
40
40
|
# Returns the expected type for an optional block. The type may be nil, which means that the callable does
|
@@ -56,7 +56,7 @@ class Puppet::Pops::Evaluator::CallableSignature
|
|
56
56
|
# @api public
|
57
57
|
#
|
58
58
|
def block_name
|
59
|
-
raise NotImplementedError
|
59
|
+
raise NotImplementedError
|
60
60
|
end
|
61
61
|
|
62
62
|
# Returns a range indicating the optionality of a block. One of [0,0] (does not accept block), [0,1] (optional
|
@@ -87,7 +87,7 @@ class Puppet::Pops::Evaluator::CallableSignature
|
|
87
87
|
# @api public
|
88
88
|
#
|
89
89
|
def last_captures_rest?
|
90
|
-
raise NotImplementedError
|
90
|
+
raise NotImplementedError
|
91
91
|
end
|
92
92
|
|
93
93
|
# Returns true if the given x is infinity
|
@@ -26,7 +26,7 @@ class CollectorTransformer
|
|
26
26
|
|
27
27
|
fail "Resource type #{type} doesn't exist" unless resource_type
|
28
28
|
|
29
|
-
|
29
|
+
unless o.operations.empty?
|
30
30
|
overrides = {
|
31
31
|
:parameters => o.operations.map { |x| @@evaluator.evaluate(x, scope) }.flatten,
|
32
32
|
:file => o.file,
|
@@ -182,19 +182,19 @@ class CollectorTransformer
|
|
182
182
|
def match_AndExpression(o, scope)
|
183
183
|
left_match = match(o.left_expr, scope)
|
184
184
|
right_match = match(o.right_expr, scope)
|
185
|
-
|
185
|
+
[left_match, 'and', right_match]
|
186
186
|
end
|
187
187
|
|
188
188
|
def match_OrExpression(o, scope)
|
189
189
|
left_match = match(o.left_expr, scope)
|
190
190
|
right_match = match(o.right_expr, scope)
|
191
|
-
|
191
|
+
[left_match, 'or', right_match]
|
192
192
|
end
|
193
193
|
|
194
194
|
def match_ComparisonExpression(o, scope)
|
195
195
|
left_match = match(o.left_expr, scope)
|
196
196
|
right_match = match(o.right_expr, scope)
|
197
|
-
|
197
|
+
[left_match, o.operator.to_s, right_match]
|
198
198
|
end
|
199
199
|
|
200
200
|
def match_VariableExpression(o, scope)
|
@@ -28,7 +28,7 @@ class Puppet::Pops::Evaluator::Collectors::AbstractCollector
|
|
28
28
|
@collected = {}
|
29
29
|
@scope = scope
|
30
30
|
|
31
|
-
|
31
|
+
unless overrides.nil? || overrides[:parameters]
|
32
32
|
raise ArgumentError, _("Exported resource try to override without parameters")
|
33
33
|
end
|
34
34
|
|
@@ -50,12 +50,12 @@ class Puppet::Pops::Evaluator::Collectors::AbstractCollector
|
|
50
50
|
overrides[:source].override = true
|
51
51
|
|
52
52
|
objects.each do |res|
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
53
|
+
next if @collected.include?(res.ref)
|
54
|
+
|
55
|
+
t = res.type
|
56
|
+
t = Puppet::Pops::Evaluator::Runtime3ResourceSupport.find_resource_type(scope, t)
|
57
|
+
newres = Puppet::Parser::Resource.new(t, res.title, @overrides)
|
58
|
+
scope.compiler.add_override(newres)
|
59
59
|
end
|
60
60
|
end
|
61
61
|
|
@@ -18,14 +18,14 @@ class Puppet::Pops::Evaluator::Collectors::FixedSetCollector < Puppet::Pops::Eva
|
|
18
18
|
resolved = []
|
19
19
|
result = @resources.each_with_object([]) do |ref, memo|
|
20
20
|
res = @scope.findresource(ref.to_s)
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
21
|
+
next unless res
|
22
|
+
|
23
|
+
res.virtual = false
|
24
|
+
memo << res
|
25
|
+
resolved << ref
|
26
26
|
end
|
27
27
|
|
28
|
-
@resources
|
28
|
+
@resources -= resolved
|
29
29
|
|
30
30
|
@scope.compiler.delete_collection(self) if @resources.empty?
|
31
31
|
|
@@ -50,7 +50,7 @@ class CompareOperator
|
|
50
50
|
def cmp_String(a, b)
|
51
51
|
return a.casecmp(b) if b.is_a?(String)
|
52
52
|
|
53
|
-
raise ArgumentError
|
53
|
+
raise ArgumentError, _("A String is not comparable to a non String")
|
54
54
|
end
|
55
55
|
|
56
56
|
# Equality is case independent.
|
@@ -67,7 +67,7 @@ class CompareOperator
|
|
67
67
|
when Time::Timespan, Time::Timestamp
|
68
68
|
-(b <=> a) # compare other way and invert result
|
69
69
|
else
|
70
|
-
raise ArgumentError
|
70
|
+
raise ArgumentError, _("A Numeric is not comparable to non Numeric")
|
71
71
|
end
|
72
72
|
end
|
73
73
|
|
@@ -97,30 +97,30 @@ class CompareOperator
|
|
97
97
|
if b.is_a?(Symbol)
|
98
98
|
a <=> b
|
99
99
|
else
|
100
|
-
raise ArgumentError
|
100
|
+
raise ArgumentError, _("Symbol not comparable to non Symbol")
|
101
101
|
end
|
102
102
|
end
|
103
103
|
|
104
104
|
def cmp_Timespan(a, b)
|
105
|
-
raise ArgumentError
|
105
|
+
raise ArgumentError, _('Timespans are only comparable to Timespans, Integers, and Floats') unless b.is_a?(Time::Timespan) || b.is_a?(Integer) || b.is_a?(Float)
|
106
106
|
|
107
107
|
a <=> b
|
108
108
|
end
|
109
109
|
|
110
110
|
def cmp_Timestamp(a, b)
|
111
|
-
raise ArgumentError
|
111
|
+
raise ArgumentError, _('Timestamps are only comparable to Timestamps, Integers, and Floats') unless b.is_a?(Time::Timestamp) || b.is_a?(Integer) || b.is_a?(Float)
|
112
112
|
|
113
113
|
a <=> b
|
114
114
|
end
|
115
115
|
|
116
116
|
def cmp_Version(a, b)
|
117
|
-
raise ArgumentError
|
117
|
+
raise ArgumentError, _('Versions not comparable to non Versions') unless b.is_a?(SemanticPuppet::Version)
|
118
118
|
|
119
119
|
a <=> b
|
120
120
|
end
|
121
121
|
|
122
122
|
def cmp_Object(a, b)
|
123
|
-
raise ArgumentError
|
123
|
+
raise ArgumentError, _('Only Strings, Numbers, Timespans, Timestamps, and Versions are comparable')
|
124
124
|
end
|
125
125
|
|
126
126
|
def equals_Object(a, b)
|
@@ -183,15 +183,15 @@ class CompareOperator
|
|
183
183
|
end
|
184
184
|
# Always set match data, a "not found" should not keep old match data visible
|
185
185
|
set_match_data(matched, scope) # creates ephemeral
|
186
|
-
|
186
|
+
!!matched
|
187
187
|
when String, SemanticPuppet::Version
|
188
188
|
a.any? { |element| match(b, element, scope) }
|
189
189
|
when Types::PAnyType
|
190
190
|
a.each { |element| return true if b.instance?(element) }
|
191
|
-
|
191
|
+
false
|
192
192
|
else
|
193
193
|
a.each { |element| return true if equals(element, b) }
|
194
|
-
|
194
|
+
false
|
195
195
|
end
|
196
196
|
end
|
197
197
|
|
@@ -172,7 +172,7 @@ class DeferredResolver
|
|
172
172
|
else
|
173
173
|
# call the function later
|
174
174
|
DeferredValue.new(
|
175
|
-
|
175
|
+
proc {
|
176
176
|
# deferred functions can have nested deferred arguments
|
177
177
|
resolved_arguments = mapped_arguments.map { |arg| resolve_lazy_args(arg) }
|
178
178
|
@scope.call_function(func_name, resolved_arguments)
|
@@ -31,7 +31,7 @@ class Puppet::Pops::Evaluator::EppEvaluator
|
|
31
31
|
|
32
32
|
unless Puppet::FileSystem.exist?(file)
|
33
33
|
unless file =~ /\.epp$/
|
34
|
-
file
|
34
|
+
file += ".epp"
|
35
35
|
end
|
36
36
|
end
|
37
37
|
|
@@ -82,7 +82,7 @@ class Puppet::Pops::Evaluator::EppEvaluator
|
|
82
82
|
end
|
83
83
|
|
84
84
|
# filter out all qualified names and set them in qualified_variables
|
85
|
-
# only pass unqualified (filtered) variable names to the
|
85
|
+
# only pass unqualified (filtered) variable names to the template
|
86
86
|
filtered_args = {}
|
87
87
|
template_args.each_pair do |k, v|
|
88
88
|
if k =~ /::/
|
@@ -74,46 +74,44 @@ class EvaluatorImpl
|
|
74
74
|
# @api public
|
75
75
|
#
|
76
76
|
def evaluate(target, scope)
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
if e.file || e.line
|
100
|
-
raise e
|
101
|
-
else
|
102
|
-
# Since it had no location information, treat it as user intended a general purpose
|
103
|
-
# error. Pass on its call stack.
|
104
|
-
fail(Issues::RUNTIME_ERROR, target, { :detail => e.message }, e)
|
105
|
-
end
|
106
|
-
rescue Puppet::Error => e
|
107
|
-
# PuppetError has the ability to wrap an exception, if so, use the wrapped exception's
|
108
|
-
# call stack instead
|
109
|
-
fail(Issues::RUNTIME_ERROR, target, { :detail => e.message }, e.original || e)
|
110
|
-
rescue StopIteration => e
|
111
|
-
# Ensure these are not rescued as StandardError
|
77
|
+
@@eval_visitor.visit_this_1(self, target, scope)
|
78
|
+
rescue SemanticError => e
|
79
|
+
# A raised issue may not know the semantic target, use errors call stack, but fill in the
|
80
|
+
# rest from a supplied semantic object, or the target instruction if there is not semantic
|
81
|
+
# object.
|
82
|
+
#
|
83
|
+
fail(e.issue, e.semantic || target, e.options, e)
|
84
|
+
rescue Puppet::PreformattedError => e
|
85
|
+
# Already formatted with location information, and with the wanted call stack.
|
86
|
+
# Note this is currently a specialized ParseError, so rescue-order is important
|
87
|
+
#
|
88
|
+
raise e
|
89
|
+
rescue Puppet::ParseError => e
|
90
|
+
# ParseError may be raised in ruby code without knowing the location
|
91
|
+
# in puppet code.
|
92
|
+
# Accept a ParseError that has file or line information available
|
93
|
+
# as an error that should be used verbatim. (Tests typically run without
|
94
|
+
# setting a file name).
|
95
|
+
# ParseError can supply an original - it is impossible to determine which
|
96
|
+
# call stack that should be propagated, using the ParseError's backtrace.
|
97
|
+
#
|
98
|
+
if e.file || e.line
|
112
99
|
raise e
|
113
|
-
|
114
|
-
#
|
100
|
+
else
|
101
|
+
# Since it had no location information, treat it as user intended a general purpose
|
102
|
+
# error. Pass on its call stack.
|
115
103
|
fail(Issues::RUNTIME_ERROR, target, { :detail => e.message }, e)
|
116
104
|
end
|
105
|
+
rescue Puppet::Error => e
|
106
|
+
# PuppetError has the ability to wrap an exception, if so, use the wrapped exception's
|
107
|
+
# call stack instead
|
108
|
+
fail(Issues::RUNTIME_ERROR, target, { :detail => e.message }, e.original || e)
|
109
|
+
rescue StopIteration => e
|
110
|
+
# Ensure these are not rescued as StandardError
|
111
|
+
raise e
|
112
|
+
rescue StandardError => e
|
113
|
+
# All other errors, use its message and call stack
|
114
|
+
fail(Issues::RUNTIME_ERROR, target, { :detail => e.message }, e)
|
117
115
|
end
|
118
116
|
|
119
117
|
# Assigns the given _value_ to the given _target_. The additional argument _o_ is the instruction that
|
@@ -693,7 +691,7 @@ class EvaluatorImpl
|
|
693
691
|
the_default = nil
|
694
692
|
if o.options.find do |co|
|
695
693
|
# the first case option that matches
|
696
|
-
|
694
|
+
next unless co.values.find do |c|
|
697
695
|
c = unwind_parentheses(c)
|
698
696
|
case c
|
699
697
|
when Model::LiteralDefault
|
@@ -707,9 +705,9 @@ class EvaluatorImpl
|
|
707
705
|
is_match?(test, evaluate(c, scope), c, co, scope)
|
708
706
|
end
|
709
707
|
end
|
710
|
-
|
711
|
-
|
712
|
-
|
708
|
+
|
709
|
+
result = evaluate(co.then_expr, scope)
|
710
|
+
true # the option was picked
|
713
711
|
end
|
714
712
|
result # an option was picked, and produced a result
|
715
713
|
else
|
@@ -746,17 +744,15 @@ class EvaluatorImpl
|
|
746
744
|
end
|
747
745
|
|
748
746
|
def eval_Program(o, scope)
|
749
|
-
|
750
|
-
|
751
|
-
|
752
|
-
|
753
|
-
|
754
|
-
|
755
|
-
|
756
|
-
|
757
|
-
|
758
|
-
raise Puppet::ParseError.new(_("break() from context where this is illegal"), ex.file, ex.line)
|
759
|
-
end
|
747
|
+
file = o.locator.file
|
748
|
+
line = 0
|
749
|
+
# Add stack frame for "top scope" logic. See Puppet::Pops::PuppetStack
|
750
|
+
Puppet::Pops::PuppetStack.stack(file, line, self, 'evaluate', [o.body, scope])
|
751
|
+
# evaluate(o.body, scope)
|
752
|
+
rescue Puppet::Pops::Evaluator::PuppetStopIteration => ex
|
753
|
+
# breaking out of a file level program is not allowed
|
754
|
+
# TRANSLATOR break() is a method that should not be translated
|
755
|
+
raise Puppet::ParseError.new(_("break() from context where this is illegal"), ex.file, ex.line)
|
760
756
|
end
|
761
757
|
|
762
758
|
# Produces Array[PAnyType], an array of resource references
|
@@ -811,7 +807,7 @@ class EvaluatorImpl
|
|
811
807
|
|
812
808
|
# This is a runtime check - the model is valid, but will have runtime issues when evaluated
|
813
809
|
# and storeconfigs is not set.
|
814
|
-
if
|
810
|
+
if o.exported
|
815
811
|
optionally_fail(Issues::RT_NO_STORECONFIGS_EXPORT, o);
|
816
812
|
end
|
817
813
|
|
@@ -1068,10 +1064,10 @@ class EvaluatorImpl
|
|
1068
1064
|
# Evaluates Puppet DSL `unless`
|
1069
1065
|
def eval_UnlessExpression o, scope
|
1070
1066
|
scope.with_guarded_scope do
|
1071
|
-
|
1072
|
-
evaluate(o.then_expr, scope)
|
1073
|
-
else
|
1067
|
+
if is_true?(evaluate(o.test, scope), o.test)
|
1074
1068
|
evaluate(o.else_expr, scope)
|
1069
|
+
else
|
1070
|
+
evaluate(o.then_expr, scope)
|
1075
1071
|
end
|
1076
1072
|
end
|
1077
1073
|
end
|
@@ -1236,15 +1232,15 @@ class EvaluatorImpl
|
|
1236
1232
|
Hash[*y]
|
1237
1233
|
end
|
1238
1234
|
else
|
1239
|
-
raise ArgumentError
|
1235
|
+
raise ArgumentError, _('Can only append Array or Hash to a Hash')
|
1240
1236
|
end
|
1241
1237
|
x.merge y # new hash with overwrite
|
1242
1238
|
when URI
|
1243
|
-
raise ArgumentError
|
1239
|
+
raise ArgumentError, _('An URI can only be merged with an URI or String') unless y.is_a?(String) || y.is_a?(URI)
|
1244
1240
|
|
1245
1241
|
x + y
|
1246
1242
|
when Types::PBinaryType::Binary
|
1247
|
-
raise ArgumentError
|
1243
|
+
raise ArgumentError, _('Can only append Binary to a Binary') unless y.is_a?(Types::PBinaryType::Binary)
|
1248
1244
|
|
1249
1245
|
Types::PBinaryType::Binary.from_binary_string(x.binary_buffer + y.binary_buffer)
|
1250
1246
|
else
|
@@ -1276,7 +1272,7 @@ class EvaluatorImpl
|
|
1276
1272
|
end
|
1277
1273
|
y.each { |e| result.delete(e) }
|
1278
1274
|
else
|
1279
|
-
raise ArgumentError
|
1275
|
+
raise ArgumentError, _("Can only delete from an Array or Hash.")
|
1280
1276
|
end
|
1281
1277
|
result
|
1282
1278
|
end
|
@@ -76,6 +76,10 @@ class LiteralEvaluator
|
|
76
76
|
o.keys.map { |v| literal(v) }
|
77
77
|
end
|
78
78
|
|
79
|
+
def literal_UnaryMinusExpression(o)
|
80
|
+
-literal(o.expr)
|
81
|
+
end
|
82
|
+
|
79
83
|
def literal_ConcatenatedString(o)
|
80
84
|
# use double quoted string value if there is no interpolation
|
81
85
|
throw :not_literal unless o.segments.size == 1 && o.segments[0].is_a?(Model::LiteralString)
|
@@ -47,7 +47,7 @@ class RelationshipOperator
|
|
47
47
|
# Catch all non transformable objects
|
48
48
|
# @api private
|
49
49
|
def transform_Object(o, scope)
|
50
|
-
raise IllegalRelationshipOperandError
|
50
|
+
raise IllegalRelationshipOperandError, o
|
51
51
|
end
|
52
52
|
|
53
53
|
# A Resource is by definition a Catalog type, but of 3.x type
|
@@ -98,7 +98,7 @@ class RelationshipOperator
|
|
98
98
|
#
|
99
99
|
def assert_catalog_type(o, scope)
|
100
100
|
unless @type_calculator.assignable?(@catalog_type, o)
|
101
|
-
raise NotCatalogTypeError
|
101
|
+
raise NotCatalogTypeError, o
|
102
102
|
end
|
103
103
|
|
104
104
|
# TODO must check if this is an abstract PResourceType (i.e. without a type_name) - which should fail ?
|
@@ -70,7 +70,7 @@ class Runtime3Converter
|
|
70
70
|
return o unless o < MIN_INTEGER || o > MAX_INTEGER
|
71
71
|
|
72
72
|
range_end = o > MAX_INTEGER ? 'max' : 'min'
|
73
|
-
raise Puppet::Error, "Use of a Ruby Integer outside of Puppet Integer #{range_end} range, got '#{
|
73
|
+
raise Puppet::Error, "Use of a Ruby Integer outside of Puppet Integer #{range_end} range, got '#{'0x%x' % o}'"
|
74
74
|
end
|
75
75
|
|
76
76
|
def convert_BigDecimal(o, scope, undef_value)
|
@@ -165,7 +165,7 @@ class Runtime3Converter
|
|
165
165
|
@convert_visitor = Puppet::Pops::Visitor.new(self, 'convert', 2, 2)
|
166
166
|
end
|
167
167
|
|
168
|
-
@instance =
|
168
|
+
@instance = new
|
169
169
|
end
|
170
170
|
|
171
171
|
# A Ruby function written for the 3.x API cannot be expected to handle extended data types. This
|
@@ -220,6 +220,6 @@ class Runtime3FunctionArgumentConverter < Runtime3Converter
|
|
220
220
|
end
|
221
221
|
end
|
222
222
|
|
223
|
-
@instance =
|
223
|
+
@instance = new
|
224
224
|
end
|
225
225
|
end
|
@@ -37,7 +37,7 @@ module Runtime3Support
|
|
37
37
|
if except.nil? && diagnostic_producer.severity_producer[issue] == :error
|
38
38
|
# Want a stacktrace, and it must be passed as an exception
|
39
39
|
begin
|
40
|
-
raise EvaluationError
|
40
|
+
raise EvaluationError
|
41
41
|
rescue EvaluationError => e
|
42
42
|
except = e
|
43
43
|
end
|
@@ -62,15 +62,15 @@ class Puppet::Pops::Functions::Dispatcher
|
|
62
62
|
# make a copy to make sure it can be contained by someone else (even if it is not contained here, it
|
63
63
|
# should be treated as immutable).
|
64
64
|
#
|
65
|
-
callables = dispatchers.map
|
65
|
+
callables = dispatchers.map(&:type)
|
66
66
|
|
67
67
|
# multiple signatures, produce a Variant type of Callable1-n (must copy them)
|
68
68
|
# single signature, produce single Callable
|
69
|
-
callables.size > 1 ?
|
69
|
+
callables.size > 1 ? Puppet::Pops::Types::TypeFactory.variant(*callables) : callables.pop
|
70
70
|
end
|
71
71
|
|
72
72
|
# @api private
|
73
73
|
def signatures
|
74
|
-
@dispatchers.reject
|
74
|
+
@dispatchers.reject(&:argument_mismatch_handler?)
|
75
75
|
end
|
76
76
|
end
|