puppet 8.5.0-universal-darwin → 8.6.0-universal-darwin
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/Gemfile.lock +29 -26
- data/ext/windows/service/daemon.rb +49 -55
- data/lib/hiera/scope.rb +3 -3
- data/lib/hiera_puppet.rb +1 -1
- data/lib/puppet/agent/disabler.rb +1 -1
- data/lib/puppet/application/agent.rb +2 -2
- data/lib/puppet/application/apply.rb +2 -2
- data/lib/puppet/application/describe.rb +6 -6
- data/lib/puppet/application/device.rb +99 -100
- data/lib/puppet/application/doc.rb +1 -1
- data/lib/puppet/application/face_base.rb +7 -7
- data/lib/puppet/application/filebucket.rb +1 -1
- data/lib/puppet/application/lookup.rb +5 -5
- data/lib/puppet/application/resource.rb +10 -3
- data/lib/puppet/application/ssl.rb +3 -3
- data/lib/puppet/application.rb +16 -18
- data/lib/puppet/coercion.rb +1 -1
- data/lib/puppet/configurer/downloader.rb +9 -4
- data/lib/puppet/configurer/fact_handler.rb +12 -13
- data/lib/puppet/configurer.rb +16 -18
- data/lib/puppet/confine/feature.rb +1 -1
- data/lib/puppet/confine/variable.rb +1 -1
- data/lib/puppet/confine.rb +2 -2
- data/lib/puppet/confine_collection.rb +1 -1
- data/lib/puppet/confiner.rb +2 -2
- data/lib/puppet/daemon.rb +3 -3
- data/lib/puppet/datatypes.rb +5 -6
- data/lib/puppet/defaults.rb +14 -8
- data/lib/puppet/environments.rb +3 -7
- data/lib/puppet/error.rb +3 -3
- data/lib/puppet/external/dot.rb +42 -34
- data/lib/puppet/face/catalog/select.rb +1 -1
- data/lib/puppet/face/epp.rb +7 -9
- data/lib/puppet/face/help.rb +12 -12
- data/lib/puppet/face/module/changes.rb +1 -3
- data/lib/puppet/face/module/list.rb +37 -37
- data/lib/puppet/face/node/clean.rb +1 -1
- data/lib/puppet/face/parser.rb +6 -8
- data/lib/puppet/face/report.rb +5 -7
- data/lib/puppet/facter_impl.rb +1 -1
- data/lib/puppet/feature/base.rb +9 -11
- data/lib/puppet/feature/pe_license.rb +1 -1
- data/lib/puppet/feature/ssh.rb +1 -1
- data/lib/puppet/feature/telnet.rb +3 -5
- data/lib/puppet/feature/zlib.rb +1 -1
- data/lib/puppet/ffi/windows/constants.rb +1 -1
- data/lib/puppet/ffi/windows/functions.rb +2 -2
- data/lib/puppet/ffi/windows/structs.rb +3 -3
- data/lib/puppet/file_bucket/dipper.rb +4 -4
- data/lib/puppet/file_bucket/file.rb +4 -4
- data/lib/puppet/file_serving/base.rb +5 -5
- data/lib/puppet/file_serving/configuration/parser.rb +9 -9
- data/lib/puppet/file_serving/configuration.rb +3 -3
- data/lib/puppet/file_serving/fileset.rb +13 -13
- data/lib/puppet/file_serving/http_metadata.rb +1 -1
- data/lib/puppet/file_serving/metadata.rb +13 -9
- data/lib/puppet/file_serving/mount/file.rb +6 -6
- data/lib/puppet/file_serving/mount/locales.rb +2 -4
- data/lib/puppet/file_serving/mount/pluginfacts.rb +2 -4
- data/lib/puppet/file_serving/mount/plugins.rb +2 -4
- data/lib/puppet/file_serving/mount.rb +1 -1
- data/lib/puppet/file_system/file_impl.rb +3 -3
- data/lib/puppet/file_system/memory_impl.rb +1 -1
- data/lib/puppet/file_system/path_pattern.rb +1 -1
- data/lib/puppet/file_system/uniquefile.rb +17 -16
- data/lib/puppet/file_system/windows.rb +26 -18
- data/lib/puppet/forge/cache.rb +2 -2
- data/lib/puppet/forge/errors.rb +1 -1
- data/lib/puppet/forge/repository.rb +2 -2
- data/lib/puppet/forge.rb +13 -19
- data/lib/puppet/functions/abs.rb +2 -2
- data/lib/puppet/functions/camelcase.rb +1 -1
- data/lib/puppet/functions/compare.rb +2 -2
- data/lib/puppet/functions/contain.rb +1 -1
- data/lib/puppet/functions/defined.rb +2 -2
- data/lib/puppet/functions/dig.rb +1 -1
- data/lib/puppet/functions/eyaml_lookup_key.rb +11 -13
- data/lib/puppet/functions/get.rb +1 -1
- data/lib/puppet/functions/hocon_data.rb +3 -5
- data/lib/puppet/functions/import.rb +1 -1
- data/lib/puppet/functions/json_data.rb +4 -6
- data/lib/puppet/functions/max.rb +2 -2
- data/lib/puppet/functions/min.rb +2 -2
- data/lib/puppet/functions/new.rb +1 -1
- data/lib/puppet/functions/reduce.rb +6 -10
- data/lib/puppet/functions/regsubst.rb +2 -2
- data/lib/puppet/functions/require.rb +1 -1
- data/lib/puppet/functions/yaml_data.rb +11 -13
- data/lib/puppet/functions.rb +32 -37
- data/lib/puppet/generate/type.rb +2 -2
- data/lib/puppet/gettext/config.rb +9 -9
- data/lib/puppet/graph/rb_tree_map.rb +31 -23
- data/lib/puppet/graph/relationship_graph.rb +12 -12
- data/lib/puppet/graph/simple_graph.rb +8 -10
- data/lib/puppet/http/client.rb +1 -1
- data/lib/puppet/http/dns.rb +4 -4
- data/lib/puppet/http/external_client.rb +1 -1
- data/lib/puppet/http/factory.rb +1 -1
- data/lib/puppet/http/proxy.rb +15 -15
- data/lib/puppet/http/redirector.rb +6 -2
- data/lib/puppet/http/resolver.rb +2 -2
- data/lib/puppet/http/retry_after_handler.rb +2 -2
- data/lib/puppet/http/service/ca.rb +1 -1
- data/lib/puppet/http/service/compiler.rb +4 -4
- data/lib/puppet/http/service/file_server.rb +1 -1
- data/lib/puppet/http/service/report.rb +2 -2
- data/lib/puppet/http/service.rb +9 -13
- data/lib/puppet/http/session.rb +1 -1
- data/lib/puppet/http/site.rb +1 -1
- data/lib/puppet/indirector/catalog/compiler.rb +44 -45
- data/lib/puppet/indirector/catalog/rest.rb +7 -5
- data/lib/puppet/indirector/catalog/store_configs.rb +1 -1
- data/lib/puppet/indirector/exec.rb +2 -2
- data/lib/puppet/indirector/face.rb +7 -9
- data/lib/puppet/indirector/fact_search.rb +1 -1
- data/lib/puppet/indirector/facts/facter.rb +6 -6
- data/lib/puppet/indirector/facts/json.rb +1 -1
- data/lib/puppet/indirector/facts/store_configs.rb +1 -1
- data/lib/puppet/indirector/file_bucket_file/file.rb +17 -17
- data/lib/puppet/indirector/file_bucket_file/rest.rb +3 -3
- data/lib/puppet/indirector/file_content/rest.rb +1 -1
- data/lib/puppet/indirector/file_metadata/rest.rb +1 -1
- data/lib/puppet/indirector/hiera.rb +1 -1
- data/lib/puppet/indirector/indirection.rb +27 -29
- data/lib/puppet/indirector/json.rb +4 -4
- data/lib/puppet/indirector/memory.rb +2 -2
- data/lib/puppet/indirector/msgpack.rb +5 -5
- data/lib/puppet/indirector/node/store_configs.rb +1 -1
- data/lib/puppet/indirector/none.rb +1 -1
- data/lib/puppet/indirector/report/json.rb +1 -1
- data/lib/puppet/indirector/report/yaml.rb +1 -1
- data/lib/puppet/indirector/request.rb +4 -4
- data/lib/puppet/indirector/resource/ral.rb +2 -4
- data/lib/puppet/indirector/resource/store_configs.rb +1 -1
- data/lib/puppet/indirector/terminus.rb +4 -4
- data/lib/puppet/indirector/yaml.rb +3 -3
- data/lib/puppet/info_service/class_information_service.rb +5 -8
- data/lib/puppet/info_service/task_information_service.rb +6 -7
- data/lib/puppet/interface/action.rb +5 -5
- data/lib/puppet/interface/action_manager.rb +5 -5
- data/lib/puppet/interface/documentation.rb +5 -5
- data/lib/puppet/interface/face_collection.rb +7 -7
- data/lib/puppet/interface/option.rb +2 -2
- data/lib/puppet/interface/option_manager.rb +6 -6
- data/lib/puppet/interface.rb +4 -4
- data/lib/puppet/metatype/manager.rb +2 -2
- data/lib/puppet/module/plan.rb +10 -10
- data/lib/puppet/module/task.rb +8 -8
- data/lib/puppet/module.rb +39 -41
- data/lib/puppet/module_tool/applications/application.rb +10 -8
- data/lib/puppet/module_tool/applications/installer.rb +53 -50
- data/lib/puppet/module_tool/applications/unpacker.rb +6 -8
- data/lib/puppet/module_tool/applications/upgrader.rb +37 -34
- data/lib/puppet/module_tool/checksums.rb +2 -2
- data/lib/puppet/module_tool/dependency.rb +1 -1
- data/lib/puppet/module_tool/errors/base.rb +1 -1
- data/lib/puppet/module_tool/install_directory.rb +1 -1
- data/lib/puppet/module_tool/local_tarball.rb +3 -5
- data/lib/puppet/module_tool/metadata.rb +12 -8
- data/lib/puppet/module_tool/shared_behaviors.rb +27 -12
- data/lib/puppet/module_tool/tar/mini.rb +3 -3
- data/lib/puppet/module_tool.rb +4 -4
- data/lib/puppet/network/client_request.rb +5 -3
- data/lib/puppet/network/format.rb +2 -2
- data/lib/puppet/network/format_support.rb +1 -1
- data/lib/puppet/network/formats.rb +1 -1
- data/lib/puppet/network/http/api/indirected_routes.rb +24 -44
- data/lib/puppet/network/http/api/server/v3.rb +1 -1
- data/lib/puppet/network/http/connection.rb +1 -1
- data/lib/puppet/network/http/handler.rb +8 -12
- data/lib/puppet/network/http/request.rb +1 -1
- data/lib/puppet/network/http/route.rb +9 -9
- data/lib/puppet/node/environment.rb +21 -23
- data/lib/puppet/node/facts.rb +1 -1
- data/lib/puppet/node.rb +5 -5
- data/lib/puppet/pal/json_catalog_encoder.rb +1 -1
- data/lib/puppet/pal/pal_impl.rb +48 -50
- data/lib/puppet/pal/plan_signature.rb +1 -1
- data/lib/puppet/pal/task_signature.rb +1 -1
- data/lib/puppet/parameter/package_options.rb +1 -1
- data/lib/puppet/parameter/value.rb +2 -2
- data/lib/puppet/parameter/value_collection.rb +7 -7
- data/lib/puppet/parameter.rb +8 -9
- data/lib/puppet/parser/ast/block_expression.rb +2 -2
- data/lib/puppet/parser/ast/hostclass.rb +1 -1
- data/lib/puppet/parser/ast/pops_bridge.rb +3 -4
- data/lib/puppet/parser/ast/resource.rb +4 -4
- data/lib/puppet/parser/ast/resourceparam.rb +4 -4
- data/lib/puppet/parser/ast.rb +14 -15
- data/lib/puppet/parser/compiler.rb +26 -28
- data/lib/puppet/parser/functions/create_resources.rb +3 -3
- data/lib/puppet/parser/functions/fail.rb +1 -1
- data/lib/puppet/parser/functions/generate.rb +2 -2
- data/lib/puppet/parser/functions/tag.rb +1 -1
- data/lib/puppet/parser/functions.rb +2 -2
- data/lib/puppet/parser/relationship.rb +3 -1
- data/lib/puppet/parser/resource/param.rb +2 -2
- data/lib/puppet/parser/resource.rb +23 -23
- data/lib/puppet/parser/scope.rb +10 -10
- data/lib/puppet/parser/script_compiler.rb +1 -1
- data/lib/puppet/parser/templatewrapper.rb +1 -1
- data/lib/puppet/parser/type_loader.rb +10 -12
- data/lib/puppet/parser.rb +1 -1
- data/lib/puppet/pops/adaptable.rb +1 -1
- data/lib/puppet/pops/evaluator/access_operator.rb +8 -8
- data/lib/puppet/pops/evaluator/callable_signature.rb +4 -4
- data/lib/puppet/pops/evaluator/collector_transformer.rb +4 -4
- data/lib/puppet/pops/evaluator/collectors/abstract_collector.rb +7 -7
- data/lib/puppet/pops/evaluator/collectors/fixed_set_collector.rb +6 -6
- data/lib/puppet/pops/evaluator/compare_operator.rb +10 -10
- data/lib/puppet/pops/evaluator/deferred_resolver.rb +1 -1
- data/lib/puppet/pops/evaluator/epp_evaluator.rb +2 -2
- data/lib/puppet/pops/evaluator/evaluator_impl.rb +56 -60
- data/lib/puppet/pops/evaluator/literal_evaluator.rb +4 -0
- data/lib/puppet/pops/evaluator/relationship_operator.rb +2 -2
- data/lib/puppet/pops/evaluator/runtime3_converter.rb +3 -3
- data/lib/puppet/pops/evaluator/runtime3_support.rb +1 -1
- data/lib/puppet/pops/functions/dispatcher.rb +3 -3
- data/lib/puppet/pops/functions/function.rb +14 -16
- data/lib/puppet/pops/issue_reporter.rb +2 -2
- data/lib/puppet/pops/label_provider.rb +2 -2
- data/lib/puppet/pops/loader/dependency_loader.rb +3 -3
- data/lib/puppet/pops/loader/loader.rb +4 -4
- data/lib/puppet/pops/loader/loader_paths.rb +3 -3
- data/lib/puppet/pops/loader/module_loaders.rb +11 -11
- data/lib/puppet/pops/loader/ruby_data_type_instantiator.rb +1 -1
- data/lib/puppet/pops/loader/ruby_function_instantiator.rb +1 -1
- data/lib/puppet/pops/loader/ruby_legacy_function_instantiator.rb +5 -1
- data/lib/puppet/pops/loader/static_loader.rb +3 -3
- data/lib/puppet/pops/loaders.rb +3 -3
- data/lib/puppet/pops/lookup/data_dig_function_provider.rb +1 -1
- data/lib/puppet/pops/lookup/explainer.rb +2 -2
- data/lib/puppet/pops/lookup/global_data_provider.rb +1 -1
- data/lib/puppet/pops/lookup/hiera_config.rb +15 -11
- data/lib/puppet/pops/lookup/interpolation.rb +3 -3
- data/lib/puppet/pops/lookup/key_recorder.rb +1 -1
- data/lib/puppet/pops/lookup/location_resolver.rb +1 -1
- data/lib/puppet/pops/lookup/lookup_adapter.rb +7 -7
- data/lib/puppet/pops/lookup/sub_lookup.rb +1 -1
- data/lib/puppet/pops/merge_strategy.rb +6 -6
- data/lib/puppet/pops/migration/migration_checker.rb +1 -1
- data/lib/puppet/pops/model/ast_transformer.rb +9 -11
- data/lib/puppet/pops/model/factory.rb +4 -5
- data/lib/puppet/pops/parser/epp_parser.rb +2 -2
- data/lib/puppet/pops/parser/epp_support.rb +1 -1
- data/lib/puppet/pops/parser/evaluating_parser.rb +2 -2
- data/lib/puppet/pops/parser/heredoc_support.rb +4 -4
- data/lib/puppet/pops/parser/interpolation_support.rb +3 -3
- data/lib/puppet/pops/parser/lexer2.rb +20 -12
- data/lib/puppet/pops/parser/lexer_support.rb +1 -1
- data/lib/puppet/pops/parser/locator.rb +4 -4
- data/lib/puppet/pops/parser/parser_support.rb +12 -14
- data/lib/puppet/pops/parser/pn_parser.rb +3 -3
- data/lib/puppet/pops/parser/slurp_support.rb +8 -8
- data/lib/puppet/pops/patterns.rb +12 -12
- data/lib/puppet/pops/pcore.rb +1 -1
- data/lib/puppet/pops/pn.rb +2 -2
- data/lib/puppet/pops/puppet_stack.rb +1 -1
- data/lib/puppet/pops/resource/resource_type_impl.rb +1 -1
- data/lib/puppet/pops/serialization/abstract_reader.rb +2 -2
- data/lib/puppet/pops/serialization/abstract_writer.rb +3 -3
- data/lib/puppet/pops/time/timestamp.rb +1 -1
- data/lib/puppet/pops/types/class_loader.rb +4 -6
- data/lib/puppet/pops/types/iterable.rb +1 -1
- data/lib/puppet/pops/types/p_binary_type.rb +1 -1
- data/lib/puppet/pops/types/p_init_type.rb +1 -1
- data/lib/puppet/pops/types/p_object_type.rb +5 -5
- data/lib/puppet/pops/types/p_object_type_extension.rb +4 -6
- data/lib/puppet/pops/types/p_sem_ver_range_type.rb +1 -1
- data/lib/puppet/pops/types/p_sensitive_type.rb +1 -1
- data/lib/puppet/pops/types/p_timespan_type.rb +2 -2
- data/lib/puppet/pops/types/p_type_set_type.rb +10 -10
- data/lib/puppet/pops/types/p_uri_type.rb +4 -4
- data/lib/puppet/pops/types/recursion_guard.rb +4 -4
- data/lib/puppet/pops/types/ruby_generator.rb +2 -2
- data/lib/puppet/pops/types/string_converter.rb +12 -8
- data/lib/puppet/pops/types/tree_iterators.rb +4 -6
- data/lib/puppet/pops/types/type_calculator.rb +10 -10
- data/lib/puppet/pops/types/type_factory.rb +7 -3
- data/lib/puppet/pops/types/type_formatter.rb +22 -24
- data/lib/puppet/pops/types/type_mismatch_describer.rb +24 -24
- data/lib/puppet/pops/types/types.rb +28 -24
- data/lib/puppet/pops/utils.rb +38 -42
- data/lib/puppet/pops/validation/checker4_0.rb +10 -10
- data/lib/puppet/pops/validation/tasks_checker.rb +1 -1
- data/lib/puppet/pops/validation/validator_factory_4_0.rb +2 -0
- data/lib/puppet/pops/validation.rb +4 -4
- data/lib/puppet/pops/visitor.rb +2 -2
- data/lib/puppet/property/ensure.rb +12 -14
- data/lib/puppet/property/keyvalue.rb +4 -4
- data/lib/puppet/property/list.rb +4 -4
- data/lib/puppet/property/ordered_list.rb +1 -1
- data/lib/puppet/property.rb +31 -33
- data/lib/puppet/provider/exec.rb +2 -2
- data/lib/puppet/provider/file/posix.rb +19 -17
- data/lib/puppet/provider/file/windows.rb +13 -19
- data/lib/puppet/provider/group/directoryservice.rb +3 -2
- data/lib/puppet/provider/group/groupadd.rb +4 -4
- data/lib/puppet/provider/group/windows_adsi.rb +2 -2
- data/lib/puppet/provider/nameservice/directoryservice.rb +29 -29
- data/lib/puppet/provider/nameservice/objectadd.rb +2 -4
- data/lib/puppet/provider/nameservice/pw.rb +1 -2
- data/lib/puppet/provider/nameservice.rb +8 -8
- data/lib/puppet/provider/package/aix.rb +19 -19
- data/lib/puppet/provider/package/appdmg.rb +2 -2
- data/lib/puppet/provider/package/apple.rb +1 -1
- data/lib/puppet/provider/package/apt.rb +18 -18
- data/lib/puppet/provider/package/aptitude.rb +1 -3
- data/lib/puppet/provider/package/aptrpm.rb +9 -9
- data/lib/puppet/provider/package/blastwave.rb +10 -14
- data/lib/puppet/provider/package/dnfmodule.rb +3 -3
- data/lib/puppet/provider/package/dpkg.rb +11 -13
- data/lib/puppet/provider/package/fink.rb +14 -14
- data/lib/puppet/provider/package/freebsd.rb +1 -1
- data/lib/puppet/provider/package/gem.rb +12 -14
- data/lib/puppet/provider/package/macports.rb +2 -2
- data/lib/puppet/provider/package/nim.rb +10 -10
- data/lib/puppet/provider/package/openbsd.rb +22 -22
- data/lib/puppet/provider/package/opkg.rb +6 -6
- data/lib/puppet/provider/package/pacman.rb +35 -29
- data/lib/puppet/provider/package/pip.rb +25 -24
- data/lib/puppet/provider/package/pkg.rb +15 -15
- data/lib/puppet/provider/package/pkgdmg.rb +10 -10
- data/lib/puppet/provider/package/pkgin.rb +2 -2
- data/lib/puppet/provider/package/pkgng.rb +5 -5
- data/lib/puppet/provider/package/pkgutil.rb +17 -21
- data/lib/puppet/provider/package/portage.rb +59 -61
- data/lib/puppet/provider/package/ports.rb +12 -11
- data/lib/puppet/provider/package/portupgrade.rb +35 -35
- data/lib/puppet/provider/package/puppetserver_gem.rb +10 -9
- data/lib/puppet/provider/package/rpm.rb +26 -26
- data/lib/puppet/provider/package/rug.rb +7 -9
- data/lib/puppet/provider/package/sun.rb +4 -4
- data/lib/puppet/provider/package/up2date.rb +5 -7
- data/lib/puppet/provider/package/urpmi.rb +6 -6
- data/lib/puppet/provider/package/windows/exe_package.rb +7 -7
- data/lib/puppet/provider/package/windows/msi_package.rb +3 -3
- data/lib/puppet/provider/package/windows/package.rb +2 -2
- data/lib/puppet/provider/package/windows.rb +3 -5
- data/lib/puppet/provider/package/yum.rb +33 -37
- data/lib/puppet/provider/package/zypper.rb +12 -14
- data/lib/puppet/provider/package.rb +1 -1
- data/lib/puppet/provider/package_targetable.rb +1 -1
- data/lib/puppet/provider/parsedfile.rb +9 -9
- data/lib/puppet/provider/service/base.rb +16 -21
- data/lib/puppet/provider/service/bsd.rb +4 -4
- data/lib/puppet/provider/service/daemontools.rb +31 -31
- data/lib/puppet/provider/service/debian.rb +6 -6
- data/lib/puppet/provider/service/freebsd.rb +36 -36
- data/lib/puppet/provider/service/gentoo.rb +6 -6
- data/lib/puppet/provider/service/init.rb +19 -19
- data/lib/puppet/provider/service/launchd.rb +22 -22
- data/lib/puppet/provider/service/openbsd.rb +10 -10
- data/lib/puppet/provider/service/openrc.rb +1 -1
- data/lib/puppet/provider/service/openwrt.rb +3 -3
- data/lib/puppet/provider/service/rcng.rb +3 -3
- data/lib/puppet/provider/service/redhat.rb +4 -4
- data/lib/puppet/provider/service/runit.rb +6 -6
- data/lib/puppet/provider/service/service.rb +5 -7
- data/lib/puppet/provider/service/smf.rb +28 -27
- data/lib/puppet/provider/service/src.rb +7 -7
- data/lib/puppet/provider/service/systemd.rb +31 -37
- data/lib/puppet/provider/service/upstart.rb +17 -17
- data/lib/puppet/provider/service/windows.rb +7 -7
- data/lib/puppet/provider/user/aix.rb +4 -2
- data/lib/puppet/provider/user/directoryservice.rb +34 -36
- data/lib/puppet/provider/user/hpux.rb +10 -14
- data/lib/puppet/provider/user/pw.rb +1 -1
- data/lib/puppet/provider/user/user_role_add.rb +16 -18
- data/lib/puppet/provider/user/useradd.rb +7 -7
- data/lib/puppet/provider/user/windows_adsi.rb +1 -1
- data/lib/puppet/provider.rb +8 -8
- data/lib/puppet/reference/indirection.rb +3 -0
- data/lib/puppet/reference/metaparameter.rb +1 -1
- data/lib/puppet/reference/providers.rb +3 -3
- data/lib/puppet/reference/type.rb +1 -1
- data/lib/puppet/relationship.rb +4 -5
- data/lib/puppet/reports/http.rb +1 -1
- data/lib/puppet/reports/log.rb +2 -2
- data/lib/puppet/reports/store.rb +4 -4
- data/lib/puppet/reports.rb +2 -2
- data/lib/puppet/resource/catalog.rb +16 -16
- data/lib/puppet/resource/status.rb +3 -3
- data/lib/puppet/resource/type.rb +8 -8
- data/lib/puppet/resource/type_collection.rb +1 -1
- data/lib/puppet/resource.rb +41 -41
- data/lib/puppet/scheduler/scheduler.rb +1 -1
- data/lib/puppet/settings/alias_setting.rb +3 -5
- data/lib/puppet/settings/base_setting.rb +11 -11
- data/lib/puppet/settings/boolean_setting.rb +2 -2
- data/lib/puppet/settings/config_file.rb +5 -4
- data/lib/puppet/settings/duration_setting.rb +2 -2
- data/lib/puppet/settings/environment_conf.rb +3 -3
- data/lib/puppet/settings/file_or_directory_setting.rb +2 -2
- data/lib/puppet/settings/file_setting.rb +11 -11
- data/lib/puppet/settings/ini_file.rb +3 -3
- data/lib/puppet/settings/port_setting.rb +1 -1
- data/lib/puppet/settings/priority_setting.rb +2 -2
- data/lib/puppet/settings/ttl_setting.rb +2 -2
- data/lib/puppet/settings/value_translator.rb +8 -8
- data/lib/puppet/settings.rb +65 -70
- data/lib/puppet/ssl/base.rb +2 -4
- data/lib/puppet/ssl/certificate_request.rb +18 -22
- data/lib/puppet/ssl/certificate_request_attributes.rb +3 -3
- data/lib/puppet/ssl/oids.rb +2 -2
- data/lib/puppet/ssl/openssl_loader.rb +4 -4
- data/lib/puppet/syntax_checkers/base64.rb +3 -3
- data/lib/puppet/syntax_checkers/epp.rb +3 -3
- data/lib/puppet/syntax_checkers/json.rb +3 -3
- data/lib/puppet/syntax_checkers/pp.rb +3 -3
- data/lib/puppet/transaction/additional_resource_generator.rb +1 -1
- data/lib/puppet/transaction/event.rb +2 -2
- data/lib/puppet/transaction/event_manager.rb +5 -5
- data/lib/puppet/transaction/persistence.rb +12 -14
- data/lib/puppet/transaction/report.rb +4 -4
- data/lib/puppet/transaction/resource_harness.rb +2 -2
- data/lib/puppet/transaction.rb +14 -18
- data/lib/puppet/type/component.rb +3 -3
- data/lib/puppet/type/exec.rb +43 -45
- data/lib/puppet/type/file/checksum_value.rb +1 -1
- data/lib/puppet/type/file/content.rb +6 -6
- data/lib/puppet/type/file/ctime.rb +2 -2
- data/lib/puppet/type/file/data_sync.rb +3 -3
- data/lib/puppet/type/file/ensure.rb +16 -15
- data/lib/puppet/type/file/mode.rb +9 -9
- data/lib/puppet/type/file/mtime.rb +2 -2
- data/lib/puppet/type/file/selcontext.rb +14 -14
- data/lib/puppet/type/file/source.rb +19 -21
- data/lib/puppet/type/file/target.rb +11 -11
- data/lib/puppet/type/file.rb +21 -21
- data/lib/puppet/type/filebucket.rb +3 -3
- data/lib/puppet/type/group.rb +3 -3
- data/lib/puppet/type/notify.rb +2 -2
- data/lib/puppet/type/package.rb +4 -4
- data/lib/puppet/type/resources.rb +6 -6
- data/lib/puppet/type/schedule.rb +9 -9
- data/lib/puppet/type/service.rb +6 -8
- data/lib/puppet/type/tidy.rb +22 -24
- data/lib/puppet/type/user.rb +13 -13
- data/lib/puppet/type.rb +76 -88
- data/lib/puppet/util/at_fork/solaris.rb +33 -37
- data/lib/puppet/util/autoload.rb +2 -2
- data/lib/puppet/util/backups.rb +9 -9
- data/lib/puppet/util/character_encoding.rb +7 -6
- data/lib/puppet/util/checksums.rb +2 -2
- data/lib/puppet/util/classgen.rb +8 -8
- data/lib/puppet/util/colors.rb +1 -1
- data/lib/puppet/util/command_line/puppet_option_parser.rb +1 -1
- data/lib/puppet/util/command_line/trollop.rb +42 -46
- data/lib/puppet/util/command_line.rb +2 -2
- data/lib/puppet/util/constant_inflector.rb +2 -2
- data/lib/puppet/util/diff.rb +19 -21
- data/lib/puppet/util/docs.rb +2 -2
- data/lib/puppet/util/errors.rb +9 -9
- data/lib/puppet/util/execution.rb +32 -9
- data/lib/puppet/util/feature.rb +1 -1
- data/lib/puppet/util/fileparsing.rb +12 -16
- data/lib/puppet/util/filetype.rb +36 -40
- data/lib/puppet/util/inifile.rb +6 -12
- data/lib/puppet/util/ldap/connection.rb +1 -1
- data/lib/puppet/util/ldap/manager.rb +10 -12
- data/lib/puppet/util/lockfile.rb +6 -8
- data/lib/puppet/util/log/destination.rb +2 -2
- data/lib/puppet/util/log/destinations.rb +4 -4
- data/lib/puppet/util/log.rb +12 -9
- data/lib/puppet/util/logging.rb +11 -11
- data/lib/puppet/util/metric.rb +3 -3
- data/lib/puppet/util/monkey_patches.rb +5 -7
- data/lib/puppet/util/network_device/config.rb +3 -3
- data/lib/puppet/util/package/version/debian.rb +27 -28
- data/lib/puppet/util/package/version/pip.rb +5 -5
- data/lib/puppet/util/package/version/range/eq.rb +1 -1
- data/lib/puppet/util/package/version/rpm.rb +1 -1
- data/lib/puppet/util/package.rb +2 -2
- data/lib/puppet/util/pidlock.rb +2 -2
- data/lib/puppet/util/platform.rb +1 -1
- data/lib/puppet/util/plist.rb +8 -10
- data/lib/puppet/util/posix.rb +17 -17
- data/lib/puppet/util/profiler/aggregate.rb +1 -1
- data/lib/puppet/util/provider_features.rb +3 -3
- data/lib/puppet/util/rdoc/code_objects.rb +3 -3
- data/lib/puppet/util/rdoc/generators/puppet_generator.rb +63 -64
- data/lib/puppet/util/rdoc/generators/template/puppet/puppet.rb +23 -23
- data/lib/puppet/util/rdoc/parser/puppet_parser_core.rb +12 -12
- data/lib/puppet/util/rdoc/parser/puppet_parser_rdoc2.rb +1 -1
- data/lib/puppet/util/rdoc/parser.rb +1 -1
- data/lib/puppet/util/reference.rb +13 -9
- data/lib/puppet/util/retry_action.rb +1 -1
- data/lib/puppet/util/rpm_compare.rb +17 -18
- data/lib/puppet/util/rubygems.rb +1 -1
- data/lib/puppet/util/selinux.rb +7 -7
- data/lib/puppet/util/storage.rb +10 -12
- data/lib/puppet/util/suidmanager.rb +18 -19
- data/lib/puppet/util/symbolic_file_mode.rb +71 -75
- data/lib/puppet/util/tag_set.rb +2 -2
- data/lib/puppet/util/tagging.rb +8 -10
- data/lib/puppet/util/terminal.rb +4 -4
- data/lib/puppet/util/user_attr.rb +7 -7
- data/lib/puppet/util/watcher.rb +3 -5
- data/lib/puppet/util/windows/access_control_list.rb +1 -1
- data/lib/puppet/util/windows/adsi.rb +42 -42
- data/lib/puppet/util/windows/daemon.rb +64 -68
- data/lib/puppet/util/windows/error.rb +2 -2
- data/lib/puppet/util/windows/file.rb +18 -25
- data/lib/puppet/util/windows/monkey_patches/process.rb +1 -1
- data/lib/puppet/util/windows/principal.rb +8 -8
- data/lib/puppet/util/windows/process.rb +16 -28
- data/lib/puppet/util/windows/registry.rb +16 -15
- data/lib/puppet/util/windows/root_certs.rb +2 -2
- data/lib/puppet/util/windows/security.rb +31 -31
- data/lib/puppet/util/windows/service.rb +11 -11
- data/lib/puppet/util/windows/sid.rb +8 -8
- data/lib/puppet/util/windows/user.rb +18 -20
- data/lib/puppet/util/yaml.rb +1 -1
- data/lib/puppet/util.rb +55 -46
- data/lib/puppet/version.rb +2 -2
- data/lib/puppet/x509/pem_store.rb +1 -1
- data/lib/puppet.rb +3 -3
- data/man/man5/puppet.conf.5 +10 -2
- data/man/man8/puppet-agent.8 +1 -1
- data/man/man8/puppet-apply.8 +1 -1
- data/man/man8/puppet-catalog.8 +1 -1
- data/man/man8/puppet-config.8 +1 -1
- data/man/man8/puppet-describe.8 +1 -1
- data/man/man8/puppet-device.8 +1 -1
- data/man/man8/puppet-doc.8 +1 -1
- data/man/man8/puppet-epp.8 +1 -1
- data/man/man8/puppet-facts.8 +1 -1
- data/man/man8/puppet-filebucket.8 +1 -1
- data/man/man8/puppet-generate.8 +1 -1
- data/man/man8/puppet-help.8 +1 -1
- data/man/man8/puppet-lookup.8 +1 -1
- data/man/man8/puppet-module.8 +1 -1
- data/man/man8/puppet-node.8 +1 -1
- data/man/man8/puppet-parser.8 +1 -1
- data/man/man8/puppet-plugin.8 +1 -1
- data/man/man8/puppet-report.8 +1 -1
- data/man/man8/puppet-resource.8 +5 -1
- data/man/man8/puppet-script.8 +1 -1
- data/man/man8/puppet-ssl.8 +1 -1
- data/man/man8/puppet.8 +2 -2
- metadata +2 -2
data/lib/puppet/property.rb
CHANGED
@@ -203,21 +203,19 @@ class Puppet::Property < Puppet::Parameter
|
|
203
203
|
# @raise [Puppet::DevError] if there were issues formatting the message
|
204
204
|
#
|
205
205
|
def change_to_s(current_value, newvalue)
|
206
|
-
|
207
|
-
|
208
|
-
|
209
|
-
|
210
|
-
|
211
|
-
|
212
|
-
return "#{name} changed #{is_to_s(current_value)} to #{should_to_s(newvalue)}"
|
213
|
-
end
|
214
|
-
rescue Puppet::Error
|
215
|
-
raise
|
216
|
-
rescue => detail
|
217
|
-
message = _("Could not convert change '%{name}' to string: %{detail}") % { name: name, detail: detail }
|
218
|
-
Puppet.log_exception(detail, message)
|
219
|
-
raise Puppet::DevError, message, detail.backtrace
|
206
|
+
if current_value == :absent
|
207
|
+
"defined '#{name}' as #{should_to_s(newvalue)}"
|
208
|
+
elsif newvalue == :absent or newvalue == [:absent]
|
209
|
+
"undefined '#{name}' from #{is_to_s(current_value)}"
|
210
|
+
else
|
211
|
+
"#{name} changed #{is_to_s(current_value)} to #{should_to_s(newvalue)}"
|
220
212
|
end
|
213
|
+
rescue Puppet::Error
|
214
|
+
raise
|
215
|
+
rescue => detail
|
216
|
+
message = _("Could not convert change '%{name}' to string: %{detail}") % { name: name, detail: detail }
|
217
|
+
Puppet.log_exception(detail, message)
|
218
|
+
raise Puppet::DevError, message, detail.backtrace
|
221
219
|
end
|
222
220
|
|
223
221
|
# Produces the name of the event to use to describe a change of this property's value.
|
@@ -227,17 +225,17 @@ class Puppet::Property < Puppet::Parameter
|
|
227
225
|
# @return [String] the name of the event that describes the change
|
228
226
|
#
|
229
227
|
def event_name
|
230
|
-
value =
|
228
|
+
value = should
|
231
229
|
|
232
230
|
event_name = self.class.value_option(value, :event) and return event_name
|
233
231
|
|
234
232
|
name == :ensure or return (name.to_s + "_changed").to_sym
|
235
233
|
|
236
|
-
|
237
|
-
|
238
|
-
|
239
|
-
|
240
|
-
|
234
|
+
(resource.type.to_s + case value
|
235
|
+
when :present; "_created"
|
236
|
+
when :absent; "_removed"
|
237
|
+
else "_changed"
|
238
|
+
end).to_sym
|
241
239
|
end
|
242
240
|
|
243
241
|
# Produces an event describing a change of this property.
|
@@ -308,7 +306,7 @@ class Puppet::Property < Puppet::Parameter
|
|
308
306
|
# @api public
|
309
307
|
#
|
310
308
|
def insync?(is)
|
311
|
-
|
309
|
+
devfail "#{self.class.name}'s should is not array" unless @should.is_a?(Array)
|
312
310
|
|
313
311
|
# an empty array is analogous to no should values
|
314
312
|
return true if @should.empty?
|
@@ -333,14 +331,14 @@ class Puppet::Property < Puppet::Parameter
|
|
333
331
|
#
|
334
332
|
# This does mean that property equality is not commutative, and will not
|
335
333
|
# work unless the `is` value is carefully arranged to match the should.
|
336
|
-
|
334
|
+
(is == @should or is == @should.map(&:to_s))
|
337
335
|
|
338
336
|
# When we stop being idiots about this, and actually have meaningful
|
339
337
|
# semantics, this version is the thing we actually want to do.
|
340
338
|
#
|
341
339
|
# return is.zip(@should).all? {|a, b| property_matches?(a, b) }
|
342
340
|
else
|
343
|
-
|
341
|
+
@should.any? { |want| property_matches?(is, want) }
|
344
342
|
end
|
345
343
|
end
|
346
344
|
|
@@ -371,7 +369,7 @@ class Puppet::Property < Puppet::Parameter
|
|
371
369
|
# avoid it
|
372
370
|
# TRANSLATORS 'insync_values?' should not be translated
|
373
371
|
msg = _("Unknown failure using insync_values? on type: %{type} / property: %{name} to compare values %{should} and %{is}") %
|
374
|
-
{ type:
|
372
|
+
{ type: resource.ref, name: name, should: should, is: is }
|
375
373
|
Puppet.info(msg)
|
376
374
|
|
377
375
|
# Return nil, ie. unknown
|
@@ -486,9 +484,9 @@ class Puppet::Property < Puppet::Parameter
|
|
486
484
|
# Set a name for looking up associated options like the event.
|
487
485
|
name = self.class.value_name(value)
|
488
486
|
method = self.class.value_option(name, :method)
|
489
|
-
if method &&
|
487
|
+
if method && respond_to?(method)
|
490
488
|
begin
|
491
|
-
|
489
|
+
send(method)
|
492
490
|
rescue Puppet::Error
|
493
491
|
raise
|
494
492
|
rescue => detail
|
@@ -503,7 +501,7 @@ class Puppet::Property < Puppet::Parameter
|
|
503
501
|
if block
|
504
502
|
# FIXME It'd be better here to define a method, so that
|
505
503
|
# the blocks could return values.
|
506
|
-
|
504
|
+
instance_eval(&block)
|
507
505
|
else
|
508
506
|
call_provider(value)
|
509
507
|
end
|
@@ -526,12 +524,12 @@ class Puppet::Property < Puppet::Parameter
|
|
526
524
|
def should
|
527
525
|
return nil unless defined?(@should)
|
528
526
|
|
529
|
-
|
527
|
+
devfail "should for #{self.class.name} on #{resource.name} is not an array" unless @should.is_a?(Array)
|
530
528
|
|
531
529
|
if match_all?
|
532
|
-
|
530
|
+
@should.collect { |val| unmunge(val) }
|
533
531
|
else
|
534
|
-
|
532
|
+
unmunge(@should[0])
|
535
533
|
end
|
536
534
|
end
|
537
535
|
|
@@ -549,7 +547,7 @@ class Puppet::Property < Puppet::Parameter
|
|
549
547
|
@shouldorig = values
|
550
548
|
|
551
549
|
values.each { |val| validate(val) }
|
552
|
-
@should = values.collect { |val|
|
550
|
+
@should = values.collect { |val| munge(val) }
|
553
551
|
end
|
554
552
|
|
555
553
|
# Produces a pretty printing string for the given value.
|
@@ -591,7 +589,7 @@ class Puppet::Property < Puppet::Parameter
|
|
591
589
|
features = self.class.value_option(self.class.value_name(value), :required_features)
|
592
590
|
if features
|
593
591
|
features = Array(features)
|
594
|
-
needed_features = features.collect
|
592
|
+
needed_features = features.collect(&:to_s).join(", ")
|
595
593
|
unless provider.satisfies?(features)
|
596
594
|
# TRANSLATORS 'Provider' refers to a Puppet provider class
|
597
595
|
raise ArgumentError, _("Provider %{provider} must have features '%{needed_features}' to set '%{property}' to '%{value}'") %
|
@@ -602,7 +600,7 @@ class Puppet::Property < Puppet::Parameter
|
|
602
600
|
|
603
601
|
# @return [Object, nil] Returns the wanted _(should)_ value of this property.
|
604
602
|
def value
|
605
|
-
|
603
|
+
should
|
606
604
|
end
|
607
605
|
|
608
606
|
# (see #should=)
|
data/lib/puppet/provider/exec.rb
CHANGED
@@ -45,7 +45,7 @@ class Puppet::Provider::Exec < Puppet::Provider
|
|
45
45
|
|
46
46
|
checkexe(command)
|
47
47
|
|
48
|
-
debug "Executing#{check ?
|
48
|
+
debug "Executing#{check ? ' check' : ''} '#{sensitive ? '[redacted]' : command}'"
|
49
49
|
|
50
50
|
# Ruby 2.1 and later interrupt execution in a way that bypasses error
|
51
51
|
# handling by default. Passing Timeout::Error causes an exception to be
|
@@ -82,7 +82,7 @@ class Puppet::Provider::Exec < Puppet::Provider
|
|
82
82
|
# Return output twice as processstatus was returned before, but only exitstatus was ever called.
|
83
83
|
# Output has the exitstatus on it so it is returned instead. This is here twice as changing this
|
84
84
|
# would result in a change to the underlying API.
|
85
|
-
|
85
|
+
[output, output]
|
86
86
|
end
|
87
87
|
|
88
88
|
def extractexe(command)
|
@@ -27,15 +27,17 @@ Puppet::Type.type(:file).provide :posix do
|
|
27
27
|
end
|
28
28
|
|
29
29
|
if user.uid == ""
|
30
|
-
|
30
|
+
nil
|
31
31
|
else
|
32
|
-
|
32
|
+
user.name
|
33
33
|
end
|
34
34
|
end
|
35
35
|
|
36
36
|
# Determine if the user is valid, and if so, return the UID
|
37
37
|
def name2uid(value)
|
38
|
-
Integer(value)
|
38
|
+
Integer(value)
|
39
|
+
rescue
|
40
|
+
uid(value) || false
|
39
41
|
end
|
40
42
|
|
41
43
|
def gid2name(id)
|
@@ -49,14 +51,16 @@ Puppet::Type.type(:file).provide :posix do
|
|
49
51
|
end
|
50
52
|
|
51
53
|
if group.gid == ""
|
52
|
-
|
54
|
+
nil
|
53
55
|
else
|
54
|
-
|
56
|
+
group.name
|
55
57
|
end
|
56
58
|
end
|
57
59
|
|
58
60
|
def name2gid(value)
|
59
|
-
Integer(value)
|
61
|
+
Integer(value)
|
62
|
+
rescue
|
63
|
+
gid(value) || false
|
60
64
|
end
|
61
65
|
|
62
66
|
def owner
|
@@ -71,7 +75,7 @@ Puppet::Type.type(:file).provide :posix do
|
|
71
75
|
# large UIDs instead of negative ones. This isn't a Ruby bug,
|
72
76
|
# it's an OS X bug, since it shows up in perl, too.
|
73
77
|
if currentvalue > Puppet[:maximum_uid].to_i
|
74
|
-
|
78
|
+
warning _("Apparently using negative UID (%{currentvalue}) on a platform that does not consistently handle them") % { currentvalue: currentvalue }
|
75
79
|
currentvalue = :silly
|
76
80
|
end
|
77
81
|
|
@@ -103,7 +107,7 @@ Puppet::Type.type(:file).provide :posix do
|
|
103
107
|
# large GIDs instead of negative ones. This isn't a Ruby bug,
|
104
108
|
# it's an OS X bug, since it shows up in perl, too.
|
105
109
|
if currentvalue > Puppet[:maximum_uid].to_i
|
106
|
-
|
110
|
+
warning _("Apparently using negative GID (%{currentvalue}) on a platform that does not consistently handle them") % { currentvalue: currentvalue }
|
107
111
|
currentvalue = :silly
|
108
112
|
end
|
109
113
|
|
@@ -128,19 +132,17 @@ Puppet::Type.type(:file).provide :posix do
|
|
128
132
|
def mode
|
129
133
|
stat = resource.stat
|
130
134
|
if stat
|
131
|
-
|
135
|
+
(stat.mode & 0o07777).to_s(8).rjust(4, '0')
|
132
136
|
else
|
133
|
-
|
137
|
+
:absent
|
134
138
|
end
|
135
139
|
end
|
136
140
|
|
137
141
|
def mode=(value)
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
raise error
|
144
|
-
end
|
142
|
+
File.chmod(value.to_i(8), resource[:path])
|
143
|
+
rescue => detail
|
144
|
+
error = Puppet::Error.new(_("failed to set mode %{mode} on %{path}: %{message}") % { mode: mode, path: resource[:path], message: detail.message })
|
145
|
+
error.set_backtrace detail.backtrace
|
146
|
+
raise error
|
145
147
|
end
|
146
148
|
end
|
@@ -43,11 +43,9 @@ Puppet::Type.type(:file).provide :windows do
|
|
43
43
|
end
|
44
44
|
|
45
45
|
def owner=(should)
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
raise Puppet::Error, _("Failed to set owner to '%{should}': %{detail}") % { should: should, detail: detail }, detail.backtrace
|
50
|
-
end
|
46
|
+
set_owner(should, resolved_path)
|
47
|
+
rescue => detail
|
48
|
+
raise Puppet::Error, _("Failed to set owner to '%{should}': %{detail}") % { should: should, detail: detail }, detail.backtrace
|
51
49
|
end
|
52
50
|
|
53
51
|
def group
|
@@ -57,11 +55,9 @@ Puppet::Type.type(:file).provide :windows do
|
|
57
55
|
end
|
58
56
|
|
59
57
|
def group=(should)
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
raise Puppet::Error, _("Failed to set group to '%{should}': %{detail}") % { should: should, detail: detail }, detail.backtrace
|
64
|
-
end
|
58
|
+
set_group(should, resolved_path)
|
59
|
+
rescue => detail
|
60
|
+
raise Puppet::Error, _("Failed to set group to '%{should}': %{detail}") % { should: should, detail: detail }, detail.backtrace
|
65
61
|
end
|
66
62
|
|
67
63
|
def mode
|
@@ -74,15 +70,13 @@ Puppet::Type.type(:file).provide :windows do
|
|
74
70
|
end
|
75
71
|
|
76
72
|
def mode=(value)
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
raise error
|
85
|
-
end
|
73
|
+
managing_owner = !resource[:owner].nil?
|
74
|
+
managing_group = !resource[:group].nil?
|
75
|
+
set_mode(value.to_i(8), resource[:path], true, managing_owner, managing_group)
|
76
|
+
rescue => detail
|
77
|
+
error = Puppet::Error.new(_("failed to set mode %{mode} on %{path}: %{message}") % { mode: mode, path: resource[:path], message: detail.message })
|
78
|
+
error.set_backtrace detail.backtrace
|
79
|
+
raise error
|
86
80
|
end
|
87
81
|
|
88
82
|
def validate
|
@@ -14,10 +14,11 @@ Puppet::Type.type(:group).provide :directoryservice, :parent => Puppet::Provider
|
|
14
14
|
|
15
15
|
def members_insync?(current, should)
|
16
16
|
return false unless current
|
17
|
+
|
17
18
|
if current == :absent
|
18
|
-
|
19
|
+
should.empty?
|
19
20
|
else
|
20
|
-
|
21
|
+
current.sort.uniq == should.sort.uniq
|
21
22
|
end
|
22
23
|
end
|
23
24
|
end
|
@@ -11,7 +11,7 @@ Puppet::Type.type(:group).provide :groupadd, :parent => Puppet::Provider::NameSe
|
|
11
11
|
|
12
12
|
commands :add => "groupadd", :delete => "groupdel", :modify => "groupmod"
|
13
13
|
|
14
|
-
has_feature :system_groups unless %w
|
14
|
+
has_feature :system_groups unless %w[HP-UX Solaris].include? Puppet.runtime[:facter].value('os.name')
|
15
15
|
|
16
16
|
verify :gid, _("GID must be an integer") do |value|
|
17
17
|
value.is_a? Integer
|
@@ -47,11 +47,11 @@ Puppet::Type.type(:group).provide :groupadd, :parent => Puppet::Provider::NameSe
|
|
47
47
|
# because by default duplicates are allowed. This check is
|
48
48
|
# to ensure consistent behaviour of the useradd provider when
|
49
49
|
# using both useradd and luseradd
|
50
|
-
if
|
50
|
+
if !@resource.allowdupe? and @resource.forcelocal?
|
51
51
|
if @resource.should(:gid) and findgroup(:gid, @resource.should(:gid).to_s)
|
52
52
|
raise(Puppet::Error, _("GID %{resource} already exists, use allowdupe to force group creation") % { resource: @resource.should(:gid).to_s })
|
53
53
|
end
|
54
|
-
elsif @resource.allowdupe? and
|
54
|
+
elsif @resource.allowdupe? and !@resource.forcelocal?
|
55
55
|
return ["-o"]
|
56
56
|
end
|
57
57
|
[]
|
@@ -144,7 +144,7 @@ Puppet::Type.type(:group).provide :groupadd, :parent => Puppet::Provider::NameSe
|
|
144
144
|
|
145
145
|
unless @groups
|
146
146
|
unless Puppet::FileSystem.exist?(group_file)
|
147
|
-
raise Puppet::Error
|
147
|
+
raise Puppet::Error, "Forcelocal set for group resource '#{resource[:name]}', but #{group_file} does not exist"
|
148
148
|
end
|
149
149
|
|
150
150
|
@groups = []
|
@@ -44,7 +44,7 @@ Puppet::Type.type(:group).provide :windows_adsi do
|
|
44
44
|
|
45
45
|
users = users.map do |user_name|
|
46
46
|
sid = Puppet::Util::Windows::SID.name_to_principal(user_name)
|
47
|
-
|
47
|
+
unless sid
|
48
48
|
resource.debug("#{user_name} (unresolvable to SID)")
|
49
49
|
next user_name
|
50
50
|
end
|
@@ -57,7 +57,7 @@ Puppet::Type.type(:group).provide :windows_adsi do
|
|
57
57
|
resource.debug("#{sid.domain}\\#{account} (#{sid.sid})")
|
58
58
|
sid.domain ? "#{sid.domain}\\#{account}" : account
|
59
59
|
end
|
60
|
-
|
60
|
+
users.join(',')
|
61
61
|
end
|
62
62
|
|
63
63
|
def member_valid?(user_name)
|
@@ -79,7 +79,7 @@ class Puppet::Provider::NameService::DirectoryService < Puppet::Provider::NameSe
|
|
79
79
|
# Create a new instance of this Puppet::Type for each object present
|
80
80
|
# on the system.
|
81
81
|
list_all_present.collect do |name_string|
|
82
|
-
|
82
|
+
new(single_report(name_string, *type_property_array))
|
83
83
|
end
|
84
84
|
end
|
85
85
|
|
@@ -119,7 +119,7 @@ class Puppet::Provider::NameService::DirectoryService < Puppet::Provider::NameSe
|
|
119
119
|
attribute_hash = {}
|
120
120
|
input_hash.each_key do |key|
|
121
121
|
ds_attribute = key.sub("dsAttrTypeStandard:", "")
|
122
|
-
next unless
|
122
|
+
next unless ds_to_ns_attribute_map.keys.include?(ds_attribute) and type_properties.include? ds_to_ns_attribute_map[ds_attribute]
|
123
123
|
|
124
124
|
ds_value = input_hash[key]
|
125
125
|
case ds_to_ns_attribute_map[ds_attribute]
|
@@ -144,7 +144,7 @@ class Puppet::Provider::NameService::DirectoryService < Puppet::Provider::NameSe
|
|
144
144
|
# stored in the user record. It is stored at a path that involves the
|
145
145
|
# UUID of the user record for non-Mobile local accounts.
|
146
146
|
# Mobile Accounts are out of scope for this provider for now
|
147
|
-
attribute_hash[:password] =
|
147
|
+
attribute_hash[:password] = get_password(attribute_hash[:guid], attribute_hash[:name]) if @resource_type.validproperties.include?(:password) and Puppet.features.root?
|
148
148
|
attribute_hash
|
149
149
|
end
|
150
150
|
|
@@ -168,9 +168,9 @@ class Puppet::Provider::NameService::DirectoryService < Puppet::Provider::NameSe
|
|
168
168
|
fail(_("Could not get report. command execution failed."))
|
169
169
|
end
|
170
170
|
|
171
|
-
dscl_plist =
|
171
|
+
dscl_plist = parse_dscl_plist_data(dscl_output)
|
172
172
|
|
173
|
-
|
173
|
+
generate_attribute_hash(dscl_plist, *type_properties)
|
174
174
|
end
|
175
175
|
|
176
176
|
def self.get_exec_preamble(ds_action, resource_name = nil)
|
@@ -264,8 +264,8 @@ class Puppet::Provider::NameService::DirectoryService < Puppet::Provider::NameSe
|
|
264
264
|
# string. The password_hash provided as a resource attribute is a
|
265
265
|
# hex value. We need to convert the Base64 encoded string to a
|
266
266
|
# hex value and provide it back to Puppet.
|
267
|
-
|
268
|
-
|
267
|
+
converted_hash_plist['SALTED-SHA512'].unpack1("H*")
|
268
|
+
|
269
269
|
end
|
270
270
|
end
|
271
271
|
end
|
@@ -325,7 +325,7 @@ class Puppet::Provider::NameService::DirectoryService < Puppet::Provider::NameSe
|
|
325
325
|
else
|
326
326
|
value = autogen(name)
|
327
327
|
if value
|
328
|
-
|
328
|
+
send(name.to_s + "=", value)
|
329
329
|
else
|
330
330
|
next
|
331
331
|
end
|
@@ -361,7 +361,7 @@ class Puppet::Provider::NameService::DirectoryService < Puppet::Provider::NameSe
|
|
361
361
|
# If we are meant to be authoritative for the group membership
|
362
362
|
# then remove all existing members who haven't been specified
|
363
363
|
# in the manifest.
|
364
|
-
remove_unwanted_members(current_members, value) if @resource[:auth_membership] and
|
364
|
+
remove_unwanted_members(current_members, value) if @resource[:auth_membership] and !current_members.nil?
|
365
365
|
|
366
366
|
# if they're not a member, make them one.
|
367
367
|
add_members(current_members, value)
|
@@ -395,7 +395,7 @@ class Puppet::Provider::NameService::DirectoryService < Puppet::Provider::NameSe
|
|
395
395
|
# requiring people install a UUID library that doesn't come with the system.
|
396
396
|
# This should be revisited if Puppet starts managing UUIDs for other platform
|
397
397
|
# user records.
|
398
|
-
guid = %x
|
398
|
+
guid = %x(/usr/bin/uuidgen).chomp
|
399
399
|
|
400
400
|
exec_arg_vector = self.class.get_exec_preamble("-create", @resource[:name])
|
401
401
|
exec_arg_vector << ns_to_ds_attribute_map[:guid] << guid
|
@@ -421,7 +421,7 @@ class Puppet::Provider::NameService::DirectoryService < Puppet::Provider::NameSe
|
|
421
421
|
if property == :uid and value.nil?
|
422
422
|
value = self.class.next_system_id('uid')
|
423
423
|
end
|
424
|
-
if value != "" and
|
424
|
+
if value != "" and !value.nil?
|
425
425
|
if property == :members
|
426
426
|
add_members(nil, value)
|
427
427
|
else
|
@@ -442,19 +442,19 @@ class Puppet::Provider::NameService::DirectoryService < Puppet::Provider::NameSe
|
|
442
442
|
|
443
443
|
def remove_unwanted_members(current_members, new_members)
|
444
444
|
current_members.each do |member|
|
445
|
-
if
|
446
|
-
|
445
|
+
next if new_members.flatten.include?(member)
|
446
|
+
|
447
|
+
cmd = [:dseditgroup, "-o", "edit", "-n", ".", "-d", member, @resource[:name]]
|
448
|
+
begin
|
449
|
+
execute(cmd)
|
450
|
+
rescue Puppet::ExecutionFailure
|
451
|
+
# TODO: We're falling back to removing the member using dscl due to rdar://8481241
|
452
|
+
# This bug causes dseditgroup to fail to remove a member if that member doesn't exist
|
453
|
+
cmd = [:dscl, ".", "-delete", "/Groups/#{@resource.name}", "GroupMembership", member]
|
447
454
|
begin
|
448
455
|
execute(cmd)
|
449
|
-
rescue Puppet::ExecutionFailure
|
450
|
-
|
451
|
-
# This bug causes dseditgroup to fail to remove a member if that member doesn't exist
|
452
|
-
cmd = [:dscl, ".", "-delete", "/Groups/#{@resource.name}", "GroupMembership", member]
|
453
|
-
begin
|
454
|
-
execute(cmd)
|
455
|
-
rescue Puppet::ExecutionFailure => detail
|
456
|
-
fail(_("Could not remove %{member} from group: %{resource}, %{detail}") % { member: member, resource: @resource.name, detail: detail })
|
457
|
-
end
|
456
|
+
rescue Puppet::ExecutionFailure => detail
|
457
|
+
fail(_("Could not remove %{member} from group: %{resource}, %{detail}") % { member: member, resource: @resource.name, detail: detail })
|
458
458
|
end
|
459
459
|
end
|
460
460
|
end
|
@@ -462,13 +462,13 @@ class Puppet::Provider::NameService::DirectoryService < Puppet::Provider::NameSe
|
|
462
462
|
|
463
463
|
def add_members(current_members, new_members)
|
464
464
|
new_members.flatten.each do |new_member|
|
465
|
-
|
466
|
-
|
467
|
-
|
468
|
-
|
469
|
-
|
470
|
-
|
471
|
-
|
465
|
+
next unless current_members.nil? or !current_members.include?(new_member)
|
466
|
+
|
467
|
+
cmd = [:dseditgroup, "-o", "edit", "-n", ".", "-a", new_member, @resource[:name]]
|
468
|
+
begin
|
469
|
+
execute(cmd)
|
470
|
+
rescue Puppet::ExecutionFailure => detail
|
471
|
+
fail(_("Could not add %{new_member} to group: %{name}, %{detail}") % { new_member: new_member, name: @resource.name, detail: detail })
|
472
472
|
end
|
473
473
|
end
|
474
474
|
end
|
@@ -15,10 +15,8 @@ class Puppet::Provider::NameService
|
|
15
15
|
end
|
16
16
|
|
17
17
|
def posixmethod(name)
|
18
|
-
name
|
19
|
-
|
20
|
-
|
21
|
-
method
|
18
|
+
name = name.intern if name.is_a? String
|
19
|
+
self.class.option(name, :method) || name
|
22
20
|
end
|
23
21
|
end
|
24
22
|
end
|
@@ -98,7 +98,7 @@ class Puppet::Provider::NameService < Puppet::Provider
|
|
98
98
|
private
|
99
99
|
|
100
100
|
def op(property)
|
101
|
-
@ops[property.name] ||
|
101
|
+
@ops[property.name] || "-#{property.name}"
|
102
102
|
end
|
103
103
|
end
|
104
104
|
|
@@ -108,15 +108,15 @@ class Puppet::Provider::NameService < Puppet::Provider
|
|
108
108
|
field = field.intern
|
109
109
|
id_generators = { :user => :uid, :group => :gid }
|
110
110
|
if id_generators[@resource.class.name] == field
|
111
|
-
|
111
|
+
self.class.autogen_id(field, @resource.class.name)
|
112
112
|
else
|
113
113
|
value = self.class.autogen_default(field)
|
114
114
|
if value
|
115
|
-
|
115
|
+
value
|
116
116
|
elsif respond_to?("autogen_#{field}")
|
117
|
-
|
117
|
+
send("autogen_#{field}")
|
118
118
|
else
|
119
|
-
|
119
|
+
nil
|
120
120
|
end
|
121
121
|
end
|
122
122
|
end
|
@@ -142,7 +142,7 @@ class Puppet::Provider::NameService < Puppet::Provider
|
|
142
142
|
# loop. Thanks, Ruby, for your awesome abstractions. --daniel 2012-03-23
|
143
143
|
highest = []
|
144
144
|
Puppet::Etc.send(database) { |entry| highest << entry.send(method) }
|
145
|
-
highest = highest.reject { |x| x >
|
145
|
+
highest = highest.reject { |x| x > 65_000 }.max
|
146
146
|
|
147
147
|
@prevauto = highest || 1000
|
148
148
|
end
|
@@ -160,7 +160,7 @@ class Puppet::Provider::NameService < Puppet::Provider
|
|
160
160
|
|
161
161
|
begin
|
162
162
|
sensitive = has_sensitive_data?
|
163
|
-
execute(
|
163
|
+
execute(addcmd, { :failonfail => true, :combine => true, :custom_environment => @custom_environment, :sensitive => sensitive })
|
164
164
|
if feature?(:manages_password_age) && (cmd = passcmd)
|
165
165
|
execute(cmd, { :failonfail => true, :combine => true, :custom_environment => @custom_environment, :sensitive => sensitive })
|
166
166
|
end
|
@@ -177,7 +177,7 @@ class Puppet::Provider::NameService < Puppet::Provider
|
|
177
177
|
end
|
178
178
|
|
179
179
|
begin
|
180
|
-
execute(
|
180
|
+
execute(deletecmd, { :failonfail => true, :combine => true, :custom_environment => @custom_environment })
|
181
181
|
rescue Puppet::ExecutionFailure => detail
|
182
182
|
raise Puppet::Error, _("Could not delete %{resource} %{name}: %{detail}") % { resource: @resource.class.name, name: @resource.name, detail: detail }, detail.backtrace
|
183
183
|
end
|