puppet 8.5.1-universal-darwin → 8.7.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 +6 -2
- data/Gemfile.lock +55 -48
- data/Rakefile +45 -22
- data/examples/hiera/README.md +68 -57
- data/examples/hiera/data/common.yaml +12 -0
- data/examples/hiera/data/dc1.yaml +6 -0
- data/examples/hiera/hiera.yaml +15 -0
- data/examples/hiera/modules/ntp/data/common.yaml +4 -0
- data/examples/hiera/modules/ntp/hiera.yaml +9 -0
- data/examples/hiera/modules/ntp/manifests/config.pp +16 -4
- data/examples/hiera/modules/ntp/templates/ntp.conf.epp +3 -0
- data/examples/hiera/modules/users/manifests/common.pp +7 -2
- data/examples/hiera/modules/users/manifests/dc1.pp +7 -2
- data/examples/hiera/site.pp +1 -1
- data/ext/project_data.yaml +0 -45
- 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 +4 -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 +5 -5
- 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/module_data_provider.rb +9 -9
- 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/aix_object.rb +1 -1
- 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 +32 -11
- 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/xbps.rb +127 -0
- 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/scheduler/splay_job.rb +9 -0
- 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 +51 -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 +60 -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 +18 -19
- 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/com.rb +2 -2
- 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/locales/puppet.pot +604 -600
- 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 +23 -27
- data/examples/hiera/etc/hiera.yaml +0 -15
- data/examples/hiera/etc/hieradb/common.yaml +0 -3
- data/examples/hiera/etc/hieradb/dc1.yaml +0 -6
- data/examples/hiera/etc/hieradb/development.yaml +0 -2
- data/examples/hiera/etc/puppet.conf +0 -3
- data/examples/hiera/modules/data/manifests/common.pp +0 -4
- data/examples/hiera/modules/ntp/manifests/data.pp +0 -4
- data/examples/hiera/modules/ntp/templates/ntp.conf.erb +0 -3
- data/examples/hiera/modules/users/manifests/development.pp +0 -4
- data/tasks/benchmark.rake +0 -180
- data/tasks/cfpropertylist.rake +0 -15
- data/tasks/ci.rake +0 -24
- data/tasks/generate_ast_model.rake +0 -90
- data/tasks/generate_cert_fixtures.rake +0 -199
- data/tasks/manpages.rake +0 -67
- data/tasks/memwalk.rake +0 -195
- data/tasks/parallel.rake +0 -410
- data/tasks/parser.rake +0 -22
- data/tasks/yard.rake +0 -59
@@ -11,17 +11,26 @@ 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
|
18
18
|
end
|
19
19
|
|
20
|
-
optional_commands :localadd => "lgroupadd", :localdelete => "lgroupdel", :localmodify => "lgroupmod"
|
20
|
+
optional_commands :localadd => "lgroupadd", :localdelete => "lgroupdel", :localmodify => "lgroupmod", :purgemember => "usermod"
|
21
21
|
|
22
|
-
has_feature :manages_local_users_and_groups
|
22
|
+
has_feature :manages_local_users_and_groups if Puppet.features.libuser?
|
23
|
+
has_feature :manages_members if Puppet.features.libuser? ||
|
24
|
+
(Puppet.runtime[:facter].value('os.name') == "Fedora" &&
|
25
|
+
Puppet.runtime[:facter].value('os.release.major').to_i >= 40)
|
23
26
|
|
24
|
-
|
27
|
+
# Libuser's modify command 'lgroupmod' requires '-M' flag for member additions.
|
28
|
+
# 'groupmod' command requires the '-aU' flags for it.
|
29
|
+
if Puppet.features.libuser?
|
30
|
+
options :members, :flag => '-M', :method => :mem
|
31
|
+
else
|
32
|
+
options :members, :flag => '-aU', :method => :mem
|
33
|
+
end
|
25
34
|
|
26
35
|
def exists?
|
27
36
|
return !!localgid if @resource.forcelocal?
|
@@ -47,11 +56,11 @@ Puppet::Type.type(:group).provide :groupadd, :parent => Puppet::Provider::NameSe
|
|
47
56
|
# because by default duplicates are allowed. This check is
|
48
57
|
# to ensure consistent behaviour of the useradd provider when
|
49
58
|
# using both useradd and luseradd
|
50
|
-
if
|
59
|
+
if !@resource.allowdupe? and @resource.forcelocal?
|
51
60
|
if @resource.should(:gid) and findgroup(:gid, @resource.should(:gid).to_s)
|
52
61
|
raise(Puppet::Error, _("GID %{resource} already exists, use allowdupe to force group creation") % { resource: @resource.should(:gid).to_s })
|
53
62
|
end
|
54
|
-
elsif @resource.allowdupe? and
|
63
|
+
elsif @resource.allowdupe? and !@resource.forcelocal?
|
55
64
|
return ["-o"]
|
56
65
|
end
|
57
66
|
[]
|
@@ -63,7 +72,8 @@ Puppet::Type.type(:group).provide :groupadd, :parent => Puppet::Provider::NameSe
|
|
63
72
|
end
|
64
73
|
|
65
74
|
def addcmd
|
66
|
-
|
75
|
+
# The localadd command (lgroupadd) must only be called when libuser is supported.
|
76
|
+
if Puppet.features.libuser? && @resource.forcelocal?
|
67
77
|
cmd = [command(:localadd)]
|
68
78
|
@custom_environment = Puppet::Util::Libuser.getenv
|
69
79
|
else
|
@@ -91,7 +101,8 @@ Puppet::Type.type(:group).provide :groupadd, :parent => Puppet::Provider::NameSe
|
|
91
101
|
end
|
92
102
|
|
93
103
|
def modifycmd(param, value)
|
94
|
-
|
104
|
+
# The localmodify command (lgroupmod) must only be called when libuser is supported.
|
105
|
+
if Puppet.features.libuser? && (@resource.forcelocal? || @resource[:members])
|
95
106
|
cmd = [command(:localmodify)]
|
96
107
|
@custom_environment = Puppet::Util::Libuser.getenv
|
97
108
|
else
|
@@ -114,7 +125,8 @@ Puppet::Type.type(:group).provide :groupadd, :parent => Puppet::Provider::NameSe
|
|
114
125
|
end
|
115
126
|
|
116
127
|
def deletecmd
|
117
|
-
|
128
|
+
# The localdelete command (lgroupdel) must only be called when libuser is supported.
|
129
|
+
if Puppet.features.libuser? && @resource.forcelocal?
|
118
130
|
@custom_environment = Puppet::Util::Libuser.getenv
|
119
131
|
[command(:localdelete), @resource[:name]]
|
120
132
|
else
|
@@ -133,7 +145,16 @@ Puppet::Type.type(:group).provide :groupadd, :parent => Puppet::Provider::NameSe
|
|
133
145
|
end
|
134
146
|
|
135
147
|
def purge_members
|
136
|
-
|
148
|
+
# The groupadd provider doesn't have the ability currently to remove members from a group, libuser does.
|
149
|
+
# Use libuser's lgroupmod command to achieve purging members if libuser is supported.
|
150
|
+
# Otherwise use the 'usermod' command.
|
151
|
+
if Puppet.features.libuser?
|
152
|
+
localmodify('-m', members_to_s(members), @resource.name)
|
153
|
+
else
|
154
|
+
members.each do |member|
|
155
|
+
purgemember('-rG', @resource.name, member)
|
156
|
+
end
|
157
|
+
end
|
137
158
|
end
|
138
159
|
|
139
160
|
private
|
@@ -144,7 +165,7 @@ Puppet::Type.type(:group).provide :groupadd, :parent => Puppet::Provider::NameSe
|
|
144
165
|
|
145
166
|
unless @groups
|
146
167
|
unless Puppet::FileSystem.exist?(group_file)
|
147
|
-
raise Puppet::Error
|
168
|
+
raise Puppet::Error, "Forcelocal set for group resource '#{resource[:name]}', but #{group_file} does not exist"
|
148
169
|
end
|
149
170
|
|
150
171
|
@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
|
@@ -53,21 +53,21 @@ Puppet::Type.type(:package).provide :aix, :parent => Puppet::Provider::Package d
|
|
53
53
|
|
54
54
|
updates = {}
|
55
55
|
sources.each do |source|
|
56
|
-
execute(
|
57
|
-
|
58
|
-
current = {}
|
59
|
-
current[:name] = $1
|
60
|
-
current[:version] = $2
|
61
|
-
current[:source] = source
|
56
|
+
execute(srclistcmd(source)).each_line do |line|
|
57
|
+
next unless line =~ /^[^#][^:]*:([^:]*):([^:]*)/
|
62
58
|
|
63
|
-
|
64
|
-
|
59
|
+
current = {}
|
60
|
+
current[:name] = Regexp.last_match(1)
|
61
|
+
current[:version] = Regexp.last_match(2)
|
62
|
+
current[:source] = source
|
65
63
|
|
66
|
-
|
64
|
+
if updates.key?(current[:name])
|
65
|
+
previous = updates[current[:name]]
|
67
66
|
|
68
|
-
|
69
|
-
|
70
|
-
|
67
|
+
updates[current[:name]] = current unless Puppet::Util::Package.versioncmp(previous[:version], current[:version]) == 1
|
68
|
+
|
69
|
+
else
|
70
|
+
updates[current[:name]] = current
|
71
71
|
end
|
72
72
|
end
|
73
73
|
end
|
@@ -137,9 +137,9 @@ Puppet::Type.type(:package).provide :aix, :parent => Puppet::Provider::Package d
|
|
137
137
|
end
|
138
138
|
|
139
139
|
if hash[:pkgname]
|
140
|
-
|
140
|
+
list.shift
|
141
141
|
else
|
142
|
-
|
142
|
+
list
|
143
143
|
end
|
144
144
|
end
|
145
145
|
|
@@ -152,12 +152,12 @@ Puppet::Type.type(:package).provide :aix, :parent => Puppet::Provider::Package d
|
|
152
152
|
def latest
|
153
153
|
upd = latest_info
|
154
154
|
|
155
|
-
|
156
|
-
return "#{upd[:version]}"
|
157
|
-
else
|
155
|
+
if upd.nil?
|
158
156
|
raise Puppet::DevError, _("Tried to get latest on a missing package") if properties[:ensure] == :absent
|
159
157
|
|
160
|
-
|
158
|
+
properties[:ensure]
|
159
|
+
else
|
160
|
+
(upd[:version]).to_s
|
161
161
|
end
|
162
162
|
end
|
163
163
|
|
@@ -166,6 +166,6 @@ Puppet::Type.type(:package).provide :aix, :parent => Puppet::Provider::Package d
|
|
166
166
|
end
|
167
167
|
|
168
168
|
def update
|
169
|
-
|
169
|
+
install(false)
|
170
170
|
end
|
171
171
|
end
|
@@ -57,7 +57,7 @@ Puppet::Type.type(:package).provide(:appdmg, :parent => Puppet::Provider::Packag
|
|
57
57
|
cached_source = source
|
58
58
|
tmpdir = Dir.mktmpdir
|
59
59
|
begin
|
60
|
-
if %r{\A[A-Za-z][A-Za-z0-9
|
60
|
+
if %r{\A[A-Za-z][A-Za-z0-9+\-.]*://} =~ cached_source
|
61
61
|
cached_source = File.join(tmpdir, name)
|
62
62
|
begin
|
63
63
|
curl "-o", cached_source, "-C", "-", "-L", "-s", "--url", source
|
@@ -85,7 +85,7 @@ Puppet::Type.type(:package).provide(:appdmg, :parent => Puppet::Provider::Packag
|
|
85
85
|
installapp("#{fspath}/#{pkg}", name, source)
|
86
86
|
end
|
87
87
|
end
|
88
|
-
Puppet.debug "Unable to find .app in .appdmg. #{name} will not be installed."
|
88
|
+
Puppet.debug "Unable to find .app in .appdmg. #{name} will not be installed." unless found_app
|
89
89
|
ensure
|
90
90
|
hdiutil "eject", mounts[0]
|
91
91
|
end
|
@@ -45,7 +45,7 @@ Puppet::Type.type(:package).provide :apt, :parent => :dpkg, :source => :dpkg do
|
|
45
45
|
def query
|
46
46
|
hash = super
|
47
47
|
|
48
|
-
if !%i
|
48
|
+
if !%i[absent purged].include?(hash[:ensure]) && aptmark('showmanual', @resource[:name]).strip == @resource[:name]
|
49
49
|
hash[:mark] = :manual
|
50
50
|
end
|
51
51
|
|
@@ -108,7 +108,7 @@ Puppet::Type.type(:package).provide :apt, :parent => :dpkg, :source => :dpkg do
|
|
108
108
|
end
|
109
109
|
end
|
110
110
|
|
111
|
-
return versions.
|
111
|
+
return versions.max if versions.any?
|
112
112
|
|
113
113
|
Puppet.debug("No available version for package #{@resource[:name]} is included in range #{should_range}")
|
114
114
|
should_range
|
@@ -117,7 +117,7 @@ Puppet::Type.type(:package).provide :apt, :parent => :dpkg, :source => :dpkg do
|
|
117
117
|
# Install a package using 'apt-get'. This function needs to support
|
118
118
|
# installing a specific version.
|
119
119
|
def install
|
120
|
-
|
120
|
+
run_preseed if @resource[:responsefile]
|
121
121
|
should = @resource[:ensure]
|
122
122
|
|
123
123
|
if should.is_a?(String)
|
@@ -133,7 +133,7 @@ Puppet::Type.type(:package).provide :apt, :parent => :dpkg, :source => :dpkg do
|
|
133
133
|
end
|
134
134
|
|
135
135
|
checkforcdrom
|
136
|
-
cmd = %w
|
136
|
+
cmd = %w[-q -y]
|
137
137
|
|
138
138
|
config = @resource[:configfiles]
|
139
139
|
if config
|
@@ -165,17 +165,17 @@ Puppet::Type.type(:package).provide :apt, :parent => :dpkg, :source => :dpkg do
|
|
165
165
|
end
|
166
166
|
# rubocop:enable Style/RedundantCondition
|
167
167
|
|
168
|
-
|
168
|
+
unhold if properties[:mark] == :hold
|
169
169
|
begin
|
170
170
|
aptget(*cmd)
|
171
171
|
ensure
|
172
|
-
|
172
|
+
hold if @resource[:mark] == :hold
|
173
173
|
end
|
174
174
|
|
175
175
|
# If a source file was specified, we must make sure the expected version was installed from specified file
|
176
|
-
if source && !%i
|
177
|
-
is =
|
178
|
-
raise Puppet::Error, _("Could not find package %{name}") % { name:
|
176
|
+
if source && !%i[present installed].include?(should)
|
177
|
+
is = query
|
178
|
+
raise Puppet::Error, _("Could not find package %{name}") % { name: name } unless is
|
179
179
|
|
180
180
|
version = is[:ensure]
|
181
181
|
|
@@ -189,10 +189,10 @@ Puppet::Type.type(:package).provide :apt, :parent => :dpkg, :source => :dpkg do
|
|
189
189
|
output = aptcache :policy, @resource[:name]
|
190
190
|
|
191
191
|
if output =~ /Candidate:\s+(\S+)\s/
|
192
|
-
|
192
|
+
Regexp.last_match(1)
|
193
193
|
else
|
194
|
-
|
195
|
-
|
194
|
+
err _("Could not find latest version")
|
195
|
+
nil
|
196
196
|
end
|
197
197
|
end
|
198
198
|
|
@@ -202,26 +202,26 @@ Puppet::Type.type(:package).provide :apt, :parent => :dpkg, :source => :dpkg do
|
|
202
202
|
def run_preseed
|
203
203
|
response = @resource[:responsefile]
|
204
204
|
if response && Puppet::FileSystem.exist?(response)
|
205
|
-
|
205
|
+
info(_("Preseeding %{response} to debconf-set-selections") % { response: response })
|
206
206
|
|
207
207
|
preseed response
|
208
208
|
else
|
209
|
-
|
209
|
+
info _("No responsefile specified or non existent, not preseeding anything")
|
210
210
|
end
|
211
211
|
end
|
212
212
|
|
213
213
|
def uninstall
|
214
|
-
|
214
|
+
run_preseed if @resource[:responsefile]
|
215
215
|
args = ['-y', '-q']
|
216
|
-
args << '--allow-change-held-packages' if
|
216
|
+
args << '--allow-change-held-packages' if properties[:mark] == :hold
|
217
217
|
args << :remove << @resource[:name]
|
218
218
|
aptget(*args)
|
219
219
|
end
|
220
220
|
|
221
221
|
def purge
|
222
|
-
|
222
|
+
run_preseed if @resource[:responsefile]
|
223
223
|
args = ['-y', '-q']
|
224
|
-
args << '--allow-change-held-packages' if
|
224
|
+
args << '--allow-change-held-packages' if properties[:mark] == :hold
|
225
225
|
args << :remove << '--purge' << @resource[:name]
|
226
226
|
aptget(*args)
|
227
227
|
# workaround a "bug" in apt, that already removed packages are not purged
|
@@ -19,9 +19,7 @@ Puppet::Type.type(:package).provide :aptitude, :parent => :apt, :source => :dpkg
|
|
19
19
|
|
20
20
|
# Yay, stupid aptitude doesn't throw an error when the package is missing.
|
21
21
|
if args.include?(:install) and output.to_s =~ /Couldn't find any package/
|
22
|
-
raise Puppet::Error
|
23
|
-
_("Could not find package %{name}") % { name: self.name }
|
24
|
-
)
|
22
|
+
raise Puppet::Error, _("Could not find package %{name}") % { name: name }
|
25
23
|
end
|
26
24
|
end
|
27
25
|
|
@@ -39,7 +39,7 @@ Puppet::Type.type(:package).provide :aptrpm, :parent => :rpm, :source => :rpm do
|
|
39
39
|
# Add the package version
|
40
40
|
str += "=#{should}"
|
41
41
|
end
|
42
|
-
cmd = %w
|
42
|
+
cmd = %w[-q -y]
|
43
43
|
|
44
44
|
cmd << 'install' << str
|
45
45
|
|
@@ -51,30 +51,30 @@ Puppet::Type.type(:package).provide :aptrpm, :parent => :rpm, :source => :rpm do
|
|
51
51
|
output = aptcache :showpkg, @resource[:name]
|
52
52
|
|
53
53
|
if output =~ /Versions:\s*\n((\n|.)+)^$/
|
54
|
-
versions =
|
54
|
+
versions = Regexp.last_match(1)
|
55
55
|
available_versions = versions.split(/\n/).filter_map { |version|
|
56
|
-
if version =~ /^([
|
57
|
-
|
56
|
+
if version =~ /^([^(]+)\(/
|
57
|
+
Regexp.last_match(1)
|
58
58
|
else
|
59
|
-
|
59
|
+
warning _("Could not match version '%{version}'") % { version: version }
|
60
60
|
nil
|
61
61
|
end
|
62
62
|
}.sort { |a, b| versioncmp(a, b) }
|
63
63
|
|
64
64
|
if available_versions.length == 0
|
65
|
-
|
65
|
+
debug "No latest version"
|
66
66
|
print output if Puppet[:debug]
|
67
67
|
end
|
68
68
|
|
69
69
|
# Get the latest and greatest version number
|
70
|
-
|
70
|
+
available_versions.pop
|
71
71
|
else
|
72
|
-
|
72
|
+
err _("Could not match string")
|
73
73
|
end
|
74
74
|
end
|
75
75
|
|
76
76
|
def update
|
77
|
-
|
77
|
+
install
|
78
78
|
end
|
79
79
|
|
80
80
|
def uninstall
|
@@ -50,12 +50,12 @@ Puppet::Type.type(:package).provide :blastwave, :parent => :sun, :source => :sun
|
|
50
50
|
end
|
51
51
|
|
52
52
|
if hash[:justme]
|
53
|
-
|
53
|
+
list[0]
|
54
54
|
else
|
55
55
|
list.reject! { |h|
|
56
56
|
h[:ensure] == :absent
|
57
57
|
}
|
58
|
-
|
58
|
+
list
|
59
59
|
end
|
60
60
|
end
|
61
61
|
|
@@ -63,23 +63,23 @@ Puppet::Type.type(:package).provide :blastwave, :parent => :sun, :source => :sun
|
|
63
63
|
def self.blastsplit(line)
|
64
64
|
if line =~ /\s*(\S+)\s+((\[Not installed\])|(\S+))\s+(\S+)/
|
65
65
|
hash = {}
|
66
|
-
hash[:name] =
|
67
|
-
hash[:ensure] = if
|
66
|
+
hash[:name] = Regexp.last_match(1)
|
67
|
+
hash[:ensure] = if Regexp.last_match(2) == "[Not installed]"
|
68
68
|
:absent
|
69
69
|
else
|
70
|
-
|
70
|
+
Regexp.last_match(2)
|
71
71
|
end
|
72
|
-
hash[:avail] =
|
72
|
+
hash[:avail] = Regexp.last_match(5)
|
73
73
|
|
74
74
|
hash[:avail] = hash[:ensure] if hash[:avail] == "SAME"
|
75
75
|
|
76
76
|
# Use the name method, so it works with subclasses.
|
77
|
-
hash[:provider] =
|
77
|
+
hash[:provider] = name
|
78
78
|
|
79
|
-
|
79
|
+
hash
|
80
80
|
else
|
81
81
|
Puppet.warning _("Cannot match %{line}") % { line: line }
|
82
|
-
|
82
|
+
nil
|
83
83
|
end
|
84
84
|
end
|
85
85
|
|
@@ -95,11 +95,7 @@ Puppet::Type.type(:package).provide :blastwave, :parent => :sun, :source => :sun
|
|
95
95
|
|
96
96
|
def query
|
97
97
|
hash = self.class.blastlist(:justme => @resource[:name])
|
98
|
-
|
99
|
-
hash
|
100
|
-
else
|
101
|
-
{ :ensure => :absent }
|
102
|
-
end
|
98
|
+
hash || { :ensure => :absent }
|
103
99
|
end
|
104
100
|
|
105
101
|
# Remove the old package, and install the new one
|