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
@@ -77,9 +77,9 @@ Puppet::Type.type(:package).provide :pkgin, :parent => Puppet::Provider::Package
|
|
77
77
|
|
78
78
|
def latest
|
79
79
|
package = parse_pkgsearch_line.detect { |p| p[:status] == '<' }
|
80
|
-
return properties[:ensure]
|
80
|
+
return properties[:ensure] unless package
|
81
81
|
|
82
|
-
|
82
|
+
package[:ensure]
|
83
83
|
end
|
84
84
|
|
85
85
|
def update
|
@@ -64,7 +64,7 @@ Puppet::Type.type(:package).provide :pkgng, :parent => Puppet::Provider::Package
|
|
64
64
|
def self.instances
|
65
65
|
packages = []
|
66
66
|
begin
|
67
|
-
info =
|
67
|
+
info = get_query
|
68
68
|
get_version_list
|
69
69
|
|
70
70
|
unless info
|
@@ -76,9 +76,9 @@ Puppet::Type.type(:package).provide :pkgng, :parent => Puppet::Provider::Package
|
|
76
76
|
packages << new(hash)
|
77
77
|
end
|
78
78
|
|
79
|
-
|
79
|
+
packages
|
80
80
|
rescue Puppet::ExecutionFailure
|
81
|
-
|
81
|
+
[]
|
82
82
|
end
|
83
83
|
end
|
84
84
|
|
@@ -113,14 +113,14 @@ Puppet::Type.type(:package).provide :pkgng, :parent => Puppet::Provider::Package
|
|
113
113
|
# just 'curl'), drop the category prefix. pkgng doesn't support version
|
114
114
|
# pinning with the origin syntax (pkg install curl-1.2.3 is valid, but
|
115
115
|
# pkg install www/curl-1.2.3 is not).
|
116
|
-
if resource[:name] =~
|
116
|
+
if resource[:name] =~ %r{/}
|
117
117
|
installname = resource[:name].split('/')[1] + '-' + resource[:ensure]
|
118
118
|
else
|
119
119
|
installname = resource[:name] + '-' + resource[:ensure]
|
120
120
|
end
|
121
121
|
end
|
122
122
|
|
123
|
-
if
|
123
|
+
if !source # install using default repo logic
|
124
124
|
args = ['install', '-qy']
|
125
125
|
elsif source.scheme == 'urn' # install from repo named in URN
|
126
126
|
tag = repo_tag_from_urn(source.to_s)
|
@@ -27,7 +27,7 @@ Puppet::Type.type(:package).provide :pkgutil, :parent => :sun, :source => :sun d
|
|
27
27
|
conf.each_line { |line| correct_wgetopts = true if line =~ /^\s*wgetopts\s*=.*(-nv|-q|--no-verbose|--quiet)/ }
|
28
28
|
end
|
29
29
|
end
|
30
|
-
|
30
|
+
unless correct_wgetopts
|
31
31
|
Puppet.notice _("It is highly recommended that you set 'wgetopts=-nv' in your pkgutil.conf.")
|
32
32
|
end
|
33
33
|
end
|
@@ -50,11 +50,11 @@ Puppet::Type.type(:package).provide :pkgutil, :parent => :sun, :source => :sun d
|
|
50
50
|
|
51
51
|
# Create a second instance with the alias if it's different
|
52
52
|
pkgalias = aliases[pkg[:name]]
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
53
|
+
next unless pkgalias and pkg[:name] != pkgalias
|
54
|
+
|
55
|
+
apkg = pkg.dup
|
56
|
+
apkg[:name] = pkgalias
|
57
|
+
pkginsts << new(apkg)
|
58
58
|
end
|
59
59
|
|
60
60
|
pkginsts
|
@@ -70,7 +70,7 @@ Puppet::Type.type(:package).provide :pkgutil, :parent => :sun, :source => :sun d
|
|
70
70
|
next if noise?(line)
|
71
71
|
|
72
72
|
if line =~ /\s*(\S+)\s+(\S+)\s+(.*)/
|
73
|
-
{ :alias =>
|
73
|
+
{ :alias => Regexp.last_match(1), :name => Regexp.last_match(2), :avail => Regexp.last_match(3) }
|
74
74
|
else
|
75
75
|
Puppet.warning _("Cannot match %{line}") % { line: line }
|
76
76
|
end
|
@@ -105,11 +105,11 @@ Puppet::Type.type(:package).provide :pkgutil, :parent => :sun, :source => :sun d
|
|
105
105
|
# Single queries may have been for an alias so return the name requested
|
106
106
|
if list.any?
|
107
107
|
list[-1][:name] = hash[:justme]
|
108
|
-
|
108
|
+
list[-1]
|
109
109
|
end
|
110
110
|
else
|
111
111
|
list.reject! { |h| h[:ensure] == :absent }
|
112
|
-
|
112
|
+
list
|
113
113
|
end
|
114
114
|
end
|
115
115
|
|
@@ -127,25 +127,25 @@ Puppet::Type.type(:package).provide :pkgutil, :parent => :sun, :source => :sun d
|
|
127
127
|
def self.pkgsplit(line)
|
128
128
|
if line =~ /\s*(\S+)\s+(\S+)\s+(.*)/
|
129
129
|
hash = {}
|
130
|
-
hash[:name] =
|
131
|
-
hash[:ensure] = if
|
130
|
+
hash[:name] = Regexp.last_match(1)
|
131
|
+
hash[:ensure] = if Regexp.last_match(2) == "notinst"
|
132
132
|
:absent
|
133
133
|
else
|
134
|
-
|
134
|
+
Regexp.last_match(2)
|
135
135
|
end
|
136
|
-
hash[:avail] =
|
136
|
+
hash[:avail] = Regexp.last_match(3)
|
137
137
|
|
138
138
|
if hash[:avail] =~ /^SAME\s*$/
|
139
139
|
hash[:avail] = hash[:ensure]
|
140
140
|
end
|
141
141
|
|
142
142
|
# Use the name method, so it works with subclasses.
|
143
|
-
hash[:provider] =
|
143
|
+
hash[:provider] = name
|
144
144
|
|
145
|
-
|
145
|
+
hash
|
146
146
|
else
|
147
147
|
Puppet.warning _("Cannot match %{line}") % { line: line }
|
148
|
-
|
148
|
+
nil
|
149
149
|
end
|
150
150
|
end
|
151
151
|
|
@@ -172,11 +172,7 @@ Puppet::Type.type(:package).provide :pkgutil, :parent => :sun, :source => :sun d
|
|
172
172
|
|
173
173
|
def query
|
174
174
|
hash = pkgsingle(@resource)
|
175
|
-
|
176
|
-
hash
|
177
|
-
else
|
178
|
-
{ :ensure => :absent }
|
179
|
-
end
|
175
|
+
hash || { :ensure => :absent }
|
180
176
|
end
|
181
177
|
|
182
178
|
def update
|
@@ -27,46 +27,46 @@ Puppet::Type.type(:package).provide :portage, :parent => Puppet::Provider::Packa
|
|
27
27
|
defaultfor 'os.family' => :gentoo
|
28
28
|
|
29
29
|
def self.instances
|
30
|
-
result_format =
|
31
|
-
result_fields =
|
32
|
-
|
33
|
-
limit =
|
34
|
-
version_format =
|
35
|
-
slot_versions_format =
|
36
|
-
installed_versions_format =
|
37
|
-
installable_versions_format =
|
30
|
+
result_format = eix_result_format
|
31
|
+
result_fields = eix_result_fields
|
32
|
+
|
33
|
+
limit = eix_limit
|
34
|
+
version_format = eix_version_format
|
35
|
+
slot_versions_format = eix_slot_versions_format
|
36
|
+
installed_versions_format = eix_installed_versions_format
|
37
|
+
installable_versions_format = eix_install_versions_format
|
38
38
|
begin
|
39
39
|
eix_file = File.directory?('/var/cache/eix') ? '/var/cache/eix/portage.eix' : '/var/cache/eix'
|
40
|
-
update_eix
|
40
|
+
update_eix unless FileUtils.uptodate?(eix_file, %w[/usr/bin/eix /usr/portage/metadata/timestamp])
|
41
41
|
|
42
42
|
search_output = nil
|
43
43
|
Puppet::Util.withenv :EIX_LIMIT => limit, :LASTVERSION => version_format, :LASTSLOTVERSIONS => slot_versions_format, :INSTALLEDVERSIONS => installed_versions_format, :STABLEVERSIONS => installable_versions_format do
|
44
|
-
search_output = eix(*(
|
44
|
+
search_output = eix(*(eix_search_arguments + ['--installed']))
|
45
45
|
end
|
46
46
|
|
47
47
|
packages = []
|
48
48
|
search_output.each_line do |search_result|
|
49
49
|
match = result_format.match(search_result)
|
50
50
|
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
package[:provider] = :portage
|
57
|
-
packages << new(package)
|
51
|
+
next unless match
|
52
|
+
|
53
|
+
package = {}
|
54
|
+
result_fields.zip(match.captures) do |field, value|
|
55
|
+
package[field] = value unless !value or value.empty?
|
58
56
|
end
|
57
|
+
package[:provider] = :portage
|
58
|
+
packages << new(package)
|
59
59
|
end
|
60
60
|
|
61
|
-
|
61
|
+
packages
|
62
62
|
rescue Puppet::ExecutionFailure => detail
|
63
|
-
raise Puppet::Error
|
63
|
+
raise Puppet::Error, detail
|
64
64
|
end
|
65
65
|
end
|
66
66
|
|
67
67
|
def install
|
68
68
|
should = @resource.should(:ensure)
|
69
|
-
cmd = %w
|
69
|
+
cmd = %w[]
|
70
70
|
name = qatom[:category] ? "#{qatom[:category]}/#{qatom[:pn]}" : qatom[:pn]
|
71
71
|
name = qatom[:pfx] + name if qatom[:pfx]
|
72
72
|
name = name + '-' + qatom[:pv] if qatom[:pv]
|
@@ -80,7 +80,7 @@ Puppet::Type.type(:package).provide :portage, :parent => Puppet::Provider::Packa
|
|
80
80
|
|
81
81
|
def uninstall
|
82
82
|
should = @resource.should(:ensure)
|
83
|
-
cmd = %w
|
83
|
+
cmd = %w[--rage-clean]
|
84
84
|
name = qatom[:category] ? "#{qatom[:category]}/#{qatom[:pn]}" : qatom[:pn]
|
85
85
|
name = qatom[:pfx] + name if qatom[:pfx]
|
86
86
|
name = name + '-' + qatom[:pv] if qatom[:pv]
|
@@ -98,17 +98,17 @@ Puppet::Type.type(:package).provide :portage, :parent => Puppet::Provider::Packa
|
|
98
98
|
end
|
99
99
|
|
100
100
|
def reinstall
|
101
|
-
|
101
|
+
install
|
102
102
|
end
|
103
103
|
|
104
104
|
def update
|
105
|
-
|
105
|
+
install
|
106
106
|
end
|
107
107
|
|
108
108
|
def qatom
|
109
|
-
output_format =
|
110
|
-
result_format =
|
111
|
-
result_fields =
|
109
|
+
output_format = qatom_output_format
|
110
|
+
result_format = qatom_result_format
|
111
|
+
result_fields = qatom_result_fields
|
112
112
|
@atom ||= begin
|
113
113
|
package_info = {}
|
114
114
|
# do the search
|
@@ -119,9 +119,9 @@ Puppet::Type.type(:package).provide :portage, :parent => Puppet::Provider::Packa
|
|
119
119
|
when true, false, Symbol
|
120
120
|
search = @resource[:name]
|
121
121
|
else
|
122
|
-
search = '=' + @resource[:name] + '-' +
|
122
|
+
search = '=' + @resource[:name] + '-' + should.to_s
|
123
123
|
end
|
124
|
-
search_output = qatom_bin(*
|
124
|
+
search_output = qatom_bin(*[search, '--format', output_format])
|
125
125
|
# verify if the search found anything
|
126
126
|
match = result_format.match(search_output)
|
127
127
|
if match
|
@@ -138,7 +138,7 @@ Puppet::Type.type(:package).provide :portage, :parent => Puppet::Provider::Packa
|
|
138
138
|
end
|
139
139
|
@atom = package_info
|
140
140
|
rescue Puppet::ExecutionFailure => detail
|
141
|
-
raise Puppet::Error
|
141
|
+
raise Puppet::Error, detail
|
142
142
|
end
|
143
143
|
end
|
144
144
|
|
@@ -147,7 +147,7 @@ Puppet::Type.type(:package).provide :portage, :parent => Puppet::Provider::Packa
|
|
147
147
|
end
|
148
148
|
|
149
149
|
def qatom_result_format
|
150
|
-
|
150
|
+
/^"\[(\S*)\]\s+\[(\S*)\]\s+\[(\S*)\]\s+\[(\S*)\]\s+\[(\S*)\]\s+\[(\S*)\]\s+\[(\S*)\](.*)"$/
|
151
151
|
end
|
152
152
|
|
153
153
|
def qatom_result_fields
|
@@ -155,9 +155,7 @@ Puppet::Type.type(:package).provide :portage, :parent => Puppet::Provider::Packa
|
|
155
155
|
end
|
156
156
|
|
157
157
|
def self.get_sets
|
158
|
-
@sets ||=
|
159
|
-
@sets = emerge(*(['--list-sets']))
|
160
|
-
end
|
158
|
+
@sets ||= @sets = emerge(*['--list-sets'])
|
161
159
|
end
|
162
160
|
|
163
161
|
def query
|
@@ -181,12 +179,12 @@ Puppet::Type.type(:package).provide :portage, :parent => Puppet::Provider::Packa
|
|
181
179
|
|
182
180
|
if @resource[:name] =~ /^@/
|
183
181
|
if package_sets.include?(@resource[:name][1..].to_s)
|
184
|
-
return({ :name =>
|
182
|
+
return({ :name => (@resource[:name]).to_s, :ensure => '9999', :version_available => nil, :installed_versions => nil, :installable_versions => "9999," })
|
185
183
|
end
|
186
184
|
end
|
187
185
|
|
188
186
|
eix_file = File.directory?('/var/cache/eix') ? '/var/cache/eix/portage.eix' : '/var/cache/eix'
|
189
|
-
update_eix
|
187
|
+
update_eix unless FileUtils.uptodate?(eix_file, %w[/usr/bin/eix /usr/portage/metadata/timestamp])
|
190
188
|
|
191
189
|
search_output = nil
|
192
190
|
Puppet::Util.withenv :EIX_LIMIT => limit, :LASTVERSION => version_format, :LASTSLOTVERSIONS => slot_versions_format, :INSTALLEDVERSIONS => installed_versions_format, :STABLEVERSIONS => installable_versions_format do
|
@@ -197,46 +195,46 @@ Puppet::Type.type(:package).provide :portage, :parent => Puppet::Provider::Packa
|
|
197
195
|
search_output.each_line do |search_result|
|
198
196
|
match = result_format.match(search_result)
|
199
197
|
|
200
|
-
|
201
|
-
package = {}
|
202
|
-
result_fields.zip(match.captures) do |field, value|
|
203
|
-
package[field] = value unless !value or value.empty?
|
204
|
-
end
|
205
|
-
# dev-lang python [3.4.5] [3.5.2] [2.7.12:2.7,3.4.5:3.4] [2.7.12:2.7,3.4.5:3.4,3.5.2:3.5] https://www.python.org/ An interpreted, interactive, object-oriented programming language
|
206
|
-
# version_available is what we CAN install / update to
|
207
|
-
# ensure is what is currently installed
|
208
|
-
# This DOES NOT choose to install/upgrade or not, just provides current info
|
209
|
-
# prefer checking versions to slots as versions are finer grained
|
210
|
-
search = qatom[:pv]
|
211
|
-
search = search + '-' + qatom[:pr] if qatom[:pr]
|
212
|
-
if search
|
213
|
-
package[:version_available] = eix_get_version_for_versions(package[:installable_versions], search)
|
214
|
-
package[:ensure] = eix_get_version_for_versions(package[:installed_versions], search)
|
215
|
-
elsif qatom[:slot]
|
216
|
-
package[:version_available] = eix_get_version_for_slot(package[:slot_versions_available], qatom[:slot])
|
217
|
-
package[:ensure] = eix_get_version_for_slot(package[:installed_slots], qatom[:slot])
|
218
|
-
end
|
198
|
+
next unless match
|
219
199
|
|
220
|
-
|
221
|
-
|
200
|
+
package = {}
|
201
|
+
result_fields.zip(match.captures) do |field, value|
|
202
|
+
package[field] = value unless !value or value.empty?
|
222
203
|
end
|
204
|
+
# dev-lang python [3.4.5] [3.5.2] [2.7.12:2.7,3.4.5:3.4] [2.7.12:2.7,3.4.5:3.4,3.5.2:3.5] https://www.python.org/ An interpreted, interactive, object-oriented programming language
|
205
|
+
# version_available is what we CAN install / update to
|
206
|
+
# ensure is what is currently installed
|
207
|
+
# This DOES NOT choose to install/upgrade or not, just provides current info
|
208
|
+
# prefer checking versions to slots as versions are finer grained
|
209
|
+
search = qatom[:pv]
|
210
|
+
search = search + '-' + qatom[:pr] if qatom[:pr]
|
211
|
+
if search
|
212
|
+
package[:version_available] = eix_get_version_for_versions(package[:installable_versions], search)
|
213
|
+
package[:ensure] = eix_get_version_for_versions(package[:installed_versions], search)
|
214
|
+
elsif qatom[:slot]
|
215
|
+
package[:version_available] = eix_get_version_for_slot(package[:slot_versions_available], qatom[:slot])
|
216
|
+
package[:ensure] = eix_get_version_for_slot(package[:installed_slots], qatom[:slot])
|
217
|
+
end
|
218
|
+
|
219
|
+
package[:ensure] = package[:ensure] || :absent
|
220
|
+
packages << package
|
223
221
|
end
|
224
222
|
|
225
223
|
case packages.size
|
226
224
|
when 0
|
227
|
-
raise Puppet::Error
|
225
|
+
raise Puppet::Error, _("No package found with the specified name [%{name}]") % { name: @resource[:name] }
|
228
226
|
when 1
|
229
227
|
@eix_result = packages[0]
|
230
228
|
else
|
231
|
-
raise Puppet::Error
|
229
|
+
raise Puppet::Error, _("More than one package with the specified name [%{search_value}], please use the category parameter to disambiguate") % { search_value: search_value }
|
232
230
|
end
|
233
231
|
rescue Puppet::ExecutionFailure => detail
|
234
|
-
raise Puppet::Error
|
232
|
+
raise Puppet::Error, detail
|
235
233
|
end
|
236
234
|
end
|
237
235
|
|
238
236
|
def latest
|
239
|
-
|
237
|
+
query[:version_available]
|
240
238
|
end
|
241
239
|
|
242
240
|
private
|
@@ -303,7 +301,7 @@ Puppet::Type.type(:package).provide :portage, :parent => Puppet::Provider::Packa
|
|
303
301
|
end
|
304
302
|
|
305
303
|
def self.eix_search_arguments
|
306
|
-
['--nocolor', '--pure-packages', '--format',
|
304
|
+
['--nocolor', '--pure-packages', '--format', eix_search_format]
|
307
305
|
end
|
308
306
|
|
309
307
|
def install_options
|
@@ -8,14 +8,14 @@ Puppet::Type.type(:package).provide :ports, :parent => :freebsd, :source => :fre
|
|
8
8
|
:portuninstall => "/usr/local/sbin/pkg_deinstall",
|
9
9
|
:portinfo => "/usr/sbin/pkg_info"
|
10
10
|
|
11
|
-
%w
|
11
|
+
%w[INTERACTIVE UNAME].each do |var|
|
12
12
|
ENV.delete(var) if ENV.include?(var)
|
13
13
|
end
|
14
14
|
|
15
15
|
def install
|
16
16
|
# -N: install if the package is missing, otherwise upgrade
|
17
17
|
# -M: yes, we're a batch, so don't ask any questions
|
18
|
-
cmd = %w
|
18
|
+
cmd = %w[-N -M BATCH=yes] << @resource[:name]
|
19
19
|
|
20
20
|
output = portupgrade(*cmd)
|
21
21
|
if output =~ /\*\* No such /
|
@@ -29,8 +29,8 @@ Puppet::Type.type(:package).provide :ports, :parent => :freebsd, :source => :fre
|
|
29
29
|
|
30
30
|
begin
|
31
31
|
output = portversion(*cmd)
|
32
|
-
rescue Puppet::ExecutionFailure
|
33
|
-
raise Puppet::Error.new(output,
|
32
|
+
rescue Puppet::ExecutionFailure => e
|
33
|
+
raise Puppet::Error.new(output, e)
|
34
34
|
end
|
35
35
|
line = output.split("\n").pop
|
36
36
|
|
@@ -39,16 +39,16 @@ Puppet::Type.type(:package).provide :ports, :parent => :freebsd, :source => :fre
|
|
39
39
|
return :latest
|
40
40
|
end
|
41
41
|
|
42
|
-
pkgstuff =
|
43
|
-
match =
|
44
|
-
info =
|
42
|
+
pkgstuff = Regexp.last_match(1)
|
43
|
+
match = Regexp.last_match(2)
|
44
|
+
info = Regexp.last_match(3)
|
45
45
|
|
46
46
|
unless pkgstuff =~ /^\S+-([^-\s]+)$/
|
47
47
|
raise Puppet::Error,
|
48
48
|
_("Could not match package info '%{pkgstuff}'") % { pkgstuff: pkgstuff }
|
49
49
|
end
|
50
50
|
|
51
|
-
version =
|
51
|
+
version = Regexp.last_match(1)
|
52
52
|
|
53
53
|
if match == "=" or match == ">"
|
54
54
|
# we're up to date or more recent
|
@@ -62,7 +62,8 @@ Puppet::Type.type(:package).provide :ports, :parent => :freebsd, :source => :fre
|
|
62
62
|
_("Could not match version info '%{info}'") % { info: info }
|
63
63
|
end
|
64
64
|
|
65
|
-
source
|
65
|
+
source = Regexp.last_match(1)
|
66
|
+
newversion = Regexp.last_match(2)
|
66
67
|
|
67
68
|
debug "Newer version in #{source}"
|
68
69
|
newversion
|
@@ -71,8 +72,8 @@ Puppet::Type.type(:package).provide :ports, :parent => :freebsd, :source => :fre
|
|
71
72
|
def query
|
72
73
|
# support portorigin_glob such as "mail/postfix"
|
73
74
|
name = self.name
|
74
|
-
if name =~
|
75
|
-
name = self.name.split(
|
75
|
+
if name =~ %r{/}
|
76
|
+
name = self.name.split(%r{/}).slice(1)
|
76
77
|
end
|
77
78
|
self.class.instances.each do |instance|
|
78
79
|
if instance.name == name
|
@@ -23,7 +23,7 @@ Puppet::Type.type(:package).provide :portupgrade, :parent => Puppet::Provider::P
|
|
23
23
|
# defaultfor 'os.name' => :freebsd
|
24
24
|
|
25
25
|
# Remove unwanted environment variables.
|
26
|
-
%w
|
26
|
+
%w[INTERACTIVE UNAME].each do |var|
|
27
27
|
if ENV.include?(var)
|
28
28
|
ENV.delete(var)
|
29
29
|
end
|
@@ -35,7 +35,7 @@ Puppet::Type.type(:package).provide :portupgrade, :parent => Puppet::Provider::P
|
|
35
35
|
Puppet.debug "portupgrade.rb Building packages list from installed ports"
|
36
36
|
|
37
37
|
# regex to match output from pkg_info
|
38
|
-
regex =
|
38
|
+
regex = /^(\S+)-([^-\s]+):(\S+)$/
|
39
39
|
# Corresponding field names
|
40
40
|
fields = [:portname, :ensure, :portorigin]
|
41
41
|
# define Temporary hash used, packages array of hashes
|
@@ -46,8 +46,8 @@ Puppet::Type.type(:package).provide :portupgrade, :parent => Puppet::Provider::P
|
|
46
46
|
cmdline = ["-aoQ"]
|
47
47
|
begin
|
48
48
|
output = portinfo(*cmdline)
|
49
|
-
rescue Puppet::ExecutionFailure
|
50
|
-
raise Puppet::Error.new(output,
|
49
|
+
rescue Puppet::ExecutionFailure => e
|
50
|
+
raise Puppet::Error.new(output, e)
|
51
51
|
end
|
52
52
|
|
53
53
|
# split output and match it and populate temp hash
|
@@ -64,7 +64,7 @@ Puppet::Type.type(:package).provide :portupgrade, :parent => Puppet::Provider::P
|
|
64
64
|
# populate the actual :name field from the :portorigin
|
65
65
|
# Set :provider to this object name
|
66
66
|
hash[:name] = hash[:portorigin]
|
67
|
-
hash[:provider] =
|
67
|
+
hash[:provider] = name
|
68
68
|
|
69
69
|
# Add to the full packages listing
|
70
70
|
packages << new(hash)
|
@@ -75,7 +75,7 @@ Puppet::Type.type(:package).provide :portupgrade, :parent => Puppet::Provider::P
|
|
75
75
|
}
|
76
76
|
|
77
77
|
# return the packages array of hashes
|
78
|
-
|
78
|
+
packages
|
79
79
|
end
|
80
80
|
|
81
81
|
######## Installation sub command
|
@@ -88,8 +88,8 @@ Puppet::Type.type(:package).provide :portupgrade, :parent => Puppet::Provider::P
|
|
88
88
|
# FIXME: it's possible that portinstall prompts for data so locks up.
|
89
89
|
begin
|
90
90
|
output = portinstall(*cmdline)
|
91
|
-
rescue Puppet::ExecutionFailure
|
92
|
-
raise Puppet::Error.new(output,
|
91
|
+
rescue Puppet::ExecutionFailure => e
|
92
|
+
raise Puppet::Error.new(output, e)
|
93
93
|
end
|
94
94
|
|
95
95
|
if output =~ /\*\* No such /
|
@@ -97,7 +97,7 @@ Puppet::Type.type(:package).provide :portupgrade, :parent => Puppet::Provider::P
|
|
97
97
|
end
|
98
98
|
|
99
99
|
# No return code required, so do nil to be clean
|
100
|
-
|
100
|
+
nil
|
101
101
|
end
|
102
102
|
|
103
103
|
######## Latest subcommand (returns the latest version available, or current version if installed is latest)
|
@@ -111,39 +111,39 @@ Puppet::Type.type(:package).provide :portupgrade, :parent => Puppet::Provider::P
|
|
111
111
|
|
112
112
|
begin
|
113
113
|
output = portversion(*cmdline)
|
114
|
-
rescue Puppet::ExecutionFailure
|
115
|
-
raise Puppet::Error.new(output,
|
114
|
+
rescue Puppet::ExecutionFailure => e
|
115
|
+
raise Puppet::Error.new(output, e)
|
116
116
|
end
|
117
117
|
|
118
118
|
# Check: output format.
|
119
119
|
if output =~ /^\S+-([^-\s]+)\s+(\S)\s+(.*)/
|
120
|
-
installedversion =
|
121
|
-
comparison =
|
122
|
-
otherdata =
|
120
|
+
installedversion = Regexp.last_match(1)
|
121
|
+
comparison = Regexp.last_match(2)
|
122
|
+
otherdata = Regexp.last_match(3)
|
123
123
|
|
124
124
|
# Only return a new version number when it's clear that there is a new version
|
125
125
|
# all others return the current version so no unexpected 'upgrades' occur.
|
126
126
|
case comparison
|
127
127
|
when "=", ">"
|
128
128
|
Puppet.debug "portupgrade.latest() - Installed package is latest (#{installedversion})"
|
129
|
-
|
129
|
+
installedversion
|
130
130
|
when "<"
|
131
131
|
# "portpkg-1.7_5 < needs updating (port has 1.14)"
|
132
132
|
# "portpkg-1.7_5 < needs updating (port has 1.14) (=> 'newport/pkg')
|
133
133
|
if otherdata =~ /\(port has (\S+)\)/
|
134
|
-
newversion =
|
134
|
+
newversion = Regexp.last_match(1)
|
135
135
|
Puppet.debug "portupgrade.latest() - Installed version needs updating to (#{newversion})"
|
136
|
-
|
136
|
+
newversion
|
137
137
|
else
|
138
138
|
Puppet.debug "portupgrade.latest() - Unable to determine new version from (#{otherdata})"
|
139
|
-
|
139
|
+
installedversion
|
140
140
|
end
|
141
141
|
when "?", "!", "#"
|
142
142
|
Puppet.debug "portupgrade.latest() - Comparison Error reported from portversion (#{output})"
|
143
|
-
|
143
|
+
installedversion
|
144
144
|
else
|
145
145
|
Puppet.debug "portupgrade.latest() - Unknown code from portversion output (#{output})"
|
146
|
-
|
146
|
+
installedversion
|
147
147
|
end
|
148
148
|
|
149
149
|
elsif output =~ /^\*\* No matching package /
|
@@ -166,25 +166,25 @@ Puppet::Type.type(:package).provide :portupgrade, :parent => Puppet::Provider::P
|
|
166
166
|
cmdline = ["-qO", @resource[:name]]
|
167
167
|
begin
|
168
168
|
output = portinfo(*cmdline)
|
169
|
-
rescue Puppet::ExecutionFailure
|
170
|
-
raise Puppet::Error.new(output,
|
169
|
+
rescue Puppet::ExecutionFailure => e
|
170
|
+
raise Puppet::Error.new(output, e)
|
171
171
|
end
|
172
172
|
|
173
173
|
# Check: if output isn't in the right format, return nil
|
174
174
|
if output =~ /^(\S+)-([^-\s]+)/
|
175
175
|
# Fill in the details
|
176
176
|
hash = Hash.new
|
177
|
-
hash[:portorigin] =
|
178
|
-
hash[:portname] =
|
179
|
-
hash[:ensure] =
|
177
|
+
hash[:portorigin] = name
|
178
|
+
hash[:portname] = Regexp.last_match(1)
|
179
|
+
hash[:ensure] = Regexp.last_match(2)
|
180
180
|
|
181
181
|
# If more details are required, then we can do another pkg_info
|
182
182
|
# query here and parse out that output and add to the hash
|
183
183
|
# return the hash to the caller
|
184
|
-
|
184
|
+
hash
|
185
185
|
else
|
186
186
|
Puppet.debug "portupgrade.query() - package (#{@resource[:name]}) not installed"
|
187
|
-
|
187
|
+
nil
|
188
188
|
end
|
189
189
|
end
|
190
190
|
|
@@ -196,13 +196,13 @@ Puppet::Type.type(:package).provide :portupgrade, :parent => Puppet::Provider::P
|
|
196
196
|
cmdline = ["-qO", @resource[:name]]
|
197
197
|
begin
|
198
198
|
output = portinfo(*cmdline)
|
199
|
-
rescue Puppet::ExecutionFailure
|
200
|
-
raise Puppet::Error.new(output,
|
199
|
+
rescue Puppet::ExecutionFailure => e
|
200
|
+
raise Puppet::Error.new(output, e)
|
201
201
|
end
|
202
202
|
|
203
203
|
if output =~ /^(\S+)/
|
204
204
|
# output matches, so uninstall it
|
205
|
-
portuninstall
|
205
|
+
portuninstall Regexp.last_match(1)
|
206
206
|
end
|
207
207
|
end
|
208
208
|
|
@@ -214,17 +214,17 @@ Puppet::Type.type(:package).provide :portupgrade, :parent => Puppet::Provider::P
|
|
214
214
|
cmdline = ["-qO", @resource[:name]]
|
215
215
|
begin
|
216
216
|
output = portinfo(*cmdline)
|
217
|
-
rescue Puppet::ExecutionFailure
|
218
|
-
raise Puppet::Error.new(output,
|
217
|
+
rescue Puppet::ExecutionFailure => e
|
218
|
+
raise Puppet::Error.new(output, e)
|
219
219
|
end
|
220
220
|
|
221
221
|
if output =~ /^(\S+)/
|
222
222
|
# output matches, so upgrade the software
|
223
|
-
cmdline = ["-M BATCH=yes",
|
223
|
+
cmdline = ["-M BATCH=yes", Regexp.last_match(1)]
|
224
224
|
begin
|
225
225
|
output = portupgrade(*cmdline)
|
226
|
-
rescue Puppet::ExecutionFailure
|
227
|
-
raise Puppet::Error.new(output,
|
226
|
+
rescue Puppet::ExecutionFailure => e
|
227
|
+
raise Puppet::Error.new(output, e)
|
228
228
|
end
|
229
229
|
end
|
230
230
|
end
|