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
@@ -17,14 +17,14 @@ class Puppet::FileServing::Mount::File < Puppet::FileServing::Mount
|
|
17
17
|
def complete_path(relative_path, node)
|
18
18
|
full_path = path(node)
|
19
19
|
|
20
|
-
raise ArgumentError
|
20
|
+
raise ArgumentError, _("Mounts without paths are not usable") unless full_path
|
21
21
|
|
22
22
|
# If there's no relative path name, then we're serving the mount itself.
|
23
23
|
return full_path unless relative_path
|
24
24
|
|
25
25
|
file = ::File.join(full_path, relative_path)
|
26
26
|
|
27
|
-
|
27
|
+
unless Puppet::FileSystem.exist?(file) or Puppet::FileSystem.symlink?(file)
|
28
28
|
Puppet.info(_("File does not exist or is not accessible: %{file}") % { file: file })
|
29
29
|
return nil
|
30
30
|
end
|
@@ -40,9 +40,9 @@ class Puppet::FileServing::Mount::File < Puppet::FileServing::Mount
|
|
40
40
|
# Return the path as appropriate, expanding as necessary.
|
41
41
|
def path(node = nil)
|
42
42
|
if expandable?
|
43
|
-
|
43
|
+
expand(@path, node)
|
44
44
|
else
|
45
|
-
|
45
|
+
@path
|
46
46
|
end
|
47
47
|
end
|
48
48
|
|
@@ -72,7 +72,7 @@ class Puppet::FileServing::Mount::File < Puppet::FileServing::Mount
|
|
72
72
|
# Verify our configuration is valid. This should really check to
|
73
73
|
# make sure at least someone will be allowed, but, eh.
|
74
74
|
def validate
|
75
|
-
raise ArgumentError
|
75
|
+
raise ArgumentError, _("Mounts without paths are not usable") if @path.nil?
|
76
76
|
end
|
77
77
|
|
78
78
|
private
|
@@ -100,7 +100,7 @@ class Puppet::FileServing::Mount::File < Puppet::FileServing::Mount
|
|
100
100
|
end
|
101
101
|
|
102
102
|
path.gsub(/%(.)/) do |v|
|
103
|
-
key =
|
103
|
+
key = ::Regexp.last_match(1)
|
104
104
|
if key == "%"
|
105
105
|
"%"
|
106
106
|
else
|
@@ -11,15 +11,13 @@ class Puppet::FileServing::Mount::Locales < Puppet::FileServing::Mount
|
|
11
11
|
mod = request.environment.modules.find { |m| m.locale(relative_path) }
|
12
12
|
return nil unless mod
|
13
13
|
|
14
|
-
|
15
|
-
|
16
|
-
path
|
14
|
+
mod.locale(relative_path)
|
17
15
|
end
|
18
16
|
|
19
17
|
def search(relative_path, request)
|
20
18
|
# We currently only support one kind of search on locales - return
|
21
19
|
# them all.
|
22
|
-
paths = request.environment.modules.find_all
|
20
|
+
paths = request.environment.modules.find_all(&:locales?).collect(&:locale_directory)
|
23
21
|
if paths.empty?
|
24
22
|
# If the modulepath is valid then we still need to return a valid root
|
25
23
|
# directory for the search, but make sure nothing inside it is
|
@@ -11,15 +11,13 @@ class Puppet::FileServing::Mount::PluginFacts < Puppet::FileServing::Mount
|
|
11
11
|
mod = request.environment.modules.find { |m| m.pluginfact(relative_path) }
|
12
12
|
return nil unless mod
|
13
13
|
|
14
|
-
|
15
|
-
|
16
|
-
path
|
14
|
+
mod.pluginfact(relative_path)
|
17
15
|
end
|
18
16
|
|
19
17
|
def search(relative_path, request)
|
20
18
|
# We currently only support one kind of search on plugins - return
|
21
19
|
# them all.
|
22
|
-
paths = request.environment.modules.find_all
|
20
|
+
paths = request.environment.modules.find_all(&:pluginfacts?).collect(&:plugin_fact_directory)
|
23
21
|
if paths.empty?
|
24
22
|
# If the modulepath is valid then we still need to return a valid root
|
25
23
|
# directory for the search, but make sure nothing inside it is
|
@@ -11,15 +11,13 @@ class Puppet::FileServing::Mount::Plugins < Puppet::FileServing::Mount
|
|
11
11
|
mod = request.environment.modules.find { |m| m.plugin(relative_path) }
|
12
12
|
return nil unless mod
|
13
13
|
|
14
|
-
|
15
|
-
|
16
|
-
path
|
14
|
+
mod.plugin(relative_path)
|
17
15
|
end
|
18
16
|
|
19
17
|
def search(relative_path, request)
|
20
18
|
# We currently only support one kind of search on plugins - return
|
21
19
|
# them all.
|
22
|
-
paths = request.environment.modules.find_all
|
20
|
+
paths = request.environment.modules.find_all(&:plugins?).collect(&:plugin_directory)
|
23
21
|
if paths.empty?
|
24
22
|
# If the modulepath is valid then we still need to return a valid root
|
25
23
|
# directory for the search, but make sure nothing inside it is
|
@@ -52,7 +52,7 @@ class Puppet::FileSystem::FileImpl
|
|
52
52
|
def exclusive_open(path, mode, options = 'r', timeout = 300, &block)
|
53
53
|
wait = 0.001 + (Kernel.rand / 1000)
|
54
54
|
written = false
|
55
|
-
|
55
|
+
until written
|
56
56
|
::File.open(path, options, mode) do |rf|
|
57
57
|
if rf.flock(::File::LOCK_EX | ::File::LOCK_NB)
|
58
58
|
Puppet.debug { _("Locked '%{path}'") % { path: path } }
|
@@ -163,9 +163,9 @@ class Puppet::FileSystem::FileImpl
|
|
163
163
|
stat = lstat(path)
|
164
164
|
gid = stat.gid
|
165
165
|
uid = stat.uid
|
166
|
-
mode ||= stat.mode &
|
166
|
+
mode ||= stat.mode & 0o7777
|
167
167
|
rescue Errno::ENOENT
|
168
|
-
mode ||=
|
168
|
+
mode ||= 0o640
|
169
169
|
end
|
170
170
|
|
171
171
|
tempfile = Puppet::FileSystem::Uniquefile.new(Puppet::FileSystem.basename_string(path), Puppet::FileSystem.dir_string(path))
|
@@ -1,5 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
+
require 'English'
|
3
4
|
require_relative '../../puppet/file_system'
|
4
5
|
require 'delegate'
|
5
6
|
require 'tmpdir'
|
@@ -29,7 +30,7 @@ class Puppet::FileSystem::Uniquefile < DelegateClass(File)
|
|
29
30
|
def initialize(basename, *rest)
|
30
31
|
create_tmpname(basename, *rest) do |tmpname, _n, opts|
|
31
32
|
mode = File::RDWR | File::CREAT | File::EXCL
|
32
|
-
perm =
|
33
|
+
perm = 0o600
|
33
34
|
if opts
|
34
35
|
mode |= opts.delete(:mode) || 0
|
35
36
|
opts[:perm] = perm
|
@@ -57,11 +58,9 @@ class Puppet::FileSystem::Uniquefile < DelegateClass(File)
|
|
57
58
|
end
|
58
59
|
|
59
60
|
def _close
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
@tmpfile = nil
|
64
|
-
end
|
61
|
+
@tmpfile.close if @tmpfile
|
62
|
+
ensure
|
63
|
+
@tmpfile = nil
|
65
64
|
end
|
66
65
|
protected :_close
|
67
66
|
|
@@ -112,7 +111,7 @@ class Puppet::FileSystem::Uniquefile < DelegateClass(File)
|
|
112
111
|
raise ArgumentError, _("unexpected prefix_suffix: %{value}") % { value: prefix_suffix.inspect }
|
113
112
|
end
|
114
113
|
t = Time.now.strftime("%Y%m%d")
|
115
|
-
path = "#{prefix}#{t}-#{
|
114
|
+
path = "#{prefix}#{t}-#{$PROCESS_ID}-#{rand(0x100000000).to_s(36)}"
|
116
115
|
path << "-#{n}" if n
|
117
116
|
path << suffix
|
118
117
|
end
|
@@ -142,11 +141,9 @@ class Puppet::FileSystem::Uniquefile < DelegateClass(File)
|
|
142
141
|
end
|
143
142
|
|
144
143
|
def try_convert_to_hash(h)
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
nil
|
149
|
-
end
|
144
|
+
h.to_hash
|
145
|
+
rescue NoMethodError
|
146
|
+
nil
|
150
147
|
end
|
151
148
|
|
152
149
|
@@systmpdir ||= defined?(Etc.systmpdir) ? Etc.systmpdir : '/tmp'
|
@@ -155,10 +152,14 @@ class Puppet::FileSystem::Uniquefile < DelegateClass(File)
|
|
155
152
|
tmp = '.'
|
156
153
|
[ENV.fetch('TMPDIR', nil), ENV.fetch('TMP', nil), ENV.fetch('TEMP', nil), @@systmpdir, '/tmp'].each do |dir|
|
157
154
|
stat = File.stat(dir) if dir
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
155
|
+
begin
|
156
|
+
if stat && stat.directory? && stat.writable?
|
157
|
+
tmp = dir
|
158
|
+
break
|
159
|
+
end
|
160
|
+
rescue
|
161
|
+
nil
|
162
|
+
end
|
162
163
|
end
|
163
164
|
File.expand_path(tmp)
|
164
165
|
end
|
@@ -11,7 +11,7 @@ class Puppet::FileSystem::Windows < Puppet::FileSystem::Posix
|
|
11
11
|
# PUP-6959 mode is explicitly ignored until it can be implemented
|
12
12
|
# Ruby on Windows uses mode for setting file attributes like read-only and
|
13
13
|
# archived, not for setting permissions like POSIX
|
14
|
-
raise TypeError
|
14
|
+
raise TypeError, 'mode must be specified as an Integer' if mode && !mode.is_a?(Numeric)
|
15
15
|
|
16
16
|
::File.open(path, options, nil, &block)
|
17
17
|
end
|
@@ -20,7 +20,7 @@ class Puppet::FileSystem::Windows < Puppet::FileSystem::Posix
|
|
20
20
|
# ensure `nil` values behave like underlying File.expand_path
|
21
21
|
string_path = ::File.expand_path(path.nil? ? nil : path_string(path), dir_string)
|
22
22
|
# if no tildes, nothing to expand, no need to call Windows API, return original string
|
23
|
-
return string_path
|
23
|
+
return string_path unless string_path.index('~')
|
24
24
|
|
25
25
|
begin
|
26
26
|
# no need to do existence check up front as GetLongPathName implies that check is performed
|
@@ -28,15 +28,15 @@ class Puppet::FileSystem::Windows < Puppet::FileSystem::Posix
|
|
28
28
|
string_path = Puppet::Util::Windows::File.get_long_pathname(string_path)
|
29
29
|
rescue Puppet::Util::Windows::Error => e
|
30
30
|
# preserve original File.expand_path behavior for file / path not found by returning string
|
31
|
-
raise if
|
32
|
-
|
31
|
+
raise if e.code != Puppet::Util::Windows::File::ERROR_FILE_NOT_FOUND &&
|
32
|
+
e.code != Puppet::Util::Windows::File::ERROR_PATH_NOT_FOUND
|
33
33
|
end
|
34
34
|
|
35
35
|
string_path
|
36
36
|
end
|
37
37
|
|
38
38
|
def exist?(path)
|
39
|
-
|
39
|
+
Puppet::Util::Windows::File.exist?(path)
|
40
40
|
end
|
41
41
|
|
42
42
|
def symlink(path, dest, options = {})
|
@@ -61,7 +61,7 @@ class Puppet::FileSystem::Windows < Puppet::FileSystem::Posix
|
|
61
61
|
end
|
62
62
|
|
63
63
|
def symlink?(path)
|
64
|
-
return false
|
64
|
+
return false unless Puppet.features.manages_symlinks?
|
65
65
|
|
66
66
|
Puppet::Util::Windows::File.symlink?(path)
|
67
67
|
end
|
@@ -72,22 +72,30 @@ class Puppet::FileSystem::Windows < Puppet::FileSystem::Posix
|
|
72
72
|
end
|
73
73
|
|
74
74
|
def unlink(*file_names)
|
75
|
-
|
75
|
+
unless Puppet.features.manages_symlinks?
|
76
76
|
return ::File.unlink(*file_names)
|
77
77
|
end
|
78
78
|
|
79
79
|
file_names.each do |file_name|
|
80
80
|
file_name = file_name.to_s # handle PathName
|
81
|
-
stat =
|
81
|
+
stat = begin
|
82
|
+
Puppet::Util::Windows::File.stat(file_name)
|
83
|
+
rescue
|
84
|
+
nil
|
85
|
+
end
|
82
86
|
|
83
87
|
# sigh, Ruby + Windows :(
|
84
88
|
if !stat
|
85
|
-
|
89
|
+
begin
|
90
|
+
::File.unlink(file_name)
|
91
|
+
rescue
|
92
|
+
Dir.rmdir(file_name)
|
93
|
+
end
|
86
94
|
elsif stat.ftype == 'directory'
|
87
95
|
if Puppet::Util::Windows::File.symlink?(file_name)
|
88
96
|
Dir.rmdir(file_name)
|
89
97
|
else
|
90
|
-
raise Errno::EPERM
|
98
|
+
raise Errno::EPERM, file_name
|
91
99
|
end
|
92
100
|
else
|
93
101
|
::File.unlink(file_name)
|
@@ -102,7 +110,7 @@ class Puppet::FileSystem::Windows < Puppet::FileSystem::Posix
|
|
102
110
|
end
|
103
111
|
|
104
112
|
def lstat(path)
|
105
|
-
|
113
|
+
unless Puppet.features.manages_symlinks?
|
106
114
|
return Puppet::Util::Windows::File.stat(path)
|
107
115
|
end
|
108
116
|
|
@@ -133,14 +141,14 @@ class Puppet::FileSystem::Windows < Puppet::FileSystem::Posix
|
|
133
141
|
end
|
134
142
|
|
135
143
|
current_sid = Puppet::Util::Windows::SID.name_to_sid(Puppet::Util::Windows::ADSI::User.current_user_name)
|
136
|
-
current_sid
|
144
|
+
current_sid ||= Puppet::Util::Windows::SID.name_to_sid(Puppet::Util::Windows::ADSI::User.current_sam_compatible_user_name)
|
137
145
|
|
138
146
|
dacl = case mode
|
139
|
-
when
|
147
|
+
when 0o644
|
140
148
|
dacl = secure_dacl(current_sid)
|
141
149
|
dacl.allow(Puppet::Util::Windows::SID::BuiltinUsers, FILE_READ)
|
142
150
|
dacl
|
143
|
-
when
|
151
|
+
when 0o660, 0o640, 0o600, 0o440
|
144
152
|
secure_dacl(current_sid)
|
145
153
|
when nil
|
146
154
|
get_dacl_from_file(path) || secure_dacl(current_sid)
|
@@ -172,7 +180,7 @@ class Puppet::FileSystem::Windows < Puppet::FileSystem::Posix
|
|
172
180
|
when ACCESS_DENIED, SHARING_VIOLATION, LOCK_VIOLATION
|
173
181
|
raise Errno::EACCES.new(path_string(path), e)
|
174
182
|
else
|
175
|
-
raise SystemCallError
|
183
|
+
raise SystemCallError, e.message
|
176
184
|
end
|
177
185
|
end
|
178
186
|
|
@@ -204,12 +212,12 @@ class Puppet::FileSystem::Windows < Puppet::FileSystem::Posix
|
|
204
212
|
end
|
205
213
|
|
206
214
|
def raise_if_symlinks_unsupported
|
207
|
-
|
215
|
+
unless Puppet.features.manages_symlinks?
|
208
216
|
msg = _("This version of Windows does not support symlinks. Windows Vista / 2008 or higher is required.")
|
209
|
-
raise Puppet::Util::Windows::Error
|
217
|
+
raise Puppet::Util::Windows::Error, msg
|
210
218
|
end
|
211
219
|
|
212
|
-
|
220
|
+
unless Puppet::Util::Windows::Process.process_privilege_symlink?
|
213
221
|
Puppet.warning _("The current user does not have the necessary permission to manage symlinks.")
|
214
222
|
end
|
215
223
|
end
|
data/lib/puppet/forge/cache.rb
CHANGED
@@ -38,12 +38,12 @@ class Puppet::Forge
|
|
38
38
|
|
39
39
|
# Return contents of file at the given URI's +uri+.
|
40
40
|
def read_retrieve(uri)
|
41
|
-
|
41
|
+
uri.read
|
42
42
|
end
|
43
43
|
|
44
44
|
# Return Pathname for repository's cache directory, create it if needed.
|
45
45
|
def path
|
46
|
-
(self.class.base_path + @repository.cache_key).tap
|
46
|
+
(self.class.base_path + @repository.cache_key).tap(&:mkpath)
|
47
47
|
end
|
48
48
|
|
49
49
|
# Return the base Pathname for all the caches.
|
data/lib/puppet/forge/errors.rb
CHANGED
@@ -69,7 +69,7 @@ class Puppet::Forge
|
|
69
69
|
# repository at +release+ (e.g. "myuser-mymodule").
|
70
70
|
def retrieve(release)
|
71
71
|
path = @host.chomp('/') + release
|
72
|
-
|
72
|
+
cache.retrieve(path)
|
73
73
|
end
|
74
74
|
|
75
75
|
# Return the URI string for this repository.
|
@@ -80,7 +80,7 @@ class Puppet::Forge
|
|
80
80
|
# Return the cache key for this repository, this a hashed string based on
|
81
81
|
# the URI.
|
82
82
|
def cache_key
|
83
|
-
|
83
|
+
@cache_key ||= [
|
84
84
|
@host.to_s.gsub(/[^[:alnum:]]+/, '_').sub(/_$/, ''),
|
85
85
|
Digest::SHA1.hexdigest(@host.to_s)
|
86
86
|
].join('-').freeze
|
data/lib/puppet/forge.rb
CHANGED
@@ -114,7 +114,7 @@ class Puppet::Forge < SemanticPuppet::Dependency::Source
|
|
114
114
|
uri = decode_uri(response['pagination']['next'])
|
115
115
|
end
|
116
116
|
|
117
|
-
|
117
|
+
releases
|
118
118
|
end
|
119
119
|
|
120
120
|
def make_http_request(*args)
|
@@ -134,13 +134,11 @@ class Puppet::Forge < SemanticPuppet::Dependency::Source
|
|
134
134
|
|
135
135
|
if meta['dependencies']
|
136
136
|
dependencies = meta['dependencies'].collect do |dep|
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
' ' + _("Exception was: %{detail}") % { detail: e }
|
143
|
-
end
|
137
|
+
Puppet::ModuleTool::Metadata.new.add_dependency(dep['name'], dep['version_requirement'], dep['repository'])
|
138
|
+
Puppet::ModuleTool.parse_module_dependency(release, dep)[0..1]
|
139
|
+
rescue ArgumentError => e
|
140
|
+
raise ArgumentError, _("Malformed dependency: %{name}.") % { name: dep['name'] } +
|
141
|
+
' ' + _("Exception was: %{detail}") % { detail: e }
|
144
142
|
end
|
145
143
|
else
|
146
144
|
dependencies = []
|
@@ -150,7 +148,7 @@ class Puppet::Forge < SemanticPuppet::Dependency::Source
|
|
150
148
|
end
|
151
149
|
|
152
150
|
def install(dir)
|
153
|
-
staging_dir =
|
151
|
+
staging_dir = prepare
|
154
152
|
|
155
153
|
module_dir = dir + name[/-(.*)/, 1]
|
156
154
|
module_dir.rmtree if module_dir.exist?
|
@@ -163,7 +161,7 @@ class Puppet::Forge < SemanticPuppet::Dependency::Source
|
|
163
161
|
|
164
162
|
# Return the Pathname object representing the directory where the
|
165
163
|
# module release archive was unpacked the to.
|
166
|
-
|
164
|
+
module_dir
|
167
165
|
ensure
|
168
166
|
staging_dir.rmtree if staging_dir.exist?
|
169
167
|
end
|
@@ -202,9 +200,7 @@ class Puppet::Forge < SemanticPuppet::Dependency::Source
|
|
202
200
|
end
|
203
201
|
|
204
202
|
def tmpfile
|
205
|
-
@file ||= Tempfile.new(name, Puppet::Forge::Cache.base_path).tap
|
206
|
-
f.binmode
|
207
|
-
end
|
203
|
+
@file ||= Tempfile.new(name, Puppet::Forge::Cache.base_path).tap(&:binmode)
|
208
204
|
end
|
209
205
|
# rubocop:enable Naming/MemoizedInstanceVariableName
|
210
206
|
|
@@ -227,15 +223,13 @@ class Puppet::Forge < SemanticPuppet::Dependency::Source
|
|
227
223
|
end
|
228
224
|
|
229
225
|
def unpack(file, destination)
|
230
|
-
|
231
|
-
|
232
|
-
|
233
|
-
raise RuntimeError, _("Could not extract contents of module archive: %{message}") % { message: e.message }
|
234
|
-
end
|
226
|
+
Puppet::ModuleTool::Applications::Unpacker.unpack(file.path, destination)
|
227
|
+
rescue Puppet::ExecutionFailure => e
|
228
|
+
raise RuntimeError, _("Could not extract contents of module archive: %{message}") % { message: e.message }
|
235
229
|
end
|
236
230
|
|
237
231
|
def deprecated?
|
238
|
-
@data['module'] &&
|
232
|
+
@data['module'] && !@data['module']['deprecated_at'].nil?
|
239
233
|
end
|
240
234
|
end
|
241
235
|
|
data/lib/puppet/functions/abs.rb
CHANGED
@@ -53,9 +53,9 @@ Puppet::Functions.create_function(:abs) do
|
|
53
53
|
# version of this function.
|
54
54
|
#
|
55
55
|
case x
|
56
|
-
when
|
56
|
+
when /^-?(?:\d+)(?:\.\d+){1}$/
|
57
57
|
x.to_f.abs
|
58
|
-
when
|
58
|
+
when /^-?\d+$/
|
59
59
|
x.to_i.abs
|
60
60
|
else
|
61
61
|
raise(ArgumentError, 'abs(): Requires float or integer to work with - was given non decimal string')
|
@@ -98,7 +98,7 @@ Puppet::Functions.create_function(:compare) do
|
|
98
98
|
end
|
99
99
|
|
100
100
|
def on_error(a, b, *ignore_case)
|
101
|
-
|
101
|
+
unless ignore_case.empty?
|
102
102
|
unless a.is_a?(String) && b.is_a?(String)
|
103
103
|
# TRANSLATORS 'compare' is a name
|
104
104
|
return _("compare(): The third argument (ignore case) can only be used when comparing strings")
|
@@ -115,7 +115,7 @@ Puppet::Functions.create_function(:compare) do
|
|
115
115
|
|
116
116
|
if a.class != b.class
|
117
117
|
# TRANSLATORS 'compare' is a name
|
118
|
-
|
118
|
+
_("compare(): Can only compare values of the same type (or for Timestamp/Timespan also against Numeric). Got %{type_a} and %{type_b}") % {
|
119
119
|
type_a: type_label(a), type_b: type_label(b)
|
120
120
|
}
|
121
121
|
end
|
@@ -48,7 +48,7 @@ Puppet::Functions.create_function(:contain, Puppet::Functions::InternalFunction)
|
|
48
48
|
# This is the same as calling the include function but faster and does not rely on the include
|
49
49
|
# function.
|
50
50
|
(scope.compiler.evaluate_classes(classes, scope, false) || []).each do |resource|
|
51
|
-
|
51
|
+
unless scope.catalog.edge?(containing_resource, resource)
|
52
52
|
scope.catalog.add_edge(containing_resource, resource)
|
53
53
|
end
|
54
54
|
end
|
@@ -101,7 +101,7 @@
|
|
101
101
|
# @since 3.8.1 type specific requests with future parser
|
102
102
|
# @since 4.0.0
|
103
103
|
#
|
104
|
-
Puppet::Functions.create_function(:
|
104
|
+
Puppet::Functions.create_function(:defined, Puppet::Functions::InternalFunction) do
|
105
105
|
dispatch :is_defined do
|
106
106
|
scope_param
|
107
107
|
required_repeated_param 'Variant[String, Type[CatalogEntry], Type[Type[CatalogEntry]]]', :vals
|
@@ -112,7 +112,7 @@ Puppet::Functions.create_function(:'defined', Puppet::Functions::InternalFunctio
|
|
112
112
|
case val
|
113
113
|
when String
|
114
114
|
if val =~ /^\$(.+)$/
|
115
|
-
scope.exist?(
|
115
|
+
scope.exist?(Regexp.last_match(1))
|
116
116
|
else
|
117
117
|
case val
|
118
118
|
when ''
|
data/lib/puppet/functions/dig.rb
CHANGED
@@ -40,7 +40,7 @@ Puppet::Functions.create_function(:dig) do
|
|
40
40
|
args.reduce(data) do |d, k|
|
41
41
|
return nil if d.nil? || k.nil?
|
42
42
|
|
43
|
-
|
43
|
+
unless d.is_a?(Array) || d.is_a?(Hash)
|
44
44
|
t = Puppet::Pops::Types::TypeCalculator.infer(d)
|
45
45
|
msg = _("The given data does not contain a Collection at %{walked_path}, got '%{type}'") % { walked_path: walked_path, type: t }
|
46
46
|
error_data = Puppet::DataTypes::Error.new(
|
@@ -47,21 +47,19 @@ Puppet::Functions.create_function(:eyaml_lookup_key) do
|
|
47
47
|
def load_data_hash(options, context)
|
48
48
|
path = options['path']
|
49
49
|
context.cached_file_data(path) do |content|
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
raise Puppet::DataBinding::LookupError, msg if Puppet[:strict] == :error && data != false
|
50
|
+
data = Puppet::Util::Yaml.safe_load(content, [Symbol], path)
|
51
|
+
if data.is_a?(Hash)
|
52
|
+
Puppet::Pops::Lookup::HieraConfig.symkeys_to_string(data)
|
53
|
+
else
|
54
|
+
msg = _("%{path}: file does not contain a valid yaml hash") % { path: path }
|
55
|
+
raise Puppet::DataBinding::LookupError, msg if Puppet[:strict] == :error && data != false
|
57
56
|
|
58
|
-
|
59
|
-
|
60
|
-
end
|
61
|
-
rescue Puppet::Util::Yaml::YamlLoadError => ex
|
62
|
-
# YamlLoadErrors include the absolute path to the file, so no need to add that
|
63
|
-
raise Puppet::DataBinding::LookupError, _("Unable to parse %{message}") % { message: ex.message }
|
57
|
+
Puppet.warning(msg)
|
58
|
+
{}
|
64
59
|
end
|
60
|
+
rescue Puppet::Util::Yaml::YamlLoadError => ex
|
61
|
+
# YamlLoadErrors include the absolute path to the file, so no need to add that
|
62
|
+
raise Puppet::DataBinding::LookupError, _("Unable to parse %{message}") % { message: ex.message }
|
65
63
|
end
|
66
64
|
end
|
67
65
|
|
data/lib/puppet/functions/get.rb
CHANGED
@@ -138,7 +138,7 @@ Puppet::Functions.create_function(:get, Puppet::Functions::InternalFunction) do
|
|
138
138
|
|
139
139
|
begin
|
140
140
|
result = call_function('dig', value, *segments)
|
141
|
-
|
141
|
+
result.nil? ? default_value : result
|
142
142
|
rescue Puppet::ErrorWithData => e
|
143
143
|
if block_given?
|
144
144
|
yield(e.error_data)
|
@@ -29,11 +29,9 @@ Puppet::Functions.create_function(:hocon_data) do
|
|
29
29
|
def hocon_data(options, context)
|
30
30
|
path = options['path']
|
31
31
|
context.cached_file_data(path) do |content|
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
raise Puppet::DataBinding::LookupError, _("Unable to parse (%{path}): %{message}") % { path: path, message: ex.message }
|
36
|
-
end
|
32
|
+
Hocon.parse(content)
|
33
|
+
rescue Hocon::ConfigError => ex
|
34
|
+
raise Puppet::DataBinding::LookupError, _("Unable to parse (%{path}): %{message}") % { path: path, message: ex.message }
|
37
35
|
end
|
38
36
|
end
|
39
37
|
|
@@ -20,12 +20,10 @@ Puppet::Functions.create_function(:json_data) do
|
|
20
20
|
def json_data(options, context)
|
21
21
|
path = options['path']
|
22
22
|
context.cached_file_data(path) do |content|
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
raise Puppet::DataBinding::LookupError, "Unable to parse (%{path}): %{message}" % { path: path, message: ex.message }
|
28
|
-
end
|
23
|
+
Puppet::Util::Json.load(content)
|
24
|
+
rescue Puppet::Util::Json::ParseError => ex
|
25
|
+
# Filename not included in message, so we add it here.
|
26
|
+
raise Puppet::DataBinding::LookupError, "Unable to parse (%{path}): %{message}" % { path: path, message: ex.message }
|
29
27
|
end
|
30
28
|
end
|
31
29
|
|