puppet 8.5.1 → 8.6.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile.lock +23 -20
- 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/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 +1 -1
- data/lib/puppet/pops/validation.rb +4 -4
- data/lib/puppet/pops/visitor.rb +2 -2
- data/lib/puppet/property/ensure.rb +12 -14
- data/lib/puppet/property/keyvalue.rb +4 -4
- data/lib/puppet/property/list.rb +4 -4
- data/lib/puppet/property/ordered_list.rb +1 -1
- data/lib/puppet/property.rb +31 -33
- data/lib/puppet/provider/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
data/lib/puppet/type.rb
CHANGED
@@ -103,7 +103,7 @@ class Type
|
|
103
103
|
return nil unless other.is_a?(Puppet::CompilableResourceType) || other.class.is_a?(Puppet::CompilableResourceType)
|
104
104
|
|
105
105
|
# against other type instances.
|
106
|
-
|
106
|
+
ref <=> other.ref
|
107
107
|
end
|
108
108
|
|
109
109
|
# Code related to resource type attributes.
|
@@ -123,7 +123,7 @@ class Type
|
|
123
123
|
# @return [Array<String>] all type attribute names in a defined order.
|
124
124
|
#
|
125
125
|
def self.allattrs
|
126
|
-
key_attributes | (parameters & [:provider]) | properties.collect
|
126
|
+
key_attributes | (parameters & [:provider]) | properties.collect(&:name) | parameters | metaparams
|
127
127
|
end
|
128
128
|
|
129
129
|
# Returns the class associated with the given attribute name.
|
@@ -136,7 +136,7 @@ class Type
|
|
136
136
|
# We cache the value, since this method gets called such a huge number
|
137
137
|
# of times (as in, hundreds of thousands in a given run).
|
138
138
|
unless @attrclasses.include?(name)
|
139
|
-
@attrclasses[name] = case
|
139
|
+
@attrclasses[name] = case attrtype(name)
|
140
140
|
when :property; @validproperties[name]
|
141
141
|
when :meta; @@metaparamhash[name]
|
142
142
|
when :param; @paramhash[name]
|
@@ -193,10 +193,10 @@ class Type
|
|
193
193
|
#
|
194
194
|
def self.ensurable(&block)
|
195
195
|
if block_given?
|
196
|
-
|
196
|
+
newproperty(:ensure, :parent => Puppet::Property::Ensure, &block)
|
197
197
|
else
|
198
|
-
|
199
|
-
|
198
|
+
newproperty(:ensure, :parent => Puppet::Property::Ensure) do
|
199
|
+
defaultvalues
|
200
200
|
end
|
201
201
|
end
|
202
202
|
end
|
@@ -211,7 +211,7 @@ class Type
|
|
211
211
|
# If the class has all three of these methods defined, then it's
|
212
212
|
# ensurable.
|
213
213
|
[:exists?, :create, :destroy].all? { |method|
|
214
|
-
|
214
|
+
public_method_defined?(method)
|
215
215
|
}
|
216
216
|
end
|
217
217
|
|
@@ -275,7 +275,7 @@ class Type
|
|
275
275
|
define_method(name.to_s + "?") do
|
276
276
|
val = self[name]
|
277
277
|
if val == :true or val == true
|
278
|
-
|
278
|
+
true
|
279
279
|
end
|
280
280
|
end
|
281
281
|
end
|
@@ -304,7 +304,7 @@ class Type
|
|
304
304
|
# @return [Array<String>] all meta-parameter names
|
305
305
|
#
|
306
306
|
def self.metaparams
|
307
|
-
@@metaparams.collect
|
307
|
+
@@metaparams.collect(&:name)
|
308
308
|
end
|
309
309
|
|
310
310
|
# Returns the documentation for a given meta-parameter of this type.
|
@@ -389,7 +389,7 @@ class Type
|
|
389
389
|
def self.key_attributes
|
390
390
|
# This is a cache miss around 0.05 percent of the time. --daniel 2012-07-17
|
391
391
|
# rubocop:disable Naming/MemoizedInstanceVariableName
|
392
|
-
@key_attributes_cache ||= key_attribute_parameters.collect
|
392
|
+
@key_attributes_cache ||= key_attribute_parameters.collect(&:name)
|
393
393
|
# rubocop:enable Naming/MemoizedInstanceVariableName
|
394
394
|
end
|
395
395
|
|
@@ -443,7 +443,7 @@ class Type
|
|
443
443
|
# @return [Object] an object that is a _uniqueness_key_ for this object
|
444
444
|
#
|
445
445
|
def uniqueness_key
|
446
|
-
self.class.key_attributes.sort_by
|
446
|
+
self.class.key_attributes.sort_by(&:to_s).map { |attribute_name| self[attribute_name] }
|
447
447
|
end
|
448
448
|
|
449
449
|
# Creates a new parameter.
|
@@ -553,7 +553,7 @@ class Type
|
|
553
553
|
def self.parameters
|
554
554
|
return [] unless defined?(@parameters)
|
555
555
|
|
556
|
-
@parameters.collect
|
556
|
+
@parameters.collect(&:name)
|
557
557
|
end
|
558
558
|
|
559
559
|
# @return [Puppet::Parameter] Returns the parameter class associated with the given parameter name.
|
@@ -576,7 +576,7 @@ class Type
|
|
576
576
|
@validattrs ||= {}
|
577
577
|
|
578
578
|
unless @validattrs.include?(name)
|
579
|
-
@validattrs[name] = !!(
|
579
|
+
@validattrs[name] = !!(validproperty?(name) or validparameter?(name) or metaparam?(name))
|
580
580
|
end
|
581
581
|
|
582
582
|
@validattrs[name]
|
@@ -622,7 +622,7 @@ class Type
|
|
622
622
|
# @return [Boolean] true if a new parameter was added, false otherwise
|
623
623
|
def add_property_parameter(prop_name)
|
624
624
|
if self.class.validproperty?(prop_name) && !@parameters[prop_name]
|
625
|
-
|
625
|
+
newattr(prop_name)
|
626
626
|
return true
|
627
627
|
end
|
628
628
|
false
|
@@ -662,7 +662,7 @@ class Type
|
|
662
662
|
# not the current value.
|
663
663
|
obj.value
|
664
664
|
else
|
665
|
-
|
665
|
+
nil
|
666
666
|
end
|
667
667
|
end
|
668
668
|
|
@@ -680,9 +680,9 @@ class Type
|
|
680
680
|
nv = name_var
|
681
681
|
name = nv if nv
|
682
682
|
end
|
683
|
-
raise Puppet::Error
|
683
|
+
raise Puppet::Error, "Got nil value for #{name}" if value.nil?
|
684
684
|
|
685
|
-
property =
|
685
|
+
property = newattr(name)
|
686
686
|
|
687
687
|
if property
|
688
688
|
begin
|
@@ -710,7 +710,7 @@ class Type
|
|
710
710
|
if @parameters.has_key?(attr)
|
711
711
|
@parameters.delete(attr)
|
712
712
|
else
|
713
|
-
raise Puppet::DevError
|
713
|
+
raise Puppet::DevError, _("Undefined attribute '%{attribute}' in %{name}") % { attribute: attr, name: self }
|
714
714
|
end
|
715
715
|
end
|
716
716
|
|
@@ -933,9 +933,9 @@ class Type
|
|
933
933
|
# @return [Boolean] true, if this type's name is isomorphic with the object
|
934
934
|
def self.isomorphic?
|
935
935
|
if defined?(@isomorphic)
|
936
|
-
|
936
|
+
@isomorphic
|
937
937
|
else
|
938
|
-
|
938
|
+
true
|
939
939
|
end
|
940
940
|
end
|
941
941
|
|
@@ -965,7 +965,7 @@ class Type
|
|
965
965
|
end
|
966
966
|
}
|
967
967
|
end
|
968
|
-
|
968
|
+
@managed
|
969
969
|
end
|
970
970
|
|
971
971
|
###############################
|
@@ -995,7 +995,7 @@ class Type
|
|
995
995
|
@parent = nil
|
996
996
|
|
997
997
|
# Remove the reference to the provider.
|
998
|
-
if
|
998
|
+
if provider
|
999
999
|
@provider.clear
|
1000
1000
|
@provider = nil
|
1001
1001
|
end
|
@@ -1035,7 +1035,7 @@ class Type
|
|
1035
1035
|
#
|
1036
1036
|
# @return [???, nil] WHAT DOES IT RETURN? GUESS IS VOID
|
1037
1037
|
def flush
|
1038
|
-
|
1038
|
+
provider.flush if provider and provider.respond_to?(:flush)
|
1039
1039
|
end
|
1040
1040
|
|
1041
1041
|
# Says if the ensure property should be retrieved if the resource is ensurable
|
@@ -1051,7 +1051,7 @@ class Type
|
|
1051
1051
|
# @return [Puppet::Resource] array of all property values (mix of types)
|
1052
1052
|
# @raise [fail???] if there is a provider and it is not suitable for the host this is evaluated for.
|
1053
1053
|
def retrieve
|
1054
|
-
fail "Provider #{provider.class.name} is not functional on this host" if
|
1054
|
+
fail "Provider #{provider.class.name} is not functional on this host" if provider.is_a?(Puppet::Provider) and !provider.class.suitable?
|
1055
1055
|
|
1056
1056
|
result = Puppet::Resource.new(self.class, title)
|
1057
1057
|
|
@@ -1115,7 +1115,7 @@ class Type
|
|
1115
1115
|
# is the first property, which is important for skipping 'retrieve' on
|
1116
1116
|
# all the properties if the resource is absent.
|
1117
1117
|
ensure_state = false
|
1118
|
-
|
1118
|
+
properties.each_with_object({}) do |property, prophash|
|
1119
1119
|
if property.name == :ensure
|
1120
1120
|
ensure_state = property.retrieve
|
1121
1121
|
prophash[property] = ensure_state
|
@@ -1151,7 +1151,7 @@ class Type
|
|
1151
1151
|
# Either requires providers or must be overridden.
|
1152
1152
|
# @raise [Puppet::DevError] when there are no providers and the implementation has not overridden this method.
|
1153
1153
|
def self.instances
|
1154
|
-
raise Puppet::DevError, _("%{name} has no providers and has not overridden 'instances'") % { name:
|
1154
|
+
raise Puppet::DevError, _("%{name} has no providers and has not overridden 'instances'") % { name: name } if provider_hash.empty?
|
1155
1155
|
|
1156
1156
|
# Put the default provider first, then the rest of the suitable providers.
|
1157
1157
|
provider_instances = {}
|
@@ -1163,7 +1163,7 @@ class Type
|
|
1163
1163
|
other = provider_instances[title]
|
1164
1164
|
if other
|
1165
1165
|
Puppet.debug {
|
1166
|
-
"%s %s found in both %s and %s; skipping the %s version" % [
|
1166
|
+
"%s %s found in both %s and %s; skipping the %s version" % [name.to_s.capitalize, title, other.class.name, instance.class.name, instance.class.name]
|
1167
1167
|
}
|
1168
1168
|
next
|
1169
1169
|
end
|
@@ -1229,9 +1229,9 @@ class Type
|
|
1229
1229
|
def pathbuilder
|
1230
1230
|
p = parent
|
1231
1231
|
if p
|
1232
|
-
[p.pathbuilder,
|
1232
|
+
[p.pathbuilder, ref].flatten
|
1233
1233
|
else
|
1234
|
-
[
|
1234
|
+
[ref]
|
1235
1235
|
end
|
1236
1236
|
end
|
1237
1237
|
|
@@ -1309,7 +1309,7 @@ class Type
|
|
1309
1309
|
and the second run will log the edit made by Puppet.)"
|
1310
1310
|
|
1311
1311
|
validate do |list|
|
1312
|
-
list = Array(list).collect
|
1312
|
+
list = Array(list).collect(&:to_sym)
|
1313
1313
|
unless list == [:all]
|
1314
1314
|
list.each do |param|
|
1315
1315
|
next if @resource.class.validattr?(param)
|
@@ -1330,16 +1330,14 @@ class Type
|
|
1330
1330
|
def all_properties
|
1331
1331
|
resource.class.properties.find_all do |property|
|
1332
1332
|
resource.provider.nil? or resource.provider.class.supports_parameter?(property)
|
1333
|
-
end.collect
|
1334
|
-
property.name
|
1335
|
-
end
|
1333
|
+
end.collect(&:name)
|
1336
1334
|
end
|
1337
1335
|
|
1338
1336
|
def properties_to_audit(list)
|
1339
1337
|
if !list.is_a?(Array) && list.to_sym == :all
|
1340
1338
|
all_properties
|
1341
1339
|
else
|
1342
|
-
Array(list).collect
|
1340
|
+
Array(list).collect(&:to_sym)
|
1343
1341
|
end
|
1344
1342
|
end
|
1345
1343
|
end
|
@@ -1375,7 +1373,7 @@ class Type
|
|
1375
1373
|
end
|
1376
1374
|
|
1377
1375
|
newmetaparam(:alias) do
|
1378
|
-
desc
|
1376
|
+
desc "Creates an alias for the resource. Puppet uses this internally when you
|
1379
1377
|
provide a symbolic title and an explicit namevar value:
|
1380
1378
|
|
1381
1379
|
file { 'sshdconfig':
|
@@ -1411,7 +1409,7 @@ class Type
|
|
1411
1409
|
There's no way here for the Puppet parser to know that these two stanzas
|
1412
1410
|
should be affecting the same file.
|
1413
1411
|
|
1414
|
-
|
1412
|
+
"
|
1415
1413
|
|
1416
1414
|
munge do |aliases|
|
1417
1415
|
aliases = [aliases] unless aliases.is_a?(Array)
|
@@ -1494,11 +1492,11 @@ class Type
|
|
1494
1492
|
# @return [void]
|
1495
1493
|
def validate_relationship
|
1496
1494
|
@value.each do |ref|
|
1497
|
-
|
1498
|
-
|
1499
|
-
|
1500
|
-
|
1501
|
-
|
1495
|
+
next if @resource.catalog.resource(ref.to_s)
|
1496
|
+
|
1497
|
+
description = self.class.direction == :in ? "dependency" : "dependent"
|
1498
|
+
fail ResourceError, _("Could not find %{description} %{ref} for %{resource}") %
|
1499
|
+
{ description: description, ref: ref, resource: resource.ref }
|
1502
1500
|
end
|
1503
1501
|
end
|
1504
1502
|
|
@@ -1550,7 +1548,7 @@ class Type
|
|
1550
1548
|
|
1551
1549
|
## Corrected syntax of debug statement to reflect the way this was called.
|
1552
1550
|
# i.e. before, after, subscribe, notify
|
1553
|
-
|
1551
|
+
debug do
|
1554
1552
|
relation = case self.class.name
|
1555
1553
|
when "subscribe"
|
1556
1554
|
"subscribes"
|
@@ -1711,16 +1709,16 @@ class Type
|
|
1711
1709
|
suitable = suitableprovider
|
1712
1710
|
|
1713
1711
|
# Find which providers are a default for this system.
|
1714
|
-
defaults = suitable.find_all
|
1712
|
+
defaults = suitable.find_all(&:default?)
|
1715
1713
|
|
1716
1714
|
# If we don't have any default we use suitable providers
|
1717
1715
|
defaults = suitable if defaults.empty?
|
1718
|
-
max = defaults.collect
|
1716
|
+
max = defaults.collect(&:specificity).max
|
1719
1717
|
defaults = defaults.find_all { |provider| provider.specificity == max }
|
1720
1718
|
|
1721
1719
|
if defaults.length > 1
|
1722
1720
|
Puppet.warning(_("Found multiple default providers for %{name}: %{provider_list}; using %{selected_provider}") %
|
1723
|
-
{ name:
|
1721
|
+
{ name: name, provider_list: defaults.collect { |i| i.name.to_s }.join(", "), selected_provider: defaults[0].name })
|
1724
1722
|
end
|
1725
1723
|
|
1726
1724
|
@defaultprovider = defaults.shift unless defaults.empty?
|
@@ -1736,7 +1734,7 @@ class Type
|
|
1736
1734
|
# @return [Hash{ ??? => Puppet::Provider}] Returns a hash of WHAT EXACTLY for this type.
|
1737
1735
|
# @see provider_hash_by_type method to get the same for some other type
|
1738
1736
|
def self.provider_hash
|
1739
|
-
Puppet::Type.provider_hash_by_type(
|
1737
|
+
Puppet::Type.provider_hash_by_type(name)
|
1740
1738
|
end
|
1741
1739
|
|
1742
1740
|
# Returns the provider having the given name.
|
@@ -1772,7 +1770,7 @@ class Type
|
|
1772
1770
|
def self.validprovider?(name)
|
1773
1771
|
name = name.intern
|
1774
1772
|
|
1775
|
-
|
1773
|
+
provider_hash.has_key?(name) && provider_hash[name].suitable?
|
1776
1774
|
end
|
1777
1775
|
|
1778
1776
|
# Creates a new provider of a type.
|
@@ -1803,11 +1801,7 @@ class Type
|
|
1803
1801
|
pname
|
1804
1802
|
else
|
1805
1803
|
provider = self.provider(pname)
|
1806
|
-
|
1807
|
-
provider
|
1808
|
-
else
|
1809
|
-
raise Puppet::DevError, _("Could not find parent provider %{parent} of %{name}") % { parent: pname, name: name }
|
1810
|
-
end
|
1804
|
+
provider || raise(Puppet::DevError, _("Could not find parent provider %{parent} of %{name}") % { parent: pname, name: name })
|
1811
1805
|
end
|
1812
1806
|
else
|
1813
1807
|
Puppet::Provider
|
@@ -1815,9 +1809,9 @@ class Type
|
|
1815
1809
|
|
1816
1810
|
options[:resource_type] ||= self
|
1817
1811
|
|
1818
|
-
|
1812
|
+
providify
|
1819
1813
|
|
1820
|
-
|
1814
|
+
genclass(
|
1821
1815
|
name,
|
1822
1816
|
:parent => parent,
|
1823
1817
|
:hash => provider_hash,
|
@@ -1827,8 +1821,6 @@ class Type
|
|
1827
1821
|
:extend => feature_module,
|
1828
1822
|
:attributes => options
|
1829
1823
|
)
|
1830
|
-
|
1831
|
-
provider
|
1832
1824
|
end
|
1833
1825
|
|
1834
1826
|
# Ensures there is a `:provider` parameter defined.
|
@@ -1843,7 +1835,7 @@ class Type
|
|
1843
1835
|
# We expect that the class in which this code is executed will be something
|
1844
1836
|
# like Puppet::Type::Ssh_authorized_key::ParameterProvider.
|
1845
1837
|
desc <<-EOT
|
1846
|
-
The specific backend to use for this `#{
|
1838
|
+
The specific backend to use for this `#{to_s.split('::')[2].downcase}`
|
1847
1839
|
resource. You will seldom need to specify this --- Puppet will usually
|
1848
1840
|
discover the appropriate provider for your platform.
|
1849
1841
|
EOT
|
@@ -1912,7 +1904,7 @@ class Type
|
|
1912
1904
|
|
1913
1905
|
# Returns a list of suitable providers for the given type.
|
1914
1906
|
# A call to this method will load all providers if not already loaded and ask each if it is
|
1915
|
-
# suitable - those that are
|
1907
|
+
# suitable - those that are included in the result.
|
1916
1908
|
# @note This method also does some special processing which rejects a provider named `:fake` (for testing purposes).
|
1917
1909
|
# @return [Array<Puppet::Provider>] Returns an array of all suitable providers.
|
1918
1910
|
#
|
@@ -2094,7 +2086,7 @@ class Type
|
|
2094
2086
|
next unless Puppet::Type.type(type)
|
2095
2087
|
|
2096
2088
|
# Retrieve the list of names from the block.
|
2097
|
-
list =
|
2089
|
+
list = instance_eval(&block)
|
2098
2090
|
next unless list
|
2099
2091
|
|
2100
2092
|
list = [list] unless list.is_a?(Array)
|
@@ -2337,7 +2329,7 @@ class Type
|
|
2337
2329
|
[:file, :line, :catalog, :exported, :virtual].each do |getter|
|
2338
2330
|
setter = getter.to_s + "="
|
2339
2331
|
val = resource.send(getter)
|
2340
|
-
|
2332
|
+
send(setter, val) if val
|
2341
2333
|
end
|
2342
2334
|
|
2343
2335
|
merge_tags_from(resource)
|
@@ -2363,13 +2355,11 @@ class Type
|
|
2363
2355
|
#
|
2364
2356
|
# @return [void]
|
2365
2357
|
def validate_resource
|
2366
|
-
|
2367
|
-
|
2368
|
-
|
2369
|
-
|
2370
|
-
|
2371
|
-
raise error
|
2372
|
-
end
|
2358
|
+
validate if respond_to?(:validate)
|
2359
|
+
rescue Puppet::Error, ArgumentError => detail
|
2360
|
+
error = Puppet::ResourceError.new("Validation of #{ref} failed: #{detail}")
|
2361
|
+
adderrorcontext(error, detail)
|
2362
|
+
raise error
|
2373
2363
|
end
|
2374
2364
|
|
2375
2365
|
protected
|
@@ -2454,22 +2444,20 @@ class Type
|
|
2454
2444
|
# on invalid attributes.
|
2455
2445
|
no_values = []
|
2456
2446
|
(self.class.allattrs + hash.keys).uniq.each do |attr|
|
2457
|
-
|
2458
|
-
|
2459
|
-
|
2460
|
-
|
2461
|
-
|
2462
|
-
|
2463
|
-
|
2464
|
-
no_values << attr
|
2465
|
-
end
|
2466
|
-
rescue ArgumentError, Puppet::Error, TypeError
|
2467
|
-
raise
|
2468
|
-
rescue => detail
|
2469
|
-
error = Puppet::DevError.new(_("Could not set %{attribute} on %{class_name}: %{detail}") % { attribute: attr, class_name: self.class.name, detail: detail })
|
2470
|
-
error.set_backtrace(detail.backtrace)
|
2471
|
-
raise error
|
2447
|
+
# Set any defaults immediately. This is mostly done so
|
2448
|
+
# that the default provider is available for any other
|
2449
|
+
# property validation.
|
2450
|
+
if hash.has_key?(attr)
|
2451
|
+
self[attr] = hash[attr]
|
2452
|
+
else
|
2453
|
+
no_values << attr
|
2472
2454
|
end
|
2455
|
+
rescue ArgumentError, Puppet::Error, TypeError
|
2456
|
+
raise
|
2457
|
+
rescue => detail
|
2458
|
+
error = Puppet::DevError.new(_("Could not set %{attribute} on %{class_name}: %{detail}") % { attribute: attr, class_name: self.class.name, detail: detail })
|
2459
|
+
error.set_backtrace(detail.backtrace)
|
2460
|
+
raise error
|
2473
2461
|
end
|
2474
2462
|
no_values.each do |attr|
|
2475
2463
|
set_default(attr)
|
@@ -2536,7 +2524,7 @@ class Type
|
|
2536
2524
|
def ref
|
2537
2525
|
# memoizing this is worthwhile ~ 3 percent of calls are the "first time
|
2538
2526
|
# around" in an average run of Puppet. --daniel 2012-07-17
|
2539
|
-
@ref ||= "#{self.class.name.to_s.capitalize}[#{
|
2527
|
+
@ref ||= "#{self.class.name.to_s.capitalize}[#{title}]"
|
2540
2528
|
end
|
2541
2529
|
|
2542
2530
|
# (see self_refresh)
|
@@ -2582,9 +2570,9 @@ class Type
|
|
2582
2570
|
if self.class.validparameter?(name_var)
|
2583
2571
|
@title = self[:name]
|
2584
2572
|
elsif self.class.validproperty?(name_var)
|
2585
|
-
@title =
|
2573
|
+
@title = should(name_var)
|
2586
2574
|
else
|
2587
|
-
|
2575
|
+
devfail "Could not find namevar #{name_var} for #{self.class.name}"
|
2588
2576
|
end
|
2589
2577
|
end
|
2590
2578
|
|
@@ -2595,19 +2583,19 @@ class Type
|
|
2595
2583
|
# @see #ref
|
2596
2584
|
#
|
2597
2585
|
def to_s
|
2598
|
-
|
2586
|
+
ref
|
2599
2587
|
end
|
2600
2588
|
|
2601
2589
|
# Convert this resource type instance to a Puppet::Resource.
|
2602
2590
|
# @return [Puppet::Resource] Returns a serializable representation of this resource
|
2603
2591
|
#
|
2604
2592
|
def to_resource
|
2605
|
-
resource =
|
2593
|
+
resource = retrieve_resource
|
2606
2594
|
resource.merge_tags_from(self)
|
2607
2595
|
|
2608
2596
|
@parameters.each do |name, param|
|
2609
2597
|
# Avoid adding each instance name twice
|
2610
|
-
next if param.class.isnamevar? and param.value ==
|
2598
|
+
next if param.class.isnamevar? and param.value == title
|
2611
2599
|
|
2612
2600
|
# We've already got property values
|
2613
2601
|
next if param.is_a?(Puppet::Property)
|
@@ -36,7 +36,7 @@ class Puppet::Util::AtFork::Solaris
|
|
36
36
|
[:ct_status_read, Fiddle::TYPE_INT, Fiddle::TYPE_INT, Fiddle::TYPE_INT, Fiddle::TYPE_VOIDP],
|
37
37
|
|
38
38
|
[:ct_status_get_id, Fiddle::TYPE_INT, Fiddle::TYPE_VOIDP],
|
39
|
-
[:ct_status_free, Fiddle::TYPE_VOID, Fiddle::TYPE_VOIDP]
|
39
|
+
[:ct_status_free, Fiddle::TYPE_VOID, Fiddle::TYPE_VOIDP]
|
40
40
|
],
|
41
41
|
}.each do |library, functions|
|
42
42
|
libhandle = Fiddle::Handle.new(library)
|
@@ -46,9 +46,9 @@ class Puppet::Util::AtFork::Solaris
|
|
46
46
|
end
|
47
47
|
end
|
48
48
|
|
49
|
-
CTFS_PR_ROOT = File.join('', %w
|
50
|
-
CTFS_PR_TEMPLATE = File.join(CTFS_PR_ROOT,
|
51
|
-
CTFS_PR_LATEST = File.join(CTFS_PR_ROOT,
|
49
|
+
CTFS_PR_ROOT = File.join('', %w[system contract process])
|
50
|
+
CTFS_PR_TEMPLATE = File.join(CTFS_PR_ROOT, 'template')
|
51
|
+
CTFS_PR_LATEST = File.join(CTFS_PR_ROOT, 'latest')
|
52
52
|
|
53
53
|
CT_PR_PGRPONLY = 0x4
|
54
54
|
CT_PR_EV_HWERR = 0x20
|
@@ -63,27 +63,25 @@ class Puppet::Util::AtFork::Solaris
|
|
63
63
|
end
|
64
64
|
|
65
65
|
def activate_new_contract_template
|
66
|
-
|
67
|
-
tmpl = File.new(CTFS_PR_TEMPLATE, File::RDWR)
|
68
|
-
|
69
|
-
begin
|
70
|
-
tmpl_fd = tmpl.fileno
|
66
|
+
tmpl = File.new(CTFS_PR_TEMPLATE, File::RDWR)
|
71
67
|
|
72
|
-
|
73
|
-
|
74
|
-
raise_if_error { ct_tmpl_set_critical(tmpl_fd, 0) }
|
75
|
-
raise_if_error { ct_tmpl_set_informative(tmpl_fd, CT_PR_EV_HWERR) }
|
68
|
+
begin
|
69
|
+
tmpl_fd = tmpl.fileno
|
76
70
|
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
end
|
71
|
+
raise_if_error { ct_pr_tmpl_set_param(tmpl_fd, CT_PR_PGRPONLY) }
|
72
|
+
raise_if_error { ct_pr_tmpl_set_fatal(tmpl_fd, CT_PR_EV_HWERR) }
|
73
|
+
raise_if_error { ct_tmpl_set_critical(tmpl_fd, 0) }
|
74
|
+
raise_if_error { ct_tmpl_set_informative(tmpl_fd, CT_PR_EV_HWERR) }
|
82
75
|
|
83
|
-
|
84
|
-
rescue
|
85
|
-
|
76
|
+
raise_if_error { ct_tmpl_activate(tmpl_fd) }
|
77
|
+
rescue
|
78
|
+
tmpl.close
|
79
|
+
raise
|
86
80
|
end
|
81
|
+
|
82
|
+
@tmpl = tmpl
|
83
|
+
rescue => detail
|
84
|
+
Puppet.log_exception(detail, _('Failed to activate a new process contract template'))
|
87
85
|
end
|
88
86
|
|
89
87
|
def deactivate_contract_template(parent)
|
@@ -108,24 +106,22 @@ class Puppet::Util::AtFork::Solaris
|
|
108
106
|
end
|
109
107
|
|
110
108
|
def get_latest_child_contract_id
|
111
|
-
|
112
|
-
stat = File.new(CTFS_PR_LATEST, File::RDONLY)
|
109
|
+
stat = File.new(CTFS_PR_LATEST, File::RDONLY)
|
113
110
|
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
raise_if_error { ct_status_read(stat.fileno, CTD_COMMON, stathdl.ref) }
|
118
|
-
ctid = ct_status_get_id(stathdl)
|
119
|
-
ct_status_free(stathdl)
|
120
|
-
ensure
|
121
|
-
stat.close
|
122
|
-
end
|
111
|
+
begin
|
112
|
+
stathdl = Fiddle::Pointer.new(0)
|
123
113
|
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
114
|
+
raise_if_error { ct_status_read(stat.fileno, CTD_COMMON, stathdl.ref) }
|
115
|
+
ctid = ct_status_get_id(stathdl)
|
116
|
+
ct_status_free(stathdl)
|
117
|
+
ensure
|
118
|
+
stat.close
|
128
119
|
end
|
120
|
+
|
121
|
+
ctid
|
122
|
+
rescue => detail
|
123
|
+
Puppet.log_exception(detail, _('Failed to get latest child process contract id'))
|
124
|
+
nil
|
129
125
|
end
|
130
126
|
|
131
127
|
def abandon_latest_child_contract
|
@@ -133,7 +129,7 @@ class Puppet::Util::AtFork::Solaris
|
|
133
129
|
return if ctid.nil?
|
134
130
|
|
135
131
|
begin
|
136
|
-
ctl = File.new(File.join(CTFS_PR_ROOT, ctid.to_s,
|
132
|
+
ctl = File.new(File.join(CTFS_PR_ROOT, ctid.to_s, 'ctl'), File::WRONLY)
|
137
133
|
|
138
134
|
begin
|
139
135
|
raise_if_error { ct_ctl_abandon(ctl.fileno) }
|
data/lib/puppet/util/autoload.rb
CHANGED
@@ -81,7 +81,7 @@ class Puppet::Util::Autoload
|
|
81
81
|
begin
|
82
82
|
mark_loaded(name, file)
|
83
83
|
Kernel.load file
|
84
|
-
|
84
|
+
true
|
85
85
|
rescue SystemExit, NoMemoryError
|
86
86
|
raise
|
87
87
|
rescue Exception => detail
|
@@ -111,7 +111,7 @@ class Puppet::Util::Autoload
|
|
111
111
|
# returns nil if no file is found
|
112
112
|
# @api private
|
113
113
|
def get_file(name, env)
|
114
|
-
name
|
114
|
+
name += '.rb' unless name =~ /\.rb$/
|
115
115
|
path = search_directories(env).find { |dir| Puppet::FileSystem.exist?(File.join(dir, name)) }
|
116
116
|
path and File.join(path, name)
|
117
117
|
end
|
data/lib/puppet/util/backups.rb
CHANGED
@@ -13,13 +13,13 @@ module Puppet::Util::Backups
|
|
13
13
|
file ||= self[:path]
|
14
14
|
return true unless Puppet::FileSystem.exist?(file)
|
15
15
|
|
16
|
-
|
16
|
+
(bucket ? perform_backup_with_bucket(file) : perform_backup_with_backuplocal(file, self[:backup]))
|
17
17
|
end
|
18
18
|
|
19
19
|
private
|
20
20
|
|
21
21
|
def perform_backup_with_bucket(fileobj)
|
22
|
-
file =
|
22
|
+
file = fileobj.instance_of?(String) ? fileobj : fileobj.name
|
23
23
|
case Puppet::FileSystem.lstat(file).ftype
|
24
24
|
when "directory"
|
25
25
|
# we don't need to backup directories when recurse is on
|
@@ -34,7 +34,7 @@ module Puppet::Util::Backups
|
|
34
34
|
end
|
35
35
|
|
36
36
|
def perform_backup_with_backuplocal(fileobj, backup)
|
37
|
-
file =
|
37
|
+
file = fileobj.instance_of?(String) ? fileobj : fileobj.name
|
38
38
|
newfile = file + backup
|
39
39
|
|
40
40
|
remove_backup(newfile)
|
@@ -44,7 +44,7 @@ module Puppet::Util::Backups
|
|
44
44
|
|
45
45
|
# N.B. cp_r works on both files and directories
|
46
46
|
FileUtils.cp_r(file, bfile, :preserve => true)
|
47
|
-
|
47
|
+
true
|
48
48
|
rescue => detail
|
49
49
|
# since they said they want a backup, let's error out
|
50
50
|
# if we couldn't make one
|
@@ -53,7 +53,7 @@ module Puppet::Util::Backups
|
|
53
53
|
end
|
54
54
|
|
55
55
|
def remove_backup(newfile)
|
56
|
-
if
|
56
|
+
if instance_of?(Puppet::Type::File) and self[:links] != :follow
|
57
57
|
method = :lstat
|
58
58
|
else
|
59
59
|
method = :stat
|
@@ -75,14 +75,14 @@ module Puppet::Util::Backups
|
|
75
75
|
Puppet::FileSystem.unlink(newfile)
|
76
76
|
rescue => detail
|
77
77
|
message = _("Could not remove old backup: %{detail}") % { detail: detail }
|
78
|
-
|
78
|
+
log_exception(detail, message)
|
79
79
|
self.fail Puppet::Error, message, detail
|
80
80
|
end
|
81
81
|
end
|
82
82
|
|
83
83
|
def backup_file_with_filebucket(f)
|
84
|
-
sum =
|
85
|
-
|
86
|
-
|
84
|
+
sum = bucket.backup(f)
|
85
|
+
info _("Filebucketed %{f} to %{filebucket} with sum %{sum}") % { f: f, filebucket: bucket.name, sum: sum }
|
86
|
+
sum
|
87
87
|
end
|
88
88
|
end
|