puppet 8.5.1-x86-mingw32 → 8.7.0-x86-mingw32
Sign up to get free protection for your applications and to get access to all the features.
- 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 +39 -25
- 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
|