puppet 8.5.1-x64-mingw32 → 8.6.0-x64-mingw32
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 +23 -20
- data/ext/windows/service/daemon.rb +49 -55
- data/lib/hiera/scope.rb +3 -3
- data/lib/hiera_puppet.rb +1 -1
- data/lib/puppet/agent/disabler.rb +1 -1
- data/lib/puppet/application/agent.rb +2 -2
- data/lib/puppet/application/apply.rb +2 -2
- data/lib/puppet/application/describe.rb +6 -6
- data/lib/puppet/application/device.rb +99 -100
- data/lib/puppet/application/doc.rb +1 -1
- data/lib/puppet/application/face_base.rb +7 -7
- data/lib/puppet/application/filebucket.rb +1 -1
- data/lib/puppet/application/lookup.rb +5 -5
- data/lib/puppet/application/resource.rb +10 -3
- data/lib/puppet/application/ssl.rb +3 -3
- data/lib/puppet/application.rb +16 -18
- data/lib/puppet/coercion.rb +1 -1
- data/lib/puppet/configurer/downloader.rb +9 -4
- data/lib/puppet/configurer/fact_handler.rb +12 -13
- data/lib/puppet/configurer.rb +16 -18
- data/lib/puppet/confine/feature.rb +1 -1
- data/lib/puppet/confine/variable.rb +1 -1
- data/lib/puppet/confine.rb +2 -2
- data/lib/puppet/confine_collection.rb +1 -1
- data/lib/puppet/confiner.rb +2 -2
- data/lib/puppet/daemon.rb +3 -3
- data/lib/puppet/datatypes.rb +5 -6
- data/lib/puppet/defaults.rb +14 -8
- data/lib/puppet/environments.rb +3 -7
- data/lib/puppet/error.rb +3 -3
- data/lib/puppet/external/dot.rb +42 -34
- data/lib/puppet/face/catalog/select.rb +1 -1
- data/lib/puppet/face/epp.rb +7 -9
- data/lib/puppet/face/help.rb +12 -12
- data/lib/puppet/face/module/changes.rb +1 -3
- data/lib/puppet/face/module/list.rb +37 -37
- data/lib/puppet/face/node/clean.rb +1 -1
- data/lib/puppet/face/parser.rb +6 -8
- data/lib/puppet/face/report.rb +5 -7
- data/lib/puppet/facter_impl.rb +1 -1
- data/lib/puppet/feature/base.rb +9 -11
- data/lib/puppet/feature/pe_license.rb +1 -1
- data/lib/puppet/feature/ssh.rb +1 -1
- data/lib/puppet/feature/telnet.rb +3 -5
- data/lib/puppet/feature/zlib.rb +1 -1
- data/lib/puppet/ffi/windows/constants.rb +1 -1
- data/lib/puppet/ffi/windows/functions.rb +2 -2
- data/lib/puppet/ffi/windows/structs.rb +3 -3
- data/lib/puppet/file_bucket/dipper.rb +4 -4
- data/lib/puppet/file_bucket/file.rb +4 -4
- data/lib/puppet/file_serving/base.rb +5 -5
- data/lib/puppet/file_serving/configuration/parser.rb +9 -9
- data/lib/puppet/file_serving/configuration.rb +3 -3
- data/lib/puppet/file_serving/fileset.rb +13 -13
- data/lib/puppet/file_serving/http_metadata.rb +1 -1
- data/lib/puppet/file_serving/metadata.rb +13 -9
- data/lib/puppet/file_serving/mount/file.rb +6 -6
- data/lib/puppet/file_serving/mount/locales.rb +2 -4
- data/lib/puppet/file_serving/mount/pluginfacts.rb +2 -4
- data/lib/puppet/file_serving/mount/plugins.rb +2 -4
- data/lib/puppet/file_serving/mount.rb +1 -1
- data/lib/puppet/file_system/file_impl.rb +3 -3
- data/lib/puppet/file_system/memory_impl.rb +1 -1
- data/lib/puppet/file_system/path_pattern.rb +1 -1
- data/lib/puppet/file_system/uniquefile.rb +17 -16
- data/lib/puppet/file_system/windows.rb +26 -18
- data/lib/puppet/forge/cache.rb +2 -2
- data/lib/puppet/forge/errors.rb +1 -1
- data/lib/puppet/forge/repository.rb +2 -2
- data/lib/puppet/forge.rb +13 -19
- data/lib/puppet/functions/abs.rb +2 -2
- data/lib/puppet/functions/camelcase.rb +1 -1
- data/lib/puppet/functions/compare.rb +2 -2
- data/lib/puppet/functions/contain.rb +1 -1
- data/lib/puppet/functions/defined.rb +2 -2
- data/lib/puppet/functions/dig.rb +1 -1
- data/lib/puppet/functions/eyaml_lookup_key.rb +11 -13
- data/lib/puppet/functions/get.rb +1 -1
- data/lib/puppet/functions/hocon_data.rb +3 -5
- data/lib/puppet/functions/import.rb +1 -1
- data/lib/puppet/functions/json_data.rb +4 -6
- data/lib/puppet/functions/max.rb +2 -2
- data/lib/puppet/functions/min.rb +2 -2
- data/lib/puppet/functions/new.rb +1 -1
- data/lib/puppet/functions/reduce.rb +6 -10
- data/lib/puppet/functions/regsubst.rb +2 -2
- data/lib/puppet/functions/require.rb +1 -1
- data/lib/puppet/functions/yaml_data.rb +11 -13
- data/lib/puppet/functions.rb +32 -37
- data/lib/puppet/generate/type.rb +2 -2
- data/lib/puppet/gettext/config.rb +9 -9
- data/lib/puppet/graph/rb_tree_map.rb +31 -23
- data/lib/puppet/graph/relationship_graph.rb +12 -12
- data/lib/puppet/graph/simple_graph.rb +8 -10
- data/lib/puppet/http/client.rb +1 -1
- data/lib/puppet/http/dns.rb +4 -4
- data/lib/puppet/http/external_client.rb +1 -1
- data/lib/puppet/http/factory.rb +1 -1
- data/lib/puppet/http/proxy.rb +15 -15
- data/lib/puppet/http/redirector.rb +6 -2
- data/lib/puppet/http/resolver.rb +2 -2
- data/lib/puppet/http/retry_after_handler.rb +2 -2
- data/lib/puppet/http/service/ca.rb +1 -1
- data/lib/puppet/http/service/compiler.rb +4 -4
- data/lib/puppet/http/service/file_server.rb +1 -1
- data/lib/puppet/http/service/report.rb +2 -2
- data/lib/puppet/http/service.rb +9 -13
- data/lib/puppet/http/session.rb +1 -1
- data/lib/puppet/http/site.rb +1 -1
- data/lib/puppet/indirector/catalog/compiler.rb +44 -45
- data/lib/puppet/indirector/catalog/rest.rb +7 -5
- data/lib/puppet/indirector/catalog/store_configs.rb +1 -1
- data/lib/puppet/indirector/exec.rb +2 -2
- data/lib/puppet/indirector/face.rb +7 -9
- data/lib/puppet/indirector/fact_search.rb +1 -1
- data/lib/puppet/indirector/facts/facter.rb +6 -6
- data/lib/puppet/indirector/facts/json.rb +1 -1
- data/lib/puppet/indirector/facts/store_configs.rb +1 -1
- data/lib/puppet/indirector/file_bucket_file/file.rb +17 -17
- data/lib/puppet/indirector/file_bucket_file/rest.rb +3 -3
- data/lib/puppet/indirector/file_content/rest.rb +1 -1
- data/lib/puppet/indirector/file_metadata/rest.rb +1 -1
- data/lib/puppet/indirector/hiera.rb +1 -1
- data/lib/puppet/indirector/indirection.rb +27 -29
- data/lib/puppet/indirector/json.rb +4 -4
- data/lib/puppet/indirector/memory.rb +2 -2
- data/lib/puppet/indirector/msgpack.rb +5 -5
- data/lib/puppet/indirector/node/store_configs.rb +1 -1
- data/lib/puppet/indirector/none.rb +1 -1
- data/lib/puppet/indirector/report/json.rb +1 -1
- data/lib/puppet/indirector/report/yaml.rb +1 -1
- data/lib/puppet/indirector/request.rb +4 -4
- data/lib/puppet/indirector/resource/ral.rb +2 -4
- data/lib/puppet/indirector/resource/store_configs.rb +1 -1
- data/lib/puppet/indirector/terminus.rb +4 -4
- data/lib/puppet/indirector/yaml.rb +3 -3
- data/lib/puppet/info_service/class_information_service.rb +5 -8
- data/lib/puppet/info_service/task_information_service.rb +6 -7
- data/lib/puppet/interface/action.rb +5 -5
- data/lib/puppet/interface/action_manager.rb +5 -5
- data/lib/puppet/interface/documentation.rb +5 -5
- data/lib/puppet/interface/face_collection.rb +7 -7
- data/lib/puppet/interface/option.rb +2 -2
- data/lib/puppet/interface/option_manager.rb +6 -6
- data/lib/puppet/interface.rb +4 -4
- data/lib/puppet/metatype/manager.rb +2 -2
- data/lib/puppet/module/plan.rb +10 -10
- data/lib/puppet/module/task.rb +8 -8
- data/lib/puppet/module.rb +39 -41
- data/lib/puppet/module_tool/applications/application.rb +10 -8
- data/lib/puppet/module_tool/applications/installer.rb +53 -50
- data/lib/puppet/module_tool/applications/unpacker.rb +6 -8
- data/lib/puppet/module_tool/applications/upgrader.rb +37 -34
- data/lib/puppet/module_tool/checksums.rb +2 -2
- data/lib/puppet/module_tool/dependency.rb +1 -1
- data/lib/puppet/module_tool/errors/base.rb +1 -1
- data/lib/puppet/module_tool/install_directory.rb +1 -1
- data/lib/puppet/module_tool/local_tarball.rb +3 -5
- data/lib/puppet/module_tool/metadata.rb +12 -8
- data/lib/puppet/module_tool/shared_behaviors.rb +27 -12
- data/lib/puppet/module_tool/tar/mini.rb +3 -3
- data/lib/puppet/module_tool.rb +4 -4
- data/lib/puppet/network/client_request.rb +5 -3
- data/lib/puppet/network/format.rb +2 -2
- data/lib/puppet/network/format_support.rb +1 -1
- data/lib/puppet/network/formats.rb +1 -1
- data/lib/puppet/network/http/api/indirected_routes.rb +24 -44
- data/lib/puppet/network/http/api/server/v3.rb +1 -1
- data/lib/puppet/network/http/connection.rb +1 -1
- data/lib/puppet/network/http/handler.rb +8 -12
- data/lib/puppet/network/http/request.rb +1 -1
- data/lib/puppet/network/http/route.rb +9 -9
- data/lib/puppet/node/environment.rb +21 -23
- data/lib/puppet/node/facts.rb +1 -1
- data/lib/puppet/node.rb +5 -5
- data/lib/puppet/pal/json_catalog_encoder.rb +1 -1
- data/lib/puppet/pal/pal_impl.rb +48 -50
- data/lib/puppet/pal/plan_signature.rb +1 -1
- data/lib/puppet/pal/task_signature.rb +1 -1
- data/lib/puppet/parameter/package_options.rb +1 -1
- data/lib/puppet/parameter/value.rb +2 -2
- data/lib/puppet/parameter/value_collection.rb +7 -7
- data/lib/puppet/parameter.rb +8 -9
- data/lib/puppet/parser/ast/block_expression.rb +2 -2
- data/lib/puppet/parser/ast/hostclass.rb +1 -1
- data/lib/puppet/parser/ast/pops_bridge.rb +3 -4
- data/lib/puppet/parser/ast/resource.rb +4 -4
- data/lib/puppet/parser/ast/resourceparam.rb +4 -4
- data/lib/puppet/parser/ast.rb +14 -15
- data/lib/puppet/parser/compiler.rb +26 -28
- data/lib/puppet/parser/functions/create_resources.rb +3 -3
- data/lib/puppet/parser/functions/fail.rb +1 -1
- data/lib/puppet/parser/functions/generate.rb +2 -2
- data/lib/puppet/parser/functions/tag.rb +1 -1
- data/lib/puppet/parser/functions.rb +2 -2
- data/lib/puppet/parser/relationship.rb +3 -1
- data/lib/puppet/parser/resource/param.rb +2 -2
- data/lib/puppet/parser/resource.rb +23 -23
- data/lib/puppet/parser/scope.rb +10 -10
- data/lib/puppet/parser/script_compiler.rb +1 -1
- data/lib/puppet/parser/templatewrapper.rb +1 -1
- data/lib/puppet/parser/type_loader.rb +10 -12
- data/lib/puppet/parser.rb +1 -1
- data/lib/puppet/pops/adaptable.rb +1 -1
- data/lib/puppet/pops/evaluator/access_operator.rb +8 -8
- data/lib/puppet/pops/evaluator/callable_signature.rb +4 -4
- data/lib/puppet/pops/evaluator/collector_transformer.rb +4 -4
- data/lib/puppet/pops/evaluator/collectors/abstract_collector.rb +7 -7
- data/lib/puppet/pops/evaluator/collectors/fixed_set_collector.rb +6 -6
- data/lib/puppet/pops/evaluator/compare_operator.rb +10 -10
- data/lib/puppet/pops/evaluator/deferred_resolver.rb +1 -1
- data/lib/puppet/pops/evaluator/epp_evaluator.rb +2 -2
- data/lib/puppet/pops/evaluator/evaluator_impl.rb +56 -60
- data/lib/puppet/pops/evaluator/relationship_operator.rb +2 -2
- data/lib/puppet/pops/evaluator/runtime3_converter.rb +3 -3
- data/lib/puppet/pops/evaluator/runtime3_support.rb +1 -1
- data/lib/puppet/pops/functions/dispatcher.rb +3 -3
- data/lib/puppet/pops/functions/function.rb +14 -16
- data/lib/puppet/pops/issue_reporter.rb +2 -2
- data/lib/puppet/pops/label_provider.rb +2 -2
- data/lib/puppet/pops/loader/dependency_loader.rb +3 -3
- data/lib/puppet/pops/loader/loader.rb +4 -4
- data/lib/puppet/pops/loader/loader_paths.rb +3 -3
- data/lib/puppet/pops/loader/module_loaders.rb +11 -11
- data/lib/puppet/pops/loader/ruby_data_type_instantiator.rb +1 -1
- data/lib/puppet/pops/loader/ruby_function_instantiator.rb +1 -1
- data/lib/puppet/pops/loader/ruby_legacy_function_instantiator.rb +5 -1
- data/lib/puppet/pops/loader/static_loader.rb +3 -3
- data/lib/puppet/pops/loaders.rb +3 -3
- data/lib/puppet/pops/lookup/data_dig_function_provider.rb +1 -1
- data/lib/puppet/pops/lookup/explainer.rb +2 -2
- data/lib/puppet/pops/lookup/global_data_provider.rb +1 -1
- data/lib/puppet/pops/lookup/hiera_config.rb +15 -11
- data/lib/puppet/pops/lookup/interpolation.rb +3 -3
- data/lib/puppet/pops/lookup/key_recorder.rb +1 -1
- data/lib/puppet/pops/lookup/location_resolver.rb +1 -1
- data/lib/puppet/pops/lookup/lookup_adapter.rb +7 -7
- data/lib/puppet/pops/lookup/sub_lookup.rb +1 -1
- data/lib/puppet/pops/merge_strategy.rb +6 -6
- data/lib/puppet/pops/migration/migration_checker.rb +1 -1
- data/lib/puppet/pops/model/ast_transformer.rb +9 -11
- data/lib/puppet/pops/model/factory.rb +4 -5
- data/lib/puppet/pops/parser/epp_parser.rb +2 -2
- data/lib/puppet/pops/parser/epp_support.rb +1 -1
- data/lib/puppet/pops/parser/evaluating_parser.rb +2 -2
- data/lib/puppet/pops/parser/heredoc_support.rb +4 -4
- data/lib/puppet/pops/parser/interpolation_support.rb +3 -3
- data/lib/puppet/pops/parser/lexer2.rb +20 -12
- data/lib/puppet/pops/parser/lexer_support.rb +1 -1
- data/lib/puppet/pops/parser/locator.rb +4 -4
- data/lib/puppet/pops/parser/parser_support.rb +12 -14
- data/lib/puppet/pops/parser/pn_parser.rb +3 -3
- data/lib/puppet/pops/parser/slurp_support.rb +8 -8
- data/lib/puppet/pops/patterns.rb +12 -12
- data/lib/puppet/pops/pcore.rb +1 -1
- data/lib/puppet/pops/pn.rb +2 -2
- data/lib/puppet/pops/puppet_stack.rb +1 -1
- data/lib/puppet/pops/resource/resource_type_impl.rb +1 -1
- data/lib/puppet/pops/serialization/abstract_reader.rb +2 -2
- data/lib/puppet/pops/serialization/abstract_writer.rb +3 -3
- data/lib/puppet/pops/time/timestamp.rb +1 -1
- data/lib/puppet/pops/types/class_loader.rb +4 -6
- data/lib/puppet/pops/types/iterable.rb +1 -1
- data/lib/puppet/pops/types/p_binary_type.rb +1 -1
- data/lib/puppet/pops/types/p_init_type.rb +1 -1
- data/lib/puppet/pops/types/p_object_type.rb +5 -5
- data/lib/puppet/pops/types/p_object_type_extension.rb +4 -6
- data/lib/puppet/pops/types/p_sem_ver_range_type.rb +1 -1
- data/lib/puppet/pops/types/p_sensitive_type.rb +1 -1
- data/lib/puppet/pops/types/p_timespan_type.rb +2 -2
- data/lib/puppet/pops/types/p_type_set_type.rb +10 -10
- data/lib/puppet/pops/types/p_uri_type.rb +4 -4
- data/lib/puppet/pops/types/recursion_guard.rb +4 -4
- data/lib/puppet/pops/types/ruby_generator.rb +2 -2
- data/lib/puppet/pops/types/string_converter.rb +12 -8
- data/lib/puppet/pops/types/tree_iterators.rb +4 -6
- data/lib/puppet/pops/types/type_calculator.rb +10 -10
- data/lib/puppet/pops/types/type_factory.rb +7 -3
- data/lib/puppet/pops/types/type_formatter.rb +22 -24
- data/lib/puppet/pops/types/type_mismatch_describer.rb +24 -24
- data/lib/puppet/pops/types/types.rb +28 -24
- data/lib/puppet/pops/utils.rb +38 -42
- data/lib/puppet/pops/validation/checker4_0.rb +10 -10
- data/lib/puppet/pops/validation/tasks_checker.rb +1 -1
- data/lib/puppet/pops/validation/validator_factory_4_0.rb +1 -1
- data/lib/puppet/pops/validation.rb +4 -4
- data/lib/puppet/pops/visitor.rb +2 -2
- data/lib/puppet/property/ensure.rb +12 -14
- data/lib/puppet/property/keyvalue.rb +4 -4
- data/lib/puppet/property/list.rb +4 -4
- data/lib/puppet/property/ordered_list.rb +1 -1
- data/lib/puppet/property.rb +31 -33
- data/lib/puppet/provider/exec.rb +2 -2
- data/lib/puppet/provider/file/posix.rb +19 -17
- data/lib/puppet/provider/file/windows.rb +13 -19
- data/lib/puppet/provider/group/directoryservice.rb +3 -2
- data/lib/puppet/provider/group/groupadd.rb +4 -4
- data/lib/puppet/provider/group/windows_adsi.rb +2 -2
- data/lib/puppet/provider/nameservice/directoryservice.rb +29 -29
- data/lib/puppet/provider/nameservice/objectadd.rb +2 -4
- data/lib/puppet/provider/nameservice/pw.rb +1 -2
- data/lib/puppet/provider/nameservice.rb +8 -8
- data/lib/puppet/provider/package/aix.rb +19 -19
- data/lib/puppet/provider/package/appdmg.rb +2 -2
- data/lib/puppet/provider/package/apple.rb +1 -1
- data/lib/puppet/provider/package/apt.rb +18 -18
- data/lib/puppet/provider/package/aptitude.rb +1 -3
- data/lib/puppet/provider/package/aptrpm.rb +9 -9
- data/lib/puppet/provider/package/blastwave.rb +10 -14
- data/lib/puppet/provider/package/dnfmodule.rb +3 -3
- data/lib/puppet/provider/package/dpkg.rb +11 -13
- data/lib/puppet/provider/package/fink.rb +14 -14
- data/lib/puppet/provider/package/freebsd.rb +1 -1
- data/lib/puppet/provider/package/gem.rb +12 -14
- data/lib/puppet/provider/package/macports.rb +2 -2
- data/lib/puppet/provider/package/nim.rb +10 -10
- data/lib/puppet/provider/package/openbsd.rb +22 -22
- data/lib/puppet/provider/package/opkg.rb +6 -6
- data/lib/puppet/provider/package/pacman.rb +35 -29
- data/lib/puppet/provider/package/pip.rb +25 -24
- data/lib/puppet/provider/package/pkg.rb +15 -15
- data/lib/puppet/provider/package/pkgdmg.rb +10 -10
- data/lib/puppet/provider/package/pkgin.rb +2 -2
- data/lib/puppet/provider/package/pkgng.rb +5 -5
- data/lib/puppet/provider/package/pkgutil.rb +17 -21
- data/lib/puppet/provider/package/portage.rb +59 -61
- data/lib/puppet/provider/package/ports.rb +12 -11
- data/lib/puppet/provider/package/portupgrade.rb +35 -35
- data/lib/puppet/provider/package/puppetserver_gem.rb +10 -9
- data/lib/puppet/provider/package/rpm.rb +26 -26
- data/lib/puppet/provider/package/rug.rb +7 -9
- data/lib/puppet/provider/package/sun.rb +4 -4
- data/lib/puppet/provider/package/up2date.rb +5 -7
- data/lib/puppet/provider/package/urpmi.rb +6 -6
- data/lib/puppet/provider/package/windows/exe_package.rb +7 -7
- data/lib/puppet/provider/package/windows/msi_package.rb +3 -3
- data/lib/puppet/provider/package/windows/package.rb +2 -2
- data/lib/puppet/provider/package/windows.rb +3 -5
- data/lib/puppet/provider/package/yum.rb +33 -37
- data/lib/puppet/provider/package/zypper.rb +12 -14
- data/lib/puppet/provider/package.rb +1 -1
- data/lib/puppet/provider/package_targetable.rb +1 -1
- data/lib/puppet/provider/parsedfile.rb +9 -9
- data/lib/puppet/provider/service/base.rb +16 -21
- data/lib/puppet/provider/service/bsd.rb +4 -4
- data/lib/puppet/provider/service/daemontools.rb +31 -31
- data/lib/puppet/provider/service/debian.rb +6 -6
- data/lib/puppet/provider/service/freebsd.rb +36 -36
- data/lib/puppet/provider/service/gentoo.rb +6 -6
- data/lib/puppet/provider/service/init.rb +19 -19
- data/lib/puppet/provider/service/launchd.rb +22 -22
- data/lib/puppet/provider/service/openbsd.rb +10 -10
- data/lib/puppet/provider/service/openrc.rb +1 -1
- data/lib/puppet/provider/service/openwrt.rb +3 -3
- data/lib/puppet/provider/service/rcng.rb +3 -3
- data/lib/puppet/provider/service/redhat.rb +4 -4
- data/lib/puppet/provider/service/runit.rb +6 -6
- data/lib/puppet/provider/service/service.rb +5 -7
- data/lib/puppet/provider/service/smf.rb +28 -27
- data/lib/puppet/provider/service/src.rb +7 -7
- data/lib/puppet/provider/service/systemd.rb +31 -37
- data/lib/puppet/provider/service/upstart.rb +17 -17
- data/lib/puppet/provider/service/windows.rb +7 -7
- data/lib/puppet/provider/user/aix.rb +4 -2
- data/lib/puppet/provider/user/directoryservice.rb +34 -36
- data/lib/puppet/provider/user/hpux.rb +10 -14
- data/lib/puppet/provider/user/pw.rb +1 -1
- data/lib/puppet/provider/user/user_role_add.rb +16 -18
- data/lib/puppet/provider/user/useradd.rb +7 -7
- data/lib/puppet/provider/user/windows_adsi.rb +1 -1
- data/lib/puppet/provider.rb +8 -8
- data/lib/puppet/reference/indirection.rb +3 -0
- data/lib/puppet/reference/metaparameter.rb +1 -1
- data/lib/puppet/reference/providers.rb +3 -3
- data/lib/puppet/reference/type.rb +1 -1
- data/lib/puppet/relationship.rb +4 -5
- data/lib/puppet/reports/http.rb +1 -1
- data/lib/puppet/reports/log.rb +2 -2
- data/lib/puppet/reports/store.rb +4 -4
- data/lib/puppet/reports.rb +2 -2
- data/lib/puppet/resource/catalog.rb +16 -16
- data/lib/puppet/resource/status.rb +3 -3
- data/lib/puppet/resource/type.rb +8 -8
- data/lib/puppet/resource/type_collection.rb +1 -1
- data/lib/puppet/resource.rb +41 -41
- data/lib/puppet/scheduler/scheduler.rb +1 -1
- data/lib/puppet/settings/alias_setting.rb +3 -5
- data/lib/puppet/settings/base_setting.rb +11 -11
- data/lib/puppet/settings/boolean_setting.rb +2 -2
- data/lib/puppet/settings/config_file.rb +5 -4
- data/lib/puppet/settings/duration_setting.rb +2 -2
- data/lib/puppet/settings/environment_conf.rb +3 -3
- data/lib/puppet/settings/file_or_directory_setting.rb +2 -2
- data/lib/puppet/settings/file_setting.rb +11 -11
- data/lib/puppet/settings/ini_file.rb +3 -3
- data/lib/puppet/settings/port_setting.rb +1 -1
- data/lib/puppet/settings/priority_setting.rb +2 -2
- data/lib/puppet/settings/ttl_setting.rb +2 -2
- data/lib/puppet/settings/value_translator.rb +8 -8
- data/lib/puppet/settings.rb +65 -70
- data/lib/puppet/ssl/base.rb +2 -4
- data/lib/puppet/ssl/certificate_request.rb +18 -22
- data/lib/puppet/ssl/certificate_request_attributes.rb +3 -3
- data/lib/puppet/ssl/oids.rb +2 -2
- data/lib/puppet/ssl/openssl_loader.rb +4 -4
- data/lib/puppet/syntax_checkers/base64.rb +3 -3
- data/lib/puppet/syntax_checkers/epp.rb +3 -3
- data/lib/puppet/syntax_checkers/json.rb +3 -3
- data/lib/puppet/syntax_checkers/pp.rb +3 -3
- data/lib/puppet/transaction/additional_resource_generator.rb +1 -1
- data/lib/puppet/transaction/event.rb +2 -2
- data/lib/puppet/transaction/event_manager.rb +5 -5
- data/lib/puppet/transaction/persistence.rb +12 -14
- data/lib/puppet/transaction/report.rb +4 -4
- data/lib/puppet/transaction/resource_harness.rb +2 -2
- data/lib/puppet/transaction.rb +14 -18
- data/lib/puppet/type/component.rb +3 -3
- data/lib/puppet/type/exec.rb +43 -45
- data/lib/puppet/type/file/checksum_value.rb +1 -1
- data/lib/puppet/type/file/content.rb +6 -6
- data/lib/puppet/type/file/ctime.rb +2 -2
- data/lib/puppet/type/file/data_sync.rb +3 -3
- data/lib/puppet/type/file/ensure.rb +16 -15
- data/lib/puppet/type/file/mode.rb +9 -9
- data/lib/puppet/type/file/mtime.rb +2 -2
- data/lib/puppet/type/file/selcontext.rb +14 -14
- data/lib/puppet/type/file/source.rb +19 -21
- data/lib/puppet/type/file/target.rb +11 -11
- data/lib/puppet/type/file.rb +21 -21
- data/lib/puppet/type/filebucket.rb +3 -3
- data/lib/puppet/type/group.rb +3 -3
- data/lib/puppet/type/notify.rb +2 -2
- data/lib/puppet/type/package.rb +4 -4
- data/lib/puppet/type/resources.rb +6 -6
- data/lib/puppet/type/schedule.rb +9 -9
- data/lib/puppet/type/service.rb +6 -8
- data/lib/puppet/type/tidy.rb +22 -24
- data/lib/puppet/type/user.rb +13 -13
- data/lib/puppet/type.rb +76 -88
- data/lib/puppet/util/at_fork/solaris.rb +33 -37
- data/lib/puppet/util/autoload.rb +2 -2
- data/lib/puppet/util/backups.rb +9 -9
- data/lib/puppet/util/character_encoding.rb +7 -6
- data/lib/puppet/util/checksums.rb +2 -2
- data/lib/puppet/util/classgen.rb +8 -8
- data/lib/puppet/util/colors.rb +1 -1
- data/lib/puppet/util/command_line/puppet_option_parser.rb +1 -1
- data/lib/puppet/util/command_line/trollop.rb +42 -46
- data/lib/puppet/util/command_line.rb +2 -2
- data/lib/puppet/util/constant_inflector.rb +2 -2
- data/lib/puppet/util/diff.rb +19 -21
- data/lib/puppet/util/docs.rb +2 -2
- data/lib/puppet/util/errors.rb +9 -9
- data/lib/puppet/util/execution.rb +32 -9
- data/lib/puppet/util/feature.rb +1 -1
- data/lib/puppet/util/fileparsing.rb +12 -16
- data/lib/puppet/util/filetype.rb +36 -40
- data/lib/puppet/util/inifile.rb +6 -12
- data/lib/puppet/util/ldap/connection.rb +1 -1
- data/lib/puppet/util/ldap/manager.rb +10 -12
- data/lib/puppet/util/lockfile.rb +6 -8
- data/lib/puppet/util/log/destination.rb +2 -2
- data/lib/puppet/util/log/destinations.rb +4 -4
- data/lib/puppet/util/log.rb +12 -9
- data/lib/puppet/util/logging.rb +11 -11
- data/lib/puppet/util/metric.rb +3 -3
- data/lib/puppet/util/monkey_patches.rb +5 -7
- data/lib/puppet/util/network_device/config.rb +3 -3
- data/lib/puppet/util/package/version/debian.rb +27 -28
- data/lib/puppet/util/package/version/pip.rb +5 -5
- data/lib/puppet/util/package/version/range/eq.rb +1 -1
- data/lib/puppet/util/package/version/rpm.rb +1 -1
- data/lib/puppet/util/package.rb +2 -2
- data/lib/puppet/util/pidlock.rb +2 -2
- data/lib/puppet/util/platform.rb +1 -1
- data/lib/puppet/util/plist.rb +8 -10
- data/lib/puppet/util/posix.rb +17 -17
- data/lib/puppet/util/profiler/aggregate.rb +1 -1
- data/lib/puppet/util/provider_features.rb +3 -3
- data/lib/puppet/util/rdoc/code_objects.rb +3 -3
- data/lib/puppet/util/rdoc/generators/puppet_generator.rb +63 -64
- data/lib/puppet/util/rdoc/generators/template/puppet/puppet.rb +23 -23
- data/lib/puppet/util/rdoc/parser/puppet_parser_core.rb +12 -12
- data/lib/puppet/util/rdoc/parser/puppet_parser_rdoc2.rb +1 -1
- data/lib/puppet/util/rdoc/parser.rb +1 -1
- data/lib/puppet/util/reference.rb +13 -9
- data/lib/puppet/util/retry_action.rb +1 -1
- data/lib/puppet/util/rpm_compare.rb +17 -18
- data/lib/puppet/util/rubygems.rb +1 -1
- data/lib/puppet/util/selinux.rb +7 -7
- data/lib/puppet/util/storage.rb +10 -12
- data/lib/puppet/util/suidmanager.rb +18 -19
- data/lib/puppet/util/symbolic_file_mode.rb +71 -75
- data/lib/puppet/util/tag_set.rb +2 -2
- data/lib/puppet/util/tagging.rb +8 -10
- data/lib/puppet/util/terminal.rb +4 -4
- data/lib/puppet/util/user_attr.rb +7 -7
- data/lib/puppet/util/watcher.rb +3 -5
- data/lib/puppet/util/windows/access_control_list.rb +1 -1
- data/lib/puppet/util/windows/adsi.rb +42 -42
- data/lib/puppet/util/windows/daemon.rb +64 -68
- data/lib/puppet/util/windows/error.rb +2 -2
- data/lib/puppet/util/windows/file.rb +18 -25
- data/lib/puppet/util/windows/monkey_patches/process.rb +1 -1
- data/lib/puppet/util/windows/principal.rb +8 -8
- data/lib/puppet/util/windows/process.rb +16 -28
- data/lib/puppet/util/windows/registry.rb +16 -15
- data/lib/puppet/util/windows/root_certs.rb +2 -2
- data/lib/puppet/util/windows/security.rb +31 -31
- data/lib/puppet/util/windows/service.rb +11 -11
- data/lib/puppet/util/windows/sid.rb +8 -8
- data/lib/puppet/util/windows/user.rb +18 -20
- data/lib/puppet/util/yaml.rb +1 -1
- data/lib/puppet/util.rb +55 -46
- data/lib/puppet/version.rb +2 -2
- data/lib/puppet/x509/pem_store.rb +1 -1
- data/lib/puppet.rb +3 -3
- data/man/man5/puppet.conf.5 +10 -2
- data/man/man8/puppet-agent.8 +1 -1
- data/man/man8/puppet-apply.8 +1 -1
- data/man/man8/puppet-catalog.8 +1 -1
- data/man/man8/puppet-config.8 +1 -1
- data/man/man8/puppet-describe.8 +1 -1
- data/man/man8/puppet-device.8 +1 -1
- data/man/man8/puppet-doc.8 +1 -1
- data/man/man8/puppet-epp.8 +1 -1
- data/man/man8/puppet-facts.8 +1 -1
- data/man/man8/puppet-filebucket.8 +1 -1
- data/man/man8/puppet-generate.8 +1 -1
- data/man/man8/puppet-help.8 +1 -1
- data/man/man8/puppet-lookup.8 +1 -1
- data/man/man8/puppet-module.8 +1 -1
- data/man/man8/puppet-node.8 +1 -1
- data/man/man8/puppet-parser.8 +1 -1
- data/man/man8/puppet-plugin.8 +1 -1
- data/man/man8/puppet-report.8 +1 -1
- data/man/man8/puppet-resource.8 +5 -1
- data/man/man8/puppet-script.8 +1 -1
- data/man/man8/puppet-ssl.8 +1 -1
- data/man/man8/puppet.8 +2 -2
- metadata +2 -2
@@ -17,13 +17,13 @@ class Puppet::Parser::AST::ResourceParam < Puppet::Parser::AST::Branch
|
|
17
17
|
# Return the parameter and the value.
|
18
18
|
def evaluate(scope)
|
19
19
|
value = @value.safeevaluate(scope)
|
20
|
-
|
20
|
+
Puppet::Parser::Resource::Param.new(
|
21
21
|
:name => @param,
|
22
22
|
:value => value.nil? ? :undef : value,
|
23
23
|
:source => scope.source,
|
24
|
-
:line =>
|
25
|
-
:file =>
|
26
|
-
:add =>
|
24
|
+
:line => line,
|
25
|
+
:file => file,
|
26
|
+
:add => add
|
27
27
|
)
|
28
28
|
end
|
29
29
|
|
data/lib/puppet/parser/ast.rb
CHANGED
@@ -28,21 +28,20 @@ class Puppet::Parser::AST
|
|
28
28
|
def safeevaluate(scope)
|
29
29
|
# We duplicate code here, rather than using exceptwrap, because this
|
30
30
|
# is called so many times during parsing.
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
end
|
31
|
+
|
32
|
+
evaluate(scope)
|
33
|
+
rescue Puppet::Pops::Evaluator::PuppetStopIteration => detail
|
34
|
+
raise detail
|
35
|
+
# # Only deals with StopIteration from the break() function as a general
|
36
|
+
# # StopIteration is a general runtime problem
|
37
|
+
# raise Puppet::ParseError.new(detail.message, detail.file, detail.line, detail)
|
38
|
+
rescue Puppet::Error => detail
|
39
|
+
raise adderrorcontext(detail)
|
40
|
+
rescue => detail
|
41
|
+
error = Puppet::ParseError.new(detail.to_s, nil, nil, detail)
|
42
|
+
# We can't use self.fail here because it always expects strings,
|
43
|
+
# not exceptions.
|
44
|
+
raise adderrorcontext(error, detail)
|
46
45
|
end
|
47
46
|
|
48
47
|
def initialize(file: nil, line: nil, pos: nil)
|
@@ -24,16 +24,16 @@ class Puppet::Parser::Compiler
|
|
24
24
|
node.environment.check_for_reparse
|
25
25
|
|
26
26
|
errors = node.environment.validation_errors
|
27
|
-
|
27
|
+
unless errors.empty?
|
28
28
|
errors.each { |e| Puppet.err(e) } if errors.size > 1
|
29
29
|
errmsg = [
|
30
30
|
_("Compilation has been halted because: %{error}") % { error: errors.first },
|
31
|
-
_("For more information, see https://puppet.com/docs/puppet/latest/environments_about.html")
|
31
|
+
_("For more information, see https://puppet.com/docs/puppet/latest/environments_about.html")
|
32
32
|
]
|
33
33
|
raise(Puppet::Error, errmsg.join(' '))
|
34
34
|
end
|
35
35
|
|
36
|
-
new(node, :code_id => code_id).compile
|
36
|
+
new(node, :code_id => code_id).compile(&:to_resource)
|
37
37
|
rescue Puppet::ParseErrorWithIssue => detail
|
38
38
|
detail.node = node.name
|
39
39
|
Puppet.log_exception(detail)
|
@@ -79,7 +79,7 @@ class Puppet::Parser::Compiler
|
|
79
79
|
# Note that this will fail if the resource is not unique.
|
80
80
|
@catalog.add_resource(resource)
|
81
81
|
|
82
|
-
if
|
82
|
+
if !resource.class? and resource[:stage]
|
83
83
|
# TRANSLATORS "stage" is a keyword in Puppet and should not be translated
|
84
84
|
raise ArgumentError, _("Only classes can set 'stage'; normal resources like %{resource} cannot change run stage") % { resource: resource }
|
85
85
|
end
|
@@ -216,7 +216,7 @@ class Puppet::Parser::Compiler
|
|
216
216
|
break if astnode
|
217
217
|
end
|
218
218
|
|
219
|
-
unless
|
219
|
+
unless astnode ||= krt.node("default")
|
220
220
|
raise Puppet::ParseError, _("Could not find node statement with name 'default' or '%{names}'") % { names: node.names.join(", ") }
|
221
221
|
end
|
222
222
|
|
@@ -251,14 +251,14 @@ class Puppet::Parser::Compiler
|
|
251
251
|
|
252
252
|
if class_parameters
|
253
253
|
resources = ensure_classes_with_parameters(scope, hostclasses, class_parameters)
|
254
|
-
|
254
|
+
unless lazy_evaluate
|
255
255
|
resources.each(&:evaluate)
|
256
256
|
end
|
257
257
|
|
258
258
|
resources
|
259
259
|
else
|
260
260
|
already_included, newly_included = ensure_classes_without_parameters(scope, hostclasses)
|
261
|
-
|
261
|
+
unless lazy_evaluate
|
262
262
|
newly_included.each(&:evaluate)
|
263
263
|
end
|
264
264
|
|
@@ -345,17 +345,15 @@ class Puppet::Parser::Compiler
|
|
345
345
|
exceptwrap do
|
346
346
|
Puppet::Util::Profiler.profile(_("Evaluated definitions"), [:compiler, :evaluate_definitions]) do
|
347
347
|
urs = unevaluated_resources.each do |resource|
|
348
|
-
|
349
|
-
|
350
|
-
|
351
|
-
|
352
|
-
|
353
|
-
|
354
|
-
|
355
|
-
|
356
|
-
|
357
|
-
fail(Puppet::Pops::Issues::RUNTIME_ERROR, resource, { :detail => e.message }, e.original || e)
|
358
|
-
end
|
348
|
+
resource.evaluate
|
349
|
+
rescue Puppet::Pops::Evaluator::PuppetStopIteration => detail
|
350
|
+
# needs to be handled specifically as the error has the file/line/position where this
|
351
|
+
# occurred rather than the resource
|
352
|
+
fail(Puppet::Pops::Issues::RUNTIME_ERROR, detail, { :detail => detail.message }, detail)
|
353
|
+
rescue Puppet::Error => e
|
354
|
+
# PuppetError has the ability to wrap an exception, if so, use the wrapped exception's
|
355
|
+
# call stack instead
|
356
|
+
fail(Puppet::Pops::Issues::RUNTIME_ERROR, resource, { :detail => e.message }, e.original || e)
|
359
357
|
end
|
360
358
|
!urs.empty?
|
361
359
|
end
|
@@ -413,7 +411,7 @@ class Puppet::Parser::Compiler
|
|
413
411
|
def fail_on_unevaluated_overrides
|
414
412
|
remaining = @resource_overrides.values.flatten.collect(&:ref)
|
415
413
|
|
416
|
-
|
414
|
+
unless remaining.empty?
|
417
415
|
raise Puppet::ParseError, _("Could not find resource(s) %{resources} for overriding") % { resources: remaining.join(', ') }
|
418
416
|
end
|
419
417
|
end
|
@@ -424,7 +422,7 @@ class Puppet::Parser::Compiler
|
|
424
422
|
#
|
425
423
|
def fail_on_unevaluated_resource_collections
|
426
424
|
remaining = @collections.collect(&:unresolved_resources).flatten.compact
|
427
|
-
|
425
|
+
unless remaining.empty?
|
428
426
|
raise Puppet::ParseError, _("Failed to realize virtual resources %{resources}") % { resources: remaining.join(', ') }
|
429
427
|
end
|
430
428
|
end
|
@@ -484,14 +482,14 @@ class Puppet::Parser::Compiler
|
|
484
482
|
def metaparams_as_data(resource, params)
|
485
483
|
data = nil
|
486
484
|
params.each do |param|
|
487
|
-
|
488
|
-
|
489
|
-
|
490
|
-
|
491
|
-
|
492
|
-
|
493
|
-
|
494
|
-
|
485
|
+
next if resource[param].nil?
|
486
|
+
|
487
|
+
# Because we could be creating a hash for every resource,
|
488
|
+
# and we actually probably don't often have any data here at all,
|
489
|
+
# we're optimizing a bit by only creating a hash if there's
|
490
|
+
# any data to put in it.
|
491
|
+
data ||= {}
|
492
|
+
data[param] = resource[param]
|
495
493
|
end
|
496
494
|
data
|
497
495
|
end
|
@@ -61,10 +61,10 @@ ENDHEREDOC
|
|
61
61
|
end
|
62
62
|
|
63
63
|
raise ArgumentError, (_("create_resources(): wrong number of arguments (%{count}; must be 2 or 3)") % { count: args.length }) if args.length > 3
|
64
|
-
raise ArgumentError,
|
64
|
+
raise ArgumentError, _('create_resources(): second argument must be a hash') unless args[1].is_a?(Hash)
|
65
65
|
|
66
66
|
if args.length == 3
|
67
|
-
raise ArgumentError,
|
67
|
+
raise ArgumentError, _('create_resources(): third argument, if provided, must be a hash') unless args[2].is_a?(Hash)
|
68
68
|
end
|
69
69
|
|
70
70
|
type, instances, defaults = args
|
@@ -105,7 +105,7 @@ ENDHEREDOC
|
|
105
105
|
Puppet::Parser::Resource::Param.new(
|
106
106
|
:name => name,
|
107
107
|
:value => value, # wide open to various data types, must be correct
|
108
|
-
:source =>
|
108
|
+
:source => source, # TODO: support :line => line, :file => file,
|
109
109
|
:add => false
|
110
110
|
)
|
111
111
|
end
|
@@ -8,6 +8,6 @@ Puppet::Parser::Functions.newfunction(
|
|
8
8
|
concatenated, and passed to the exception-handler.
|
9
9
|
DOC
|
10
10
|
) do |vals|
|
11
|
-
vals = vals.collect
|
11
|
+
vals = vals.collect(&:to_s).join(" ") if vals.is_a? Array
|
12
12
|
raise Puppet::ParseError, vals.to_s
|
13
13
|
end
|
@@ -17,9 +17,9 @@ Puppet::Parser::Functions.newfunction(:generate, :arity => -2, :type => :rvalue,
|
|
17
17
|
raise Puppet::ParseError, _("Generators must be fully qualified") unless Puppet::Util.absolute_path?(args[0])
|
18
18
|
|
19
19
|
if Puppet::Util::Platform.windows?
|
20
|
-
valid = args[0] =~
|
20
|
+
valid = args[0] =~ %r{^[a-z]:(?:[/\\][-.~\w]+)+$}i
|
21
21
|
else
|
22
|
-
valid = args[0] =~
|
22
|
+
valid = args[0] =~ %r{^[-/\w.+]+$}
|
23
23
|
end
|
24
24
|
|
25
25
|
unless valid
|
@@ -215,7 +215,7 @@ module Puppet::Parser::Functions
|
|
215
215
|
raise ArgumentError, _("%{name}(): Wrong number of arguments given (%{arg_count} for minimum %{min_arg_count})") % { name: name, arg_count: args[0].size, min_arg_count: (arity + 1).abs }
|
216
216
|
end
|
217
217
|
|
218
|
-
r = Puppet::Pops::Evaluator::Runtime3FunctionArgumentConverter.convert_return(
|
218
|
+
r = Puppet::Pops::Evaluator::Runtime3FunctionArgumentConverter.convert_return(send(real_fname, args[0]))
|
219
219
|
# avoid leaking aribtrary value if not being an rvalue function
|
220
220
|
options[:type] == :rvalue ? r : nil
|
221
221
|
else
|
@@ -263,7 +263,7 @@ module Puppet::Parser::Functions
|
|
263
263
|
ret = ''.dup
|
264
264
|
|
265
265
|
merged_functions(environment).sort { |a, b| a[0].to_s <=> b[0].to_s }.each do |name, hash|
|
266
|
-
ret << "#{name}\n#{
|
266
|
+
ret << "#{name}\n#{'-' * name.to_s.length}\n"
|
267
267
|
if hash[:doc]
|
268
268
|
ret << Puppet::Util::Docs.scrub(hash[:doc])
|
269
269
|
else
|
@@ -26,12 +26,12 @@ class Puppet::Parser::Resource::Param
|
|
26
26
|
end
|
27
27
|
|
28
28
|
def to_s
|
29
|
-
"#{
|
29
|
+
"#{name} => #{value}"
|
30
30
|
end
|
31
31
|
|
32
32
|
def self.from_param(param, value)
|
33
33
|
new_param = param.dup
|
34
34
|
new_param.value = value
|
35
|
-
|
35
|
+
new_param
|
36
36
|
end
|
37
37
|
end
|
@@ -21,7 +21,7 @@ class Puppet::Parser::Resource < Puppet::Resource
|
|
21
21
|
|
22
22
|
# Determine whether the provided parameter name is a relationship parameter.
|
23
23
|
def self.relationship_parameter?(name)
|
24
|
-
@relationship_names ||= Puppet::Type.relationship_params.collect
|
24
|
+
@relationship_names ||= Puppet::Type.relationship_params.collect(&:name)
|
25
25
|
@relationship_names.include?(name)
|
26
26
|
end
|
27
27
|
|
@@ -33,7 +33,7 @@ class Puppet::Parser::Resource < Puppet::Resource
|
|
33
33
|
def [](param)
|
34
34
|
param = param.intern
|
35
35
|
if param == :title
|
36
|
-
return
|
36
|
+
return title
|
37
37
|
end
|
38
38
|
|
39
39
|
if @parameters.has_key?(param)
|
@@ -57,7 +57,7 @@ class Puppet::Parser::Resource < Puppet::Resource
|
|
57
57
|
# is drawn from the class to the stage. The stage for containment
|
58
58
|
# defaults to main, if none is specified.
|
59
59
|
def add_edge_to_stage
|
60
|
-
return unless
|
60
|
+
return unless class?
|
61
61
|
|
62
62
|
stage = catalog.resource(:stage, self[:stage] || (scope && scope.resource && scope.resource[:stage]) || :main)
|
63
63
|
unless stage
|
@@ -136,13 +136,13 @@ class Puppet::Parser::Resource < Puppet::Resource
|
|
136
136
|
|
137
137
|
if with_defaults
|
138
138
|
scope.lookupdefaults(self.type).each_pair do |name, param|
|
139
|
-
|
140
|
-
self.debug "Adding default for #{name}"
|
139
|
+
next if @parameters.include?(name)
|
141
140
|
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
141
|
+
debug "Adding default for #{name}"
|
142
|
+
|
143
|
+
param = param.dup
|
144
|
+
@parameters[name] = param
|
145
|
+
tag(*param.value) if param.name == :tag
|
146
146
|
end
|
147
147
|
end
|
148
148
|
end
|
@@ -150,9 +150,9 @@ class Puppet::Parser::Resource < Puppet::Resource
|
|
150
150
|
# Is this resource modeling an isomorphic resource type?
|
151
151
|
def isomorphic?
|
152
152
|
if builtin_type?
|
153
|
-
|
153
|
+
resource_type.isomorphic?
|
154
154
|
else
|
155
|
-
|
155
|
+
true
|
156
156
|
end
|
157
157
|
end
|
158
158
|
|
@@ -161,7 +161,7 @@ class Puppet::Parser::Resource < Puppet::Resource
|
|
161
161
|
def merge(resource)
|
162
162
|
# Test the resource scope, to make sure the resource is even allowed
|
163
163
|
# to override.
|
164
|
-
unless
|
164
|
+
unless source.equal?(resource.source) || resource.source.child_of?(source)
|
165
165
|
raise Puppet::ParseError.new(_("Only subclasses can override parameters"), resource.file, resource.line)
|
166
166
|
end
|
167
167
|
|
@@ -190,7 +190,7 @@ class Puppet::Parser::Resource < Puppet::Resource
|
|
190
190
|
end
|
191
191
|
|
192
192
|
def name
|
193
|
-
self[:name] ||
|
193
|
+
self[:name] || title
|
194
194
|
end
|
195
195
|
|
196
196
|
# A temporary occasion, until I get paths in the scopes figured out.
|
@@ -200,10 +200,10 @@ class Puppet::Parser::Resource < Puppet::Resource
|
|
200
200
|
# if we ever receive a parameter named 'tag', set
|
201
201
|
# the resource tags with its value.
|
202
202
|
def set_parameter(param, value = nil)
|
203
|
-
|
203
|
+
unless param.is_a?(Puppet::Parser::Resource::Param)
|
204
204
|
param = param.name if param.is_a?(Puppet::Pops::Resource::Param)
|
205
205
|
param = Puppet::Parser::Resource::Param.new(
|
206
|
-
:name => param, :value => value, :source =>
|
206
|
+
:name => param, :value => value, :source => source
|
207
207
|
)
|
208
208
|
end
|
209
209
|
|
@@ -219,16 +219,16 @@ class Puppet::Parser::Resource < Puppet::Resource
|
|
219
219
|
value = param.value
|
220
220
|
value = (:undef == value) ? nil : value
|
221
221
|
|
222
|
-
|
223
|
-
|
224
|
-
|
225
|
-
|
226
|
-
|
227
|
-
|
228
|
-
else
|
222
|
+
next if value.nil?
|
223
|
+
|
224
|
+
case param.name
|
225
|
+
when :before, :subscribe, :notify, :require
|
226
|
+
if value.is_a?(Array)
|
227
|
+
value = value.flatten.reject { |v| v.nil? || :undef == v }
|
229
228
|
end
|
230
|
-
|
229
|
+
else
|
231
230
|
end
|
231
|
+
result[param.name] = value
|
232
232
|
end)
|
233
233
|
end
|
234
234
|
|
data/lib/puppet/parser/scope.rb
CHANGED
@@ -17,7 +17,7 @@ class Puppet::Parser::Scope
|
|
17
17
|
extend Forwardable
|
18
18
|
|
19
19
|
# Variables that always exist with nil value even if not set
|
20
|
-
BUILT_IN_VARS = [
|
20
|
+
BUILT_IN_VARS = %w[module_name caller_module_name].freeze
|
21
21
|
EMPTY_HASH = {}.freeze
|
22
22
|
|
23
23
|
Puppet::Util.logmethods(self)
|
@@ -260,7 +260,7 @@ class Puppet::Parser::Scope
|
|
260
260
|
end
|
261
261
|
|
262
262
|
def to_hash
|
263
|
-
@params.select { |_, access| access.assigned? }.transform_values
|
263
|
+
@params.select { |_, access| access.assigned? }.transform_values(&:value)
|
264
264
|
end
|
265
265
|
end
|
266
266
|
|
@@ -283,8 +283,8 @@ class Puppet::Parser::Scope
|
|
283
283
|
def exist?(name)
|
284
284
|
# Note !! ensure the answer is boolean
|
285
285
|
!!if name =~ /^(.*)::(.+)$/
|
286
|
-
class_name =
|
287
|
-
variable_name =
|
286
|
+
class_name = ::Regexp.last_match(1)
|
287
|
+
variable_name = ::Regexp.last_match(2)
|
288
288
|
return true if class_name == '' && BUILT_IN_VARS.include?(variable_name)
|
289
289
|
|
290
290
|
# lookup class, but do not care if it is not evaluated since that will result
|
@@ -425,7 +425,7 @@ class Puppet::Parser::Scope
|
|
425
425
|
# additive -- it collects all of the defaults, with defaults
|
426
426
|
# in closer scopes overriding those in later scopes.
|
427
427
|
#
|
428
|
-
# The lookupdefaults searches in the
|
428
|
+
# The lookupdefaults searches in the order:
|
429
429
|
#
|
430
430
|
# * inherited
|
431
431
|
# * contained (recursive)
|
@@ -625,7 +625,7 @@ class Puppet::Parser::Scope
|
|
625
625
|
end
|
626
626
|
end
|
627
627
|
# report with leading '::' by using empty class_name
|
628
|
-
|
628
|
+
handle_not_found('', fqn, options)
|
629
629
|
end
|
630
630
|
|
631
631
|
# @api private
|
@@ -676,7 +676,7 @@ class Puppet::Parser::Scope
|
|
676
676
|
def to_hash(recursive = true, include_undef = false)
|
677
677
|
if recursive and has_enclosing_scope?
|
678
678
|
target = enclosing_scope.to_hash(recursive)
|
679
|
-
|
679
|
+
unless (inherited = inherited_scope).nil?
|
680
680
|
target.merge!(inherited.to_hash(recursive))
|
681
681
|
end
|
682
682
|
else
|
@@ -773,7 +773,7 @@ class Puppet::Parser::Scope
|
|
773
773
|
# when you need to set options.
|
774
774
|
def setvar(name, value, options = EMPTY_HASH)
|
775
775
|
if name =~ /^[0-9]+$/
|
776
|
-
raise Puppet::ParseError
|
776
|
+
raise Puppet::ParseError, _("Cannot assign to a numeric match result variable '$%{name}'") % { name: name } # unless options[:ephemeral]
|
777
777
|
end
|
778
778
|
unless name.is_a? String
|
779
779
|
raise Puppet::ParseError, _("Scope variable name %{name} is a %{class_type}, not a string") % { name: name.inspect, class_type: name.class }
|
@@ -894,7 +894,7 @@ class Puppet::Parser::Scope
|
|
894
894
|
# shorten the path if possible
|
895
895
|
path = detail[0]
|
896
896
|
env_path = nil
|
897
|
-
env_path = environment.configuration.path_to_env unless
|
897
|
+
env_path = environment.configuration.path_to_env unless environment.nil? || environment.configuration.nil?
|
898
898
|
# check module paths first since they may be in the environment (i.e. they are longer)
|
899
899
|
module_path = environment.full_modulepath.detect { |m_path| path.start_with?(m_path) }
|
900
900
|
if module_path
|
@@ -1046,7 +1046,7 @@ class Puppet::Parser::Scope
|
|
1046
1046
|
|
1047
1047
|
def method_missing(method, *args, &block)
|
1048
1048
|
method.to_s =~ /^function_(.*)$/
|
1049
|
-
name =
|
1049
|
+
name = ::Regexp.last_match(1)
|
1050
1050
|
super unless name
|
1051
1051
|
super unless Puppet::Parser::Functions.function(name)
|
1052
1052
|
# In odd circumstances, this might not end up defined by the previous
|
@@ -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
|