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
@@ -87,14 +87,14 @@ Puppet::Type.type(:user).provide :directoryservice do
|
|
87
87
|
# display its output.
|
88
88
|
def self.instances
|
89
89
|
get_all_users.collect do |user|
|
90
|
-
|
90
|
+
new(generate_attribute_hash(user))
|
91
91
|
end
|
92
92
|
end
|
93
93
|
|
94
94
|
# Return an array of hashes containing information about every user on
|
95
95
|
# the system.
|
96
96
|
def self.get_all_users
|
97
|
-
Puppet::Util::Plist.parse_plist(dscl
|
97
|
+
Puppet::Util::Plist.parse_plist(dscl('-plist', '.', 'readall', '/Users'))
|
98
98
|
end
|
99
99
|
|
100
100
|
# This method accepts an individual user plist, passed as a hash, and
|
@@ -171,7 +171,7 @@ Puppet::Type.type(:user).provide :directoryservice do
|
|
171
171
|
# of the local groups on the machine.
|
172
172
|
def self.get_list_of_groups
|
173
173
|
# rubocop:disable Naming/MemoizedInstanceVariableName
|
174
|
-
@groups ||= Puppet::Util::Plist.parse_plist(dscl
|
174
|
+
@groups ||= Puppet::Util::Plist.parse_plist(dscl('-plist', '.', 'readall', '/Groups'))
|
175
175
|
# rubocop:enable Naming/MemoizedInstanceVariableName
|
176
176
|
end
|
177
177
|
|
@@ -179,7 +179,7 @@ Puppet::Type.type(:user).provide :directoryservice do
|
|
179
179
|
# value. The value returned is the first item within the array returned
|
180
180
|
# from dscl
|
181
181
|
def self.get_attribute_from_dscl(path, username, keyname)
|
182
|
-
Puppet::Util::Plist.parse_plist(dscl
|
182
|
+
Puppet::Util::Plist.parse_plist(dscl('-plist', '.', 'read', "/#{path}/#{username}", keyname))
|
183
183
|
end
|
184
184
|
|
185
185
|
# The plist embedded in the ShadowHashData key is a binary plist. The
|
@@ -205,7 +205,7 @@ Puppet::Type.type(:user).provide :directoryservice do
|
|
205
205
|
# The salted-SHA512 password hash in 10.7 is stored in the 'SALTED-SHA512'
|
206
206
|
# key as binary data. That data is extracted and converted to a hex string.
|
207
207
|
def self.get_salted_sha512(embedded_binary_plist)
|
208
|
-
embedded_binary_plist['SALTED-SHA512'].
|
208
|
+
embedded_binary_plist['SALTED-SHA512'].unpack1("H*")
|
209
209
|
end
|
210
210
|
|
211
211
|
# This method reads the passed embedded_binary_plist hash and returns values
|
@@ -216,11 +216,11 @@ Puppet::Type.type(:user).provide :directoryservice do
|
|
216
216
|
case field
|
217
217
|
when 'salt', 'entropy'
|
218
218
|
value = embedded_binary_plist['SALTED-SHA512-PBKDF2'][field]
|
219
|
-
if value
|
219
|
+
if value.nil?
|
220
220
|
raise Puppet::Error, "Invalid #{field} given for user #{user_name}"
|
221
221
|
end
|
222
222
|
|
223
|
-
value.
|
223
|
+
value.unpack1('H*')
|
224
224
|
when 'iterations'
|
225
225
|
Integer(embedded_binary_plist['SALTED-SHA512-PBKDF2'][field])
|
226
226
|
else
|
@@ -234,7 +234,7 @@ Puppet::Type.type(:user).provide :directoryservice do
|
|
234
234
|
password_hash = nil
|
235
235
|
password_hash_file = "#{password_hash_dir}/#{guid}"
|
236
236
|
if Puppet::FileSystem.exist?(password_hash_file) and File.file?(password_hash_file)
|
237
|
-
raise Puppet::Error, "Could not read password hash file at #{password_hash_file}"
|
237
|
+
raise Puppet::Error, "Could not read password hash file at #{password_hash_file}" unless File.readable?(password_hash_file)
|
238
238
|
|
239
239
|
f = File.new(password_hash_file)
|
240
240
|
password_hash = f.read
|
@@ -300,22 +300,22 @@ Puppet::Type.type(:user).provide :directoryservice do
|
|
300
300
|
# For the :password and :groups properties, call the setter methods
|
301
301
|
# to enforce those values. For everything else, use dscl with the
|
302
302
|
# ns_to_ds_attribute_map to set the appropriate values.
|
303
|
-
|
304
|
-
|
305
|
-
|
306
|
-
|
307
|
-
|
308
|
-
|
309
|
-
|
310
|
-
|
311
|
-
|
312
|
-
|
313
|
-
|
314
|
-
|
315
|
-
|
316
|
-
else
|
317
|
-
create_attribute_with_dscl('Users', @resource.name, self.class.ns_to_ds_attribute_map[attribute], value)
|
303
|
+
next unless value != "" and !value.nil?
|
304
|
+
|
305
|
+
case attribute
|
306
|
+
when :password
|
307
|
+
self.password = value
|
308
|
+
when :iterations
|
309
|
+
self.iterations = value
|
310
|
+
when :salt
|
311
|
+
self.salt = value
|
312
|
+
when :groups
|
313
|
+
value.split(',').each do |group|
|
314
|
+
merge_attribute_with_dscl('Groups', group, 'GroupMembership', @resource.name)
|
315
|
+
merge_attribute_with_dscl('Groups', group, 'GroupMembers', @guid)
|
318
316
|
end
|
317
|
+
else
|
318
|
+
create_attribute_with_dscl('Users', @resource.name, self.class.ns_to_ds_attribute_map[attribute], value)
|
319
319
|
end
|
320
320
|
end
|
321
321
|
end
|
@@ -395,7 +395,7 @@ Puppet::Type.type(:user).provide :directoryservice do
|
|
395
395
|
# we have to treat the ds cache just like you would in the password=
|
396
396
|
# method.
|
397
397
|
def iterations=(value)
|
398
|
-
if
|
398
|
+
if Puppet::Util::Package.versioncmp(self.class.get_os_version, '10.7') > 0
|
399
399
|
assert_full_pbkdf2_password
|
400
400
|
|
401
401
|
sleep 3
|
@@ -412,12 +412,12 @@ Puppet::Type.type(:user).provide :directoryservice do
|
|
412
412
|
# we have to treat the ds cache just like you would in the password=
|
413
413
|
# method.
|
414
414
|
def salt=(value)
|
415
|
-
if
|
415
|
+
if Puppet::Util::Package.versioncmp(self.class.get_os_version, '10.15') >= 0
|
416
416
|
if value.length != 64
|
417
417
|
self.fail "macOS versions 10.15 and higher require the salt to be 32-bytes. Since Puppet's user resource requires the value to be hex encoded, the length of the salt's string must be 64. Please check your salt and try again."
|
418
418
|
end
|
419
419
|
end
|
420
|
-
if
|
420
|
+
if Puppet::Util::Package.versioncmp(self.class.get_os_version, '10.7') > 0
|
421
421
|
assert_full_pbkdf2_password
|
422
422
|
|
423
423
|
sleep 3
|
@@ -448,10 +448,10 @@ Puppet::Type.type(:user).provide :directoryservice do
|
|
448
448
|
# In the event that the user doesn't HAVE a value for the attribute, the
|
449
449
|
# provider should use the -create option with dscl to add the attribute value
|
450
450
|
# for the user record
|
451
|
-
[
|
451
|
+
%w[home uid gid comment shell].each do |setter_method|
|
452
452
|
define_method("#{setter_method}=") do |value|
|
453
453
|
if @property_hash[setter_method.intern]
|
454
|
-
if %w
|
454
|
+
if %w[home uid].include?(setter_method)
|
455
455
|
raise Puppet::Error, "OS X version #{self.class.get_os_version} does not allow changing #{setter_method} using puppet"
|
456
456
|
end
|
457
457
|
|
@@ -479,7 +479,7 @@ Puppet::Type.type(:user).provide :directoryservice do
|
|
479
479
|
def assert_full_pbkdf2_password
|
480
480
|
missing = [:password, :salt, :iterations].select { |parameter| @resource[parameter].nil? }
|
481
481
|
|
482
|
-
|
482
|
+
unless missing.empty?
|
483
483
|
raise Puppet::Error, "OS X versions > 10\.7 use PBKDF2 password hashes, which requires all three of salt, iterations, and password hash. This resource is missing: #{missing.join(', ')}."
|
484
484
|
end
|
485
485
|
end
|
@@ -503,11 +503,9 @@ Puppet::Type.type(:user).provide :directoryservice do
|
|
503
503
|
end
|
504
504
|
|
505
505
|
def set_attribute_with_dscl(dscl_command, path, username, keyname, value)
|
506
|
-
|
507
|
-
|
508
|
-
|
509
|
-
raise Puppet::Error, "Could not set the dscl #{keyname} key with value: #{value} - #{detail.inspect}", detail.backtrace
|
510
|
-
end
|
506
|
+
dscl '.', dscl_command, "/#{path}/#{username}", keyname, value
|
507
|
+
rescue Puppet::ExecutionFailure => detail
|
508
|
+
raise Puppet::Error, "Could not set the dscl #{keyname} key with value: #{value} - #{detail.inspect}", detail.backtrace
|
511
509
|
end
|
512
510
|
|
513
511
|
# Create the new user with dscl
|
@@ -549,7 +547,7 @@ Puppet::Type.type(:user).provide :directoryservice do
|
|
549
547
|
# variable IS a Hash and contains the 'SALTED-SHA512' key (indicating an
|
550
548
|
# older 10.7-style password hash), it will be deleted and a newer
|
551
549
|
# 10.8-style (PBKDF2) password hash will be generated.
|
552
|
-
if
|
550
|
+
if shadow_hash_data.instance_of?(Hash) && shadow_hash_data.has_key?('SALTED-SHA512')
|
553
551
|
shadow_hash_data.delete('SALTED-SHA512')
|
554
552
|
end
|
555
553
|
|
@@ -661,7 +659,7 @@ Puppet::Type.type(:user).provide :directoryservice do
|
|
661
659
|
# the user's plist itself, and the shadow_hash_data hash containing the
|
662
660
|
# existing PBKDF2 values.
|
663
661
|
def set_salted_pbkdf2(users_plist, shadow_hash_data, field, value)
|
664
|
-
shadow_hash_data
|
662
|
+
shadow_hash_data ||= Hash.new
|
665
663
|
shadow_hash_data['SALTED-SHA512-PBKDF2'] = Hash.new unless shadow_hash_data['SALTED-SHA512-PBKDF2']
|
666
664
|
case field
|
667
665
|
when 'salt', 'entropy'
|
@@ -40,7 +40,7 @@ Puppet::Type.type(:user).provide :hpuxuseradd, :parent => :useradd do
|
|
40
40
|
cmd << "/usr/lbin/modprpw"
|
41
41
|
cmd << "-v"
|
42
42
|
cmd << "-l"
|
43
|
-
cmd <<
|
43
|
+
cmd << resource.name.to_s
|
44
44
|
end
|
45
45
|
cmd
|
46
46
|
end
|
@@ -48,14 +48,14 @@ Puppet::Type.type(:user).provide :hpuxuseradd, :parent => :useradd do
|
|
48
48
|
def password
|
49
49
|
# Password management routine for trusted and non-trusted systems
|
50
50
|
# temp=""
|
51
|
-
while ent = Etc.getpwent()
|
51
|
+
while ent = Etc.getpwent() # rubocop:disable Lint/AssignmentInCondition
|
52
52
|
if ent.name == resource.name
|
53
53
|
temp = ent.name
|
54
54
|
break
|
55
55
|
end
|
56
56
|
end
|
57
57
|
Etc.endpwent()
|
58
|
-
|
58
|
+
unless temp
|
59
59
|
return nil
|
60
60
|
end
|
61
61
|
|
@@ -66,17 +66,17 @@ Puppet::Type.type(:user).provide :hpuxuseradd, :parent => :useradd do
|
|
66
66
|
if File.file?(file_name)
|
67
67
|
# Found the tcb user for the specific user, now get passwd
|
68
68
|
File.open(file_name).each do |line|
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
69
|
+
next unless line =~ /u_pwd/
|
70
|
+
|
71
|
+
temp_passwd = line.split(":")[1].split("=")[1]
|
72
|
+
ent.passwd = temp_passwd
|
73
|
+
return ent.passwd
|
74
74
|
end
|
75
75
|
else
|
76
76
|
debug "No trusted computing user file #{file_name} found."
|
77
77
|
end
|
78
78
|
else
|
79
|
-
|
79
|
+
ent.passwd
|
80
80
|
end
|
81
81
|
end
|
82
82
|
|
@@ -84,11 +84,7 @@ Puppet::Type.type(:user).provide :hpuxuseradd, :parent => :useradd do
|
|
84
84
|
# Check to see if the HP-UX box is running in trusted compute mode
|
85
85
|
# UID for root should always be 0
|
86
86
|
trusted_sys = exec_getprpw('root', '-m uid')
|
87
|
-
|
88
|
-
return true
|
89
|
-
else
|
90
|
-
return false
|
91
|
-
end
|
87
|
+
trusted_sys.chomp == "uid=0"
|
92
88
|
end
|
93
89
|
|
94
90
|
def exec_getprpw(user, opts)
|
@@ -96,7 +96,7 @@ Puppet::Type.type(:user).provide :pw, :parent => Puppet::Provider::NameService::
|
|
96
96
|
|
97
97
|
# Get expiry from system and convert to Puppet-style date
|
98
98
|
def expiry
|
99
|
-
expiry =
|
99
|
+
expiry = get(:expiry)
|
100
100
|
expiry = :absent if expiry == 0
|
101
101
|
|
102
102
|
if expiry != :absent
|
@@ -76,7 +76,7 @@ Puppet::Type.type(:user).provide :user_role_add, :parent => :useradd, :source =>
|
|
76
76
|
end
|
77
77
|
|
78
78
|
def command(cmd)
|
79
|
-
cmd =
|
79
|
+
cmd = "role_#{cmd}".intern if is_role? or (!exists? and @resource[:ensure] == :role)
|
80
80
|
super(cmd)
|
81
81
|
end
|
82
82
|
|
@@ -221,25 +221,23 @@ Puppet::Type.type(:user).provide :user_role_add, :parent => :useradd, :source =>
|
|
221
221
|
# data, but it is still terrible. We still skip platform locking, so a
|
222
222
|
# concurrent `vipw -s` session will have no idea we risk data loss.
|
223
223
|
def password=(cryptopw)
|
224
|
-
|
225
|
-
|
226
|
-
|
227
|
-
|
228
|
-
|
229
|
-
|
230
|
-
|
231
|
-
|
232
|
-
|
233
|
-
|
234
|
-
|
235
|
-
|
236
|
-
line = line_arr.join(':')
|
237
|
-
end
|
238
|
-
fh.print line
|
224
|
+
shadow = File.read(target_file_path)
|
225
|
+
|
226
|
+
# Go Mifune loves the race here where we can lose data because
|
227
|
+
# /etc/shadow changed between reading it and writing it.
|
228
|
+
# --daniel 2012-02-05
|
229
|
+
Puppet::Util.replace_file(target_file_path, 0o640) do |fh|
|
230
|
+
shadow.each_line do |line|
|
231
|
+
line_arr = line.split(':')
|
232
|
+
if line_arr[0] == @resource[:name]
|
233
|
+
line_arr[1] = cryptopw
|
234
|
+
line_arr[2] = (Date.today - Date.new(1970, 1, 1)).to_i.to_s
|
235
|
+
line = line_arr.join(':')
|
239
236
|
end
|
237
|
+
fh.print line
|
240
238
|
end
|
241
|
-
rescue => detail
|
242
|
-
self.fail Puppet::Error, "Could not write replace #{target_file_path}: #{detail}", detail
|
243
239
|
end
|
240
|
+
rescue => detail
|
241
|
+
self.fail Puppet::Error, "Could not write replace #{target_file_path}: #{detail}", detail
|
244
242
|
end
|
245
243
|
end
|
@@ -102,7 +102,7 @@ Puppet::Type.type(:user).provide :useradd, :parent => Puppet::Provider::NameServ
|
|
102
102
|
|
103
103
|
unless @users
|
104
104
|
unless Puppet::FileSystem.exist?(passwd_file)
|
105
|
-
raise Puppet::Error
|
105
|
+
raise Puppet::Error, "Forcelocal set for user resource '#{resource[:name]}', but #{passwd_file} does not exist"
|
106
106
|
end
|
107
107
|
|
108
108
|
@users = []
|
@@ -163,7 +163,7 @@ Puppet::Type.type(:user).provide :useradd, :parent => Puppet::Provider::NameServ
|
|
163
163
|
@groups_of[user] = []
|
164
164
|
|
165
165
|
unless Puppet::FileSystem.exist?(group_file)
|
166
|
-
raise Puppet::Error
|
166
|
+
raise Puppet::Error, "Forcelocal set for user resource '#{user}', but #{group_file} does not exist"
|
167
167
|
end
|
168
168
|
|
169
169
|
Puppet::FileSystem.each_line(group_file) do |line|
|
@@ -225,7 +225,7 @@ Puppet::Type.type(:user).provide :useradd, :parent => Puppet::Provider::NameServ
|
|
225
225
|
end
|
226
226
|
|
227
227
|
has_features :manages_homedir, :allows_duplicates, :manages_expiry
|
228
|
-
has_features :system_users unless %w
|
228
|
+
has_features :system_users unless %w[HP-UX Solaris].include? Puppet.runtime[:facter].value('os.name')
|
229
229
|
|
230
230
|
has_features :manages_passwords, :manages_password_age if Puppet.features.libshadow?
|
231
231
|
has_features :manages_shell
|
@@ -235,11 +235,11 @@ Puppet::Type.type(:user).provide :useradd, :parent => Puppet::Provider::NameServ
|
|
235
235
|
# because by default duplicates are allowed. This check is
|
236
236
|
# to ensure consistent behaviour of the useradd provider when
|
237
237
|
# using both useradd and luseradd
|
238
|
-
if
|
238
|
+
if !@resource.allowdupe? && @resource.forcelocal?
|
239
239
|
if @resource.should(:uid) && finduser(:uid, @resource.should(:uid).to_s)
|
240
240
|
raise(Puppet::Error, "UID #{@resource.should(:uid)} already exists, use allowdupe to force user creation")
|
241
241
|
end
|
242
|
-
elsif @resource.allowdupe? &&
|
242
|
+
elsif @resource.allowdupe? && !@resource.forcelocal?
|
243
243
|
return ["-o"]
|
244
244
|
end
|
245
245
|
[]
|
@@ -324,7 +324,7 @@ Puppet::Type.type(:user).provide :useradd, :parent => Puppet::Provider::NameServ
|
|
324
324
|
else
|
325
325
|
cmd = [command(:add)]
|
326
326
|
end
|
327
|
-
if
|
327
|
+
if !@resource.should(:gid) && Puppet::Util.gid(@resource[:name])
|
328
328
|
cmd += ["-g", @resource[:name]]
|
329
329
|
end
|
330
330
|
cmd += add_properties
|
@@ -401,7 +401,7 @@ Puppet::Type.type(:user).provide :useradd, :parent => Puppet::Provider::NameServ
|
|
401
401
|
end
|
402
402
|
super
|
403
403
|
if @resource.forcelocal?
|
404
|
-
set(:groups, @resource[:groups]) if
|
404
|
+
set(:groups, @resource[:groups]) if groups?
|
405
405
|
set(:expiry, @resource[:expiry]) if @resource[:expiry]
|
406
406
|
end
|
407
407
|
set(:password, @resource[:password]) if @resource[:password]
|
data/lib/puppet/provider.rb
CHANGED
@@ -241,7 +241,7 @@ class Puppet::Provider
|
|
241
241
|
end
|
242
242
|
|
243
243
|
def command
|
244
|
-
|
244
|
+
unless @optional
|
245
245
|
@confiner.confine :exists => @path, :for_binary => true
|
246
246
|
end
|
247
247
|
|
@@ -290,7 +290,7 @@ class Puppet::Provider
|
|
290
290
|
def self.fact_match(fact, values)
|
291
291
|
fact_val = Puppet.runtime[:facter].value(fact).to_s.downcase
|
292
292
|
if fact_val.empty?
|
293
|
-
|
293
|
+
false
|
294
294
|
else
|
295
295
|
values = [values] unless values.is_a?(Array)
|
296
296
|
values.any? do |value|
|
@@ -380,7 +380,7 @@ class Puppet::Provider
|
|
380
380
|
# @raise [Puppet::DevError] Error indicating that the method should have been implemented by subclass.
|
381
381
|
# @see prefetch
|
382
382
|
def self.instances
|
383
|
-
raise Puppet::DevError, _("To support listing resources of this type the '%{provider}' provider needs to implement an 'instances' class method returning the current set of resources. We recommend porting your module to the simpler Resource API instead: https://puppet.com/search/docs?keys=resource+api") % { provider:
|
383
|
+
raise Puppet::DevError, _("To support listing resources of this type the '%{provider}' provider needs to implement an 'instances' class method returning the current set of resources. We recommend porting your module to the simpler Resource API instead: https://puppet.com/search/docs?keys=resource+api") % { provider: name }
|
384
384
|
end
|
385
385
|
|
386
386
|
# Creates getter- and setter- methods for each property supported by the resource type.
|
@@ -415,7 +415,7 @@ class Puppet::Provider
|
|
415
415
|
end
|
416
416
|
end
|
417
417
|
|
418
|
-
|
418
|
+
initvars
|
419
419
|
|
420
420
|
# This method is used to generate a method for a command.
|
421
421
|
# @return [void]
|
@@ -437,7 +437,7 @@ class Puppet::Provider
|
|
437
437
|
# @return [String] Returns the data source, which is the provider name if no other source has been set.
|
438
438
|
# @todo Unclear what "the source" is used for?
|
439
439
|
def self.source
|
440
|
-
@source ||=
|
440
|
+
@source ||= name
|
441
441
|
end
|
442
442
|
|
443
443
|
# Returns true if the given attribute/parameter is supported by the provider.
|
@@ -536,8 +536,8 @@ class Puppet::Provider
|
|
536
536
|
def name
|
537
537
|
n = @property_hash[:name]
|
538
538
|
if n
|
539
|
-
|
540
|
-
elsif
|
539
|
+
n
|
540
|
+
elsif resource
|
541
541
|
resource.name
|
542
542
|
else
|
543
543
|
raise Puppet::DevError, _("No resource and no name in property hash in %{class_name} instance") % { class_name: self.class.name }
|
@@ -579,7 +579,7 @@ class Puppet::Provider
|
|
579
579
|
return nil unless other.is_a? Puppet::Provider
|
580
580
|
|
581
581
|
# Otherwise, order by the providers class name.
|
582
|
-
|
582
|
+
self.class.name <=> other.class.name
|
583
583
|
end
|
584
584
|
|
585
585
|
# @comment Document prefetch here as it does not exist anywhere else (called from transaction if implemented)
|
@@ -15,6 +15,9 @@ reference = Puppet::Util::Reference.newreference :indirection, :doc => "Indirect
|
|
15
15
|
text << Puppet::Util::Docs.scrub(ind.doc) + "\n\n"
|
16
16
|
|
17
17
|
Puppet::Indirector::Terminus.terminus_classes(ind.name).sort_by(&:to_s).each do |terminus|
|
18
|
+
# this is an "abstract" terminus, ignore it
|
19
|
+
next if ind.name == :resource && terminus == :validator
|
20
|
+
|
18
21
|
terminus_name = terminus.to_s
|
19
22
|
term_class = Puppet::Indirector::Terminus.terminus_class(ind.name, terminus)
|
20
23
|
if term_class
|
@@ -13,7 +13,7 @@ providers = Puppet::Util::Reference.newreference :providers, :title => "Provider
|
|
13
13
|
command_line = Puppet::Util::CommandLine.new
|
14
14
|
types.reject! { |type| !command_line.args.include?(type.name.to_s) } unless command_line.args.empty?
|
15
15
|
|
16
|
-
ret = "Details about this host:\n\n"
|
16
|
+
ret = "Details about this host:\n\n".dup
|
17
17
|
|
18
18
|
# Throw some facts in there, so we know where the report is from.
|
19
19
|
ret << option('Ruby Version', Facter.value('ruby.version'))
|
@@ -30,7 +30,7 @@ providers = Puppet::Util::Reference.newreference :providers, :title => "Provider
|
|
30
30
|
ret << "\n" # add a trailing newline
|
31
31
|
|
32
32
|
# Now build up a table of provider suitability.
|
33
|
-
headers = %w
|
33
|
+
headers = %w[Provider Suitable?] + features.collect(&:to_s).sort
|
34
34
|
|
35
35
|
table_data = {}
|
36
36
|
|
@@ -71,7 +71,7 @@ providers = Puppet::Util::Reference.newreference :providers, :title => "Provider
|
|
71
71
|
when :false
|
72
72
|
details << _(" - Got %{values} false tests that should have been true\n") % { values: values }
|
73
73
|
when :feature
|
74
|
-
details << _(" - Missing features %{values}\n") % { values: values.collect
|
74
|
+
details << _(" - Missing features %{values}\n") % { values: values.collect(&:to_s).join(",") }
|
75
75
|
end
|
76
76
|
end
|
77
77
|
notes << details
|
@@ -50,7 +50,7 @@ Puppet::Util::Reference.newreference :type, :doc => "All Puppet resource types a
|
|
50
50
|
Resource types define features they can use, and providers can be tested to see
|
51
51
|
which features they provide.
|
52
52
|
|
53
|
-
}
|
53
|
+
}.dup
|
54
54
|
|
55
55
|
types.sort_by(&:to_s).each { |name, type|
|
56
56
|
str << "
|
data/lib/puppet/relationship.rb
CHANGED
@@ -34,7 +34,8 @@ class Puppet::Relationship
|
|
34
34
|
end
|
35
35
|
|
36
36
|
def initialize(source, target, options = {})
|
37
|
-
@source
|
37
|
+
@source = source
|
38
|
+
@target = target
|
38
39
|
|
39
40
|
options = (options || {}).each_with_object({}) { |a, h| h[a[0].to_sym] = a[1]; }
|
40
41
|
[:callback, :event].each do |option|
|
@@ -47,11 +48,9 @@ class Puppet::Relationship
|
|
47
48
|
# of :NONE comes from.
|
48
49
|
def match?(event)
|
49
50
|
if self.event.nil? or event == :NONE or self.event == :NONE
|
50
|
-
|
51
|
-
elsif self.event == :ALL_EVENTS or event == self.event
|
52
|
-
return true
|
51
|
+
false
|
53
52
|
else
|
54
|
-
|
53
|
+
self.event == :ALL_EVENTS or event == self.event
|
55
54
|
end
|
56
55
|
end
|
57
56
|
|
data/lib/puppet/reports/http.rb
CHANGED
@@ -36,7 +36,7 @@ Puppet::Reports.register_report(:http) do
|
|
36
36
|
end
|
37
37
|
|
38
38
|
client = Puppet.runtime[:http]
|
39
|
-
client.post(url,
|
39
|
+
client.post(url, to_yaml, headers: headers, options: options) do |response|
|
40
40
|
unless response.success?
|
41
41
|
Puppet.err _("Unable to submit report to %{url} [%{code}] %{message}") % { url: Puppet[:reporturl].to_s, code: response.code, message: response.reason }
|
42
42
|
end
|
data/lib/puppet/reports/log.rb
CHANGED
@@ -7,8 +7,8 @@ Puppet::Reports.register_report(:log) do
|
|
7
7
|
the log destination is syslog."
|
8
8
|
|
9
9
|
def process
|
10
|
-
|
11
|
-
log.source = "//#{
|
10
|
+
logs.each do |log|
|
11
|
+
log.source = "//#{host}/#{log.source}"
|
12
12
|
Puppet::Util::Log.newmessage(log)
|
13
13
|
end
|
14
14
|
end
|
data/lib/puppet/reports/store.rb
CHANGED
@@ -19,14 +19,14 @@ Puppet::Reports.register_report(:store) do
|
|
19
19
|
|
20
20
|
dir = File.join(Puppet[:reportdir], host)
|
21
21
|
|
22
|
-
|
22
|
+
unless Puppet::FileSystem.exist?(dir)
|
23
23
|
FileUtils.mkdir_p(dir)
|
24
|
-
FileUtils.chmod_R(
|
24
|
+
FileUtils.chmod_R(0o750, dir)
|
25
25
|
end
|
26
26
|
|
27
27
|
# Now store the report.
|
28
28
|
now = Time.now.gmtime
|
29
|
-
name = %w
|
29
|
+
name = %w[year month day hour min].collect do |method|
|
30
30
|
# Make sure we're at least two digits everywhere
|
31
31
|
"%02d" % now.send(method).to_s
|
32
32
|
end.join("") + ".yaml"
|
@@ -34,7 +34,7 @@ Puppet::Reports.register_report(:store) do
|
|
34
34
|
file = File.join(dir, name)
|
35
35
|
|
36
36
|
begin
|
37
|
-
Puppet::FileSystem.replace_file(file,
|
37
|
+
Puppet::FileSystem.replace_file(file, 0o640) do |fh|
|
38
38
|
fh.print to_yaml
|
39
39
|
end
|
40
40
|
rescue => detail
|
data/lib/puppet/reports.rb
CHANGED
@@ -77,8 +77,8 @@ class Puppet::Reports
|
|
77
77
|
# Use this method so they all get loaded
|
78
78
|
instance_loader(:report).loadall(Puppet.lookup(:current_environment))
|
79
79
|
loaded_instances(:report).sort_by(&:to_s).each do |name|
|
80
|
-
mod =
|
81
|
-
docs << "#{name}\n#{
|
80
|
+
mod = report(name)
|
81
|
+
docs << "#{name}\n#{'-' * name.to_s.length}\n"
|
82
82
|
|
83
83
|
docs << Puppet::Util::Docs.scrub(mod.doc) << "\n\n"
|
84
84
|
end
|