puppet 8.5.0-x64-mingw32 → 8.6.0-x64-mingw32
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/Gemfile.lock +29 -26
- data/ext/windows/service/daemon.rb +49 -55
- data/lib/hiera/scope.rb +3 -3
- data/lib/hiera_puppet.rb +1 -1
- data/lib/puppet/agent/disabler.rb +1 -1
- data/lib/puppet/application/agent.rb +2 -2
- data/lib/puppet/application/apply.rb +2 -2
- data/lib/puppet/application/describe.rb +6 -6
- data/lib/puppet/application/device.rb +99 -100
- data/lib/puppet/application/doc.rb +1 -1
- data/lib/puppet/application/face_base.rb +7 -7
- data/lib/puppet/application/filebucket.rb +1 -1
- data/lib/puppet/application/lookup.rb +5 -5
- data/lib/puppet/application/resource.rb +10 -3
- data/lib/puppet/application/ssl.rb +3 -3
- data/lib/puppet/application.rb +16 -18
- data/lib/puppet/coercion.rb +1 -1
- data/lib/puppet/configurer/downloader.rb +9 -4
- data/lib/puppet/configurer/fact_handler.rb +12 -13
- data/lib/puppet/configurer.rb +16 -18
- data/lib/puppet/confine/feature.rb +1 -1
- data/lib/puppet/confine/variable.rb +1 -1
- data/lib/puppet/confine.rb +2 -2
- data/lib/puppet/confine_collection.rb +1 -1
- data/lib/puppet/confiner.rb +2 -2
- data/lib/puppet/daemon.rb +3 -3
- data/lib/puppet/datatypes.rb +5 -6
- data/lib/puppet/defaults.rb +14 -8
- data/lib/puppet/environments.rb +3 -7
- data/lib/puppet/error.rb +3 -3
- data/lib/puppet/external/dot.rb +42 -34
- data/lib/puppet/face/catalog/select.rb +1 -1
- data/lib/puppet/face/epp.rb +7 -9
- data/lib/puppet/face/help.rb +12 -12
- data/lib/puppet/face/module/changes.rb +1 -3
- data/lib/puppet/face/module/list.rb +37 -37
- data/lib/puppet/face/node/clean.rb +1 -1
- data/lib/puppet/face/parser.rb +6 -8
- data/lib/puppet/face/report.rb +5 -7
- data/lib/puppet/facter_impl.rb +1 -1
- data/lib/puppet/feature/base.rb +9 -11
- data/lib/puppet/feature/pe_license.rb +1 -1
- data/lib/puppet/feature/ssh.rb +1 -1
- data/lib/puppet/feature/telnet.rb +3 -5
- data/lib/puppet/feature/zlib.rb +1 -1
- data/lib/puppet/ffi/windows/constants.rb +1 -1
- data/lib/puppet/ffi/windows/functions.rb +2 -2
- data/lib/puppet/ffi/windows/structs.rb +3 -3
- data/lib/puppet/file_bucket/dipper.rb +4 -4
- data/lib/puppet/file_bucket/file.rb +4 -4
- data/lib/puppet/file_serving/base.rb +5 -5
- data/lib/puppet/file_serving/configuration/parser.rb +9 -9
- data/lib/puppet/file_serving/configuration.rb +3 -3
- data/lib/puppet/file_serving/fileset.rb +13 -13
- data/lib/puppet/file_serving/http_metadata.rb +1 -1
- data/lib/puppet/file_serving/metadata.rb +13 -9
- data/lib/puppet/file_serving/mount/file.rb +6 -6
- data/lib/puppet/file_serving/mount/locales.rb +2 -4
- data/lib/puppet/file_serving/mount/pluginfacts.rb +2 -4
- data/lib/puppet/file_serving/mount/plugins.rb +2 -4
- data/lib/puppet/file_serving/mount.rb +1 -1
- data/lib/puppet/file_system/file_impl.rb +3 -3
- data/lib/puppet/file_system/memory_impl.rb +1 -1
- data/lib/puppet/file_system/path_pattern.rb +1 -1
- data/lib/puppet/file_system/uniquefile.rb +17 -16
- data/lib/puppet/file_system/windows.rb +26 -18
- data/lib/puppet/forge/cache.rb +2 -2
- data/lib/puppet/forge/errors.rb +1 -1
- data/lib/puppet/forge/repository.rb +2 -2
- data/lib/puppet/forge.rb +13 -19
- data/lib/puppet/functions/abs.rb +2 -2
- data/lib/puppet/functions/camelcase.rb +1 -1
- data/lib/puppet/functions/compare.rb +2 -2
- data/lib/puppet/functions/contain.rb +1 -1
- data/lib/puppet/functions/defined.rb +2 -2
- data/lib/puppet/functions/dig.rb +1 -1
- data/lib/puppet/functions/eyaml_lookup_key.rb +11 -13
- data/lib/puppet/functions/get.rb +1 -1
- data/lib/puppet/functions/hocon_data.rb +3 -5
- data/lib/puppet/functions/import.rb +1 -1
- data/lib/puppet/functions/json_data.rb +4 -6
- data/lib/puppet/functions/max.rb +2 -2
- data/lib/puppet/functions/min.rb +2 -2
- data/lib/puppet/functions/new.rb +1 -1
- data/lib/puppet/functions/reduce.rb +6 -10
- data/lib/puppet/functions/regsubst.rb +2 -2
- data/lib/puppet/functions/require.rb +1 -1
- data/lib/puppet/functions/yaml_data.rb +11 -13
- data/lib/puppet/functions.rb +32 -37
- data/lib/puppet/generate/type.rb +2 -2
- data/lib/puppet/gettext/config.rb +9 -9
- data/lib/puppet/graph/rb_tree_map.rb +31 -23
- data/lib/puppet/graph/relationship_graph.rb +12 -12
- data/lib/puppet/graph/simple_graph.rb +8 -10
- data/lib/puppet/http/client.rb +1 -1
- data/lib/puppet/http/dns.rb +4 -4
- data/lib/puppet/http/external_client.rb +1 -1
- data/lib/puppet/http/factory.rb +1 -1
- data/lib/puppet/http/proxy.rb +15 -15
- data/lib/puppet/http/redirector.rb +6 -2
- data/lib/puppet/http/resolver.rb +2 -2
- data/lib/puppet/http/retry_after_handler.rb +2 -2
- data/lib/puppet/http/service/ca.rb +1 -1
- data/lib/puppet/http/service/compiler.rb +4 -4
- data/lib/puppet/http/service/file_server.rb +1 -1
- data/lib/puppet/http/service/report.rb +2 -2
- data/lib/puppet/http/service.rb +9 -13
- data/lib/puppet/http/session.rb +1 -1
- data/lib/puppet/http/site.rb +1 -1
- data/lib/puppet/indirector/catalog/compiler.rb +44 -45
- data/lib/puppet/indirector/catalog/rest.rb +7 -5
- data/lib/puppet/indirector/catalog/store_configs.rb +1 -1
- data/lib/puppet/indirector/exec.rb +2 -2
- data/lib/puppet/indirector/face.rb +7 -9
- data/lib/puppet/indirector/fact_search.rb +1 -1
- data/lib/puppet/indirector/facts/facter.rb +6 -6
- data/lib/puppet/indirector/facts/json.rb +1 -1
- data/lib/puppet/indirector/facts/store_configs.rb +1 -1
- data/lib/puppet/indirector/file_bucket_file/file.rb +17 -17
- data/lib/puppet/indirector/file_bucket_file/rest.rb +3 -3
- data/lib/puppet/indirector/file_content/rest.rb +1 -1
- data/lib/puppet/indirector/file_metadata/rest.rb +1 -1
- data/lib/puppet/indirector/hiera.rb +1 -1
- data/lib/puppet/indirector/indirection.rb +27 -29
- data/lib/puppet/indirector/json.rb +4 -4
- data/lib/puppet/indirector/memory.rb +2 -2
- data/lib/puppet/indirector/msgpack.rb +5 -5
- data/lib/puppet/indirector/node/store_configs.rb +1 -1
- data/lib/puppet/indirector/none.rb +1 -1
- data/lib/puppet/indirector/report/json.rb +1 -1
- data/lib/puppet/indirector/report/yaml.rb +1 -1
- data/lib/puppet/indirector/request.rb +4 -4
- data/lib/puppet/indirector/resource/ral.rb +2 -4
- data/lib/puppet/indirector/resource/store_configs.rb +1 -1
- data/lib/puppet/indirector/terminus.rb +4 -4
- data/lib/puppet/indirector/yaml.rb +3 -3
- data/lib/puppet/info_service/class_information_service.rb +5 -8
- data/lib/puppet/info_service/task_information_service.rb +6 -7
- data/lib/puppet/interface/action.rb +5 -5
- data/lib/puppet/interface/action_manager.rb +5 -5
- data/lib/puppet/interface/documentation.rb +5 -5
- data/lib/puppet/interface/face_collection.rb +7 -7
- data/lib/puppet/interface/option.rb +2 -2
- data/lib/puppet/interface/option_manager.rb +6 -6
- data/lib/puppet/interface.rb +4 -4
- data/lib/puppet/metatype/manager.rb +2 -2
- data/lib/puppet/module/plan.rb +10 -10
- data/lib/puppet/module/task.rb +8 -8
- data/lib/puppet/module.rb +39 -41
- data/lib/puppet/module_tool/applications/application.rb +10 -8
- data/lib/puppet/module_tool/applications/installer.rb +53 -50
- data/lib/puppet/module_tool/applications/unpacker.rb +6 -8
- data/lib/puppet/module_tool/applications/upgrader.rb +37 -34
- data/lib/puppet/module_tool/checksums.rb +2 -2
- data/lib/puppet/module_tool/dependency.rb +1 -1
- data/lib/puppet/module_tool/errors/base.rb +1 -1
- data/lib/puppet/module_tool/install_directory.rb +1 -1
- data/lib/puppet/module_tool/local_tarball.rb +3 -5
- data/lib/puppet/module_tool/metadata.rb +12 -8
- data/lib/puppet/module_tool/shared_behaviors.rb +27 -12
- data/lib/puppet/module_tool/tar/mini.rb +3 -3
- data/lib/puppet/module_tool.rb +4 -4
- data/lib/puppet/network/client_request.rb +5 -3
- data/lib/puppet/network/format.rb +2 -2
- data/lib/puppet/network/format_support.rb +1 -1
- data/lib/puppet/network/formats.rb +1 -1
- data/lib/puppet/network/http/api/indirected_routes.rb +24 -44
- data/lib/puppet/network/http/api/server/v3.rb +1 -1
- data/lib/puppet/network/http/connection.rb +1 -1
- data/lib/puppet/network/http/handler.rb +8 -12
- data/lib/puppet/network/http/request.rb +1 -1
- data/lib/puppet/network/http/route.rb +9 -9
- data/lib/puppet/node/environment.rb +21 -23
- data/lib/puppet/node/facts.rb +1 -1
- data/lib/puppet/node.rb +5 -5
- data/lib/puppet/pal/json_catalog_encoder.rb +1 -1
- data/lib/puppet/pal/pal_impl.rb +48 -50
- data/lib/puppet/pal/plan_signature.rb +1 -1
- data/lib/puppet/pal/task_signature.rb +1 -1
- data/lib/puppet/parameter/package_options.rb +1 -1
- data/lib/puppet/parameter/value.rb +2 -2
- data/lib/puppet/parameter/value_collection.rb +7 -7
- data/lib/puppet/parameter.rb +8 -9
- data/lib/puppet/parser/ast/block_expression.rb +2 -2
- data/lib/puppet/parser/ast/hostclass.rb +1 -1
- data/lib/puppet/parser/ast/pops_bridge.rb +3 -4
- data/lib/puppet/parser/ast/resource.rb +4 -4
- data/lib/puppet/parser/ast/resourceparam.rb +4 -4
- data/lib/puppet/parser/ast.rb +14 -15
- data/lib/puppet/parser/compiler.rb +26 -28
- data/lib/puppet/parser/functions/create_resources.rb +3 -3
- data/lib/puppet/parser/functions/fail.rb +1 -1
- data/lib/puppet/parser/functions/generate.rb +2 -2
- data/lib/puppet/parser/functions/tag.rb +1 -1
- data/lib/puppet/parser/functions.rb +2 -2
- data/lib/puppet/parser/relationship.rb +3 -1
- data/lib/puppet/parser/resource/param.rb +2 -2
- data/lib/puppet/parser/resource.rb +23 -23
- data/lib/puppet/parser/scope.rb +10 -10
- data/lib/puppet/parser/script_compiler.rb +1 -1
- data/lib/puppet/parser/templatewrapper.rb +1 -1
- data/lib/puppet/parser/type_loader.rb +10 -12
- data/lib/puppet/parser.rb +1 -1
- data/lib/puppet/pops/adaptable.rb +1 -1
- data/lib/puppet/pops/evaluator/access_operator.rb +8 -8
- data/lib/puppet/pops/evaluator/callable_signature.rb +4 -4
- data/lib/puppet/pops/evaluator/collector_transformer.rb +4 -4
- data/lib/puppet/pops/evaluator/collectors/abstract_collector.rb +7 -7
- data/lib/puppet/pops/evaluator/collectors/fixed_set_collector.rb +6 -6
- data/lib/puppet/pops/evaluator/compare_operator.rb +10 -10
- data/lib/puppet/pops/evaluator/deferred_resolver.rb +1 -1
- data/lib/puppet/pops/evaluator/epp_evaluator.rb +2 -2
- data/lib/puppet/pops/evaluator/evaluator_impl.rb +56 -60
- data/lib/puppet/pops/evaluator/literal_evaluator.rb +4 -0
- data/lib/puppet/pops/evaluator/relationship_operator.rb +2 -2
- data/lib/puppet/pops/evaluator/runtime3_converter.rb +3 -3
- data/lib/puppet/pops/evaluator/runtime3_support.rb +1 -1
- data/lib/puppet/pops/functions/dispatcher.rb +3 -3
- data/lib/puppet/pops/functions/function.rb +14 -16
- data/lib/puppet/pops/issue_reporter.rb +2 -2
- data/lib/puppet/pops/label_provider.rb +2 -2
- data/lib/puppet/pops/loader/dependency_loader.rb +3 -3
- data/lib/puppet/pops/loader/loader.rb +4 -4
- data/lib/puppet/pops/loader/loader_paths.rb +3 -3
- data/lib/puppet/pops/loader/module_loaders.rb +11 -11
- data/lib/puppet/pops/loader/ruby_data_type_instantiator.rb +1 -1
- data/lib/puppet/pops/loader/ruby_function_instantiator.rb +1 -1
- data/lib/puppet/pops/loader/ruby_legacy_function_instantiator.rb +5 -1
- data/lib/puppet/pops/loader/static_loader.rb +3 -3
- data/lib/puppet/pops/loaders.rb +3 -3
- data/lib/puppet/pops/lookup/data_dig_function_provider.rb +1 -1
- data/lib/puppet/pops/lookup/explainer.rb +2 -2
- data/lib/puppet/pops/lookup/global_data_provider.rb +1 -1
- data/lib/puppet/pops/lookup/hiera_config.rb +15 -11
- data/lib/puppet/pops/lookup/interpolation.rb +3 -3
- data/lib/puppet/pops/lookup/key_recorder.rb +1 -1
- data/lib/puppet/pops/lookup/location_resolver.rb +1 -1
- data/lib/puppet/pops/lookup/lookup_adapter.rb +7 -7
- data/lib/puppet/pops/lookup/sub_lookup.rb +1 -1
- data/lib/puppet/pops/merge_strategy.rb +6 -6
- data/lib/puppet/pops/migration/migration_checker.rb +1 -1
- data/lib/puppet/pops/model/ast_transformer.rb +9 -11
- data/lib/puppet/pops/model/factory.rb +4 -5
- data/lib/puppet/pops/parser/epp_parser.rb +2 -2
- data/lib/puppet/pops/parser/epp_support.rb +1 -1
- data/lib/puppet/pops/parser/evaluating_parser.rb +2 -2
- data/lib/puppet/pops/parser/heredoc_support.rb +4 -4
- data/lib/puppet/pops/parser/interpolation_support.rb +3 -3
- data/lib/puppet/pops/parser/lexer2.rb +20 -12
- data/lib/puppet/pops/parser/lexer_support.rb +1 -1
- data/lib/puppet/pops/parser/locator.rb +4 -4
- data/lib/puppet/pops/parser/parser_support.rb +12 -14
- data/lib/puppet/pops/parser/pn_parser.rb +3 -3
- data/lib/puppet/pops/parser/slurp_support.rb +8 -8
- data/lib/puppet/pops/patterns.rb +12 -12
- data/lib/puppet/pops/pcore.rb +1 -1
- data/lib/puppet/pops/pn.rb +2 -2
- data/lib/puppet/pops/puppet_stack.rb +1 -1
- data/lib/puppet/pops/resource/resource_type_impl.rb +1 -1
- data/lib/puppet/pops/serialization/abstract_reader.rb +2 -2
- data/lib/puppet/pops/serialization/abstract_writer.rb +3 -3
- data/lib/puppet/pops/time/timestamp.rb +1 -1
- data/lib/puppet/pops/types/class_loader.rb +4 -6
- data/lib/puppet/pops/types/iterable.rb +1 -1
- data/lib/puppet/pops/types/p_binary_type.rb +1 -1
- data/lib/puppet/pops/types/p_init_type.rb +1 -1
- data/lib/puppet/pops/types/p_object_type.rb +5 -5
- data/lib/puppet/pops/types/p_object_type_extension.rb +4 -6
- data/lib/puppet/pops/types/p_sem_ver_range_type.rb +1 -1
- data/lib/puppet/pops/types/p_sensitive_type.rb +1 -1
- data/lib/puppet/pops/types/p_timespan_type.rb +2 -2
- data/lib/puppet/pops/types/p_type_set_type.rb +10 -10
- data/lib/puppet/pops/types/p_uri_type.rb +4 -4
- data/lib/puppet/pops/types/recursion_guard.rb +4 -4
- data/lib/puppet/pops/types/ruby_generator.rb +2 -2
- data/lib/puppet/pops/types/string_converter.rb +12 -8
- data/lib/puppet/pops/types/tree_iterators.rb +4 -6
- data/lib/puppet/pops/types/type_calculator.rb +10 -10
- data/lib/puppet/pops/types/type_factory.rb +7 -3
- data/lib/puppet/pops/types/type_formatter.rb +22 -24
- data/lib/puppet/pops/types/type_mismatch_describer.rb +24 -24
- data/lib/puppet/pops/types/types.rb +28 -24
- data/lib/puppet/pops/utils.rb +38 -42
- data/lib/puppet/pops/validation/checker4_0.rb +10 -10
- data/lib/puppet/pops/validation/tasks_checker.rb +1 -1
- data/lib/puppet/pops/validation/validator_factory_4_0.rb +2 -0
- data/lib/puppet/pops/validation.rb +4 -4
- data/lib/puppet/pops/visitor.rb +2 -2
- data/lib/puppet/property/ensure.rb +12 -14
- data/lib/puppet/property/keyvalue.rb +4 -4
- data/lib/puppet/property/list.rb +4 -4
- data/lib/puppet/property/ordered_list.rb +1 -1
- data/lib/puppet/property.rb +31 -33
- data/lib/puppet/provider/exec.rb +2 -2
- data/lib/puppet/provider/file/posix.rb +19 -17
- data/lib/puppet/provider/file/windows.rb +13 -19
- data/lib/puppet/provider/group/directoryservice.rb +3 -2
- data/lib/puppet/provider/group/groupadd.rb +4 -4
- data/lib/puppet/provider/group/windows_adsi.rb +2 -2
- data/lib/puppet/provider/nameservice/directoryservice.rb +29 -29
- data/lib/puppet/provider/nameservice/objectadd.rb +2 -4
- data/lib/puppet/provider/nameservice/pw.rb +1 -2
- data/lib/puppet/provider/nameservice.rb +8 -8
- data/lib/puppet/provider/package/aix.rb +19 -19
- data/lib/puppet/provider/package/appdmg.rb +2 -2
- data/lib/puppet/provider/package/apple.rb +1 -1
- data/lib/puppet/provider/package/apt.rb +18 -18
- data/lib/puppet/provider/package/aptitude.rb +1 -3
- data/lib/puppet/provider/package/aptrpm.rb +9 -9
- data/lib/puppet/provider/package/blastwave.rb +10 -14
- data/lib/puppet/provider/package/dnfmodule.rb +3 -3
- data/lib/puppet/provider/package/dpkg.rb +11 -13
- data/lib/puppet/provider/package/fink.rb +14 -14
- data/lib/puppet/provider/package/freebsd.rb +1 -1
- data/lib/puppet/provider/package/gem.rb +12 -14
- data/lib/puppet/provider/package/macports.rb +2 -2
- data/lib/puppet/provider/package/nim.rb +10 -10
- data/lib/puppet/provider/package/openbsd.rb +22 -22
- data/lib/puppet/provider/package/opkg.rb +6 -6
- data/lib/puppet/provider/package/pacman.rb +35 -29
- data/lib/puppet/provider/package/pip.rb +25 -24
- data/lib/puppet/provider/package/pkg.rb +15 -15
- data/lib/puppet/provider/package/pkgdmg.rb +10 -10
- data/lib/puppet/provider/package/pkgin.rb +2 -2
- data/lib/puppet/provider/package/pkgng.rb +5 -5
- data/lib/puppet/provider/package/pkgutil.rb +17 -21
- data/lib/puppet/provider/package/portage.rb +59 -61
- data/lib/puppet/provider/package/ports.rb +12 -11
- data/lib/puppet/provider/package/portupgrade.rb +35 -35
- data/lib/puppet/provider/package/puppetserver_gem.rb +10 -9
- data/lib/puppet/provider/package/rpm.rb +26 -26
- data/lib/puppet/provider/package/rug.rb +7 -9
- data/lib/puppet/provider/package/sun.rb +4 -4
- data/lib/puppet/provider/package/up2date.rb +5 -7
- data/lib/puppet/provider/package/urpmi.rb +6 -6
- data/lib/puppet/provider/package/windows/exe_package.rb +7 -7
- data/lib/puppet/provider/package/windows/msi_package.rb +3 -3
- data/lib/puppet/provider/package/windows/package.rb +2 -2
- data/lib/puppet/provider/package/windows.rb +3 -5
- data/lib/puppet/provider/package/yum.rb +33 -37
- data/lib/puppet/provider/package/zypper.rb +12 -14
- data/lib/puppet/provider/package.rb +1 -1
- data/lib/puppet/provider/package_targetable.rb +1 -1
- data/lib/puppet/provider/parsedfile.rb +9 -9
- data/lib/puppet/provider/service/base.rb +16 -21
- data/lib/puppet/provider/service/bsd.rb +4 -4
- data/lib/puppet/provider/service/daemontools.rb +31 -31
- data/lib/puppet/provider/service/debian.rb +6 -6
- data/lib/puppet/provider/service/freebsd.rb +36 -36
- data/lib/puppet/provider/service/gentoo.rb +6 -6
- data/lib/puppet/provider/service/init.rb +19 -19
- data/lib/puppet/provider/service/launchd.rb +22 -22
- data/lib/puppet/provider/service/openbsd.rb +10 -10
- data/lib/puppet/provider/service/openrc.rb +1 -1
- data/lib/puppet/provider/service/openwrt.rb +3 -3
- data/lib/puppet/provider/service/rcng.rb +3 -3
- data/lib/puppet/provider/service/redhat.rb +4 -4
- data/lib/puppet/provider/service/runit.rb +6 -6
- data/lib/puppet/provider/service/service.rb +5 -7
- data/lib/puppet/provider/service/smf.rb +28 -27
- data/lib/puppet/provider/service/src.rb +7 -7
- data/lib/puppet/provider/service/systemd.rb +31 -37
- data/lib/puppet/provider/service/upstart.rb +17 -17
- data/lib/puppet/provider/service/windows.rb +7 -7
- data/lib/puppet/provider/user/aix.rb +4 -2
- data/lib/puppet/provider/user/directoryservice.rb +34 -36
- data/lib/puppet/provider/user/hpux.rb +10 -14
- data/lib/puppet/provider/user/pw.rb +1 -1
- data/lib/puppet/provider/user/user_role_add.rb +16 -18
- data/lib/puppet/provider/user/useradd.rb +7 -7
- data/lib/puppet/provider/user/windows_adsi.rb +1 -1
- data/lib/puppet/provider.rb +8 -8
- data/lib/puppet/reference/indirection.rb +3 -0
- data/lib/puppet/reference/metaparameter.rb +1 -1
- data/lib/puppet/reference/providers.rb +3 -3
- data/lib/puppet/reference/type.rb +1 -1
- data/lib/puppet/relationship.rb +4 -5
- data/lib/puppet/reports/http.rb +1 -1
- data/lib/puppet/reports/log.rb +2 -2
- data/lib/puppet/reports/store.rb +4 -4
- data/lib/puppet/reports.rb +2 -2
- data/lib/puppet/resource/catalog.rb +16 -16
- data/lib/puppet/resource/status.rb +3 -3
- data/lib/puppet/resource/type.rb +8 -8
- data/lib/puppet/resource/type_collection.rb +1 -1
- data/lib/puppet/resource.rb +41 -41
- data/lib/puppet/scheduler/scheduler.rb +1 -1
- data/lib/puppet/settings/alias_setting.rb +3 -5
- data/lib/puppet/settings/base_setting.rb +11 -11
- data/lib/puppet/settings/boolean_setting.rb +2 -2
- data/lib/puppet/settings/config_file.rb +5 -4
- data/lib/puppet/settings/duration_setting.rb +2 -2
- data/lib/puppet/settings/environment_conf.rb +3 -3
- data/lib/puppet/settings/file_or_directory_setting.rb +2 -2
- data/lib/puppet/settings/file_setting.rb +11 -11
- data/lib/puppet/settings/ini_file.rb +3 -3
- data/lib/puppet/settings/port_setting.rb +1 -1
- data/lib/puppet/settings/priority_setting.rb +2 -2
- data/lib/puppet/settings/ttl_setting.rb +2 -2
- data/lib/puppet/settings/value_translator.rb +8 -8
- data/lib/puppet/settings.rb +65 -70
- data/lib/puppet/ssl/base.rb +2 -4
- data/lib/puppet/ssl/certificate_request.rb +18 -22
- data/lib/puppet/ssl/certificate_request_attributes.rb +3 -3
- data/lib/puppet/ssl/oids.rb +2 -2
- data/lib/puppet/ssl/openssl_loader.rb +4 -4
- data/lib/puppet/syntax_checkers/base64.rb +3 -3
- data/lib/puppet/syntax_checkers/epp.rb +3 -3
- data/lib/puppet/syntax_checkers/json.rb +3 -3
- data/lib/puppet/syntax_checkers/pp.rb +3 -3
- data/lib/puppet/transaction/additional_resource_generator.rb +1 -1
- data/lib/puppet/transaction/event.rb +2 -2
- data/lib/puppet/transaction/event_manager.rb +5 -5
- data/lib/puppet/transaction/persistence.rb +12 -14
- data/lib/puppet/transaction/report.rb +4 -4
- data/lib/puppet/transaction/resource_harness.rb +2 -2
- data/lib/puppet/transaction.rb +14 -18
- data/lib/puppet/type/component.rb +3 -3
- data/lib/puppet/type/exec.rb +43 -45
- data/lib/puppet/type/file/checksum_value.rb +1 -1
- data/lib/puppet/type/file/content.rb +6 -6
- data/lib/puppet/type/file/ctime.rb +2 -2
- data/lib/puppet/type/file/data_sync.rb +3 -3
- data/lib/puppet/type/file/ensure.rb +16 -15
- data/lib/puppet/type/file/mode.rb +9 -9
- data/lib/puppet/type/file/mtime.rb +2 -2
- data/lib/puppet/type/file/selcontext.rb +14 -14
- data/lib/puppet/type/file/source.rb +19 -21
- data/lib/puppet/type/file/target.rb +11 -11
- data/lib/puppet/type/file.rb +21 -21
- data/lib/puppet/type/filebucket.rb +3 -3
- data/lib/puppet/type/group.rb +3 -3
- data/lib/puppet/type/notify.rb +2 -2
- data/lib/puppet/type/package.rb +4 -4
- data/lib/puppet/type/resources.rb +6 -6
- data/lib/puppet/type/schedule.rb +9 -9
- data/lib/puppet/type/service.rb +6 -8
- data/lib/puppet/type/tidy.rb +22 -24
- data/lib/puppet/type/user.rb +13 -13
- data/lib/puppet/type.rb +76 -88
- data/lib/puppet/util/at_fork/solaris.rb +33 -37
- data/lib/puppet/util/autoload.rb +2 -2
- data/lib/puppet/util/backups.rb +9 -9
- data/lib/puppet/util/character_encoding.rb +7 -6
- data/lib/puppet/util/checksums.rb +2 -2
- data/lib/puppet/util/classgen.rb +8 -8
- data/lib/puppet/util/colors.rb +1 -1
- data/lib/puppet/util/command_line/puppet_option_parser.rb +1 -1
- data/lib/puppet/util/command_line/trollop.rb +42 -46
- data/lib/puppet/util/command_line.rb +2 -2
- data/lib/puppet/util/constant_inflector.rb +2 -2
- data/lib/puppet/util/diff.rb +19 -21
- data/lib/puppet/util/docs.rb +2 -2
- data/lib/puppet/util/errors.rb +9 -9
- data/lib/puppet/util/execution.rb +32 -9
- data/lib/puppet/util/feature.rb +1 -1
- data/lib/puppet/util/fileparsing.rb +12 -16
- data/lib/puppet/util/filetype.rb +36 -40
- data/lib/puppet/util/inifile.rb +6 -12
- data/lib/puppet/util/ldap/connection.rb +1 -1
- data/lib/puppet/util/ldap/manager.rb +10 -12
- data/lib/puppet/util/lockfile.rb +6 -8
- data/lib/puppet/util/log/destination.rb +2 -2
- data/lib/puppet/util/log/destinations.rb +4 -4
- data/lib/puppet/util/log.rb +12 -9
- data/lib/puppet/util/logging.rb +11 -11
- data/lib/puppet/util/metric.rb +3 -3
- data/lib/puppet/util/monkey_patches.rb +5 -7
- data/lib/puppet/util/network_device/config.rb +3 -3
- data/lib/puppet/util/package/version/debian.rb +27 -28
- data/lib/puppet/util/package/version/pip.rb +5 -5
- data/lib/puppet/util/package/version/range/eq.rb +1 -1
- data/lib/puppet/util/package/version/rpm.rb +1 -1
- data/lib/puppet/util/package.rb +2 -2
- data/lib/puppet/util/pidlock.rb +2 -2
- data/lib/puppet/util/platform.rb +1 -1
- data/lib/puppet/util/plist.rb +8 -10
- data/lib/puppet/util/posix.rb +17 -17
- data/lib/puppet/util/profiler/aggregate.rb +1 -1
- data/lib/puppet/util/provider_features.rb +3 -3
- data/lib/puppet/util/rdoc/code_objects.rb +3 -3
- data/lib/puppet/util/rdoc/generators/puppet_generator.rb +63 -64
- data/lib/puppet/util/rdoc/generators/template/puppet/puppet.rb +23 -23
- data/lib/puppet/util/rdoc/parser/puppet_parser_core.rb +12 -12
- data/lib/puppet/util/rdoc/parser/puppet_parser_rdoc2.rb +1 -1
- data/lib/puppet/util/rdoc/parser.rb +1 -1
- data/lib/puppet/util/reference.rb +13 -9
- data/lib/puppet/util/retry_action.rb +1 -1
- data/lib/puppet/util/rpm_compare.rb +17 -18
- data/lib/puppet/util/rubygems.rb +1 -1
- data/lib/puppet/util/selinux.rb +7 -7
- data/lib/puppet/util/storage.rb +10 -12
- data/lib/puppet/util/suidmanager.rb +18 -19
- data/lib/puppet/util/symbolic_file_mode.rb +71 -75
- data/lib/puppet/util/tag_set.rb +2 -2
- data/lib/puppet/util/tagging.rb +8 -10
- data/lib/puppet/util/terminal.rb +4 -4
- data/lib/puppet/util/user_attr.rb +7 -7
- data/lib/puppet/util/watcher.rb +3 -5
- data/lib/puppet/util/windows/access_control_list.rb +1 -1
- data/lib/puppet/util/windows/adsi.rb +42 -42
- data/lib/puppet/util/windows/daemon.rb +64 -68
- data/lib/puppet/util/windows/error.rb +2 -2
- data/lib/puppet/util/windows/file.rb +18 -25
- data/lib/puppet/util/windows/monkey_patches/process.rb +1 -1
- data/lib/puppet/util/windows/principal.rb +8 -8
- data/lib/puppet/util/windows/process.rb +16 -28
- data/lib/puppet/util/windows/registry.rb +16 -15
- data/lib/puppet/util/windows/root_certs.rb +2 -2
- data/lib/puppet/util/windows/security.rb +31 -31
- data/lib/puppet/util/windows/service.rb +11 -11
- data/lib/puppet/util/windows/sid.rb +8 -8
- data/lib/puppet/util/windows/user.rb +18 -20
- data/lib/puppet/util/yaml.rb +1 -1
- data/lib/puppet/util.rb +55 -46
- data/lib/puppet/version.rb +2 -2
- data/lib/puppet/x509/pem_store.rb +1 -1
- data/lib/puppet.rb +3 -3
- data/man/man5/puppet.conf.5 +10 -2
- data/man/man8/puppet-agent.8 +1 -1
- data/man/man8/puppet-apply.8 +1 -1
- data/man/man8/puppet-catalog.8 +1 -1
- data/man/man8/puppet-config.8 +1 -1
- data/man/man8/puppet-describe.8 +1 -1
- data/man/man8/puppet-device.8 +1 -1
- data/man/man8/puppet-doc.8 +1 -1
- data/man/man8/puppet-epp.8 +1 -1
- data/man/man8/puppet-facts.8 +1 -1
- data/man/man8/puppet-filebucket.8 +1 -1
- data/man/man8/puppet-generate.8 +1 -1
- data/man/man8/puppet-help.8 +1 -1
- data/man/man8/puppet-lookup.8 +1 -1
- data/man/man8/puppet-module.8 +1 -1
- data/man/man8/puppet-node.8 +1 -1
- data/man/man8/puppet-parser.8 +1 -1
- data/man/man8/puppet-plugin.8 +1 -1
- data/man/man8/puppet-report.8 +1 -1
- data/man/man8/puppet-resource.8 +5 -1
- data/man/man8/puppet-script.8 +1 -1
- data/man/man8/puppet-ssl.8 +1 -1
- data/man/man8/puppet.8 +2 -2
- metadata +2 -2
@@ -1,5 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
+
require 'English'
|
3
4
|
unless Puppet::Util::Platform.jruby_fips?
|
4
5
|
require 'rubygems/commands/list_command'
|
5
6
|
end
|
@@ -37,7 +38,7 @@ Puppet::Type.type(:package).provide :puppetserver_gem, :parent => :gem do
|
|
37
38
|
end
|
38
39
|
|
39
40
|
def self.gemlist(options)
|
40
|
-
command_options = [
|
41
|
+
command_options = %w[gem list]
|
41
42
|
|
42
43
|
if options[:local]
|
43
44
|
command_options << '--local'
|
@@ -74,14 +75,14 @@ Puppet::Type.type(:package).provide :puppetserver_gem, :parent => :gem do
|
|
74
75
|
.map { |set| gemsplit(set) }
|
75
76
|
|
76
77
|
if options[:justme]
|
77
|
-
|
78
|
+
gem_list.shift
|
78
79
|
else
|
79
|
-
|
80
|
+
gem_list
|
80
81
|
end
|
81
82
|
end
|
82
83
|
|
83
84
|
def install(useversion = true)
|
84
|
-
command_options = [
|
85
|
+
command_options = %w[gem install]
|
85
86
|
command_options += install_options if resource[:install_options]
|
86
87
|
|
87
88
|
command_options << '-v' << resource[:ensure] if (!resource[:ensure].is_a? Symbol) && useversion
|
@@ -103,10 +104,10 @@ Puppet::Type.type(:package).provide :puppetserver_gem, :parent => :gem do
|
|
103
104
|
command_options << uri.path
|
104
105
|
when 'puppet'
|
105
106
|
# we don't support puppet:// URLs (yet)
|
106
|
-
raise Puppet::Error
|
107
|
+
raise Puppet::Error, _('puppet:// URLs are not supported as gem sources')
|
107
108
|
else
|
108
109
|
# interpret it as a gem repository
|
109
|
-
command_options << '--source' <<
|
110
|
+
command_options << '--source' << resource[:source].to_s << resource[:name]
|
110
111
|
end
|
111
112
|
else
|
112
113
|
command_options << resource[:name]
|
@@ -118,7 +119,7 @@ Puppet::Type.type(:package).provide :puppetserver_gem, :parent => :gem do
|
|
118
119
|
end
|
119
120
|
|
120
121
|
def uninstall
|
121
|
-
command_options = [
|
122
|
+
command_options = %w[gem uninstall]
|
122
123
|
command_options << '--executables' << '--all' << resource[:name]
|
123
124
|
command_options += uninstall_options if resource[:uninstall_options]
|
124
125
|
|
@@ -158,7 +159,7 @@ Puppet::Type.type(:package).provide :puppetserver_gem, :parent => :gem do
|
|
158
159
|
gem_env['GEM_HOME'] = puppetserver_conf['jruby-puppet'].key?('gem-home') ? puppetserver_conf['jruby-puppet']['gem-home'] : puppetserver_default_gem_home
|
159
160
|
gem_env['GEM_PATH'] = puppetserver_conf['jruby-puppet'].key?('gem-path') ? puppetserver_conf['jruby-puppet']['gem-path'].join(':') : puppetserver_default_gem_path
|
160
161
|
end
|
161
|
-
gem_env['GEM_SPEC_CACHE'] = "/tmp/#{
|
162
|
+
gem_env['GEM_SPEC_CACHE'] = "/tmp/#{$PROCESS_ID}"
|
162
163
|
|
163
164
|
# Remove the 'gem' from the command_options
|
164
165
|
command_options.shift
|
@@ -167,7 +168,7 @@ Puppet::Type.type(:package).provide :puppetserver_gem, :parent => :gem do
|
|
167
168
|
# There is no method exclude default gems from the local gem list,
|
168
169
|
# for example: psych (default: 2.2.2)
|
169
170
|
# but default gems should not be managed by this (or any) provider.
|
170
|
-
gem_list = gem_out.lines.reject { |gem| gem =~ / \(default
|
171
|
+
gem_list = gem_out.lines.reject { |gem| gem =~ / \(default: / }
|
171
172
|
gem_list.join("\n")
|
172
173
|
end
|
173
174
|
end
|
@@ -24,8 +24,8 @@ Puppet::Type.type(:package).provide :rpm, :source => :rpm, :parent => Puppet::Pr
|
|
24
24
|
# Note: self:: is required here to keep these constants in the context of what will
|
25
25
|
# eventually become this Puppet::Type::Package::ProviderRpm class.
|
26
26
|
# The query format by which we identify installed packages
|
27
|
-
self::NEVRA_FORMAT = %
|
28
|
-
self::NEVRA_REGEX =
|
27
|
+
self::NEVRA_FORMAT = '%{NAME} %|EPOCH?{%{EPOCH}}:{0}| %{VERSION} %{RELEASE} %{ARCH}\\n'
|
28
|
+
self::NEVRA_REGEX = /^'?(\S+) (\S+) (\S+) (\S+) (\S+)$/
|
29
29
|
self::NEVRA_FIELDS = [:name, :epoch, :version, :release, :arch]
|
30
30
|
self::MULTIVERSION_SEPARATOR = "; "
|
31
31
|
|
@@ -71,8 +71,8 @@ Puppet::Type.type(:package).provide :rpm, :source => :rpm, :parent => Puppet::Pr
|
|
71
71
|
# now turn each returned line into a package object
|
72
72
|
nevra_to_multiversion_hash(process).each { |hash| packages << new(hash) }
|
73
73
|
}
|
74
|
-
rescue Puppet::ExecutionFailure
|
75
|
-
raise Puppet::Error, _("Failed to list packages"),
|
74
|
+
rescue Puppet::ExecutionFailure => e
|
75
|
+
raise Puppet::Error, _("Failed to list packages"), e.backtrace
|
76
76
|
end
|
77
77
|
|
78
78
|
packages
|
@@ -85,7 +85,7 @@ Puppet::Type.type(:package).provide :rpm, :source => :rpm, :parent => Puppet::Pr
|
|
85
85
|
# NOTE: Prior to a fix for issue 1243, this method potentially returned a cached value
|
86
86
|
# IF YOU CALL THIS METHOD, IT WILL CALL RPM
|
87
87
|
# Use get(:property) to check if cached values are available
|
88
|
-
cmd = ["-q", @resource[:name],
|
88
|
+
cmd = ["-q", @resource[:name], self.class.nosignature.to_s, self.class.nodigest.to_s, "--qf", self.class::NEVRA_FORMAT.to_s]
|
89
89
|
|
90
90
|
begin
|
91
91
|
output = rpm(*cmd)
|
@@ -114,7 +114,7 @@ Puppet::Type.type(:package).provide :rpm, :source => :rpm, :parent => Puppet::Pr
|
|
114
114
|
@resource.fail _("RPMs must specify a package source")
|
115
115
|
end
|
116
116
|
|
117
|
-
cmd = [command(:rpm), "-q", "--qf",
|
117
|
+
cmd = [command(:rpm), "-q", "--qf", self.class::NEVRA_FORMAT.to_s, "-p", source]
|
118
118
|
h = self.class.nevra_to_multiversion_hash(execute(cmd))
|
119
119
|
h[:ensure]
|
120
120
|
rescue Puppet::ExecutionFailure => e
|
@@ -175,7 +175,7 @@ Puppet::Type.type(:package).provide :rpm, :source => :rpm, :parent => Puppet::Pr
|
|
175
175
|
end
|
176
176
|
|
177
177
|
def update
|
178
|
-
|
178
|
+
install
|
179
179
|
end
|
180
180
|
|
181
181
|
def install_options
|
@@ -209,14 +209,14 @@ Puppet::Type.type(:package).provide :rpm, :source => :rpm, :parent => Puppet::Pr
|
|
209
209
|
match = self::NEVRA_REGEX.match(line)
|
210
210
|
if match
|
211
211
|
self::NEVRA_FIELDS.zip(match.captures) { |f, v| hash[f] = v }
|
212
|
-
hash[:provider] =
|
212
|
+
hash[:provider] = name
|
213
213
|
hash[:ensure] = "#{hash[:version]}-#{hash[:release]}"
|
214
214
|
hash[:ensure].prepend("#{hash[:epoch]}:") if hash[:epoch] != '0'
|
215
215
|
else
|
216
216
|
Puppet.debug("Failed to match rpm line #{line}")
|
217
217
|
end
|
218
218
|
|
219
|
-
|
219
|
+
hash
|
220
220
|
end
|
221
221
|
|
222
222
|
# @param line [String] multiple lines of rpm package query information
|
@@ -227,22 +227,22 @@ Puppet::Type.type(:package).provide :rpm, :source => :rpm, :parent => Puppet::Pr
|
|
227
227
|
list = []
|
228
228
|
multiversion_hash = {}
|
229
229
|
multiline.each_line do |line|
|
230
|
-
hash =
|
231
|
-
if
|
232
|
-
|
233
|
-
|
234
|
-
|
235
|
-
|
236
|
-
|
237
|
-
|
238
|
-
|
239
|
-
|
240
|
-
|
241
|
-
|
242
|
-
|
243
|
-
|
244
|
-
|
245
|
-
|
230
|
+
hash = nevra_to_hash(line)
|
231
|
+
next if hash.empty?
|
232
|
+
|
233
|
+
if multiversion_hash.empty?
|
234
|
+
multiversion_hash = hash.dup
|
235
|
+
next
|
236
|
+
end
|
237
|
+
|
238
|
+
if multiversion_hash[:name] != hash[:name]
|
239
|
+
list << multiversion_hash
|
240
|
+
multiversion_hash = hash.dup
|
241
|
+
next
|
242
|
+
end
|
243
|
+
|
244
|
+
unless multiversion_hash[:ensure].include?(hash[:ensure])
|
245
|
+
multiversion_hash[:ensure].concat("#{self::MULTIVERSION_SEPARATOR}#{hash[:ensure]}")
|
246
246
|
end
|
247
247
|
end
|
248
248
|
list << multiversion_hash if multiversion_hash
|
@@ -250,6 +250,6 @@ Puppet::Type.type(:package).provide :rpm, :source => :rpm, :parent => Puppet::Pr
|
|
250
250
|
return list[0]
|
251
251
|
end
|
252
252
|
|
253
|
-
|
253
|
+
list
|
254
254
|
end
|
255
255
|
end
|
@@ -12,7 +12,7 @@ Puppet::Type.type(:package).provide :rug, :parent => :rpm do
|
|
12
12
|
# Install a package using 'rug'.
|
13
13
|
def install
|
14
14
|
should = @resource.should(:ensure)
|
15
|
-
|
15
|
+
debug "Ensuring => #{should}"
|
16
16
|
wanted = @resource[:name]
|
17
17
|
|
18
18
|
# XXX: We don't actually deal with epochs here.
|
@@ -25,10 +25,8 @@ Puppet::Type.type(:package).provide :rug, :parent => :rpm do
|
|
25
25
|
end
|
26
26
|
rug "--quiet", :install, "-y", wanted
|
27
27
|
|
28
|
-
unless
|
29
|
-
raise Puppet::ExecutionFailure
|
30
|
-
_("Could not find package %{name}") % { name: self.name }
|
31
|
-
)
|
28
|
+
unless query
|
29
|
+
raise Puppet::ExecutionFailure, _("Could not find package %{name}") % { name: name }
|
32
30
|
end
|
33
31
|
end
|
34
32
|
|
@@ -37,17 +35,17 @@ Puppet::Type.type(:package).provide :rug, :parent => :rpm do
|
|
37
35
|
# rug can only get a list of *all* available packages?
|
38
36
|
output = rug "list-updates"
|
39
37
|
|
40
|
-
if output =~ /#{Regexp.escape @resource[:name]}\s*\|\s*([^\s
|
41
|
-
|
38
|
+
if output =~ /#{Regexp.escape @resource[:name]}\s*\|\s*([^\s|]+)/
|
39
|
+
Regexp.last_match(1)
|
42
40
|
else
|
43
41
|
# rug didn't find updates, pretend the current
|
44
42
|
# version is the latest
|
45
|
-
|
43
|
+
@property_hash[:ensure]
|
46
44
|
end
|
47
45
|
end
|
48
46
|
|
49
47
|
def update
|
50
48
|
# rug install can be used for update, too
|
51
|
-
|
49
|
+
install
|
52
50
|
end
|
53
51
|
end
|
@@ -47,7 +47,7 @@ Puppet::Type.type(:package).provide :sun, :parent => Puppet::Provider::Package d
|
|
47
47
|
pkgs << pkg unless pkg.empty?
|
48
48
|
pkg = {}
|
49
49
|
when /^\s*([^:]+):\s+(.+)$/
|
50
|
-
pkg[
|
50
|
+
pkg[Regexp.last_match(1)] = Regexp.last_match(2)
|
51
51
|
end
|
52
52
|
end
|
53
53
|
pkgs << pkg unless pkg.empty?
|
@@ -81,7 +81,7 @@ Puppet::Type.type(:package).provide :sun, :parent => Puppet::Provider::Package d
|
|
81
81
|
# so even though pkginfo passed, we have to check the actual output
|
82
82
|
raise Puppet::Error, _("Unable to get information about package %{name} because of: %{errmsg}") % { name: @resource[:name], errmsg: errmsg }
|
83
83
|
rescue Puppet::ExecutionFailure
|
84
|
-
|
84
|
+
{ :ensure => :absent }
|
85
85
|
end
|
86
86
|
end
|
87
87
|
|
@@ -115,8 +115,8 @@ Puppet::Type.type(:package).provide :sun, :parent => Puppet::Provider::Package d
|
|
115
115
|
# Remove the old package, and install the new one. This will probably
|
116
116
|
# often fail.
|
117
117
|
def update
|
118
|
-
|
119
|
-
|
118
|
+
uninstall if (@property_hash[:ensure] || info2hash[:ensure]) != :absent
|
119
|
+
install
|
120
120
|
end
|
121
121
|
|
122
122
|
def prepare_cmd(opt)
|
@@ -14,10 +14,8 @@ Puppet::Type.type(:package).provide :up2date, :parent => :rpm, :source => :rpm d
|
|
14
14
|
def install
|
15
15
|
up2date "-u", @resource[:name]
|
16
16
|
|
17
|
-
unless
|
18
|
-
raise Puppet::ExecutionFailure
|
19
|
-
_("Could not find package %{name}") % { name: self.name }
|
20
|
-
)
|
17
|
+
unless query
|
18
|
+
raise Puppet::ExecutionFailure, _("Could not find package %{name}") % { name: name }
|
21
19
|
end
|
22
20
|
end
|
23
21
|
|
@@ -27,16 +25,16 @@ Puppet::Type.type(:package).provide :up2date, :parent => :rpm, :source => :rpm d
|
|
27
25
|
output = up2date "--showall"
|
28
26
|
|
29
27
|
if output =~ /^#{Regexp.escape @resource[:name]}-(\d+.*)\.\w+/
|
30
|
-
|
28
|
+
Regexp.last_match(1)
|
31
29
|
else
|
32
30
|
# up2date didn't find updates, pretend the current
|
33
31
|
# version is the latest
|
34
|
-
|
32
|
+
@property_hash[:ensure]
|
35
33
|
end
|
36
34
|
end
|
37
35
|
|
38
36
|
def update
|
39
37
|
# Install in up2date can be used for update, too
|
40
|
-
|
38
|
+
install
|
41
39
|
end
|
42
40
|
end
|
@@ -10,7 +10,7 @@ Puppet::Type.type(:package).provide :urpmi, :parent => :rpm, :source => :rpm do
|
|
10
10
|
|
11
11
|
def install
|
12
12
|
should = @resource.should(:ensure)
|
13
|
-
|
13
|
+
debug "Ensuring => #{should}"
|
14
14
|
wanted = @resource[:name]
|
15
15
|
|
16
16
|
# XXX: We don't actually deal with epochs here.
|
@@ -24,8 +24,8 @@ Puppet::Type.type(:package).provide :urpmi, :parent => :rpm, :source => :rpm do
|
|
24
24
|
|
25
25
|
urpmi "--auto", wanted
|
26
26
|
|
27
|
-
unless
|
28
|
-
raise Puppet::Error, _("Package %{name} was not present after trying to install it") % { name:
|
27
|
+
unless query
|
28
|
+
raise Puppet::Error, _("Package %{name} was not present after trying to install it") % { name: name }
|
29
29
|
end
|
30
30
|
end
|
31
31
|
|
@@ -34,17 +34,17 @@ Puppet::Type.type(:package).provide :urpmi, :parent => :rpm, :source => :rpm do
|
|
34
34
|
output = urpmq "-S", @resource[:name]
|
35
35
|
|
36
36
|
if output =~ /^#{Regexp.escape @resource[:name]}\s+:\s+.*\(\s+(\S+)\s+\)/
|
37
|
-
|
37
|
+
Regexp.last_match(1)
|
38
38
|
else
|
39
39
|
# urpmi didn't find updates, pretend the current
|
40
40
|
# version is the latest
|
41
|
-
|
41
|
+
@resource[:ensure]
|
42
42
|
end
|
43
43
|
end
|
44
44
|
|
45
45
|
def update
|
46
46
|
# Install in urpmi can be used for update, too
|
47
|
-
|
47
|
+
install
|
48
48
|
end
|
49
49
|
|
50
50
|
# For normal package removal the urpmi provider will delegate to the RPM
|
@@ -16,7 +16,7 @@ class Puppet::Provider::Package::Windows
|
|
16
16
|
'Security Update',
|
17
17
|
'Update Rollup',
|
18
18
|
'Hotfix',
|
19
|
-
'WindowsInstaller'
|
19
|
+
'WindowsInstaller'
|
20
20
|
]
|
21
21
|
|
22
22
|
def self.register(path)
|
@@ -44,10 +44,10 @@ class Puppet::Provider::Package::Windows
|
|
44
44
|
values['UninstallString'].length > 0 &&
|
45
45
|
values['WindowsInstaller'] != 1 && # DWORD
|
46
46
|
name !~ /^KB[0-9]{6}/ &&
|
47
|
-
values['ParentKeyName']
|
48
|
-
values['Security Update']
|
49
|
-
values['Update Rollup']
|
50
|
-
values['Hotfix']
|
47
|
+
values['ParentKeyName'].nil? &&
|
48
|
+
values['Security Update'].nil? &&
|
49
|
+
values['Update Rollup'].nil? &&
|
50
|
+
values['Hotfix'].nil?)
|
51
51
|
end
|
52
52
|
|
53
53
|
def initialize(name, version, uninstall_string)
|
@@ -69,7 +69,7 @@ class Puppet::Provider::Package::Windows
|
|
69
69
|
uri = URI(Puppet::Util.uri_encode(file_location))
|
70
70
|
client = Puppet.runtime[:http]
|
71
71
|
client.get(uri, options: { include_system_store: true }) do |response|
|
72
|
-
raise Puppet::HTTP::ResponseError
|
72
|
+
raise Puppet::HTTP::ResponseError, response unless response.success?
|
73
73
|
|
74
74
|
File.open(tempfile.path, 'wb') do |file|
|
75
75
|
response.read_body do |data|
|
@@ -80,7 +80,7 @@ class Puppet::Provider::Package::Windows
|
|
80
80
|
rescue => detail
|
81
81
|
raise Puppet::Error.new(_("Error when installing %{package}: %{detail}") % { package: resource[:name], detail: detail.message }, detail)
|
82
82
|
ensure
|
83
|
-
|
83
|
+
register(tempfile.path)
|
84
84
|
tempfile.close()
|
85
85
|
file_location = tempfile.path
|
86
86
|
end
|
@@ -13,9 +13,9 @@ class Puppet::Provider::Package::Windows
|
|
13
13
|
# registry values to load under each product entry in
|
14
14
|
# HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall
|
15
15
|
# for this provider
|
16
|
-
REG_VALUE_NAMES = [
|
17
|
-
|
18
|
-
|
16
|
+
REG_VALUE_NAMES = %w[
|
17
|
+
DisplayVersion
|
18
|
+
WindowsInstaller
|
19
19
|
]
|
20
20
|
|
21
21
|
# Get the COM installer object, it's in a separate method for testing
|
@@ -13,7 +13,7 @@ class Puppet::Provider::Package::Windows
|
|
13
13
|
|
14
14
|
attr_reader :name, :version
|
15
15
|
|
16
|
-
REG_DISPLAY_VALUE_NAMES = [
|
16
|
+
REG_DISPLAY_VALUE_NAMES = %w[DisplayName QuietDisplayName]
|
17
17
|
|
18
18
|
def self.reg_value_names_to_load
|
19
19
|
REG_DISPLAY_VALUE_NAMES |
|
@@ -91,7 +91,7 @@ class Puppet::Provider::Package::Windows
|
|
91
91
|
end
|
92
92
|
|
93
93
|
def self.quote(value)
|
94
|
-
value.include?(' ') ? %Q
|
94
|
+
value.include?(' ') ? %Q("#{value.gsub(/"/, '\"')}") : value
|
95
95
|
end
|
96
96
|
|
97
97
|
def self.get_display_name(values)
|
@@ -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
|
|
@@ -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
|