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
@@ -74,21 +74,21 @@ module Puppet::Util::Windows::Security
|
|
74
74
|
extend FFI::Library
|
75
75
|
|
76
76
|
# file modes
|
77
|
-
S_IRUSR =
|
78
|
-
S_IRGRP =
|
79
|
-
S_IROTH =
|
80
|
-
S_IWUSR =
|
81
|
-
S_IWGRP =
|
82
|
-
S_IWOTH =
|
83
|
-
S_IXUSR =
|
84
|
-
S_IXGRP =
|
85
|
-
S_IXOTH =
|
86
|
-
S_IRWXU =
|
87
|
-
S_IRWXG =
|
88
|
-
S_IRWXO =
|
89
|
-
S_ISVTX =
|
90
|
-
S_IEXTRA =
|
91
|
-
S_ISYSTEM_MISSING =
|
77
|
+
S_IRUSR = 0o000400
|
78
|
+
S_IRGRP = 0o000040
|
79
|
+
S_IROTH = 0o000004
|
80
|
+
S_IWUSR = 0o000200
|
81
|
+
S_IWGRP = 0o000020
|
82
|
+
S_IWOTH = 0o000002
|
83
|
+
S_IXUSR = 0o000100
|
84
|
+
S_IXGRP = 0o000010
|
85
|
+
S_IXOTH = 0o000001
|
86
|
+
S_IRWXU = 0o000700
|
87
|
+
S_IRWXG = 0o000070
|
88
|
+
S_IRWXO = 0o000007
|
89
|
+
S_ISVTX = 0o001000
|
90
|
+
S_IEXTRA = 0o2000000 # represents an extra ace
|
91
|
+
S_ISYSTEM_MISSING = 0o4000000
|
92
92
|
|
93
93
|
# constants that are missing from Windows::Security
|
94
94
|
PROTECTED_DACL_SECURITY_INFORMATION = 0x80000000
|
@@ -167,13 +167,13 @@ module Puppet::Util::Windows::Security
|
|
167
167
|
supported = false
|
168
168
|
root = Pathname.new(path).enum_for(:ascend).to_a.last.to_s
|
169
169
|
# 'A trailing backslash is required'
|
170
|
-
root = "#{root}\\" unless root =~
|
170
|
+
root = "#{root}\\" unless root =~ %r{[/\\]$}
|
171
171
|
|
172
172
|
FFI::MemoryPointer.new(:pointer, 1) do |flags_ptr|
|
173
173
|
if GetVolumeInformationW(wide_string(root), FFI::Pointer::NULL, 0,
|
174
174
|
FFI::Pointer::NULL, FFI::Pointer::NULL,
|
175
175
|
flags_ptr, FFI::Pointer::NULL, 0) == FFI::WIN32_FALSE
|
176
|
-
raise Puppet::Util::Windows::Error
|
176
|
+
raise Puppet::Util::Windows::Error, _("Failed to get volume information")
|
177
177
|
end
|
178
178
|
|
179
179
|
supported = flags_ptr.read_dword & FILE_PERSISTENT_ACLS == FILE_PERSISTENT_ACLS
|
@@ -314,10 +314,10 @@ module Puppet::Util::Windows::Security
|
|
314
314
|
|
315
315
|
# With a mode value of '7' for group / other, the value must then include
|
316
316
|
# additional perms beyond STANDARD_RIGHTS_READ to allow DACL modification
|
317
|
-
if (
|
317
|
+
if (mode & S_IRWXG) == S_IRWXG
|
318
318
|
group_allow |= FILE::DELETE | FILE::WRITE_DAC | FILE::WRITE_OWNER
|
319
319
|
end
|
320
|
-
if (
|
320
|
+
if (mode & S_IRWXO) == S_IRWXO
|
321
321
|
other_allow |= FILE::DELETE | FILE::WRITE_DAC | FILE::WRITE_OWNER
|
322
322
|
end
|
323
323
|
|
@@ -433,11 +433,11 @@ module Puppet::Util::Windows::Security
|
|
433
433
|
|
434
434
|
Puppet::Util::Windows::SID.string_to_sid_ptr(sid) do |sid_ptr|
|
435
435
|
if Puppet::Util::Windows::SID.IsValidSid(sid_ptr) == FFI::WIN32_FALSE
|
436
|
-
raise Puppet::Util::Windows::Error
|
436
|
+
raise Puppet::Util::Windows::Error, _("Invalid SID")
|
437
437
|
end
|
438
438
|
|
439
439
|
if AddAccessAllowedAceEx(acl, ACL_REVISION, inherit, mask, sid_ptr) == FFI::WIN32_FALSE
|
440
|
-
raise Puppet::Util::Windows::Error
|
440
|
+
raise Puppet::Util::Windows::Error, _("Failed to add access control entry")
|
441
441
|
end
|
442
442
|
end
|
443
443
|
|
@@ -450,11 +450,11 @@ module Puppet::Util::Windows::Security
|
|
450
450
|
|
451
451
|
Puppet::Util::Windows::SID.string_to_sid_ptr(sid) do |sid_ptr|
|
452
452
|
if Puppet::Util::Windows::SID.IsValidSid(sid_ptr) == FFI::WIN32_FALSE
|
453
|
-
raise Puppet::Util::Windows::Error
|
453
|
+
raise Puppet::Util::Windows::Error, _("Invalid SID")
|
454
454
|
end
|
455
455
|
|
456
456
|
if AddAccessDeniedAceEx(acl, ACL_REVISION, inherit, mask, sid_ptr) == FFI::WIN32_FALSE
|
457
|
-
raise Puppet::Util::Windows::Error
|
457
|
+
raise Puppet::Util::Windows::Error, _("Failed to add access control entry")
|
458
458
|
end
|
459
459
|
end
|
460
460
|
|
@@ -465,7 +465,7 @@ module Puppet::Util::Windows::Security
|
|
465
465
|
def parse_dacl(dacl_ptr)
|
466
466
|
# REMIND: need to handle NULL DACL
|
467
467
|
if IsValidAcl(dacl_ptr) == FFI::WIN32_FALSE
|
468
|
-
raise Puppet::Util::Windows::Error
|
468
|
+
raise Puppet::Util::Windows::Error, _("Invalid DACL")
|
469
469
|
end
|
470
470
|
|
471
471
|
dacl_struct = ACL.new(dacl_ptr)
|
@@ -522,7 +522,7 @@ module Puppet::Util::Windows::Security
|
|
522
522
|
) # template
|
523
523
|
|
524
524
|
if handle == Puppet::Util::Windows::File::INVALID_HANDLE_VALUE
|
525
|
-
raise Puppet::Util::Windows::Error
|
525
|
+
raise Puppet::Util::Windows::Error, _("Failed to open '%{path}'") % { path: path }
|
526
526
|
end
|
527
527
|
|
528
528
|
begin
|
@@ -569,7 +569,7 @@ module Puppet::Util::Windows::Security
|
|
569
569
|
if AdjustTokenPrivileges(token, FFI::WIN32_FALSE,
|
570
570
|
token_privileges, token_privileges.size,
|
571
571
|
FFI::MemoryPointer::NULL, FFI::MemoryPointer::NULL) == FFI::WIN32_FALSE
|
572
|
-
raise Puppet::Util::Windows::Error
|
572
|
+
raise Puppet::Util::Windows::Error, _("Failed to adjust process privileges")
|
573
573
|
end
|
574
574
|
end
|
575
575
|
end
|
@@ -599,7 +599,7 @@ module Puppet::Util::Windows::Security
|
|
599
599
|
FFI::Pointer::NULL, # sacl
|
600
600
|
sd_ptr_ptr
|
601
601
|
) # sec desc
|
602
|
-
raise Puppet::Util::Windows::Error
|
602
|
+
raise Puppet::Util::Windows::Error, _("Failed to get security information") if rv != FFI::ERROR_SUCCESS
|
603
603
|
|
604
604
|
# these 2 convenience params are not freed since they point inside sd_ptr
|
605
605
|
owner = Puppet::Util::Windows::SID.sid_ptr_to_string(owner_sid_ptr_ptr.get_pointer(0))
|
@@ -609,7 +609,7 @@ module Puppet::Util::Windows::Security
|
|
609
609
|
FFI::MemoryPointer.new(:dword, 1) do |revision|
|
610
610
|
sd_ptr_ptr.read_win32_local_pointer do |sd_ptr|
|
611
611
|
if GetSecurityDescriptorControl(sd_ptr, control, revision) == FFI::WIN32_FALSE
|
612
|
-
raise Puppet::Util::Windows::Error
|
612
|
+
raise Puppet::Util::Windows::Error, _("Failed to get security descriptor control")
|
613
613
|
end
|
614
614
|
|
615
615
|
protect = (control.read_word & SE_DACL_PROTECTED) == SE_DACL_PROTECTED
|
@@ -642,11 +642,11 @@ module Puppet::Util::Windows::Security
|
|
642
642
|
def set_security_descriptor(path, sd)
|
643
643
|
FFI::MemoryPointer.new(:byte, get_max_generic_acl_size(sd.dacl.count)) do |acl_ptr|
|
644
644
|
if InitializeAcl(acl_ptr, acl_ptr.size, ACL_REVISION) == FFI::WIN32_FALSE
|
645
|
-
raise Puppet::Util::Windows::Error
|
645
|
+
raise Puppet::Util::Windows::Error, _("Failed to initialize ACL")
|
646
646
|
end
|
647
647
|
|
648
648
|
if IsValidAcl(acl_ptr) == FFI::WIN32_FALSE
|
649
|
-
raise Puppet::Util::Windows::Error
|
649
|
+
raise Puppet::Util::Windows::Error, _("Invalid DACL")
|
650
650
|
end
|
651
651
|
|
652
652
|
with_privilege(SE_BACKUP_NAME) do
|
@@ -681,7 +681,7 @@ module Puppet::Util::Windows::Security
|
|
681
681
|
FFI::MemoryPointer::NULL)
|
682
682
|
|
683
683
|
if rv != FFI::ERROR_SUCCESS
|
684
|
-
raise Puppet::Util::Windows::Error
|
684
|
+
raise Puppet::Util::Windows::Error, _("Failed to set security information")
|
685
685
|
end
|
686
686
|
end
|
687
687
|
end
|
@@ -111,7 +111,7 @@ module Puppet::Util::Windows
|
|
111
111
|
end
|
112
112
|
end
|
113
113
|
if state.nil?
|
114
|
-
raise Puppet::Error
|
114
|
+
raise Puppet::Error, _("Unknown Service state '%{current_state}' for '%{service_name}'") % { current_state: state.to_s, service_name: service_name }
|
115
115
|
end
|
116
116
|
|
117
117
|
state
|
@@ -139,7 +139,7 @@ module Puppet::Util::Windows
|
|
139
139
|
end
|
140
140
|
end
|
141
141
|
if start_type.nil?
|
142
|
-
raise Puppet::Error
|
142
|
+
raise Puppet::Error, _("Unknown start type '%{start_type}' for '%{service_name}'") % { start_type: start_type.to_s, service_name: service_name }
|
143
143
|
end
|
144
144
|
|
145
145
|
start_type
|
@@ -190,7 +190,7 @@ module Puppet::Util::Windows
|
|
190
190
|
FFI::Pointer::NULL # lpDisplayName
|
191
191
|
)
|
192
192
|
if success == FFI::WIN32_FALSE
|
193
|
-
raise Puppet::Util::Windows::Error
|
193
|
+
raise Puppet::Util::Windows::Error, _("Failed to update service configuration")
|
194
194
|
end
|
195
195
|
end
|
196
196
|
|
@@ -255,7 +255,7 @@ module Puppet::Util::Windows
|
|
255
255
|
FFI::Pointer::NULL
|
256
256
|
)
|
257
257
|
if success == FFI::WIN32_FALSE
|
258
|
-
raise Puppet::Util::Windows::Error
|
258
|
+
raise Puppet::Util::Windows::Error, _("Failed to fetch services")
|
259
259
|
end
|
260
260
|
|
261
261
|
# Now that the buffer is populated with services
|
@@ -305,7 +305,7 @@ module Puppet::Util::Windows
|
|
305
305
|
result = nil
|
306
306
|
open_scm(scm_access) do |scm|
|
307
307
|
service = OpenServiceW(scm, wide_string(service_name), service_access)
|
308
|
-
raise Puppet::Util::Windows::Error
|
308
|
+
raise Puppet::Util::Windows::Error, _("Failed to open a handle to the service") if service == FFI::Pointer::NULL_HANDLE
|
309
309
|
|
310
310
|
result = yield service
|
311
311
|
end
|
@@ -323,7 +323,7 @@ module Puppet::Util::Windows
|
|
323
323
|
# @param [Integer] scm_access code corresponding to the access type requested for the scm
|
324
324
|
def open_scm(scm_access, &block)
|
325
325
|
scm = OpenSCManagerW(FFI::Pointer::NULL, FFI::Pointer::NULL, scm_access)
|
326
|
-
raise Puppet::Util::Windows::Error
|
326
|
+
raise Puppet::Util::Windows::Error, _("Failed to open a handle to the service control manager") if scm == FFI::Pointer::NULL_HANDLE
|
327
327
|
|
328
328
|
yield scm
|
329
329
|
ensure
|
@@ -439,7 +439,7 @@ module Puppet::Util::Windows
|
|
439
439
|
bytes_pointer
|
440
440
|
)
|
441
441
|
if success == FFI::WIN32_FALSE
|
442
|
-
raise Puppet::Util::Windows::Error
|
442
|
+
raise Puppet::Util::Windows::Error, _("Service query failed")
|
443
443
|
end
|
444
444
|
|
445
445
|
yield status
|
@@ -476,7 +476,7 @@ module Puppet::Util::Windows
|
|
476
476
|
bytes_pointer
|
477
477
|
)
|
478
478
|
if success == FFI::WIN32_FALSE
|
479
|
-
raise Puppet::Util::Windows::Error
|
479
|
+
raise Puppet::Util::Windows::Error, _("Service query failed")
|
480
480
|
end
|
481
481
|
|
482
482
|
yield config
|
@@ -520,7 +520,7 @@ module Puppet::Util::Windows
|
|
520
520
|
bytes_pointer
|
521
521
|
)
|
522
522
|
if success == FFI::WIN32_FALSE
|
523
|
-
raise Puppet::Util::Windows::Error
|
523
|
+
raise Puppet::Util::Windows::Error, _("Service query for %{parameter_name} failed") % { parameter_name: SERVICE_CONFIG_TYPES[info_level] }
|
524
524
|
end
|
525
525
|
|
526
526
|
yield config
|
@@ -541,10 +541,10 @@ module Puppet::Util::Windows
|
|
541
541
|
success = ChangeServiceConfig2W(
|
542
542
|
service,
|
543
543
|
change, # dwInfoLevel
|
544
|
-
value
|
544
|
+
value # lpInfo
|
545
545
|
)
|
546
546
|
if success == FFI::WIN32_FALSE
|
547
|
-
raise Puppet::Util.windows::Error
|
547
|
+
raise Puppet::Util.windows::Error, _("Failed to update service %{change} configuration") % { change: change }
|
548
548
|
end
|
549
549
|
end
|
550
550
|
end
|
@@ -86,7 +86,7 @@ module Puppet::Util::Windows
|
|
86
86
|
|
87
87
|
raw_sid_bytes ? Principal.lookup_account_sid(raw_sid_bytes) : Principal.lookup_account_name(name)
|
88
88
|
rescue => e
|
89
|
-
Puppet.debug(
|
89
|
+
Puppet.debug(e.message.to_s)
|
90
90
|
(allow_unresolved && raw_sid_bytes) ? unresolved_principal(name, raw_sid_bytes) : nil
|
91
91
|
end
|
92
92
|
module_function :name_to_principal
|
@@ -99,7 +99,7 @@ module Puppet::Util::Windows
|
|
99
99
|
# This method returns a SID::Principal with the account, domain, SID, etc
|
100
100
|
def octet_string_to_principal(bytes)
|
101
101
|
if !bytes || !bytes.respond_to?('pack') || bytes.empty?
|
102
|
-
raise Puppet::Util::Windows::Error
|
102
|
+
raise Puppet::Util::Windows::Error, _("Octet string must be an array of bytes")
|
103
103
|
end
|
104
104
|
|
105
105
|
Principal.lookup_account_sid(bytes)
|
@@ -116,7 +116,7 @@ module Puppet::Util::Windows
|
|
116
116
|
def ads_to_principal(ads_object)
|
117
117
|
if !ads_object || !ads_object.respond_to?(:ole_respond_to?) ||
|
118
118
|
!ads_object.ole_respond_to?(:objectSID) || !ads_object.ole_respond_to?(:Name)
|
119
|
-
raise Puppet::Error
|
119
|
+
raise Puppet::Error, "ads_object must be an IAdsUser or IAdsGroup instance"
|
120
120
|
end
|
121
121
|
|
122
122
|
octet_string_to_principal(ads_object.objectSID)
|
@@ -160,18 +160,18 @@ module Puppet::Util::Windows
|
|
160
160
|
# Convert a SID pointer to a SID string, e.g. "S-1-5-32-544".
|
161
161
|
def sid_ptr_to_string(psid)
|
162
162
|
if !psid.is_a?(FFI::Pointer) || IsValidSid(psid) == FFI::WIN32_FALSE
|
163
|
-
raise Puppet::Util::Windows::Error
|
163
|
+
raise Puppet::Util::Windows::Error, _("Invalid SID")
|
164
164
|
end
|
165
165
|
|
166
166
|
sid_string = nil
|
167
167
|
FFI::MemoryPointer.new(:pointer, 1) do |buffer_ptr|
|
168
168
|
if ConvertSidToStringSidW(psid, buffer_ptr) == FFI::WIN32_FALSE
|
169
|
-
raise Puppet::Util::Windows::Error
|
169
|
+
raise Puppet::Util::Windows::Error, _("Failed to convert binary SID")
|
170
170
|
end
|
171
171
|
|
172
172
|
buffer_ptr.read_win32_local_pointer do |wide_string_ptr|
|
173
173
|
if wide_string_ptr.null?
|
174
|
-
raise Puppet::Error
|
174
|
+
raise Puppet::Error, _("ConvertSidToStringSidW failed to allocate buffer for sid")
|
175
175
|
end
|
176
176
|
|
177
177
|
sid_string = wide_string_ptr.read_arbitrary_wide_string_up_to(MAXIMUM_SID_STRING_LENGTH)
|
@@ -190,7 +190,7 @@ module Puppet::Util::Windows
|
|
190
190
|
FFI::MemoryPointer.from_string_to_wide_string(string_sid) do |lpcwstr|
|
191
191
|
FFI::MemoryPointer.new(:pointer, 1) do |sid_ptr_ptr|
|
192
192
|
if ConvertStringSidToSidW(lpcwstr, sid_ptr_ptr) == FFI::WIN32_FALSE
|
193
|
-
raise Puppet::Util::Windows::Error
|
193
|
+
raise Puppet::Util::Windows::Error, _("Failed to convert string SID: %{string_sid}") % { string_sid: string_sid }
|
194
194
|
end
|
195
195
|
|
196
196
|
sid_ptr_ptr.read_win32_local_pointer do |sid_ptr|
|
@@ -221,7 +221,7 @@ module Puppet::Util::Windows
|
|
221
221
|
def get_length_sid(sid_ptr)
|
222
222
|
# MSDN states IsValidSid should be called on pointer first
|
223
223
|
if !sid_ptr.is_a?(FFI::Pointer) || IsValidSid(sid_ptr) == FFI::WIN32_FALSE
|
224
|
-
raise Puppet::Util::Windows::Error
|
224
|
+
raise Puppet::Util::Windows::Error, _("Invalid SID")
|
225
225
|
end
|
226
226
|
|
227
227
|
GetLengthSid(sid_ptr)
|
@@ -13,7 +13,7 @@ module Puppet::Util::Windows::User
|
|
13
13
|
|
14
14
|
# if Vista or later, check for unrestricted process token
|
15
15
|
elevated_supported = Puppet::Util::Windows::Process.supports_elevated_security?
|
16
|
-
|
16
|
+
elevated_supported ? Puppet::Util::Windows::Process.elevated_security? : true
|
17
17
|
end
|
18
18
|
module_function :admin?
|
19
19
|
|
@@ -52,17 +52,17 @@ module Puppet::Util::Windows::User
|
|
52
52
|
size_pointer.write_uint32(SECURITY_MAX_SID_SIZE)
|
53
53
|
|
54
54
|
if CreateWellKnownSid(:WinBuiltinAdministratorsSid, FFI::Pointer::NULL, sid_pointer, size_pointer) == FFI::WIN32_FALSE
|
55
|
-
raise Puppet::Util::Windows::Error
|
55
|
+
raise Puppet::Util::Windows::Error, _("Failed to create administrators SID")
|
56
56
|
end
|
57
57
|
end
|
58
58
|
|
59
59
|
if IsValidSid(sid_pointer) == FFI::WIN32_FALSE
|
60
|
-
raise Puppet::Util::Windows::Error
|
60
|
+
raise Puppet::Util::Windows::Error, _("Invalid SID")
|
61
61
|
end
|
62
62
|
|
63
63
|
FFI::MemoryPointer.new(:win32_bool, 1) do |ismember_pointer|
|
64
64
|
if CheckTokenMembership(FFI::Pointer::NULL_HANDLE, sid_pointer, ismember_pointer) == FFI::WIN32_FALSE
|
65
|
-
raise Puppet::Util::Windows::Error
|
65
|
+
raise Puppet::Util::Windows::Error, _("Failed to check membership")
|
66
66
|
end
|
67
67
|
|
68
68
|
# Is administrators SID enabled in calling thread's access token?
|
@@ -75,18 +75,16 @@ module Puppet::Util::Windows::User
|
|
75
75
|
module_function :check_token_membership
|
76
76
|
|
77
77
|
def password_is?(name, password, domain = '.')
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
return authenticated_error_codes.include?(detail.code)
|
89
|
-
end
|
78
|
+
logon_user(name, password, domain) { |token| }
|
79
|
+
rescue Puppet::Util::Windows::Error => detail
|
80
|
+
authenticated_error_codes = Set[
|
81
|
+
ERROR_ACCOUNT_RESTRICTION,
|
82
|
+
ERROR_INVALID_LOGON_HOURS,
|
83
|
+
ERROR_INVALID_WORKSTATION,
|
84
|
+
ERROR_ACCOUNT_DISABLED,
|
85
|
+
]
|
86
|
+
|
87
|
+
authenticated_error_codes.include?(detail.code)
|
90
88
|
end
|
91
89
|
module_function :password_is?
|
92
90
|
|
@@ -101,7 +99,7 @@ module Puppet::Util::Windows::User
|
|
101
99
|
# try logon using network else try logon using interactive mode
|
102
100
|
if logon_user_by_logon_type(name, domain, password, fLOGON32_LOGON_NETWORK, fLOGON32_PROVIDER_DEFAULT, token_pointer) == FFI::WIN32_FALSE
|
103
101
|
if logon_user_by_logon_type(name, domain, password, fLOGON32_LOGON_INTERACTIVE, fLOGON32_PROVIDER_DEFAULT, token_pointer) == FFI::WIN32_FALSE
|
104
|
-
raise Puppet::Util::Windows::Error
|
102
|
+
raise Puppet::Util::Windows::Error, _("Failed to logon user %{name}") % { name: name.inspect }
|
105
103
|
end
|
106
104
|
end
|
107
105
|
|
@@ -132,13 +130,13 @@ module Puppet::Util::Windows::User
|
|
132
130
|
|
133
131
|
# Load the profile. Since it doesn't exist, it will be created
|
134
132
|
if LoadUserProfileW(token, pi.pointer) == FFI::WIN32_FALSE
|
135
|
-
raise Puppet::Util::Windows::Error
|
133
|
+
raise Puppet::Util::Windows::Error, _("Failed to load user profile %{user}") % { user: user.inspect }
|
136
134
|
end
|
137
135
|
|
138
136
|
Puppet.debug("Loaded profile for #{user}")
|
139
137
|
|
140
138
|
if UnloadUserProfile(token, pi[:hProfile]) == FFI::WIN32_FALSE
|
141
|
-
raise Puppet::Util::Windows::Error
|
139
|
+
raise Puppet::Util::Windows::Error, _("Failed to unload user profile %{user}") % { user: user.inspect }
|
142
140
|
end
|
143
141
|
end
|
144
142
|
end
|
@@ -260,7 +258,7 @@ module Puppet::Util::Windows::User
|
|
260
258
|
"The RPC server is unavailable or given domain name is invalid."
|
261
259
|
end
|
262
260
|
|
263
|
-
raise Puppet::Error
|
261
|
+
raise Puppet::Error, "Calling `#{method_name}` returned 'Win32 Error Code 0x%08X'. #{error_reason}" % error_code
|
264
262
|
end
|
265
263
|
private_class_method :check_lsa_nt_status_and_raise_failures
|
266
264
|
|
data/lib/puppet/util/yaml.rb
CHANGED
data/lib/puppet/util.rb
CHANGED
@@ -190,7 +190,7 @@ module Util
|
|
190
190
|
yield
|
191
191
|
}
|
192
192
|
object.send(level, msg % { seconds: "%0.2f" % seconds })
|
193
|
-
|
193
|
+
seconds
|
194
194
|
else
|
195
195
|
yield
|
196
196
|
end
|
@@ -211,33 +211,31 @@ module Util
|
|
211
211
|
exts = ENV.fetch('PATHEXT', nil)
|
212
212
|
exts = exts ? exts.split(File::PATH_SEPARATOR) : %w[.COM .EXE .BAT .CMD]
|
213
213
|
ENV.fetch('PATH').split(File::PATH_SEPARATOR).each do |dir|
|
214
|
-
|
215
|
-
|
216
|
-
|
217
|
-
|
218
|
-
|
219
|
-
|
220
|
-
if
|
221
|
-
|
222
|
-
|
223
|
-
|
224
|
-
|
225
|
-
|
226
|
-
|
227
|
-
|
228
|
-
Puppet::Util::Warnings.warnonce(_("Couldn't expand PATH containing a ~ character; ignoring PATH element '%{dir}'.") % { dir: dir })
|
229
|
-
else
|
230
|
-
raise
|
231
|
-
end
|
214
|
+
dest = File.expand_path(File.join(dir, bin))
|
215
|
+
rescue ArgumentError => e
|
216
|
+
# if the user's PATH contains a literal tilde (~) character and HOME is not set, we may get
|
217
|
+
# an ArgumentError here. Let's check to see if that is the case; if not, re-raise whatever error
|
218
|
+
# was thrown.
|
219
|
+
if e.to_s =~ /HOME/ and (ENV['HOME'].nil? || ENV.fetch('HOME', nil) == "")
|
220
|
+
# if we get here they have a tilde in their PATH. We'll issue a single warning about this and then
|
221
|
+
# ignore this path element and carry on with our lives.
|
222
|
+
# TRANSLATORS PATH and HOME are environment variables and should not be translated
|
223
|
+
Puppet::Util::Warnings.warnonce(_("PATH contains a ~ character, and HOME is not set; ignoring PATH element '%{dir}'.") % { dir: dir })
|
224
|
+
elsif e.to_s =~ /doesn't exist|can't find user/
|
225
|
+
# ...otherwise, we just skip the non-existent entry, and do nothing.
|
226
|
+
# TRANSLATORS PATH is an environment variable and should not be translated
|
227
|
+
Puppet::Util::Warnings.warnonce(_("Couldn't expand PATH containing a ~ character; ignoring PATH element '%{dir}'.") % { dir: dir })
|
232
228
|
else
|
233
|
-
|
234
|
-
|
235
|
-
|
236
|
-
|
237
|
-
|
229
|
+
raise
|
230
|
+
end
|
231
|
+
else
|
232
|
+
if Puppet::Util::Platform.windows? && File.extname(dest).empty?
|
233
|
+
exts.each do |ext|
|
234
|
+
destext = File.expand_path(dest + ext)
|
235
|
+
return destext if FileTest.file? destext and FileTest.executable? destext
|
238
236
|
end
|
239
|
-
return dest if FileTest.file? dest and FileTest.executable? dest
|
240
237
|
end
|
238
|
+
return dest if FileTest.file? dest and FileTest.executable? dest
|
241
239
|
end
|
242
240
|
end
|
243
241
|
nil
|
@@ -250,8 +248,8 @@ module Util
|
|
250
248
|
# Escape once for the string literal, and once for the regex.
|
251
249
|
slash = '[\\\\/]'
|
252
250
|
label = '[^\\\\/]+'
|
253
|
-
AbsolutePathWindows =
|
254
|
-
AbsolutePathPosix = %r
|
251
|
+
AbsolutePathWindows = /^(?:(?:[A-Z]:#{slash})|(?:#{slash}#{slash}#{label}#{slash}#{label})|(?:#{slash}#{slash}\?#{slash}#{label}))/io
|
252
|
+
AbsolutePathPosix = %r{^/}
|
255
253
|
def absolute_path?(path, platform = nil)
|
256
254
|
unless path.is_a?(String)
|
257
255
|
Puppet.warning("Cannot check if #{path} is an absolute path because it is a '#{path.class}' and not a String'")
|
@@ -288,11 +286,11 @@ module Util
|
|
288
286
|
if Puppet::Util::Platform.windows?
|
289
287
|
path = path.tr('\\', '/')
|
290
288
|
|
291
|
-
unc =
|
289
|
+
unc = %r{^//([^/]+)(/.+)}.match(path)
|
292
290
|
if unc
|
293
291
|
params[:host] = unc[1]
|
294
292
|
path = unc[2]
|
295
|
-
elsif path =~
|
293
|
+
elsif path =~ %r{^[a-z]:/}i
|
296
294
|
path = '/' + path
|
297
295
|
end
|
298
296
|
end
|
@@ -324,7 +322,7 @@ module Util
|
|
324
322
|
if uri.host && !uri.host.empty?
|
325
323
|
path = "//#{uri.host}" + path # UNC
|
326
324
|
else
|
327
|
-
path.sub!(
|
325
|
+
path.sub!(%r{^/}, '')
|
328
326
|
end
|
329
327
|
end
|
330
328
|
|
@@ -332,7 +330,7 @@ module Util
|
|
332
330
|
end
|
333
331
|
module_function :uri_to_path
|
334
332
|
|
335
|
-
RFC_3986_URI_REGEX =
|
333
|
+
RFC_3986_URI_REGEX = %r{^(?<scheme>(?:[^:/?#]+):)?(?<authority>//(?:[^/?#]*))?(?<path>[^?#]*)(?:\?(?<query>[^#]*))?(?:#(?<fragment>.*))?$}
|
336
334
|
|
337
335
|
# Percent-encodes a URI query parameter per RFC3986 - https://tools.ietf.org/html/rfc3986
|
338
336
|
#
|
@@ -407,7 +405,7 @@ module Util
|
|
407
405
|
# query will encode + as %2B and space as %20
|
408
406
|
# fragment behaves like query
|
409
407
|
def uri_encode(path, opts = { :allow_fragment => false })
|
410
|
-
raise ArgumentError
|
408
|
+
raise ArgumentError, _('path may not be nil') if path.nil?
|
411
409
|
|
412
410
|
encoded = ''.dup
|
413
411
|
|
@@ -425,7 +423,7 @@ module Util
|
|
425
423
|
encoded += rfc2396_escape(parts[:path]) unless parts[:path].nil?
|
426
424
|
|
427
425
|
# each query parameter
|
428
|
-
|
426
|
+
unless parts[:query].nil?
|
429
427
|
query_string = parts[:query].split('&').map do |pair|
|
430
428
|
# can optionally be separated by an =
|
431
429
|
pair.split('=').map do |v|
|
@@ -465,12 +463,12 @@ module Util
|
|
465
463
|
def uri_unescape(str)
|
466
464
|
enc = str.encoding
|
467
465
|
enc = Encoding::UTF_8 if enc == Encoding::US_ASCII
|
468
|
-
str.gsub(ESCAPED) { [
|
466
|
+
str.gsub(ESCAPED) { [::Regexp.last_match(0)[1, 2]].pack('H2').force_encoding(enc) }
|
469
467
|
end
|
470
468
|
module_function :uri_unescape
|
471
469
|
|
472
470
|
def safe_posix_fork(stdin = $stdin, stdout = $stdout, stderr = $stderr, &block)
|
473
|
-
|
471
|
+
Kernel.fork do
|
474
472
|
STDIN.reopen(stdin)
|
475
473
|
STDOUT.reopen(stdout)
|
476
474
|
STDERR.reopen(stderr)
|
@@ -482,16 +480,25 @@ module Util
|
|
482
480
|
begin
|
483
481
|
Dir.foreach('/proc/self/fd') do |f|
|
484
482
|
if f != '.' && f != '..' && f.to_i >= 3
|
485
|
-
|
483
|
+
begin
|
484
|
+
IO.new(f.to_i).close
|
485
|
+
rescue
|
486
|
+
nil
|
487
|
+
end
|
486
488
|
end
|
487
489
|
end
|
488
490
|
rescue Errno::ENOENT, Errno::ENOTDIR # /proc/self/fd not found, /proc/self not a dir
|
489
|
-
3.upto(256) { |fd|
|
491
|
+
3.upto(256) { |fd|
|
492
|
+
begin
|
493
|
+
IO.new(fd).close
|
494
|
+
rescue
|
495
|
+
nil
|
496
|
+
end
|
497
|
+
}
|
490
498
|
end
|
491
499
|
|
492
500
|
block.call if block
|
493
501
|
end
|
494
|
-
child_pid
|
495
502
|
end
|
496
503
|
module_function :safe_posix_fork
|
497
504
|
|
@@ -507,11 +514,9 @@ module Util
|
|
507
514
|
|
508
515
|
# Just benchmark, with no logging.
|
509
516
|
def thinmark
|
510
|
-
|
517
|
+
Benchmark.realtime {
|
511
518
|
yield
|
512
519
|
}
|
513
|
-
|
514
|
-
seconds
|
515
520
|
end
|
516
521
|
|
517
522
|
module_function :thinmark
|
@@ -545,7 +550,11 @@ module Util
|
|
545
550
|
def self.resolve_stackframe(frame)
|
546
551
|
_, path, rest = /^(.*):(\d+.*)$/.match(frame).to_a
|
547
552
|
if path
|
548
|
-
path =
|
553
|
+
path = begin
|
554
|
+
Pathname(path).realpath
|
555
|
+
rescue
|
556
|
+
path
|
557
|
+
end
|
549
558
|
"#{path}:#{rest}"
|
550
559
|
else
|
551
560
|
frame
|
@@ -579,7 +588,7 @@ module Util
|
|
579
588
|
# The staging_location is a location to render the temporary file before
|
580
589
|
# moving the file to it's final location.
|
581
590
|
|
582
|
-
DEFAULT_POSIX_MODE =
|
591
|
+
DEFAULT_POSIX_MODE = 0o644
|
583
592
|
DEFAULT_WINDOWS_MODE = nil
|
584
593
|
|
585
594
|
def replace_file(file, default_mode, staging_location: nil, validate_callback: nil, &block)
|
@@ -608,7 +617,7 @@ module Util
|
|
608
617
|
end
|
609
618
|
|
610
619
|
effective_mode =
|
611
|
-
|
620
|
+
unless Puppet::Util::Platform.windows?
|
612
621
|
# Grab the current file mode, and fall back to the defaults.
|
613
622
|
|
614
623
|
if Puppet::FileSystem.exist?(file)
|
@@ -626,7 +635,7 @@ module Util
|
|
626
635
|
if effective_mode
|
627
636
|
# We only care about the bottom four slots, which make the real mode,
|
628
637
|
# and not the rest of the platform stat call fluff and stuff.
|
629
|
-
tempfile.chmod(effective_mode &
|
638
|
+
tempfile.chmod(effective_mode & 0o7777)
|
630
639
|
end
|
631
640
|
|
632
641
|
# Now, make sure the data (which includes the mode) is safe on disk.
|
@@ -651,7 +660,7 @@ module Util
|
|
651
660
|
|
652
661
|
if Puppet::Util::Platform.windows?
|
653
662
|
# Windows ReplaceFile needs a file to exist, so touch handles this
|
654
|
-
|
663
|
+
unless Puppet::FileSystem.exist?(file)
|
655
664
|
Puppet::FileSystem.touch(file)
|
656
665
|
if mode
|
657
666
|
Puppet::Util::Windows::Security.set_mode(mode, Puppet::FileSystem.path_string(file))
|