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
@@ -39,11 +39,9 @@ Puppet::Type.type(:package).provide(:windows, :parent => Puppet::Provider::Packa
|
|
39
39
|
|
40
40
|
def self.post_resource_eval
|
41
41
|
@paths.each do |path|
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
raise Puppet::Error.new(_("Error when unlinking %{path}: %{detail}") % { path: path, detail: detail.message }, detail)
|
46
|
-
end
|
42
|
+
Puppet::FileSystem.unlink(path)
|
43
|
+
rescue => detail
|
44
|
+
raise Puppet::Error.new(_("Error when unlinking %{path}: %{detail}") % { path: path, detail: detail.message }, detail)
|
47
45
|
end if @paths
|
48
46
|
end
|
49
47
|
|
@@ -0,0 +1,127 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative "../../../puppet/provider/package"
|
4
|
+
|
5
|
+
Puppet::Type.type(:package).provide :xbps, :parent => Puppet::Provider::Package do
|
6
|
+
desc "Support for the Package Manager Utility (xbps) used in VoidLinux.
|
7
|
+
|
8
|
+
This provider supports the `install_options` attribute, which allows command-line flags to be passed to xbps-install.
|
9
|
+
These options should be specified as an array where each element is either a string or a hash."
|
10
|
+
|
11
|
+
commands :xbps_install => "/usr/bin/xbps-install"
|
12
|
+
commands :xbps_remove => "/usr/bin/xbps-remove"
|
13
|
+
commands :xbps_query => "/usr/bin/xbps-query"
|
14
|
+
commands :xbps_pkgdb => "/usr/bin/xbps-pkgdb"
|
15
|
+
|
16
|
+
confine 'os.name' => :void
|
17
|
+
defaultfor 'os.name' => :void
|
18
|
+
has_feature :install_options, :uninstall_options, :upgradeable, :holdable, :virtual_packages
|
19
|
+
|
20
|
+
def self.defaultto_allow_virtual
|
21
|
+
false
|
22
|
+
end
|
23
|
+
|
24
|
+
# Fetch the list of packages that are currently installed on the system.
|
25
|
+
def self.instances
|
26
|
+
packages = []
|
27
|
+
execpipe([command(:xbps_query), "-l"]) do |pipe|
|
28
|
+
# xbps-query -l output is 'ii package-name-version desc'
|
29
|
+
regex = /^\S+\s(\S+)-(\S+)\s+\S+/
|
30
|
+
pipe.each_line do |line|
|
31
|
+
match = regex.match(line.chomp)
|
32
|
+
if match
|
33
|
+
packages << new({ name: match.captures[0], ensure: match.captures[1], provider: name })
|
34
|
+
else
|
35
|
+
warning(_("Failed to match line '%{line}'") % { line: line })
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
packages
|
41
|
+
rescue Puppet::ExecutionFailure
|
42
|
+
fail(_("Error getting installed packages"))
|
43
|
+
end
|
44
|
+
|
45
|
+
# Install a package quietly (without confirmation or progress bar) using 'xbps-install'.
|
46
|
+
def install
|
47
|
+
resource_name = @resource[:name]
|
48
|
+
resource_source = @resource[:source]
|
49
|
+
|
50
|
+
cmd = %w[-S -y]
|
51
|
+
cmd += install_options if @resource[:install_options]
|
52
|
+
cmd << "--repository=#{resource_source}" if resource_source
|
53
|
+
cmd << resource_name
|
54
|
+
|
55
|
+
unhold if properties[:mark] == :hold
|
56
|
+
begin
|
57
|
+
xbps_install(*cmd)
|
58
|
+
ensure
|
59
|
+
hold if @resource[:mark] == :hold
|
60
|
+
end
|
61
|
+
end
|
62
|
+
|
63
|
+
# Because Voidlinux is a rolling release based distro, installing a package
|
64
|
+
# should always result in the newest release.
|
65
|
+
def update
|
66
|
+
install
|
67
|
+
end
|
68
|
+
|
69
|
+
# Removes a package from the system.
|
70
|
+
def uninstall
|
71
|
+
resource_name = @resource[:name]
|
72
|
+
|
73
|
+
cmd = %w[-R -y]
|
74
|
+
cmd += uninstall_options if @resource[:uninstall_options]
|
75
|
+
cmd << resource_name
|
76
|
+
|
77
|
+
xbps_remove(*cmd)
|
78
|
+
end
|
79
|
+
|
80
|
+
# The latest version of a given package
|
81
|
+
def latest
|
82
|
+
query&.[] :ensure
|
83
|
+
end
|
84
|
+
|
85
|
+
# Queries information for a package
|
86
|
+
def query
|
87
|
+
resource_name = @resource[:name]
|
88
|
+
installed_packages = self.class.instances
|
89
|
+
|
90
|
+
installed_packages.each do |pkg|
|
91
|
+
return pkg.properties if @resource[:name].casecmp(pkg.name).zero?
|
92
|
+
end
|
93
|
+
|
94
|
+
return nil unless @resource.allow_virtual?
|
95
|
+
|
96
|
+
# Search for virtual package
|
97
|
+
output = xbps_query("-Rs", resource_name).chomp
|
98
|
+
|
99
|
+
# xbps-query -Rs output is '[*] package-name-version description'
|
100
|
+
regex = /^\[\*\]+\s(\S+)-(\S+)\s+\S+/
|
101
|
+
match = regex.match(output)
|
102
|
+
|
103
|
+
return nil unless match
|
104
|
+
|
105
|
+
{ name: match.captures[0], ensure: match.captures[1], provider: self.class.name }
|
106
|
+
end
|
107
|
+
|
108
|
+
# Puts a package on hold, so it doesn't update by itself on system update
|
109
|
+
def hold
|
110
|
+
xbps_pkgdb("-m", "hold", @resource[:name])
|
111
|
+
end
|
112
|
+
|
113
|
+
# Puts a package out of hold
|
114
|
+
def unhold
|
115
|
+
xbps_pkgdb("-m", "unhold", @resource[:name])
|
116
|
+
end
|
117
|
+
|
118
|
+
private
|
119
|
+
|
120
|
+
def install_options
|
121
|
+
join_options(@resource[:install_options])
|
122
|
+
end
|
123
|
+
|
124
|
+
def uninstall_options
|
125
|
+
join_options(@resource[:uninstall_options])
|
126
|
+
end
|
127
|
+
end
|
@@ -59,12 +59,10 @@ Puppet::Type.type(:package).provide :yum, :parent => :rpm, :source => :rpm do
|
|
59
59
|
end
|
60
60
|
|
61
61
|
is.split(self.class::MULTIVERSION_SEPARATOR).any? do |version|
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
Puppet.debug("Cannot parse #{is} as a RPM version")
|
67
|
-
end
|
62
|
+
is_version = RPM_VERSION.parse(version)
|
63
|
+
should_version.include?(is_version)
|
64
|
+
rescue RPM_VERSION::ValidationFailure
|
65
|
+
Puppet.debug("Cannot parse #{is} as a RPM version")
|
68
66
|
end
|
69
67
|
end
|
70
68
|
end
|
@@ -126,9 +124,9 @@ Puppet::Type.type(:package).provide :yum, :parent => :rpm, :source => :rpm do
|
|
126
124
|
when 100
|
127
125
|
updates = parse_updates(output)
|
128
126
|
when 0
|
129
|
-
|
127
|
+
debug "#{command(:cmd)} check-update exited with 0; no package updates available."
|
130
128
|
else
|
131
|
-
|
129
|
+
warning _("Could not check for updates, '%{cmd} check-update' exited with %{status}") % { cmd: command(:cmd), status: output.exitstatus }
|
132
130
|
end
|
133
131
|
updates
|
134
132
|
end
|
@@ -213,15 +211,13 @@ Puppet::Type.type(:package).provide :yum, :parent => :rpm, :source => :rpm do
|
|
213
211
|
end
|
214
212
|
versions = []
|
215
213
|
available_versions(@resource[:name], disablerepo, enablerepo, disableexcludes).each do |version|
|
216
|
-
|
217
|
-
|
218
|
-
|
219
|
-
|
220
|
-
Puppet.debug("Cannot parse #{version} as a RPM version")
|
221
|
-
end
|
214
|
+
rpm_version = RPM_VERSION.parse(version)
|
215
|
+
versions << rpm_version if should_range.include?(rpm_version)
|
216
|
+
rescue RPM_VERSION::ValidationFailure
|
217
|
+
Puppet.debug("Cannot parse #{version} as a RPM version")
|
222
218
|
end
|
223
219
|
|
224
|
-
version = versions.
|
220
|
+
version = versions.max if versions.any?
|
225
221
|
|
226
222
|
if version
|
227
223
|
version = version.to_s.sub(/^\d+:/, '')
|
@@ -255,17 +251,17 @@ Puppet::Type.type(:package).provide :yum, :parent => :rpm, :source => :rpm do
|
|
255
251
|
end
|
256
252
|
|
257
253
|
should = @resource.should(:ensure)
|
258
|
-
|
254
|
+
debug "Ensuring => #{should}"
|
259
255
|
operation = :install
|
260
256
|
|
261
257
|
case should
|
262
258
|
when :latest
|
263
|
-
current_package =
|
259
|
+
current_package = query
|
264
260
|
if current_package && !current_package[:ensure].to_s.empty?
|
265
261
|
operation = update_command
|
266
|
-
|
262
|
+
debug "Ensuring latest, so using #{operation}"
|
267
263
|
else
|
268
|
-
|
264
|
+
debug "Ensuring latest, but package is absent, so using install"
|
269
265
|
operation = :install
|
270
266
|
end
|
271
267
|
should = nil
|
@@ -274,7 +270,7 @@ Puppet::Type.type(:package).provide :yum, :parent => :rpm, :source => :rpm do
|
|
274
270
|
# version feed it to yum directly
|
275
271
|
if @resource[:source]
|
276
272
|
wanted = @resource[:source]
|
277
|
-
|
273
|
+
debug "Installing directly from #{wanted}"
|
278
274
|
end
|
279
275
|
should = nil
|
280
276
|
when false, :absent
|
@@ -286,26 +282,26 @@ Puppet::Type.type(:package).provide :yum, :parent => :rpm, :source => :rpm do
|
|
286
282
|
# version, and also supplying the path to a package that supplies that
|
287
283
|
# version.
|
288
284
|
wanted = @resource[:source]
|
289
|
-
|
285
|
+
debug "Installing directly from #{wanted}"
|
290
286
|
else
|
291
287
|
# No explicit source was specified, so add the package version
|
292
288
|
should = best_version(should)
|
293
289
|
wanted += "-#{should}"
|
294
290
|
if wanted.scan(self.class::ARCH_REGEX)
|
295
|
-
|
291
|
+
debug "Detected Arch argument in package! - Moving arch to end of version string"
|
296
292
|
wanted.gsub!(/(.+)(#{self.class::ARCH_REGEX})(.+)/, '\1\3\2')
|
297
293
|
end
|
298
294
|
end
|
299
|
-
current_package =
|
295
|
+
current_package = query
|
300
296
|
if current_package
|
301
297
|
if @resource[:install_only]
|
302
|
-
|
298
|
+
debug "Updating package #{@resource[:name]} from version #{current_package[:ensure]} to #{should} as install_only packages are never downgraded"
|
303
299
|
operation = update_command
|
304
300
|
elsif rpm_compare_evr(should, current_package[:ensure]) < 0
|
305
|
-
|
301
|
+
debug "Downgrading package #{@resource[:name]} from version #{current_package[:ensure]} to #{should}"
|
306
302
|
operation = :downgrade
|
307
303
|
elsif rpm_compare_evr(should, current_package[:ensure]) > 0
|
308
|
-
|
304
|
+
debug "Upgrading package #{@resource[:name]} from version #{current_package[:ensure]} to #{should}"
|
309
305
|
operation = update_command
|
310
306
|
end
|
311
307
|
end
|
@@ -313,7 +309,7 @@ Puppet::Type.type(:package).provide :yum, :parent => :rpm, :source => :rpm do
|
|
313
309
|
|
314
310
|
# Yum on el-4 and el-5 returns exit status 0 when trying to install a package it doesn't recognize;
|
315
311
|
# ensure we capture output to check for errors.
|
316
|
-
no_debug =
|
312
|
+
no_debug = Puppet.runtime[:facter].value('os.release.major').to_i > 5 ? ["-d", "0"] : []
|
317
313
|
command = [command(:cmd)] + no_debug + ["-e", error_level, "-y", install_options, operation, wanted].compact
|
318
314
|
output = execute(command)
|
319
315
|
|
@@ -323,8 +319,8 @@ Puppet::Type.type(:package).provide :yum, :parent => :rpm, :source => :rpm do
|
|
323
319
|
|
324
320
|
# If a version was specified, query again to see if it is a matching version
|
325
321
|
if should
|
326
|
-
is =
|
327
|
-
raise Puppet::Error, _("Could not find package %{name}") % { name:
|
322
|
+
is = query
|
323
|
+
raise Puppet::Error, _("Could not find package %{name}") % { name: name } unless is
|
328
324
|
|
329
325
|
version = is[:ensure]
|
330
326
|
# FIXME: Should we raise an exception even if should == :latest
|
@@ -337,23 +333,23 @@ Puppet::Type.type(:package).provide :yum, :parent => :rpm, :source => :rpm do
|
|
337
333
|
# What's the latest package version available?
|
338
334
|
def latest
|
339
335
|
upd = self.class.latest_package_version(@resource[:name], disablerepo, enablerepo, disableexcludes)
|
340
|
-
|
341
|
-
# FIXME: there could be more than one update for a package
|
342
|
-
# because of multiarch
|
343
|
-
return "#{upd[:epoch]}:#{upd[:version]}-#{upd[:release]}"
|
344
|
-
else
|
336
|
+
if upd.nil?
|
345
337
|
# Yum didn't find updates, pretend the current version is the latest
|
346
|
-
|
338
|
+
debug "Yum didn't find updates, current version (#{properties[:ensure]}) is the latest"
|
347
339
|
version = properties[:ensure]
|
348
340
|
raise Puppet::DevError, _("Tried to get latest on a missing package") if version == :absent || version == :purged
|
349
341
|
|
350
|
-
|
342
|
+
version
|
343
|
+
else
|
344
|
+
# FIXME: there could be more than one update for a package
|
345
|
+
# because of multiarch
|
346
|
+
"#{upd[:epoch]}:#{upd[:version]}-#{upd[:release]}"
|
351
347
|
end
|
352
348
|
end
|
353
349
|
|
354
350
|
def update
|
355
351
|
# Install in yum can be used for update, too
|
356
|
-
|
352
|
+
install
|
357
353
|
end
|
358
354
|
|
359
355
|
def purge
|
@@ -82,7 +82,7 @@ Puppet::Type.type(:package).provide :zypper, :parent => :rpm, :source => :rpm do
|
|
82
82
|
end
|
83
83
|
end
|
84
84
|
|
85
|
-
return versions.
|
85
|
+
return versions.max if versions.any?
|
86
86
|
|
87
87
|
Puppet.debug("No available version for package #{@resource[:name]} is included in range #{should_range}")
|
88
88
|
should
|
@@ -92,7 +92,7 @@ Puppet::Type.type(:package).provide :zypper, :parent => :rpm, :source => :rpm do
|
|
92
92
|
# Install a package using 'zypper'.
|
93
93
|
def install
|
94
94
|
should = @resource.should(:ensure)
|
95
|
-
|
95
|
+
debug "Ensuring => #{should}"
|
96
96
|
wanted = @resource[:name]
|
97
97
|
|
98
98
|
# XXX: We don't actually deal with epochs here.
|
@@ -112,8 +112,8 @@ Puppet::Type.type(:package).provide :zypper, :parent => :rpm, :source => :rpm do
|
|
112
112
|
# Assume that this will work on newer zypper versions
|
113
113
|
|
114
114
|
# extract version numbers and convert to integers
|
115
|
-
major, minor, patch = zypper_version.scan(/\d+/).map
|
116
|
-
|
115
|
+
major, minor, patch = zypper_version.scan(/\d+/).map(&:to_i)
|
116
|
+
debug "Detected zypper version #{major}.#{minor}.#{patch}"
|
117
117
|
|
118
118
|
# zypper version < 1.0 does not support --quiet flag
|
119
119
|
if major < 1
|
@@ -144,29 +144,27 @@ Puppet::Type.type(:package).provide :zypper, :parent => :rpm, :source => :rpm do
|
|
144
144
|
|
145
145
|
zypper(*options)
|
146
146
|
|
147
|
-
unless
|
148
|
-
raise Puppet::ExecutionFailure
|
149
|
-
_("Could not find package %{name}") % { name: self.name }
|
150
|
-
)
|
147
|
+
unless query
|
148
|
+
raise Puppet::ExecutionFailure, _("Could not find package %{name}") % { name: name }
|
151
149
|
end
|
152
150
|
end
|
153
151
|
|
154
152
|
# What's the latest package version available?
|
155
153
|
def latest
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
154
|
+
self.class.latest_package_version(@resource[:name]) ||
|
155
|
+
# zypper didn't find updates, pretend the current
|
156
|
+
# version is the latest
|
157
|
+
@property_hash[:ensure]
|
160
158
|
end
|
161
159
|
|
162
160
|
def update
|
163
161
|
# zypper install can be used for update, too
|
164
|
-
|
162
|
+
install
|
165
163
|
end
|
166
164
|
|
167
165
|
def uninstall
|
168
166
|
# extract version numbers and convert to integers
|
169
|
-
major, minor, _ = zypper_version.scan(/\d+/).map
|
167
|
+
major, minor, _ = zypper_version.scan(/\d+/).map(&:to_i)
|
170
168
|
|
171
169
|
if major < 1
|
172
170
|
super
|
@@ -25,7 +25,7 @@ class Puppet::Provider::Package < Puppet::Provider
|
|
25
25
|
# Purged is the "most uninstalled" a package can be, so a purged package will be in-sync with
|
26
26
|
# either `ensure => absent` or `ensure => purged`; an absent package will be out of sync with `ensure => purged`.
|
27
27
|
default_status = self.class.feature?(:purgeable) ? :purged : :absent
|
28
|
-
@property_hash = query || { :ensure =>
|
28
|
+
@property_hash = query || { :ensure => default_status }
|
29
29
|
@property_hash[:ensure] = default_status if @property_hash.empty?
|
30
30
|
end
|
31
31
|
@property_hash.dup
|
@@ -34,7 +34,7 @@ class Puppet::Provider::Package::Targetable < Puppet::Provider::Package
|
|
34
34
|
catalog_packages.each do |catalog_package|
|
35
35
|
if catalog_package[:name] == instance.name && catalog_package.original_parameters[:command] == command
|
36
36
|
catalog_package.provider = instance
|
37
|
-
|
37
|
+
debug "Prefetched instance: %{name} via command: %{cmd}" % { name: instance.name, cmd: command || :default }
|
38
38
|
end
|
39
39
|
end
|
40
40
|
end
|
@@ -116,9 +116,9 @@ class Puppet::Provider::ParsedFile < Puppet::Provider
|
|
116
116
|
# Return the header placed at the top of each generated file, warning
|
117
117
|
# users that modifying this file manually is probably a bad idea.
|
118
118
|
def self.header
|
119
|
-
%
|
119
|
+
%(# HEADER: This file was autogenerated at #{Time.now}
|
120
120
|
# HEADER: by puppet. While it can still be managed manually, it
|
121
|
-
# HEADER: is definitely not recommended.\n
|
121
|
+
# HEADER: is definitely not recommended.\n)
|
122
122
|
end
|
123
123
|
|
124
124
|
# An optional regular expression matched by third party headers.
|
@@ -282,7 +282,7 @@ class Puppet::Provider::ParsedFile < Puppet::Provider
|
|
282
282
|
begin
|
283
283
|
target_records = retrieve(target)
|
284
284
|
unless target_records
|
285
|
-
raise Puppet::DevError, _("Prefetching %{target} for provider %{name} returned nil") % { target: target, name:
|
285
|
+
raise Puppet::DevError, _("Prefetching %{target} for provider %{name} returned nil") % { target: target, name: name }
|
286
286
|
end
|
287
287
|
rescue Puppet::Util::FileType::FileReadError => detail
|
288
288
|
if @raise_prefetch_errors
|
@@ -292,7 +292,7 @@ class Puppet::Provider::ParsedFile < Puppet::Provider
|
|
292
292
|
@failed_prefetch_targets[target] = detail.to_s
|
293
293
|
else
|
294
294
|
puts detail.backtrace if Puppet[:trace]
|
295
|
-
Puppet.err _("Could not prefetch %{resource} provider '%{name}' target '%{target}': %{detail}. Treating as empty") % { resource:
|
295
|
+
Puppet.err _("Could not prefetch %{resource} provider '%{name}' target '%{target}': %{detail}. Treating as empty") % { resource: resource_type.name, name: name, target: target, detail: detail }
|
296
296
|
end
|
297
297
|
|
298
298
|
target_records = []
|
@@ -306,7 +306,7 @@ class Puppet::Provider::ParsedFile < Puppet::Provider
|
|
306
306
|
|
307
307
|
target_records = prefetch_hook(target_records) if respond_to?(:prefetch_hook)
|
308
308
|
|
309
|
-
raise Puppet::DevError, _("Prefetching %{target} for provider %{name} returned nil") % { target: target, name:
|
309
|
+
raise Puppet::DevError, _("Prefetching %{target} for provider %{name} returned nil") % { target: target, name: name } unless target_records
|
310
310
|
|
311
311
|
target_records
|
312
312
|
end
|
@@ -325,13 +325,13 @@ class Puppet::Provider::ParsedFile < Puppet::Provider
|
|
325
325
|
text = target_object(path).read
|
326
326
|
if text.nil? or text == ""
|
327
327
|
# there is no file
|
328
|
-
|
328
|
+
[]
|
329
329
|
else
|
330
330
|
# Set the target, for logging.
|
331
331
|
old = @target
|
332
332
|
begin
|
333
333
|
@target = path
|
334
|
-
|
334
|
+
parse(text)
|
335
335
|
rescue Puppet::Error => detail
|
336
336
|
detail.file = @target if detail.respond_to?(:file=)
|
337
337
|
raise detail
|
@@ -380,9 +380,9 @@ class Puppet::Provider::ParsedFile < Puppet::Provider
|
|
380
380
|
def self.targets(resources = nil)
|
381
381
|
targets = []
|
382
382
|
# First get the default target
|
383
|
-
raise Puppet::DevError, _("Parsed Providers must define a default target") unless
|
383
|
+
raise Puppet::DevError, _("Parsed Providers must define a default target") unless default_target
|
384
384
|
|
385
|
-
targets <<
|
385
|
+
targets << default_target
|
386
386
|
|
387
387
|
# Then get each of the file objects
|
388
388
|
targets += @target_objects.keys
|
@@ -35,7 +35,7 @@ Puppet::Type.type(:service).provide :base, :parent => :service do
|
|
35
35
|
regex = Regexp.new(@resource[:pattern])
|
36
36
|
ps = getps
|
37
37
|
|
38
|
-
|
38
|
+
debug "Executing '#{ps}'"
|
39
39
|
table = Puppet::Util::Execution.execute(ps)
|
40
40
|
|
41
41
|
# The output of the PS command can be a mashup of several different
|
@@ -51,11 +51,11 @@ Puppet::Type.type(:service).provide :base, :parent => :service do
|
|
51
51
|
table = table.scrub unless table.valid_encoding?
|
52
52
|
|
53
53
|
table.each_line { |line|
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
54
|
+
next unless regex.match(line)
|
55
|
+
|
56
|
+
debug "Process matched: #{line}"
|
57
|
+
ary = line.sub(/^[[:space:]]+/u, '').split(/[[:space:]]+/u)
|
58
|
+
return ary[1]
|
59
59
|
}
|
60
60
|
|
61
61
|
nil
|
@@ -74,17 +74,17 @@ Puppet::Type.type(:service).provide :base, :parent => :service do
|
|
74
74
|
|
75
75
|
# Explicitly calling exitstatus to facilitate testing
|
76
76
|
if status.exitstatus == 0
|
77
|
-
|
77
|
+
:running
|
78
78
|
else
|
79
|
-
|
79
|
+
:stopped
|
80
80
|
end
|
81
81
|
else
|
82
82
|
pid = getpid
|
83
83
|
if pid
|
84
|
-
|
85
|
-
|
84
|
+
debug "PID is #{pid}"
|
85
|
+
:running
|
86
86
|
else
|
87
|
-
|
87
|
+
:stopped
|
88
88
|
end
|
89
89
|
end
|
90
90
|
end
|
@@ -102,12 +102,7 @@ Puppet::Type.type(:service).provide :base, :parent => :service do
|
|
102
102
|
# The command used to start. Generated if the 'binary' argument
|
103
103
|
# is passed.
|
104
104
|
def startcmd
|
105
|
-
|
106
|
-
return @resource[:binary]
|
107
|
-
else
|
108
|
-
raise Puppet::Error,
|
109
|
-
"Services must specify a start command or a binary"
|
110
|
-
end
|
105
|
+
@resource[:binary] || raise(Puppet::Error, "Services must specify a start command or a binary")
|
111
106
|
end
|
112
107
|
|
113
108
|
# Stop the service. If a 'stop' parameter is specified, it
|
@@ -122,15 +117,15 @@ Puppet::Type.type(:service).provide :base, :parent => :service do
|
|
122
117
|
else
|
123
118
|
pid = getpid
|
124
119
|
unless pid
|
125
|
-
|
120
|
+
info _("%{name} is not running") % { name: name }
|
126
121
|
return false
|
127
122
|
end
|
128
123
|
begin
|
129
124
|
output = kill pid
|
130
|
-
rescue Puppet::ExecutionFailure
|
131
|
-
@resource.fail Puppet::Error, "Could not kill #{
|
125
|
+
rescue Puppet::ExecutionFailure => e
|
126
|
+
@resource.fail Puppet::Error, "Could not kill #{name}, PID #{pid}: #{output}", e
|
132
127
|
end
|
133
|
-
|
128
|
+
true
|
134
129
|
end
|
135
130
|
end
|
136
131
|
|
@@ -34,9 +34,9 @@ Puppet::Type.type(:service).provide :bsd, :parent => :init do
|
|
34
34
|
# enable service by creating a service file under rc.conf.d with the
|
35
35
|
# proper contents
|
36
36
|
def enable
|
37
|
-
Dir.mkdir(rcconf_dir)
|
37
|
+
Dir.mkdir(rcconf_dir) unless Puppet::FileSystem.exist?(rcconf_dir)
|
38
38
|
rcfile = File.join(rcconf_dir, @resource[:name])
|
39
|
-
File.open(rcfile, File::WRONLY | File::APPEND | File::CREAT,
|
39
|
+
File.open(rcfile, File::WRONLY | File::APPEND | File::CREAT, 0o644) { |f|
|
40
40
|
f << "%s_enable=\"YES\"\n" % @resource[:name]
|
41
41
|
}
|
42
42
|
end
|
@@ -44,10 +44,10 @@ Puppet::Type.type(:service).provide :bsd, :parent => :init do
|
|
44
44
|
# Override stop/start commands to use one<cmd>'s and the avoid race condition
|
45
45
|
# where provider tries to stop/start the service before it is enabled
|
46
46
|
def startcmd
|
47
|
-
[
|
47
|
+
[initscript, :onestart]
|
48
48
|
end
|
49
49
|
|
50
50
|
def stopcmd
|
51
|
-
[
|
51
|
+
[initscript, :onestop]
|
52
52
|
end
|
53
53
|
end
|