puppet 8.5.0-universal-darwin → 8.6.0-universal-darwin
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/Gemfile.lock +29 -26
- data/ext/windows/service/daemon.rb +49 -55
- data/lib/hiera/scope.rb +3 -3
- data/lib/hiera_puppet.rb +1 -1
- data/lib/puppet/agent/disabler.rb +1 -1
- data/lib/puppet/application/agent.rb +2 -2
- data/lib/puppet/application/apply.rb +2 -2
- data/lib/puppet/application/describe.rb +6 -6
- data/lib/puppet/application/device.rb +99 -100
- data/lib/puppet/application/doc.rb +1 -1
- data/lib/puppet/application/face_base.rb +7 -7
- data/lib/puppet/application/filebucket.rb +1 -1
- data/lib/puppet/application/lookup.rb +5 -5
- data/lib/puppet/application/resource.rb +10 -3
- data/lib/puppet/application/ssl.rb +3 -3
- data/lib/puppet/application.rb +16 -18
- data/lib/puppet/coercion.rb +1 -1
- data/lib/puppet/configurer/downloader.rb +9 -4
- data/lib/puppet/configurer/fact_handler.rb +12 -13
- data/lib/puppet/configurer.rb +16 -18
- data/lib/puppet/confine/feature.rb +1 -1
- data/lib/puppet/confine/variable.rb +1 -1
- data/lib/puppet/confine.rb +2 -2
- data/lib/puppet/confine_collection.rb +1 -1
- data/lib/puppet/confiner.rb +2 -2
- data/lib/puppet/daemon.rb +3 -3
- data/lib/puppet/datatypes.rb +5 -6
- data/lib/puppet/defaults.rb +14 -8
- data/lib/puppet/environments.rb +3 -7
- data/lib/puppet/error.rb +3 -3
- data/lib/puppet/external/dot.rb +42 -34
- data/lib/puppet/face/catalog/select.rb +1 -1
- data/lib/puppet/face/epp.rb +7 -9
- data/lib/puppet/face/help.rb +12 -12
- data/lib/puppet/face/module/changes.rb +1 -3
- data/lib/puppet/face/module/list.rb +37 -37
- data/lib/puppet/face/node/clean.rb +1 -1
- data/lib/puppet/face/parser.rb +6 -8
- data/lib/puppet/face/report.rb +5 -7
- data/lib/puppet/facter_impl.rb +1 -1
- data/lib/puppet/feature/base.rb +9 -11
- data/lib/puppet/feature/pe_license.rb +1 -1
- data/lib/puppet/feature/ssh.rb +1 -1
- data/lib/puppet/feature/telnet.rb +3 -5
- data/lib/puppet/feature/zlib.rb +1 -1
- data/lib/puppet/ffi/windows/constants.rb +1 -1
- data/lib/puppet/ffi/windows/functions.rb +2 -2
- data/lib/puppet/ffi/windows/structs.rb +3 -3
- data/lib/puppet/file_bucket/dipper.rb +4 -4
- data/lib/puppet/file_bucket/file.rb +4 -4
- data/lib/puppet/file_serving/base.rb +5 -5
- data/lib/puppet/file_serving/configuration/parser.rb +9 -9
- data/lib/puppet/file_serving/configuration.rb +3 -3
- data/lib/puppet/file_serving/fileset.rb +13 -13
- data/lib/puppet/file_serving/http_metadata.rb +1 -1
- data/lib/puppet/file_serving/metadata.rb +13 -9
- data/lib/puppet/file_serving/mount/file.rb +6 -6
- data/lib/puppet/file_serving/mount/locales.rb +2 -4
- data/lib/puppet/file_serving/mount/pluginfacts.rb +2 -4
- data/lib/puppet/file_serving/mount/plugins.rb +2 -4
- data/lib/puppet/file_serving/mount.rb +1 -1
- data/lib/puppet/file_system/file_impl.rb +3 -3
- data/lib/puppet/file_system/memory_impl.rb +1 -1
- data/lib/puppet/file_system/path_pattern.rb +1 -1
- data/lib/puppet/file_system/uniquefile.rb +17 -16
- data/lib/puppet/file_system/windows.rb +26 -18
- data/lib/puppet/forge/cache.rb +2 -2
- data/lib/puppet/forge/errors.rb +1 -1
- data/lib/puppet/forge/repository.rb +2 -2
- data/lib/puppet/forge.rb +13 -19
- data/lib/puppet/functions/abs.rb +2 -2
- data/lib/puppet/functions/camelcase.rb +1 -1
- data/lib/puppet/functions/compare.rb +2 -2
- data/lib/puppet/functions/contain.rb +1 -1
- data/lib/puppet/functions/defined.rb +2 -2
- data/lib/puppet/functions/dig.rb +1 -1
- data/lib/puppet/functions/eyaml_lookup_key.rb +11 -13
- data/lib/puppet/functions/get.rb +1 -1
- data/lib/puppet/functions/hocon_data.rb +3 -5
- data/lib/puppet/functions/import.rb +1 -1
- data/lib/puppet/functions/json_data.rb +4 -6
- data/lib/puppet/functions/max.rb +2 -2
- data/lib/puppet/functions/min.rb +2 -2
- data/lib/puppet/functions/new.rb +1 -1
- data/lib/puppet/functions/reduce.rb +6 -10
- data/lib/puppet/functions/regsubst.rb +2 -2
- data/lib/puppet/functions/require.rb +1 -1
- data/lib/puppet/functions/yaml_data.rb +11 -13
- data/lib/puppet/functions.rb +32 -37
- data/lib/puppet/generate/type.rb +2 -2
- data/lib/puppet/gettext/config.rb +9 -9
- data/lib/puppet/graph/rb_tree_map.rb +31 -23
- data/lib/puppet/graph/relationship_graph.rb +12 -12
- data/lib/puppet/graph/simple_graph.rb +8 -10
- data/lib/puppet/http/client.rb +1 -1
- data/lib/puppet/http/dns.rb +4 -4
- data/lib/puppet/http/external_client.rb +1 -1
- data/lib/puppet/http/factory.rb +1 -1
- data/lib/puppet/http/proxy.rb +15 -15
- data/lib/puppet/http/redirector.rb +6 -2
- data/lib/puppet/http/resolver.rb +2 -2
- data/lib/puppet/http/retry_after_handler.rb +2 -2
- data/lib/puppet/http/service/ca.rb +1 -1
- data/lib/puppet/http/service/compiler.rb +4 -4
- data/lib/puppet/http/service/file_server.rb +1 -1
- data/lib/puppet/http/service/report.rb +2 -2
- data/lib/puppet/http/service.rb +9 -13
- data/lib/puppet/http/session.rb +1 -1
- data/lib/puppet/http/site.rb +1 -1
- data/lib/puppet/indirector/catalog/compiler.rb +44 -45
- data/lib/puppet/indirector/catalog/rest.rb +7 -5
- data/lib/puppet/indirector/catalog/store_configs.rb +1 -1
- data/lib/puppet/indirector/exec.rb +2 -2
- data/lib/puppet/indirector/face.rb +7 -9
- data/lib/puppet/indirector/fact_search.rb +1 -1
- data/lib/puppet/indirector/facts/facter.rb +6 -6
- data/lib/puppet/indirector/facts/json.rb +1 -1
- data/lib/puppet/indirector/facts/store_configs.rb +1 -1
- data/lib/puppet/indirector/file_bucket_file/file.rb +17 -17
- data/lib/puppet/indirector/file_bucket_file/rest.rb +3 -3
- data/lib/puppet/indirector/file_content/rest.rb +1 -1
- data/lib/puppet/indirector/file_metadata/rest.rb +1 -1
- data/lib/puppet/indirector/hiera.rb +1 -1
- data/lib/puppet/indirector/indirection.rb +27 -29
- data/lib/puppet/indirector/json.rb +4 -4
- data/lib/puppet/indirector/memory.rb +2 -2
- data/lib/puppet/indirector/msgpack.rb +5 -5
- data/lib/puppet/indirector/node/store_configs.rb +1 -1
- data/lib/puppet/indirector/none.rb +1 -1
- data/lib/puppet/indirector/report/json.rb +1 -1
- data/lib/puppet/indirector/report/yaml.rb +1 -1
- data/lib/puppet/indirector/request.rb +4 -4
- data/lib/puppet/indirector/resource/ral.rb +2 -4
- data/lib/puppet/indirector/resource/store_configs.rb +1 -1
- data/lib/puppet/indirector/terminus.rb +4 -4
- data/lib/puppet/indirector/yaml.rb +3 -3
- data/lib/puppet/info_service/class_information_service.rb +5 -8
- data/lib/puppet/info_service/task_information_service.rb +6 -7
- data/lib/puppet/interface/action.rb +5 -5
- data/lib/puppet/interface/action_manager.rb +5 -5
- data/lib/puppet/interface/documentation.rb +5 -5
- data/lib/puppet/interface/face_collection.rb +7 -7
- data/lib/puppet/interface/option.rb +2 -2
- data/lib/puppet/interface/option_manager.rb +6 -6
- data/lib/puppet/interface.rb +4 -4
- data/lib/puppet/metatype/manager.rb +2 -2
- data/lib/puppet/module/plan.rb +10 -10
- data/lib/puppet/module/task.rb +8 -8
- data/lib/puppet/module.rb +39 -41
- data/lib/puppet/module_tool/applications/application.rb +10 -8
- data/lib/puppet/module_tool/applications/installer.rb +53 -50
- data/lib/puppet/module_tool/applications/unpacker.rb +6 -8
- data/lib/puppet/module_tool/applications/upgrader.rb +37 -34
- data/lib/puppet/module_tool/checksums.rb +2 -2
- data/lib/puppet/module_tool/dependency.rb +1 -1
- data/lib/puppet/module_tool/errors/base.rb +1 -1
- data/lib/puppet/module_tool/install_directory.rb +1 -1
- data/lib/puppet/module_tool/local_tarball.rb +3 -5
- data/lib/puppet/module_tool/metadata.rb +12 -8
- data/lib/puppet/module_tool/shared_behaviors.rb +27 -12
- data/lib/puppet/module_tool/tar/mini.rb +3 -3
- data/lib/puppet/module_tool.rb +4 -4
- data/lib/puppet/network/client_request.rb +5 -3
- data/lib/puppet/network/format.rb +2 -2
- data/lib/puppet/network/format_support.rb +1 -1
- data/lib/puppet/network/formats.rb +1 -1
- data/lib/puppet/network/http/api/indirected_routes.rb +24 -44
- data/lib/puppet/network/http/api/server/v3.rb +1 -1
- data/lib/puppet/network/http/connection.rb +1 -1
- data/lib/puppet/network/http/handler.rb +8 -12
- data/lib/puppet/network/http/request.rb +1 -1
- data/lib/puppet/network/http/route.rb +9 -9
- data/lib/puppet/node/environment.rb +21 -23
- data/lib/puppet/node/facts.rb +1 -1
- data/lib/puppet/node.rb +5 -5
- data/lib/puppet/pal/json_catalog_encoder.rb +1 -1
- data/lib/puppet/pal/pal_impl.rb +48 -50
- data/lib/puppet/pal/plan_signature.rb +1 -1
- data/lib/puppet/pal/task_signature.rb +1 -1
- data/lib/puppet/parameter/package_options.rb +1 -1
- data/lib/puppet/parameter/value.rb +2 -2
- data/lib/puppet/parameter/value_collection.rb +7 -7
- data/lib/puppet/parameter.rb +8 -9
- data/lib/puppet/parser/ast/block_expression.rb +2 -2
- data/lib/puppet/parser/ast/hostclass.rb +1 -1
- data/lib/puppet/parser/ast/pops_bridge.rb +3 -4
- data/lib/puppet/parser/ast/resource.rb +4 -4
- data/lib/puppet/parser/ast/resourceparam.rb +4 -4
- data/lib/puppet/parser/ast.rb +14 -15
- data/lib/puppet/parser/compiler.rb +26 -28
- data/lib/puppet/parser/functions/create_resources.rb +3 -3
- data/lib/puppet/parser/functions/fail.rb +1 -1
- data/lib/puppet/parser/functions/generate.rb +2 -2
- data/lib/puppet/parser/functions/tag.rb +1 -1
- data/lib/puppet/parser/functions.rb +2 -2
- data/lib/puppet/parser/relationship.rb +3 -1
- data/lib/puppet/parser/resource/param.rb +2 -2
- data/lib/puppet/parser/resource.rb +23 -23
- data/lib/puppet/parser/scope.rb +10 -10
- data/lib/puppet/parser/script_compiler.rb +1 -1
- data/lib/puppet/parser/templatewrapper.rb +1 -1
- data/lib/puppet/parser/type_loader.rb +10 -12
- data/lib/puppet/parser.rb +1 -1
- data/lib/puppet/pops/adaptable.rb +1 -1
- data/lib/puppet/pops/evaluator/access_operator.rb +8 -8
- data/lib/puppet/pops/evaluator/callable_signature.rb +4 -4
- data/lib/puppet/pops/evaluator/collector_transformer.rb +4 -4
- data/lib/puppet/pops/evaluator/collectors/abstract_collector.rb +7 -7
- data/lib/puppet/pops/evaluator/collectors/fixed_set_collector.rb +6 -6
- data/lib/puppet/pops/evaluator/compare_operator.rb +10 -10
- data/lib/puppet/pops/evaluator/deferred_resolver.rb +1 -1
- data/lib/puppet/pops/evaluator/epp_evaluator.rb +2 -2
- data/lib/puppet/pops/evaluator/evaluator_impl.rb +56 -60
- data/lib/puppet/pops/evaluator/literal_evaluator.rb +4 -0
- data/lib/puppet/pops/evaluator/relationship_operator.rb +2 -2
- data/lib/puppet/pops/evaluator/runtime3_converter.rb +3 -3
- data/lib/puppet/pops/evaluator/runtime3_support.rb +1 -1
- data/lib/puppet/pops/functions/dispatcher.rb +3 -3
- data/lib/puppet/pops/functions/function.rb +14 -16
- data/lib/puppet/pops/issue_reporter.rb +2 -2
- data/lib/puppet/pops/label_provider.rb +2 -2
- data/lib/puppet/pops/loader/dependency_loader.rb +3 -3
- data/lib/puppet/pops/loader/loader.rb +4 -4
- data/lib/puppet/pops/loader/loader_paths.rb +3 -3
- data/lib/puppet/pops/loader/module_loaders.rb +11 -11
- data/lib/puppet/pops/loader/ruby_data_type_instantiator.rb +1 -1
- data/lib/puppet/pops/loader/ruby_function_instantiator.rb +1 -1
- data/lib/puppet/pops/loader/ruby_legacy_function_instantiator.rb +5 -1
- data/lib/puppet/pops/loader/static_loader.rb +3 -3
- data/lib/puppet/pops/loaders.rb +3 -3
- data/lib/puppet/pops/lookup/data_dig_function_provider.rb +1 -1
- data/lib/puppet/pops/lookup/explainer.rb +2 -2
- data/lib/puppet/pops/lookup/global_data_provider.rb +1 -1
- data/lib/puppet/pops/lookup/hiera_config.rb +15 -11
- data/lib/puppet/pops/lookup/interpolation.rb +3 -3
- data/lib/puppet/pops/lookup/key_recorder.rb +1 -1
- data/lib/puppet/pops/lookup/location_resolver.rb +1 -1
- data/lib/puppet/pops/lookup/lookup_adapter.rb +7 -7
- data/lib/puppet/pops/lookup/sub_lookup.rb +1 -1
- data/lib/puppet/pops/merge_strategy.rb +6 -6
- data/lib/puppet/pops/migration/migration_checker.rb +1 -1
- data/lib/puppet/pops/model/ast_transformer.rb +9 -11
- data/lib/puppet/pops/model/factory.rb +4 -5
- data/lib/puppet/pops/parser/epp_parser.rb +2 -2
- data/lib/puppet/pops/parser/epp_support.rb +1 -1
- data/lib/puppet/pops/parser/evaluating_parser.rb +2 -2
- data/lib/puppet/pops/parser/heredoc_support.rb +4 -4
- data/lib/puppet/pops/parser/interpolation_support.rb +3 -3
- data/lib/puppet/pops/parser/lexer2.rb +20 -12
- data/lib/puppet/pops/parser/lexer_support.rb +1 -1
- data/lib/puppet/pops/parser/locator.rb +4 -4
- data/lib/puppet/pops/parser/parser_support.rb +12 -14
- data/lib/puppet/pops/parser/pn_parser.rb +3 -3
- data/lib/puppet/pops/parser/slurp_support.rb +8 -8
- data/lib/puppet/pops/patterns.rb +12 -12
- data/lib/puppet/pops/pcore.rb +1 -1
- data/lib/puppet/pops/pn.rb +2 -2
- data/lib/puppet/pops/puppet_stack.rb +1 -1
- data/lib/puppet/pops/resource/resource_type_impl.rb +1 -1
- data/lib/puppet/pops/serialization/abstract_reader.rb +2 -2
- data/lib/puppet/pops/serialization/abstract_writer.rb +3 -3
- data/lib/puppet/pops/time/timestamp.rb +1 -1
- data/lib/puppet/pops/types/class_loader.rb +4 -6
- data/lib/puppet/pops/types/iterable.rb +1 -1
- data/lib/puppet/pops/types/p_binary_type.rb +1 -1
- data/lib/puppet/pops/types/p_init_type.rb +1 -1
- data/lib/puppet/pops/types/p_object_type.rb +5 -5
- data/lib/puppet/pops/types/p_object_type_extension.rb +4 -6
- data/lib/puppet/pops/types/p_sem_ver_range_type.rb +1 -1
- data/lib/puppet/pops/types/p_sensitive_type.rb +1 -1
- data/lib/puppet/pops/types/p_timespan_type.rb +2 -2
- data/lib/puppet/pops/types/p_type_set_type.rb +10 -10
- data/lib/puppet/pops/types/p_uri_type.rb +4 -4
- data/lib/puppet/pops/types/recursion_guard.rb +4 -4
- data/lib/puppet/pops/types/ruby_generator.rb +2 -2
- data/lib/puppet/pops/types/string_converter.rb +12 -8
- data/lib/puppet/pops/types/tree_iterators.rb +4 -6
- data/lib/puppet/pops/types/type_calculator.rb +10 -10
- data/lib/puppet/pops/types/type_factory.rb +7 -3
- data/lib/puppet/pops/types/type_formatter.rb +22 -24
- data/lib/puppet/pops/types/type_mismatch_describer.rb +24 -24
- data/lib/puppet/pops/types/types.rb +28 -24
- data/lib/puppet/pops/utils.rb +38 -42
- data/lib/puppet/pops/validation/checker4_0.rb +10 -10
- data/lib/puppet/pops/validation/tasks_checker.rb +1 -1
- data/lib/puppet/pops/validation/validator_factory_4_0.rb +2 -0
- data/lib/puppet/pops/validation.rb +4 -4
- data/lib/puppet/pops/visitor.rb +2 -2
- data/lib/puppet/property/ensure.rb +12 -14
- data/lib/puppet/property/keyvalue.rb +4 -4
- data/lib/puppet/property/list.rb +4 -4
- data/lib/puppet/property/ordered_list.rb +1 -1
- data/lib/puppet/property.rb +31 -33
- data/lib/puppet/provider/exec.rb +2 -2
- data/lib/puppet/provider/file/posix.rb +19 -17
- data/lib/puppet/provider/file/windows.rb +13 -19
- data/lib/puppet/provider/group/directoryservice.rb +3 -2
- data/lib/puppet/provider/group/groupadd.rb +4 -4
- data/lib/puppet/provider/group/windows_adsi.rb +2 -2
- data/lib/puppet/provider/nameservice/directoryservice.rb +29 -29
- data/lib/puppet/provider/nameservice/objectadd.rb +2 -4
- data/lib/puppet/provider/nameservice/pw.rb +1 -2
- data/lib/puppet/provider/nameservice.rb +8 -8
- data/lib/puppet/provider/package/aix.rb +19 -19
- data/lib/puppet/provider/package/appdmg.rb +2 -2
- data/lib/puppet/provider/package/apple.rb +1 -1
- data/lib/puppet/provider/package/apt.rb +18 -18
- data/lib/puppet/provider/package/aptitude.rb +1 -3
- data/lib/puppet/provider/package/aptrpm.rb +9 -9
- data/lib/puppet/provider/package/blastwave.rb +10 -14
- data/lib/puppet/provider/package/dnfmodule.rb +3 -3
- data/lib/puppet/provider/package/dpkg.rb +11 -13
- data/lib/puppet/provider/package/fink.rb +14 -14
- data/lib/puppet/provider/package/freebsd.rb +1 -1
- data/lib/puppet/provider/package/gem.rb +12 -14
- data/lib/puppet/provider/package/macports.rb +2 -2
- data/lib/puppet/provider/package/nim.rb +10 -10
- data/lib/puppet/provider/package/openbsd.rb +22 -22
- data/lib/puppet/provider/package/opkg.rb +6 -6
- data/lib/puppet/provider/package/pacman.rb +35 -29
- data/lib/puppet/provider/package/pip.rb +25 -24
- data/lib/puppet/provider/package/pkg.rb +15 -15
- data/lib/puppet/provider/package/pkgdmg.rb +10 -10
- data/lib/puppet/provider/package/pkgin.rb +2 -2
- data/lib/puppet/provider/package/pkgng.rb +5 -5
- data/lib/puppet/provider/package/pkgutil.rb +17 -21
- data/lib/puppet/provider/package/portage.rb +59 -61
- data/lib/puppet/provider/package/ports.rb +12 -11
- data/lib/puppet/provider/package/portupgrade.rb +35 -35
- data/lib/puppet/provider/package/puppetserver_gem.rb +10 -9
- data/lib/puppet/provider/package/rpm.rb +26 -26
- data/lib/puppet/provider/package/rug.rb +7 -9
- data/lib/puppet/provider/package/sun.rb +4 -4
- data/lib/puppet/provider/package/up2date.rb +5 -7
- data/lib/puppet/provider/package/urpmi.rb +6 -6
- data/lib/puppet/provider/package/windows/exe_package.rb +7 -7
- data/lib/puppet/provider/package/windows/msi_package.rb +3 -3
- data/lib/puppet/provider/package/windows/package.rb +2 -2
- data/lib/puppet/provider/package/windows.rb +3 -5
- data/lib/puppet/provider/package/yum.rb +33 -37
- data/lib/puppet/provider/package/zypper.rb +12 -14
- data/lib/puppet/provider/package.rb +1 -1
- data/lib/puppet/provider/package_targetable.rb +1 -1
- data/lib/puppet/provider/parsedfile.rb +9 -9
- data/lib/puppet/provider/service/base.rb +16 -21
- data/lib/puppet/provider/service/bsd.rb +4 -4
- data/lib/puppet/provider/service/daemontools.rb +31 -31
- data/lib/puppet/provider/service/debian.rb +6 -6
- data/lib/puppet/provider/service/freebsd.rb +36 -36
- data/lib/puppet/provider/service/gentoo.rb +6 -6
- data/lib/puppet/provider/service/init.rb +19 -19
- data/lib/puppet/provider/service/launchd.rb +22 -22
- data/lib/puppet/provider/service/openbsd.rb +10 -10
- data/lib/puppet/provider/service/openrc.rb +1 -1
- data/lib/puppet/provider/service/openwrt.rb +3 -3
- data/lib/puppet/provider/service/rcng.rb +3 -3
- data/lib/puppet/provider/service/redhat.rb +4 -4
- data/lib/puppet/provider/service/runit.rb +6 -6
- data/lib/puppet/provider/service/service.rb +5 -7
- data/lib/puppet/provider/service/smf.rb +28 -27
- data/lib/puppet/provider/service/src.rb +7 -7
- data/lib/puppet/provider/service/systemd.rb +31 -37
- data/lib/puppet/provider/service/upstart.rb +17 -17
- data/lib/puppet/provider/service/windows.rb +7 -7
- data/lib/puppet/provider/user/aix.rb +4 -2
- data/lib/puppet/provider/user/directoryservice.rb +34 -36
- data/lib/puppet/provider/user/hpux.rb +10 -14
- data/lib/puppet/provider/user/pw.rb +1 -1
- data/lib/puppet/provider/user/user_role_add.rb +16 -18
- data/lib/puppet/provider/user/useradd.rb +7 -7
- data/lib/puppet/provider/user/windows_adsi.rb +1 -1
- data/lib/puppet/provider.rb +8 -8
- data/lib/puppet/reference/indirection.rb +3 -0
- data/lib/puppet/reference/metaparameter.rb +1 -1
- data/lib/puppet/reference/providers.rb +3 -3
- data/lib/puppet/reference/type.rb +1 -1
- data/lib/puppet/relationship.rb +4 -5
- data/lib/puppet/reports/http.rb +1 -1
- data/lib/puppet/reports/log.rb +2 -2
- data/lib/puppet/reports/store.rb +4 -4
- data/lib/puppet/reports.rb +2 -2
- data/lib/puppet/resource/catalog.rb +16 -16
- data/lib/puppet/resource/status.rb +3 -3
- data/lib/puppet/resource/type.rb +8 -8
- data/lib/puppet/resource/type_collection.rb +1 -1
- data/lib/puppet/resource.rb +41 -41
- data/lib/puppet/scheduler/scheduler.rb +1 -1
- data/lib/puppet/settings/alias_setting.rb +3 -5
- data/lib/puppet/settings/base_setting.rb +11 -11
- data/lib/puppet/settings/boolean_setting.rb +2 -2
- data/lib/puppet/settings/config_file.rb +5 -4
- data/lib/puppet/settings/duration_setting.rb +2 -2
- data/lib/puppet/settings/environment_conf.rb +3 -3
- data/lib/puppet/settings/file_or_directory_setting.rb +2 -2
- data/lib/puppet/settings/file_setting.rb +11 -11
- data/lib/puppet/settings/ini_file.rb +3 -3
- data/lib/puppet/settings/port_setting.rb +1 -1
- data/lib/puppet/settings/priority_setting.rb +2 -2
- data/lib/puppet/settings/ttl_setting.rb +2 -2
- data/lib/puppet/settings/value_translator.rb +8 -8
- data/lib/puppet/settings.rb +65 -70
- data/lib/puppet/ssl/base.rb +2 -4
- data/lib/puppet/ssl/certificate_request.rb +18 -22
- data/lib/puppet/ssl/certificate_request_attributes.rb +3 -3
- data/lib/puppet/ssl/oids.rb +2 -2
- data/lib/puppet/ssl/openssl_loader.rb +4 -4
- data/lib/puppet/syntax_checkers/base64.rb +3 -3
- data/lib/puppet/syntax_checkers/epp.rb +3 -3
- data/lib/puppet/syntax_checkers/json.rb +3 -3
- data/lib/puppet/syntax_checkers/pp.rb +3 -3
- data/lib/puppet/transaction/additional_resource_generator.rb +1 -1
- data/lib/puppet/transaction/event.rb +2 -2
- data/lib/puppet/transaction/event_manager.rb +5 -5
- data/lib/puppet/transaction/persistence.rb +12 -14
- data/lib/puppet/transaction/report.rb +4 -4
- data/lib/puppet/transaction/resource_harness.rb +2 -2
- data/lib/puppet/transaction.rb +14 -18
- data/lib/puppet/type/component.rb +3 -3
- data/lib/puppet/type/exec.rb +43 -45
- data/lib/puppet/type/file/checksum_value.rb +1 -1
- data/lib/puppet/type/file/content.rb +6 -6
- data/lib/puppet/type/file/ctime.rb +2 -2
- data/lib/puppet/type/file/data_sync.rb +3 -3
- data/lib/puppet/type/file/ensure.rb +16 -15
- data/lib/puppet/type/file/mode.rb +9 -9
- data/lib/puppet/type/file/mtime.rb +2 -2
- data/lib/puppet/type/file/selcontext.rb +14 -14
- data/lib/puppet/type/file/source.rb +19 -21
- data/lib/puppet/type/file/target.rb +11 -11
- data/lib/puppet/type/file.rb +21 -21
- data/lib/puppet/type/filebucket.rb +3 -3
- data/lib/puppet/type/group.rb +3 -3
- data/lib/puppet/type/notify.rb +2 -2
- data/lib/puppet/type/package.rb +4 -4
- data/lib/puppet/type/resources.rb +6 -6
- data/lib/puppet/type/schedule.rb +9 -9
- data/lib/puppet/type/service.rb +6 -8
- data/lib/puppet/type/tidy.rb +22 -24
- data/lib/puppet/type/user.rb +13 -13
- data/lib/puppet/type.rb +76 -88
- data/lib/puppet/util/at_fork/solaris.rb +33 -37
- data/lib/puppet/util/autoload.rb +2 -2
- data/lib/puppet/util/backups.rb +9 -9
- data/lib/puppet/util/character_encoding.rb +7 -6
- data/lib/puppet/util/checksums.rb +2 -2
- data/lib/puppet/util/classgen.rb +8 -8
- data/lib/puppet/util/colors.rb +1 -1
- data/lib/puppet/util/command_line/puppet_option_parser.rb +1 -1
- data/lib/puppet/util/command_line/trollop.rb +42 -46
- data/lib/puppet/util/command_line.rb +2 -2
- data/lib/puppet/util/constant_inflector.rb +2 -2
- data/lib/puppet/util/diff.rb +19 -21
- data/lib/puppet/util/docs.rb +2 -2
- data/lib/puppet/util/errors.rb +9 -9
- data/lib/puppet/util/execution.rb +32 -9
- data/lib/puppet/util/feature.rb +1 -1
- data/lib/puppet/util/fileparsing.rb +12 -16
- data/lib/puppet/util/filetype.rb +36 -40
- data/lib/puppet/util/inifile.rb +6 -12
- data/lib/puppet/util/ldap/connection.rb +1 -1
- data/lib/puppet/util/ldap/manager.rb +10 -12
- data/lib/puppet/util/lockfile.rb +6 -8
- data/lib/puppet/util/log/destination.rb +2 -2
- data/lib/puppet/util/log/destinations.rb +4 -4
- data/lib/puppet/util/log.rb +12 -9
- data/lib/puppet/util/logging.rb +11 -11
- data/lib/puppet/util/metric.rb +3 -3
- data/lib/puppet/util/monkey_patches.rb +5 -7
- data/lib/puppet/util/network_device/config.rb +3 -3
- data/lib/puppet/util/package/version/debian.rb +27 -28
- data/lib/puppet/util/package/version/pip.rb +5 -5
- data/lib/puppet/util/package/version/range/eq.rb +1 -1
- data/lib/puppet/util/package/version/rpm.rb +1 -1
- data/lib/puppet/util/package.rb +2 -2
- data/lib/puppet/util/pidlock.rb +2 -2
- data/lib/puppet/util/platform.rb +1 -1
- data/lib/puppet/util/plist.rb +8 -10
- data/lib/puppet/util/posix.rb +17 -17
- data/lib/puppet/util/profiler/aggregate.rb +1 -1
- data/lib/puppet/util/provider_features.rb +3 -3
- data/lib/puppet/util/rdoc/code_objects.rb +3 -3
- data/lib/puppet/util/rdoc/generators/puppet_generator.rb +63 -64
- data/lib/puppet/util/rdoc/generators/template/puppet/puppet.rb +23 -23
- data/lib/puppet/util/rdoc/parser/puppet_parser_core.rb +12 -12
- data/lib/puppet/util/rdoc/parser/puppet_parser_rdoc2.rb +1 -1
- data/lib/puppet/util/rdoc/parser.rb +1 -1
- data/lib/puppet/util/reference.rb +13 -9
- data/lib/puppet/util/retry_action.rb +1 -1
- data/lib/puppet/util/rpm_compare.rb +17 -18
- data/lib/puppet/util/rubygems.rb +1 -1
- data/lib/puppet/util/selinux.rb +7 -7
- data/lib/puppet/util/storage.rb +10 -12
- data/lib/puppet/util/suidmanager.rb +18 -19
- data/lib/puppet/util/symbolic_file_mode.rb +71 -75
- data/lib/puppet/util/tag_set.rb +2 -2
- data/lib/puppet/util/tagging.rb +8 -10
- data/lib/puppet/util/terminal.rb +4 -4
- data/lib/puppet/util/user_attr.rb +7 -7
- data/lib/puppet/util/watcher.rb +3 -5
- data/lib/puppet/util/windows/access_control_list.rb +1 -1
- data/lib/puppet/util/windows/adsi.rb +42 -42
- data/lib/puppet/util/windows/daemon.rb +64 -68
- data/lib/puppet/util/windows/error.rb +2 -2
- data/lib/puppet/util/windows/file.rb +18 -25
- data/lib/puppet/util/windows/monkey_patches/process.rb +1 -1
- data/lib/puppet/util/windows/principal.rb +8 -8
- data/lib/puppet/util/windows/process.rb +16 -28
- data/lib/puppet/util/windows/registry.rb +16 -15
- data/lib/puppet/util/windows/root_certs.rb +2 -2
- data/lib/puppet/util/windows/security.rb +31 -31
- data/lib/puppet/util/windows/service.rb +11 -11
- data/lib/puppet/util/windows/sid.rb +8 -8
- data/lib/puppet/util/windows/user.rb +18 -20
- data/lib/puppet/util/yaml.rb +1 -1
- data/lib/puppet/util.rb +55 -46
- data/lib/puppet/version.rb +2 -2
- data/lib/puppet/x509/pem_store.rb +1 -1
- data/lib/puppet.rb +3 -3
- data/man/man5/puppet.conf.5 +10 -2
- data/man/man8/puppet-agent.8 +1 -1
- data/man/man8/puppet-apply.8 +1 -1
- data/man/man8/puppet-catalog.8 +1 -1
- data/man/man8/puppet-config.8 +1 -1
- data/man/man8/puppet-describe.8 +1 -1
- data/man/man8/puppet-device.8 +1 -1
- data/man/man8/puppet-doc.8 +1 -1
- data/man/man8/puppet-epp.8 +1 -1
- data/man/man8/puppet-facts.8 +1 -1
- data/man/man8/puppet-filebucket.8 +1 -1
- data/man/man8/puppet-generate.8 +1 -1
- data/man/man8/puppet-help.8 +1 -1
- data/man/man8/puppet-lookup.8 +1 -1
- data/man/man8/puppet-module.8 +1 -1
- data/man/man8/puppet-node.8 +1 -1
- data/man/man8/puppet-parser.8 +1 -1
- data/man/man8/puppet-plugin.8 +1 -1
- data/man/man8/puppet-report.8 +1 -1
- data/man/man8/puppet-resource.8 +5 -1
- data/man/man8/puppet-script.8 +1 -1
- data/man/man8/puppet-ssl.8 +1 -1
- data/man/man8/puppet.8 +2 -2
- metadata +2 -2
@@ -81,7 +81,7 @@ Puppet::Type.type(:package).provide :nim, :parent => :aix, :source => :aix do
|
|
81
81
|
# switch back to the metaprogrammed stuff, and just parse all of the output
|
82
82
|
# in Ruby... but we'd be doing an awful lot of unnecessary work.
|
83
83
|
showres_command = "/usr/sbin/nimclient -o showres -a resource=#{source} |/usr/bin/grep -p -E "
|
84
|
-
if
|
84
|
+
if version_specified
|
85
85
|
version = @resource.should(:ensure)
|
86
86
|
showres_command << "'#{Regexp.escape(pkg)}( |-)#{Regexp.escape(version)}'"
|
87
87
|
else
|
@@ -90,13 +90,13 @@ Puppet::Type.type(:package).provide :nim, :parent => :aix, :source => :aix do
|
|
90
90
|
end
|
91
91
|
output = Puppet::Util::Execution.execute(showres_command)
|
92
92
|
|
93
|
-
if
|
93
|
+
if version_specified
|
94
94
|
package_type = determine_package_type(output, pkg, version)
|
95
95
|
else
|
96
96
|
package_type, version = determine_latest_version(output, pkg)
|
97
97
|
end
|
98
98
|
|
99
|
-
if
|
99
|
+
if package_type.nil?
|
100
100
|
|
101
101
|
errmsg = if version_specified
|
102
102
|
_("Unable to find package '%{package}' with version '%{version}' on lpp_source '%{source}'") %
|
@@ -112,10 +112,10 @@ Puppet::Type.type(:package).provide :nim, :parent => :aix, :source => :aix do
|
|
112
112
|
# to add that value to our installation command. However, if there is only
|
113
113
|
# one version of the package available, `version` will be set to `nil`, and
|
114
114
|
# we don't need to add the version string to the command.
|
115
|
-
if
|
115
|
+
if version
|
116
116
|
# Now we know if the package type is RPM or not, and we can adjust our
|
117
117
|
# `pkg` string for passing to the install command accordingly.
|
118
|
-
if
|
118
|
+
if package_type == :rpm
|
119
119
|
# RPMs expect a hyphen between the package name and the version number
|
120
120
|
version_separator = "-"
|
121
121
|
else
|
@@ -202,7 +202,7 @@ Puppet::Type.type(:package).provide :nim, :parent => :aix, :source => :aix do
|
|
202
202
|
# leading or trailing whitespace (including newlines) from the resulting
|
203
203
|
# strings and then returns them as an array.
|
204
204
|
def split_into_paragraphs(showres_output)
|
205
|
-
showres_output.split(/^\s*$/).map
|
205
|
+
showres_output.split(/^\s*$/).map(&:strip!)
|
206
206
|
end
|
207
207
|
|
208
208
|
def parse_showres_header_line(line)
|
@@ -269,19 +269,19 @@ Puppet::Type.type(:package).provide :nim, :parent => :aix, :source => :aix do
|
|
269
269
|
return nil
|
270
270
|
end
|
271
271
|
|
272
|
-
if
|
272
|
+
if packages[package_name].count == 1
|
273
273
|
version = packages[package_name].keys[0]
|
274
|
-
|
274
|
+
[packages[package_name][version], nil]
|
275
275
|
else
|
276
276
|
versions = packages[package_name].keys
|
277
277
|
latest_version = (versions.sort { |a, b| Puppet::Util::Package.versioncmp(b, a) })[0]
|
278
|
-
|
278
|
+
[packages[package_name][latest_version], latest_version]
|
279
279
|
end
|
280
280
|
end
|
281
281
|
|
282
282
|
def determine_package_type(showres_output, package_name, version)
|
283
283
|
packages = parse_showres_output(showres_output)
|
284
|
-
unless
|
284
|
+
unless packages.has_key?(package_name) and packages[package_name].has_key?(version)
|
285
285
|
return nil
|
286
286
|
end
|
287
287
|
|
@@ -30,7 +30,7 @@ Puppet::Type.type(:package).provide :openbsd, :parent => Puppet::Provider::Packa
|
|
30
30
|
begin
|
31
31
|
execpipe(listcmd) do |process|
|
32
32
|
# our regex for matching pkg_info output
|
33
|
-
regex = /^(.*)-(\d[^-]*)
|
33
|
+
regex = /^(.*)-(\d[^-]*)-?([\w-]*)(.*)$/
|
34
34
|
fields = [:name, :ensure, :flavor]
|
35
35
|
hash = {}
|
36
36
|
|
@@ -42,7 +42,7 @@ Puppet::Type.type(:package).provide :openbsd, :parent => Puppet::Provider::Packa
|
|
42
42
|
hash[field] = value
|
43
43
|
}
|
44
44
|
|
45
|
-
hash[:provider] =
|
45
|
+
hash[:provider] = name
|
46
46
|
|
47
47
|
packages << new(hash)
|
48
48
|
hash = {}
|
@@ -56,9 +56,9 @@ Puppet::Type.type(:package).provide :openbsd, :parent => Puppet::Provider::Packa
|
|
56
56
|
}
|
57
57
|
end
|
58
58
|
|
59
|
-
|
59
|
+
packages
|
60
60
|
rescue Puppet::ExecutionFailure
|
61
|
-
|
61
|
+
nil
|
62
62
|
end
|
63
63
|
end
|
64
64
|
|
@@ -89,35 +89,35 @@ Puppet::Type.type(:package).provide :openbsd, :parent => Puppet::Provider::Packa
|
|
89
89
|
return version
|
90
90
|
else
|
91
91
|
# Remove all fuzzy matches first.
|
92
|
-
output = output.split.select { |p| p =~ /^#{resource[:name]}-(\d[^-]*)
|
92
|
+
output = output.split.select { |p| p =~ /^#{resource[:name]}-(\d[^-]*)-?(\w*)/ }.join
|
93
93
|
debug "pkg_info -Q for #{resource[:name]}: #{output}"
|
94
94
|
end
|
95
95
|
|
96
|
-
if output =~ /^#{resource[:name]}-(\d[^-]*)
|
96
|
+
if output =~ /^#{resource[:name]}-(\d[^-]*)-?(\w*) \(installed\)$/
|
97
97
|
debug "Package is already the latest available"
|
98
|
-
|
98
|
+
version
|
99
99
|
else
|
100
|
-
match = /^(.*)-(\d[^-]*)
|
100
|
+
match = /^(.*)-(\d[^-]*)-?(\w*)$/.match(output)
|
101
101
|
debug "Latest available for #{resource[:name]}: #{match[2]}"
|
102
102
|
|
103
103
|
if version.to_sym == :absent || version.to_sym == :purged
|
104
104
|
return match[2]
|
105
105
|
end
|
106
106
|
|
107
|
-
vcmp = version.split('.').map
|
107
|
+
vcmp = version.split('.').map(&:to_i) <=> match[2].split('.').map(&:to_i)
|
108
108
|
if vcmp > 0
|
109
109
|
# The locally installed package may actually be newer than what a mirror
|
110
110
|
# has. Log it at debug, but ignore it otherwise.
|
111
111
|
debug "Package #{resource[:name]} #{version} newer then available #{match[2]}"
|
112
|
-
|
112
|
+
version
|
113
113
|
else
|
114
|
-
|
114
|
+
match[2]
|
115
115
|
end
|
116
116
|
end
|
117
117
|
end
|
118
118
|
|
119
119
|
def update
|
120
|
-
|
120
|
+
install(true)
|
121
121
|
end
|
122
122
|
|
123
123
|
def parse_pkgconf
|
@@ -201,19 +201,19 @@ Puppet::Type.type(:package).provide :openbsd, :parent => Puppet::Provider::Packa
|
|
201
201
|
def get_version
|
202
202
|
execpipe([command(:pkginfo), "-I", @resource[:name]]) do |process|
|
203
203
|
# our regex for matching pkg_info output
|
204
|
-
regex = /^(.*)-(\d[^-]*)
|
204
|
+
regex = /^(.*)-(\d[^-]*)-?(\w*)(.*)$/
|
205
205
|
master_version = 0
|
206
206
|
version = -1
|
207
207
|
|
208
208
|
process.each_line do |line|
|
209
209
|
match = regex.match(line.split[0])
|
210
|
-
|
211
|
-
# now we return the first version, unless ensure is latest
|
212
|
-
version = match.captures[1]
|
213
|
-
return version unless @resource[:ensure] == "latest"
|
210
|
+
next unless match
|
214
211
|
|
215
|
-
|
216
|
-
|
212
|
+
# now we return the first version, unless ensure is latest
|
213
|
+
version = match.captures[1]
|
214
|
+
return version unless @resource[:ensure] == "latest"
|
215
|
+
|
216
|
+
master_version = version unless master_version > version
|
217
217
|
end
|
218
218
|
|
219
219
|
return master_version unless master_version == 0
|
@@ -222,15 +222,15 @@ Puppet::Type.type(:package).provide :openbsd, :parent => Puppet::Provider::Packa
|
|
222
222
|
raise Puppet::Error, _("%{version} is not available for this package") % { version: version }
|
223
223
|
end
|
224
224
|
rescue Puppet::ExecutionFailure
|
225
|
-
|
225
|
+
nil
|
226
226
|
end
|
227
227
|
|
228
228
|
def query
|
229
229
|
# Search for the version info
|
230
230
|
if pkginfo(@resource[:name]) =~ /Information for (inst:)?#{@resource[:name]}-(\S+)/
|
231
|
-
|
231
|
+
{ :ensure => Regexp.last_match(2) }
|
232
232
|
else
|
233
|
-
|
233
|
+
nil
|
234
234
|
end
|
235
235
|
end
|
236
236
|
|
@@ -13,7 +13,7 @@ Puppet::Type.type(:package).provide :opkg, :source => :opkg, :parent => Puppet::
|
|
13
13
|
def self.instances
|
14
14
|
packages = []
|
15
15
|
execpipe("#{command(:opkg)} list-installed") do |process|
|
16
|
-
regex =
|
16
|
+
regex = /^(\S+) - (\S+)/
|
17
17
|
fields = [:name, :ensure]
|
18
18
|
hash = {}
|
19
19
|
|
@@ -21,7 +21,7 @@ Puppet::Type.type(:package).provide :opkg, :source => :opkg, :parent => Puppet::
|
|
21
21
|
match = regex.match(line)
|
22
22
|
if match
|
23
23
|
fields.zip(match.captures) { |field, value| hash[field] = value }
|
24
|
-
hash[:provider] =
|
24
|
+
hash[:provider] = name
|
25
25
|
packages << new(hash)
|
26
26
|
hash = {}
|
27
27
|
else
|
@@ -31,7 +31,7 @@ Puppet::Type.type(:package).provide :opkg, :source => :opkg, :parent => Puppet::
|
|
31
31
|
end
|
32
32
|
packages
|
33
33
|
rescue Puppet::ExecutionFailure
|
34
|
-
|
34
|
+
nil
|
35
35
|
end
|
36
36
|
|
37
37
|
def latest
|
@@ -57,19 +57,19 @@ Puppet::Type.type(:package).provide :opkg, :source => :opkg, :parent => Puppet::
|
|
57
57
|
end
|
58
58
|
|
59
59
|
def update
|
60
|
-
|
60
|
+
install
|
61
61
|
end
|
62
62
|
|
63
63
|
def query
|
64
64
|
# list out our specific package
|
65
65
|
output = opkg('list-installed', @resource[:name])
|
66
66
|
if output =~ /^(\S+) - (\S+)/
|
67
|
-
return { :ensure =>
|
67
|
+
return { :ensure => Regexp.last_match(2) }
|
68
68
|
end
|
69
69
|
|
70
70
|
nil
|
71
71
|
rescue Puppet::ExecutionFailure
|
72
|
-
|
72
|
+
{
|
73
73
|
:ensure => :purged,
|
74
74
|
:status => 'missing',
|
75
75
|
:name => @resource[:name],
|
@@ -25,15 +25,14 @@ Puppet::Type.type(:package).provide :pacman, :parent => Puppet::Provider::Packag
|
|
25
25
|
has_feature :uninstall_options
|
26
26
|
has_feature :upgradeable
|
27
27
|
has_feature :virtual_packages
|
28
|
+
has_feature :purgeable
|
28
29
|
|
29
30
|
# Checks if a given name is a group
|
30
31
|
def self.group?(name)
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
false
|
36
|
-
end
|
32
|
+
!pacman("-Sg", name).empty?
|
33
|
+
rescue Puppet::ExecutionFailure
|
34
|
+
# pacman returns an expected non-zero exit code when the name is not a group
|
35
|
+
false
|
37
36
|
end
|
38
37
|
|
39
38
|
# Install a package using 'pacman', or 'yaourt' if available.
|
@@ -46,7 +45,7 @@ Puppet::Type.type(:package).provide :pacman, :parent => Puppet::Provider::Packag
|
|
46
45
|
install_from_repo
|
47
46
|
end
|
48
47
|
|
49
|
-
unless
|
48
|
+
unless query
|
50
49
|
fail(_("Could not find package '%{name}'") % { name: @resource[:name] })
|
51
50
|
end
|
52
51
|
end
|
@@ -74,24 +73,22 @@ Puppet::Type.type(:package).provide :pacman, :parent => Puppet::Provider::Packag
|
|
74
73
|
|
75
74
|
# returns a hash package => version of installed packages
|
76
75
|
def self.get_installed_packages
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
warning(_("Failed to match line '%{line}'") % { line: line })
|
88
|
-
end
|
76
|
+
packages = {}
|
77
|
+
execpipe([command(:pacman), "-Q"]) do |pipe|
|
78
|
+
# pacman -Q output is 'packagename version-rel'
|
79
|
+
regex = /^(\S+)\s(\S+)/
|
80
|
+
pipe.each_line do |line|
|
81
|
+
match = regex.match(line)
|
82
|
+
if match
|
83
|
+
packages[match.captures[0]] = match.captures[1]
|
84
|
+
else
|
85
|
+
warning(_("Failed to match line '%{line}'") % { line: line })
|
89
86
|
end
|
90
87
|
end
|
91
|
-
packages
|
92
|
-
rescue Puppet::ExecutionFailure
|
93
|
-
fail(_("Error getting installed packages"))
|
94
88
|
end
|
89
|
+
packages
|
90
|
+
rescue Puppet::ExecutionFailure
|
91
|
+
fail(_("Error getting installed packages"))
|
95
92
|
end
|
96
93
|
|
97
94
|
# returns a hash of group => version of installed groups
|
@@ -129,7 +126,7 @@ Puppet::Type.type(:package).provide :pacman, :parent => Puppet::Provider::Packag
|
|
129
126
|
# should always result in the newest release.
|
130
127
|
def update
|
131
128
|
# Install in pacman can be used for update, too
|
132
|
-
|
129
|
+
install
|
133
130
|
end
|
134
131
|
|
135
132
|
# We rescue the main check from Pacman with a check on the AUR using yaourt, if installed
|
@@ -137,7 +134,7 @@ Puppet::Type.type(:package).provide :pacman, :parent => Puppet::Provider::Packag
|
|
137
134
|
resource_name = @resource[:name]
|
138
135
|
|
139
136
|
# If target is a group, construct the group version
|
140
|
-
return pacman("-Sp", "--print-format", "%n %v", resource_name).lines.map
|
137
|
+
return pacman("-Sp", "--print-format", "%n %v", resource_name).lines.map(&:chomp).sort.join(', ') if self.class.group?(resource_name)
|
141
138
|
|
142
139
|
# Start by querying with pacman first
|
143
140
|
# If that fails, retry using yaourt against the AUR
|
@@ -145,7 +142,7 @@ Puppet::Type.type(:package).provide :pacman, :parent => Puppet::Provider::Packag
|
|
145
142
|
begin
|
146
143
|
if pacman_check
|
147
144
|
output = pacman "-Sp", "--print-format", "%v", resource_name
|
148
|
-
|
145
|
+
output.chomp
|
149
146
|
else
|
150
147
|
output = yaourt "-Qma", resource_name
|
151
148
|
output.split("\n").each do |line|
|
@@ -195,16 +192,27 @@ Puppet::Type.type(:package).provide :pacman, :parent => Puppet::Provider::Packag
|
|
195
192
|
|
196
193
|
# Removes a package from the system.
|
197
194
|
def uninstall
|
195
|
+
remove_package(false)
|
196
|
+
end
|
197
|
+
|
198
|
+
def purge
|
199
|
+
remove_package(true)
|
200
|
+
end
|
201
|
+
|
202
|
+
private
|
203
|
+
|
204
|
+
def remove_package(purge_configs = false)
|
198
205
|
resource_name = @resource[:name]
|
199
206
|
|
200
207
|
is_group = self.class.group?(resource_name)
|
201
208
|
|
202
209
|
fail(_("Refusing to uninstall package group %{resource_name}, because allow_virtual is false.") % { resource_name: resource_name }) if is_group && !@resource.allow_virtual?
|
203
210
|
|
204
|
-
cmd = %w
|
211
|
+
cmd = %w[--noconfirm --noprogressbar]
|
205
212
|
cmd += uninstall_options if @resource[:uninstall_options]
|
206
213
|
cmd << "-R"
|
207
214
|
cmd << '-s' if is_group
|
215
|
+
cmd << '--nosave' if purge_configs
|
208
216
|
cmd << resource_name
|
209
217
|
|
210
218
|
if self.class.yaourt?
|
@@ -214,8 +222,6 @@ Puppet::Type.type(:package).provide :pacman, :parent => Puppet::Provider::Packag
|
|
214
222
|
end
|
215
223
|
end
|
216
224
|
|
217
|
-
private
|
218
|
-
|
219
225
|
def install_options
|
220
226
|
join_options(@resource[:install_options])
|
221
227
|
end
|
@@ -252,7 +258,7 @@ Puppet::Type.type(:package).provide :pacman, :parent => Puppet::Provider::Packag
|
|
252
258
|
# Refuse to install if not allowing virtual packages and the resource is a group
|
253
259
|
fail(_("Refusing to install package group %{resource_name}, because allow_virtual is false.") % { resource_name: resource_name }) if self.class.group?(resource_name) && !@resource.allow_virtual?
|
254
260
|
|
255
|
-
cmd = %w
|
261
|
+
cmd = %w[--noconfirm --needed --noprogressbar]
|
256
262
|
cmd += install_options if @resource[:install_options]
|
257
263
|
cmd << "-S" << resource_name
|
258
264
|
|
@@ -32,14 +32,14 @@ Puppet::Type.type(:package).provide :pip, :parent => ::Puppet::Provider::Package
|
|
32
32
|
# Required by Puppet::Provider::Package::Targetable::resource_or_provider_command
|
33
33
|
def self.provider_command
|
34
34
|
# Ensure pip can upgrade pip, which usually puts pip into a new path /usr/local/bin/pip (compared to /usr/bin/pip)
|
35
|
-
|
35
|
+
cmd.map { |c| which(c) }.find { |c| !c.nil? }
|
36
36
|
end
|
37
37
|
|
38
38
|
def self.cmd
|
39
39
|
if Puppet::Util::Platform.windows?
|
40
40
|
["pip.exe"]
|
41
41
|
else
|
42
|
-
[
|
42
|
+
%w[pip pip-python pip2 pip-2]
|
43
43
|
end
|
44
44
|
end
|
45
45
|
|
@@ -65,7 +65,7 @@ Puppet::Type.type(:package).provide :pip, :parent => ::Puppet::Provider::Package
|
|
65
65
|
def self.instances(target_command = nil)
|
66
66
|
if target_command
|
67
67
|
command = target_command
|
68
|
-
|
68
|
+
validate_command(command)
|
69
69
|
else
|
70
70
|
command = provider_command
|
71
71
|
end
|
@@ -74,7 +74,7 @@ Puppet::Type.type(:package).provide :pip, :parent => ::Puppet::Provider::Package
|
|
74
74
|
return packages unless command
|
75
75
|
|
76
76
|
command_options = ['freeze']
|
77
|
-
command_version =
|
77
|
+
command_version = pip_version(command)
|
78
78
|
if compare_pip_versions(command_version, '8.1.0') >= 0
|
79
79
|
command_options << '--all'
|
80
80
|
end
|
@@ -101,9 +101,12 @@ Puppet::Type.type(:package).provide :pip, :parent => ::Puppet::Provider::Package
|
|
101
101
|
|
102
102
|
# Parse lines of output from `pip freeze`, which are structured as:
|
103
103
|
# _package_==_version_ or _package_===_version_
|
104
|
+
# or _package_ @ someURL@_version_
|
104
105
|
def self.parse(line)
|
105
106
|
if line.chomp =~ /^([^=]+)===?([^=]+)$/
|
106
|
-
{ :ensure =>
|
107
|
+
{ :ensure => Regexp.last_match(2), :name => Regexp.last_match(1), :provider => name }
|
108
|
+
elsif line.chomp =~ /^([^@]+) @ [^@]+@(.+)$/
|
109
|
+
{ :ensure => Regexp.last_match(2), :name => Regexp.last_match(1), :provider => name }
|
107
110
|
end
|
108
111
|
end
|
109
112
|
|
@@ -116,7 +119,7 @@ Puppet::Type.type(:package).provide :pip, :parent => ::Puppet::Provider::Package
|
|
116
119
|
self.class.instances(command).each do |pkg|
|
117
120
|
return pkg.properties if @resource[:name].casecmp(pkg.name).zero?
|
118
121
|
end
|
119
|
-
|
122
|
+
nil
|
120
123
|
end
|
121
124
|
|
122
125
|
# Return latest version available for current package
|
@@ -133,12 +136,10 @@ Puppet::Type.type(:package).provide :pip, :parent => ::Puppet::Provider::Package
|
|
133
136
|
end
|
134
137
|
|
135
138
|
def self.compare_pip_versions(x, y)
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
Puppet::Util::Package.versioncmp(x, y)
|
141
|
-
end
|
139
|
+
Puppet::Util::Package::Version::Pip.compare(x, y)
|
140
|
+
rescue PIP_VERSION::ValidationFailure => ex
|
141
|
+
Puppet.debug("Cannot compare #{x} and #{y}. #{ex.message} Falling through default comparison mechanism.")
|
142
|
+
Puppet::Util::Package.versioncmp(x, y)
|
142
143
|
end
|
143
144
|
|
144
145
|
# Use pip CLI to look up versions from PyPI repositories,
|
@@ -166,12 +167,12 @@ Puppet::Type.type(:package).provide :pip, :parent => ::Puppet::Provider::Package
|
|
166
167
|
execpipe command_and_options do |process|
|
167
168
|
process.collect do |line|
|
168
169
|
# PIP OUTPUT: Could not find a version that satisfies the requirement example==versionplease (from versions: 1.2.3, 4.5.6)
|
169
|
-
|
170
|
-
|
171
|
-
|
172
|
-
|
173
|
-
return versionList
|
170
|
+
next unless line =~ /from versions: (.+)\)/
|
171
|
+
|
172
|
+
versionList = Regexp.last_match(1).split(', ').sort do |x, y|
|
173
|
+
self.class.compare_pip_versions(x, y)
|
174
174
|
end
|
175
|
+
return versionList
|
175
176
|
end
|
176
177
|
end
|
177
178
|
[]
|
@@ -182,17 +183,17 @@ Puppet::Type.type(:package).provide :pip, :parent => ::Puppet::Provider::Package
|
|
182
183
|
self.class.validate_command(command)
|
183
184
|
|
184
185
|
Dir.mktmpdir("puppet_pip") do |dir|
|
185
|
-
command_and_options = [self.class.quote(command), 'install',
|
186
|
+
command_and_options = [self.class.quote(command), 'install', (@resource[:name]).to_s, '-d', dir.to_s, '-v']
|
186
187
|
command_and_options << install_options if @resource[:install_options]
|
187
188
|
execpipe command_and_options do |process|
|
188
189
|
process.collect do |line|
|
189
190
|
# PIP OUTPUT: Using version 0.10.1 (newest of versions: 1.2.3, 4.5.6)
|
190
|
-
|
191
|
-
|
192
|
-
|
193
|
-
|
194
|
-
return versionList
|
191
|
+
next unless line =~ /Using version .+? \(newest of versions: (.+?)\)/
|
192
|
+
|
193
|
+
versionList = Regexp.last_match(1).split(', ').sort do |x, y|
|
194
|
+
self.class.compare_pip_versions(x, y)
|
195
195
|
end
|
196
|
+
return versionList
|
196
197
|
end
|
197
198
|
end
|
198
199
|
return []
|
@@ -216,7 +217,7 @@ Puppet::Type.type(:package).provide :pip, :parent => ::Puppet::Provider::Package
|
|
216
217
|
|
217
218
|
def get_install_command_options
|
218
219
|
should = @resource[:ensure]
|
219
|
-
command_options = %w
|
220
|
+
command_options = %w[install -q]
|
220
221
|
command_options += install_options if @resource[:install_options]
|
221
222
|
|
222
223
|
if @resource[:source]
|
@@ -53,7 +53,7 @@ Puppet::Type.type(:package).provide :pkg, :parent => Puppet::Provider::Package d
|
|
53
53
|
{ :status => 'known' }
|
54
54
|
else
|
55
55
|
raise ArgumentError, _('Unknown format %{resource_name}: %{full_flags}[%{bad_flag}]') %
|
56
|
-
{ resource_name:
|
56
|
+
{ resource_name: name, full_flags: flags, bad_flag: flags[0..0] }
|
57
57
|
end
|
58
58
|
).merge(
|
59
59
|
case flags[1..1]
|
@@ -63,7 +63,7 @@ Puppet::Type.type(:package).provide :pkg, :parent => Puppet::Provider::Package d
|
|
63
63
|
{}
|
64
64
|
else
|
65
65
|
raise ArgumentError, _('Unknown format %{resource_name}: %{full_flags}[%{bad_flag}]') %
|
66
|
-
{ resource_name:
|
66
|
+
{ resource_name: name, full_flags: flags, bad_flag: flags[1..1] }
|
67
67
|
end
|
68
68
|
)
|
69
69
|
end
|
@@ -93,7 +93,7 @@ Puppet::Type.type(:package).provide :pkg, :parent => Puppet::Provider::Package d
|
|
93
93
|
when /known/
|
94
94
|
{ :status => 'known' }
|
95
95
|
else
|
96
|
-
raise ArgumentError, _('Unknown format %{resource_name}: %{state}') % { resource_name:
|
96
|
+
raise ArgumentError, _('Unknown format %{resource_name}: %{state}') % { resource_name: name, state: state }
|
97
97
|
end
|
98
98
|
end
|
99
99
|
|
@@ -103,17 +103,17 @@ Puppet::Type.type(:package).provide :pkg, :parent => Puppet::Provider::Package d
|
|
103
103
|
(case line.chomp
|
104
104
|
# FMRI IFO
|
105
105
|
# pkg://omnios/SUNWcs@0.5.11,5.11-0.151008:20131204T022241Z ---
|
106
|
-
when %r
|
107
|
-
{ :publisher =>
|
106
|
+
when %r{^pkg://([^/]+)/([^@]+)@(\S+) +(...)$}
|
107
|
+
{ :publisher => Regexp.last_match(1), :name => Regexp.last_match(2), :ensure => Regexp.last_match(3) }.merge ifo_flag(Regexp.last_match(4))
|
108
108
|
|
109
109
|
# FMRI STATE UFOXI
|
110
110
|
# pkg://solaris/SUNWcs@0.5.11,5.11-0.151.0.1:20101105T001108Z installed u----
|
111
|
-
when %r
|
112
|
-
{ :publisher =>
|
111
|
+
when %r{^pkg://([^/]+)/([^@]+)@(\S+) +(\S+) +(.....)$}
|
112
|
+
{ :publisher => Regexp.last_match(1), :name => Regexp.last_match(2), :ensure => Regexp.last_match(3) }.merge pkg_state(Regexp.last_match(4)).merge(ufoxi_flag(Regexp.last_match(5)))
|
113
113
|
|
114
114
|
else
|
115
|
-
raise ArgumentError, _('Unknown line format %{resource_name}: %{parse_line}') % { resource_name:
|
116
|
-
end).merge({ :provider =>
|
115
|
+
raise ArgumentError, _('Unknown line format %{resource_name}: %{parse_line}') % { resource_name: name, parse_line: line }
|
116
|
+
end).merge({ :provider => name })
|
117
117
|
end
|
118
118
|
|
119
119
|
def hold
|
@@ -223,7 +223,7 @@ Puppet::Type.type(:package).provide :pkg, :parent => Puppet::Provider::Package d
|
|
223
223
|
def install(nofail = false)
|
224
224
|
name = @resource[:name]
|
225
225
|
should = @resource[:ensure]
|
226
|
-
is =
|
226
|
+
is = query
|
227
227
|
if is[:ensure].to_sym == :absent
|
228
228
|
command = 'install'
|
229
229
|
else
|
@@ -237,12 +237,12 @@ Puppet::Type.type(:package).provide :pkg, :parent => Puppet::Provider::Package d
|
|
237
237
|
unless should.is_a? Symbol
|
238
238
|
name += "@#{should}"
|
239
239
|
end
|
240
|
-
|
240
|
+
unhold if properties[:mark] == :hold
|
241
241
|
begin
|
242
242
|
tries = 1
|
243
243
|
# pkg install exits with code 7 when the image is currently in use by another process and cannot be modified
|
244
244
|
r = exec_cmd(command(:pkg), command, *args, name)
|
245
|
-
while r[:exit] == 7
|
245
|
+
while r[:exit] == 7
|
246
246
|
if tries > 4
|
247
247
|
raise Puppet::Error, _("Pkg could not install %{name} after %{tries} tries. Aborting run") % { name: name, tries: tries }
|
248
248
|
end
|
@@ -252,7 +252,7 @@ Puppet::Type.type(:package).provide :pkg, :parent => Puppet::Provider::Package d
|
|
252
252
|
r = exec_cmd(command(:pkg), command, *args, name)
|
253
253
|
end
|
254
254
|
ensure
|
255
|
-
|
255
|
+
hold if @resource[:mark] == :hold
|
256
256
|
end
|
257
257
|
return r if nofail
|
258
258
|
raise Puppet::Error, _("Unable to update %{package}") % { package: r[:out] } if r[:exit] != 0
|
@@ -267,11 +267,11 @@ Puppet::Type.type(:package).provide :pkg, :parent => Puppet::Provider::Package d
|
|
267
267
|
cmd << '-r'
|
268
268
|
end
|
269
269
|
cmd << @resource[:name]
|
270
|
-
|
270
|
+
unhold if properties[:mark] == :hold
|
271
271
|
begin
|
272
272
|
pkg cmd
|
273
273
|
rescue StandardError, LoadError => e
|
274
|
-
|
274
|
+
hold if properties[:mark] == :hold
|
275
275
|
raise e
|
276
276
|
end
|
277
277
|
end
|
@@ -77,7 +77,7 @@ Puppet::Type.type(:package).provide :pkgdmg, :parent => Puppet::Provider::Packag
|
|
77
77
|
end
|
78
78
|
|
79
79
|
unless source =~ /\.dmg$/i || source =~ /\.pkg$/i
|
80
|
-
raise Puppet::Error
|
80
|
+
raise Puppet::Error, _("Mac OS X PKG DMGs must specify a source string ending in .dmg or flat .pkg file")
|
81
81
|
end
|
82
82
|
|
83
83
|
require 'open-uri' # Dead code; this is never used. The File.open call 20-ish lines south of here used to be Kernel.open but changed in '09. -NF
|
@@ -85,19 +85,19 @@ Puppet::Type.type(:package).provide :pkgdmg, :parent => Puppet::Provider::Packag
|
|
85
85
|
tmpdir = Dir.mktmpdir
|
86
86
|
ext = /(\.dmg|\.pkg)$/i.match(source)[0]
|
87
87
|
begin
|
88
|
-
if %r{\A[A-Za-z][A-Za-z0-9
|
88
|
+
if %r{\A[A-Za-z][A-Za-z0-9+\-.]*://} =~ cached_source
|
89
89
|
cached_source = File.join(tmpdir, "#{name}#{ext}")
|
90
90
|
args = ["-o", cached_source, "-C", "-", "-L", "-s", "--fail", "--url", source]
|
91
91
|
if http_proxy_host and http_proxy_port
|
92
92
|
args << "--proxy" << "#{http_proxy_host}:#{http_proxy_port}"
|
93
|
-
elsif http_proxy_host and
|
93
|
+
elsif http_proxy_host and !http_proxy_port
|
94
94
|
args << "--proxy" << http_proxy_host
|
95
95
|
end
|
96
96
|
begin
|
97
97
|
curl(*args)
|
98
|
-
Puppet.debug "Success: curl transferred [#{name}] (via: curl #{args.join(
|
98
|
+
Puppet.debug "Success: curl transferred [#{name}] (via: curl #{args.join(' ')})"
|
99
99
|
rescue Puppet::ExecutionFailure
|
100
|
-
Puppet.debug "curl #{args.join(
|
100
|
+
Puppet.debug "curl #{args.join(' ')} did not transfer [#{name}]. Falling back to local file." # This used to fall back to open-uri. -NF
|
101
101
|
cached_source = source
|
102
102
|
end
|
103
103
|
end
|
@@ -107,7 +107,7 @@ Puppet::Type.type(:package).provide :pkgdmg, :parent => Puppet::Provider::Packag
|
|
107
107
|
File.open(cached_source) do |dmg|
|
108
108
|
xml_str = hdiutil "mount", "-plist", "-nobrowse", "-readonly", "-mountrandom", "/tmp", dmg.path
|
109
109
|
hdiutil_info = Puppet::Util::Plist.parse_plist(xml_str)
|
110
|
-
raise Puppet::Error
|
110
|
+
raise Puppet::Error, _("No disk entities returned by mount at %{path}") % { path: dmg.path } unless hdiutil_info.has_key?("system-entities")
|
111
111
|
|
112
112
|
mounts = hdiutil_info["system-entities"].filter_map { |entity|
|
113
113
|
entity["mount-point"]
|
@@ -137,21 +137,21 @@ Puppet::Type.type(:package).provide :pkgdmg, :parent => Puppet::Provider::Packag
|
|
137
137
|
def query
|
138
138
|
if Puppet::FileSystem.exist?("/var/db/.puppet_pkgdmg_installed_#{@resource[:name]}")
|
139
139
|
Puppet.debug "/var/db/.puppet_pkgdmg_installed_#{@resource[:name]} found"
|
140
|
-
|
140
|
+
{ :name => @resource[:name], :ensure => :present }
|
141
141
|
else
|
142
|
-
|
142
|
+
nil
|
143
143
|
end
|
144
144
|
end
|
145
145
|
|
146
146
|
def install
|
147
147
|
source = @resource[:source]
|
148
148
|
unless source
|
149
|
-
raise Puppet::Error
|
149
|
+
raise Puppet::Error, _("Mac OS X PKG DMGs must specify a package source.")
|
150
150
|
end
|
151
151
|
|
152
152
|
name = @resource[:name]
|
153
153
|
unless name
|
154
|
-
raise Puppet::Error
|
154
|
+
raise Puppet::Error, _("Mac OS X PKG DMGs must specify a package name.")
|
155
155
|
end
|
156
156
|
|
157
157
|
self.class.installpkgdmg(source, name)
|