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
@@ -21,7 +21,7 @@ class Puppet::Transaction::Persistence
|
|
21
21
|
Puppet::Pops::Time::Timestamp,
|
22
22
|
Puppet::Pops::Time::TimeData,
|
23
23
|
Puppet::Pops::Time::Timespan,
|
24
|
-
Puppet::Pops::Types::PBinaryType::Binary
|
24
|
+
Puppet::Pops::Types::PBinaryType::Binary
|
25
25
|
# Puppet::Pops::Types::PSensitiveType::Sensitive values are excluded from
|
26
26
|
# the persistence store, ignore it.
|
27
27
|
].freeze
|
@@ -64,7 +64,7 @@ class Puppet::Transaction::Persistence
|
|
64
64
|
def copy_skipped(resource_name)
|
65
65
|
@old_data["resources"] ||= {}
|
66
66
|
old_value = @old_data["resources"][resource_name]
|
67
|
-
|
67
|
+
unless old_value.nil?
|
68
68
|
@new_data["resources"][resource_name] = old_value
|
69
69
|
end
|
70
70
|
end
|
@@ -83,20 +83,18 @@ class Puppet::Transaction::Persistence
|
|
83
83
|
|
84
84
|
result = nil
|
85
85
|
Puppet::Util.benchmark(:debug, _("Loaded transaction store file in %{seconds} seconds")) do
|
86
|
+
result = Puppet::Util::Yaml.safe_load_file(filename, self.class.allowed_classes)
|
87
|
+
rescue Puppet::Util::Yaml::YamlLoadError => detail
|
88
|
+
Puppet.log_exception(detail, _("Transaction store file %{filename} is corrupt (%{detail}); replacing") % { filename: filename, detail: detail })
|
89
|
+
|
86
90
|
begin
|
87
|
-
|
88
|
-
rescue
|
89
|
-
Puppet.log_exception(detail, _("
|
90
|
-
|
91
|
-
begin
|
92
|
-
File.rename(filename, filename + ".bad")
|
93
|
-
rescue => detail
|
94
|
-
Puppet.log_exception(detail, _("Unable to rename corrupt transaction store file: %{detail}") % { detail: detail })
|
95
|
-
raise Puppet::Error, _("Could not rename corrupt transaction store file %{filename}; remove manually") % { filename: filename }, detail.backtrace
|
96
|
-
end
|
97
|
-
|
98
|
-
result = {}
|
91
|
+
File.rename(filename, filename + ".bad")
|
92
|
+
rescue => detail
|
93
|
+
Puppet.log_exception(detail, _("Unable to rename corrupt transaction store file: %{detail}") % { detail: detail })
|
94
|
+
raise Puppet::Error, _("Could not rename corrupt transaction store file %{filename}; remove manually") % { filename: filename }, detail.backtrace
|
99
95
|
end
|
96
|
+
|
97
|
+
result = {}
|
100
98
|
end
|
101
99
|
|
102
100
|
unless result.is_a?(Hash)
|
@@ -144,7 +144,7 @@ class Puppet::Transaction::Report
|
|
144
144
|
TOTAL = "total"
|
145
145
|
|
146
146
|
def self.from_data_hash(data)
|
147
|
-
obj =
|
147
|
+
obj = allocate
|
148
148
|
obj.initialize_from_hash(data)
|
149
149
|
obj
|
150
150
|
end
|
@@ -344,8 +344,8 @@ class Puppet::Transaction::Report
|
|
344
344
|
'noop' => @noop,
|
345
345
|
'noop_pending' => @noop_pending,
|
346
346
|
'environment' => @environment,
|
347
|
-
'logs' => @logs.map
|
348
|
-
'metrics' => @metrics.transform_values
|
347
|
+
'logs' => @logs.map(&:to_data_hash),
|
348
|
+
'metrics' => @metrics.transform_values(&:to_data_hash),
|
349
349
|
'resource_statuses' => calculate_resource_statuses,
|
350
350
|
'corrective_change' => @corrective_change,
|
351
351
|
}
|
@@ -466,7 +466,7 @@ class Puppet::Transaction::Report
|
|
466
466
|
|
467
467
|
def calculate_event_metrics
|
468
468
|
metrics = Hash.new(0)
|
469
|
-
%w
|
469
|
+
%w[total failure success].each { |m| metrics[m] = 0 }
|
470
470
|
resource_statuses.each do |_name, status|
|
471
471
|
metrics[TOTAL] += status.events.length
|
472
472
|
status.events.each do |event|
|
@@ -217,7 +217,7 @@ class Puppet::Transaction::ResourceHarness
|
|
217
217
|
|
218
218
|
# The event we've been provided might have been redacted so we need to use the state stored within
|
219
219
|
# the resource application context to see if an event was actually generated.
|
220
|
-
|
220
|
+
unless are_audited_values_equal(context.historical_values[property.name], context.current_values[property.name])
|
221
221
|
event.message = property.format(_("audit change: previously recorded value %s has been changed to %s"),
|
222
222
|
property.is_to_s(event.historical_value),
|
223
223
|
property.is_to_s(event.previous_value))
|
@@ -310,7 +310,7 @@ class Puppet::Transaction::ResourceHarness
|
|
310
310
|
ResourceApplicationContext.new(resource,
|
311
311
|
resource.retrieve_resource.to_hash,
|
312
312
|
Puppet::Util::Storage.cache(resource).dup,
|
313
|
-
(resource[:audit] || []).map
|
313
|
+
(resource[:audit] || []).map(&:to_sym),
|
314
314
|
[],
|
315
315
|
status,
|
316
316
|
resource.parameters.select { |_n, p| p.is_a?(Puppet::Property) && !p.sensitive })
|
data/lib/puppet/transaction.rb
CHANGED
@@ -78,11 +78,9 @@ class Puppet::Transaction
|
|
78
78
|
prerun_errors = {}
|
79
79
|
|
80
80
|
@catalog.vertices.each do |res|
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
prerun_errors[res] = detail
|
85
|
-
end
|
81
|
+
res.pre_run_check
|
82
|
+
rescue Puppet::Error => detail
|
83
|
+
prerun_errors[res] = detail
|
86
84
|
end
|
87
85
|
|
88
86
|
unless prerun_errors.empty?
|
@@ -149,11 +147,9 @@ class Puppet::Transaction
|
|
149
147
|
end
|
150
148
|
|
151
149
|
post_evalable_providers.each do |provider|
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
Puppet.log_exception(detail, _("post_resource_eval failed for provider %{provider}") % { provider: provider })
|
156
|
-
end
|
150
|
+
provider.post_resource_eval
|
151
|
+
rescue => detail
|
152
|
+
Puppet.log_exception(detail, _("post_resource_eval failed for provider %{provider}") % { provider: provider })
|
157
153
|
end
|
158
154
|
|
159
155
|
persistence.save if persistence.enabled?(catalog)
|
@@ -222,7 +218,7 @@ class Puppet::Transaction
|
|
222
218
|
|
223
219
|
# Find all of the changed resources.
|
224
220
|
def changed?
|
225
|
-
report.resource_statuses.values.find_all
|
221
|
+
report.resource_statuses.values.find_all(&:changed).collect { |status| catalog.resource(status.resource) }
|
226
222
|
end
|
227
223
|
|
228
224
|
def relationship_graph
|
@@ -270,7 +266,7 @@ class Puppet::Transaction
|
|
270
266
|
status = resource_harness.evaluate(resource)
|
271
267
|
add_resource_status(status)
|
272
268
|
ancestor ||= resource
|
273
|
-
|
269
|
+
unless status.failed? || status.failed_to_restart?
|
274
270
|
event_manager.queue_events(ancestor, status.events)
|
275
271
|
end
|
276
272
|
rescue => detail
|
@@ -316,7 +312,7 @@ class Puppet::Transaction
|
|
316
312
|
@failed_class_dependencies_already_notified.merge(class_dependencies_to_be_notified)
|
317
313
|
else
|
318
314
|
unless @merge_dependency_warnings || is_puppet_class
|
319
|
-
s.failed_dependencies.find_all { |d|
|
315
|
+
s.failed_dependencies.find_all { |d| !@failed_dependencies_already_notified.include?(d.ref) }.each do |dep|
|
320
316
|
resource.notice _("Dependency %{dep} has failures: %{status}") % { dep: dep, status: resource_status(dep).failed }
|
321
317
|
@failed_dependencies_already_notified.add(dep.ref)
|
322
318
|
end
|
@@ -398,15 +394,15 @@ class Puppet::Transaction
|
|
398
394
|
|
399
395
|
# Is the resource currently scheduled?
|
400
396
|
def scheduled?(resource)
|
401
|
-
|
397
|
+
ignoreschedules || resource_harness.scheduled?(resource)
|
402
398
|
end
|
403
399
|
|
404
400
|
# Should this resource be skipped?
|
405
401
|
def skip?(resource)
|
406
402
|
if skip_tags?(resource)
|
407
|
-
resource.debug "Skipping with skip tags #{skip_tags.join(
|
403
|
+
resource.debug "Skipping with skip tags #{skip_tags.join(', ')}"
|
408
404
|
elsif missing_tags?(resource)
|
409
|
-
resource.debug "Not tagged with #{tags.join(
|
405
|
+
resource.debug "Not tagged with #{tags.join(', ')}"
|
410
406
|
elsif !scheduled?(resource)
|
411
407
|
resource.debug "Not scheduled"
|
412
408
|
elsif failed_dependencies?(resource)
|
@@ -418,7 +414,7 @@ class Puppet::Transaction
|
|
418
414
|
unless resource.instance_of?(Puppet::Type.type(:whit))
|
419
415
|
if @merge_dependency_warnings && resource.parent && failed_dependencies?(resource.parent)
|
420
416
|
ps = resource_status(resource.parent)
|
421
|
-
ps.failed_dependencies.find_all { |d|
|
417
|
+
ps.failed_dependencies.find_all { |d| !@failed_class_dependencies_already_warned.include?(d.ref) }.each do |dep|
|
422
418
|
resource.parent.warning _("Skipping resources in class because of failed class dependencies")
|
423
419
|
@failed_class_dependencies_already_warned.add(dep.ref)
|
424
420
|
end
|
@@ -450,7 +446,7 @@ class Puppet::Transaction
|
|
450
446
|
return false if ignore_tags?
|
451
447
|
return false if tags.empty?
|
452
448
|
|
453
|
-
|
449
|
+
!resource.tagged?(*tags)
|
454
450
|
end
|
455
451
|
|
456
452
|
def skip_tags?(resource)
|
data/lib/puppet/type/exec.rb
CHANGED
@@ -85,9 +85,7 @@ module Puppet
|
|
85
85
|
|
86
86
|
newproperty(:returns, :array_matching => :all, :event => :executed_command) do |_property|
|
87
87
|
include Puppet::Util::Execution
|
88
|
-
munge
|
89
|
-
value.to_s
|
90
|
-
end
|
88
|
+
munge(&:to_s)
|
91
89
|
|
92
90
|
def event_name
|
93
91
|
:executed_command
|
@@ -131,32 +129,32 @@ module Puppet
|
|
131
129
|
# value, which causes us to be treated as in_sync?, which means we
|
132
130
|
# don't actually execute anything. I think. --daniel 2011-03-10
|
133
131
|
if @resource.check_all_attributes
|
134
|
-
|
132
|
+
:notrun
|
135
133
|
else
|
136
|
-
|
134
|
+
should
|
137
135
|
end
|
138
136
|
end
|
139
137
|
|
140
138
|
# Actually execute the command.
|
141
139
|
def sync
|
142
140
|
event = :executed_command
|
143
|
-
tries =
|
144
|
-
try_sleep =
|
141
|
+
tries = resource[:tries]
|
142
|
+
try_sleep = resource[:try_sleep]
|
145
143
|
|
146
144
|
begin
|
147
145
|
tries.times do |try|
|
148
146
|
# Only add debug messages for tries > 1 to reduce log spam.
|
149
147
|
debug("Exec try #{try + 1}/#{tries}") if tries > 1
|
150
|
-
@output, @status = provider.run(
|
151
|
-
break if
|
148
|
+
@output, @status = provider.run(resource[:command])
|
149
|
+
break if should.include?(@status.exitstatus.to_s)
|
152
150
|
|
153
151
|
if try_sleep > 0 and tries > 1
|
154
152
|
debug("Sleeping for #{try_sleep} seconds between tries")
|
155
153
|
sleep try_sleep
|
156
154
|
end
|
157
155
|
end
|
158
|
-
rescue Timeout::Error
|
159
|
-
self.fail Puppet::Error, _("Command exceeded timeout"),
|
156
|
+
rescue Timeout::Error => e
|
157
|
+
self.fail Puppet::Error, _("Command exceeded timeout"), e
|
160
158
|
end
|
161
159
|
|
162
160
|
log = @resource[:logoutput]
|
@@ -165,29 +163,29 @@ module Puppet
|
|
165
163
|
when :true
|
166
164
|
log = @resource[:loglevel]
|
167
165
|
when :on_failure
|
168
|
-
|
169
|
-
log = @resource[:loglevel]
|
170
|
-
else
|
166
|
+
if should.include?(@status.exitstatus.to_s)
|
171
167
|
log = :false
|
168
|
+
else
|
169
|
+
log = @resource[:loglevel]
|
172
170
|
end
|
173
171
|
end
|
174
172
|
unless log == :false
|
175
173
|
if @resource.parameter(:command).sensitive
|
176
|
-
|
174
|
+
send(log, "[output redacted]")
|
177
175
|
else
|
178
176
|
@output.split(/\n/).each { |line|
|
179
|
-
|
177
|
+
send(log, line)
|
180
178
|
}
|
181
179
|
end
|
182
180
|
end
|
183
181
|
end
|
184
182
|
|
185
|
-
unless
|
183
|
+
unless should.include?(@status.exitstatus.to_s)
|
186
184
|
if @resource.parameter(:command).sensitive
|
187
185
|
# Don't print sensitive commands in the clear
|
188
|
-
self.fail(_("[command redacted] returned %{status} instead of one of [%{expected}]") % { status: @status.exitstatus, expected:
|
186
|
+
self.fail(_("[command redacted] returned %{status} instead of one of [%{expected}]") % { status: @status.exitstatus, expected: should.join(",") })
|
189
187
|
else
|
190
|
-
self.fail(_("'%{cmd}' returned %{status} instead of one of [%{expected}]") % { cmd:
|
188
|
+
self.fail(_("'%{cmd}' returned %{status} instead of one of [%{expected}]") % { cmd: resource[:command], status: @status.exitstatus, expected: should.join(",") })
|
191
189
|
end
|
192
190
|
end
|
193
191
|
|
@@ -336,8 +334,8 @@ module Puppet
|
|
336
334
|
value = value.shift if value.is_a?(Array)
|
337
335
|
begin
|
338
336
|
value = Float(value)
|
339
|
-
rescue ArgumentError
|
340
|
-
raise ArgumentError, _("The timeout must be a number."),
|
337
|
+
rescue ArgumentError => e
|
338
|
+
raise ArgumentError, _("The timeout must be a number."), e.backtrace
|
341
339
|
end
|
342
340
|
[value, 0.0].max
|
343
341
|
end
|
@@ -353,7 +351,7 @@ module Puppet
|
|
353
351
|
|
354
352
|
munge do |value|
|
355
353
|
if value.is_a?(String)
|
356
|
-
unless value =~
|
354
|
+
unless value =~ /^\d+$/
|
357
355
|
raise ArgumentError, _("Tries must be an integer")
|
358
356
|
end
|
359
357
|
|
@@ -503,10 +501,10 @@ module Puppet
|
|
503
501
|
end
|
504
502
|
|
505
503
|
if sensitive
|
506
|
-
|
504
|
+
debug("[output redacted]")
|
507
505
|
else
|
508
506
|
output.split(/\n/).each { |line|
|
509
|
-
|
507
|
+
debug(line)
|
510
508
|
}
|
511
509
|
end
|
512
510
|
|
@@ -566,10 +564,10 @@ module Puppet
|
|
566
564
|
end
|
567
565
|
|
568
566
|
if sensitive
|
569
|
-
|
567
|
+
debug("[output redacted]")
|
570
568
|
else
|
571
569
|
output.split(/\n/).each { |line|
|
572
|
-
|
570
|
+
debug(line)
|
573
571
|
}
|
574
572
|
end
|
575
573
|
|
@@ -596,7 +594,7 @@ module Puppet
|
|
596
594
|
cmd = cmd[0] if cmd.is_a? Array
|
597
595
|
|
598
596
|
if cmd.is_a?(Puppet::Pops::Evaluator::DeferredValue)
|
599
|
-
|
597
|
+
debug("The 'command' parameter is deferred and cannot be autorequired")
|
600
598
|
else
|
601
599
|
cmd.scan(file_regex) { |str|
|
602
600
|
reqs << str
|
@@ -621,7 +619,7 @@ module Puppet
|
|
621
619
|
# to do.
|
622
620
|
line = line[0] if line.is_a? Array
|
623
621
|
if line.is_a?(Puppet::Pops::Evaluator::DeferredValue)
|
624
|
-
|
622
|
+
debug("The '#{param}' parameter is deferred and cannot be autorequired")
|
625
623
|
else
|
626
624
|
reqs += line.scan(file_regex)
|
627
625
|
end
|
@@ -653,20 +651,20 @@ module Puppet
|
|
653
651
|
self.class.checks.each { |check|
|
654
652
|
next if refreshing and check == :refreshonly
|
655
653
|
|
656
|
-
|
657
|
-
val = @parameters[check].value
|
658
|
-
val = [val] unless val.is_a? Array
|
659
|
-
val.each do |value|
|
660
|
-
if !@parameters[check].check(value)
|
661
|
-
# Give a debug message so users can figure out what command would have been
|
662
|
-
# but don't print sensitive commands or parameters in the clear
|
663
|
-
cmdstring = @parameters[:command].sensitive ? "[command redacted]" : @parameters[:command].value
|
654
|
+
next unless @parameters.include?(check)
|
664
655
|
|
665
|
-
|
656
|
+
val = @parameters[check].value
|
657
|
+
val = [val] unless val.is_a? Array
|
658
|
+
val.each do |value|
|
659
|
+
next if @parameters[check].check(value)
|
666
660
|
|
667
|
-
|
668
|
-
|
669
|
-
|
661
|
+
# Give a debug message so users can figure out what command would have been
|
662
|
+
# but don't print sensitive commands or parameters in the clear
|
663
|
+
cmdstring = @parameters[:command].sensitive ? "[command redacted]" : @parameters[:command].value
|
664
|
+
|
665
|
+
debug(_("'%{cmd}' won't be executed because of failed check '%{check}'") % { cmd: cmdstring, check: check })
|
666
|
+
|
667
|
+
return false
|
670
668
|
end
|
671
669
|
}
|
672
670
|
|
@@ -674,21 +672,21 @@ module Puppet
|
|
674
672
|
end
|
675
673
|
|
676
674
|
def output
|
677
|
-
if
|
678
|
-
|
675
|
+
if property(:returns).nil?
|
676
|
+
nil
|
679
677
|
else
|
680
|
-
|
678
|
+
property(:returns).output
|
681
679
|
end
|
682
680
|
end
|
683
681
|
|
684
682
|
# Run the command, or optionally run a separately-specified command.
|
685
683
|
def refresh
|
686
|
-
if
|
684
|
+
if check_all_attributes(true)
|
687
685
|
cmd = self[:refresh]
|
688
686
|
if cmd
|
689
687
|
provider.run(cmd)
|
690
688
|
else
|
691
|
-
|
689
|
+
property(:returns).sync
|
692
690
|
end
|
693
691
|
end
|
694
692
|
end
|
@@ -26,7 +26,7 @@ module Puppet
|
|
26
26
|
def property_matches?(current, desired)
|
27
27
|
return true if super(current, desired)
|
28
28
|
|
29
|
-
|
29
|
+
date_matches?(resource.parameter(:checksum).value, current, desired)
|
30
30
|
end
|
31
31
|
|
32
32
|
def retrieve
|
@@ -5,7 +5,7 @@ require 'uri'
|
|
5
5
|
require 'tempfile'
|
6
6
|
|
7
7
|
require_relative '../../../puppet/util/checksums'
|
8
|
-
require_relative '../../../puppet/type/file/data_sync
|
8
|
+
require_relative '../../../puppet/type/file/data_sync'
|
9
9
|
|
10
10
|
module Puppet
|
11
11
|
Puppet::Type.type(:file).newproperty(:content) do
|
@@ -79,11 +79,11 @@ module Puppet
|
|
79
79
|
newvalue = tmp
|
80
80
|
end
|
81
81
|
if currentvalue == :absent
|
82
|
-
|
82
|
+
"defined content as '#{newvalue}'"
|
83
83
|
elsif newvalue == :absent
|
84
|
-
|
84
|
+
"undefined content from '#{currentvalue}'"
|
85
85
|
else
|
86
|
-
|
86
|
+
"content changed '#{currentvalue}' to '#{newvalue}'"
|
87
87
|
end
|
88
88
|
end
|
89
89
|
|
@@ -92,7 +92,7 @@ module Puppet
|
|
92
92
|
end
|
93
93
|
|
94
94
|
def content
|
95
|
-
|
95
|
+
should
|
96
96
|
end
|
97
97
|
|
98
98
|
# Override this method to provide diffs if asked for.
|
@@ -119,7 +119,7 @@ module Puppet
|
|
119
119
|
# The inherited equality is always accepted, so use it if valid.
|
120
120
|
return true if super(current, desired)
|
121
121
|
|
122
|
-
|
122
|
+
date_matches?(checksum_type, current, desired)
|
123
123
|
end
|
124
124
|
|
125
125
|
def retrieve
|
@@ -2,9 +2,9 @@
|
|
2
2
|
|
3
3
|
module Puppet
|
4
4
|
Puppet::Type.type(:file).newproperty(:ctime) do
|
5
|
-
desc %q
|
5
|
+
desc %q(A read-only state to check the file ctime. On most modern \*nix-like
|
6
6
|
systems, this is the time of the most recent change to the owner, group,
|
7
|
-
permissions, or content of the file.
|
7
|
+
permissions, or content of the file.)
|
8
8
|
|
9
9
|
def retrieve
|
10
10
|
current_value = :absent
|
@@ -35,7 +35,7 @@ module Puppet
|
|
35
35
|
return true
|
36
36
|
end
|
37
37
|
|
38
|
-
return true
|
38
|
+
return true unless resource.replace?
|
39
39
|
|
40
40
|
is_insync = yield(is)
|
41
41
|
|
@@ -61,7 +61,7 @@ module Puppet
|
|
61
61
|
|
62
62
|
def date_matches?(checksum_type, current, desired)
|
63
63
|
time_types = [:mtime, :ctime]
|
64
|
-
return false
|
64
|
+
return false unless time_types.include?(checksum_type)
|
65
65
|
return false unless current && desired
|
66
66
|
|
67
67
|
begin
|
@@ -83,7 +83,7 @@ module Puppet
|
|
83
83
|
|
84
84
|
ftype = stat.ftype
|
85
85
|
# Don't even try to manage the content on directories or links
|
86
|
-
return nil if [
|
86
|
+
return nil if %w[directory link fifo socket].include?(ftype)
|
87
87
|
|
88
88
|
begin
|
89
89
|
resource.parameter(:checksum).sum_file(resource[:path])
|
@@ -87,8 +87,8 @@ module Puppet
|
|
87
87
|
"Cannot create #{@resource[:path]}; parent directory #{parent} does not exist"
|
88
88
|
end
|
89
89
|
if mode
|
90
|
-
Puppet::Util.withumask(
|
91
|
-
Dir.mkdir(@resource[:path], symbolic_mode_to_int(mode,
|
90
|
+
Puppet::Util.withumask(0o00) do
|
91
|
+
Dir.mkdir(@resource[:path], symbolic_mode_to_int(mode, 0o755, true))
|
92
92
|
end
|
93
93
|
else
|
94
94
|
Dir.mkdir(@resource[:path])
|
@@ -113,7 +113,10 @@ module Puppet
|
|
113
113
|
|
114
114
|
munge do |value|
|
115
115
|
value = super(value)
|
116
|
-
|
116
|
+
unless value.is_a? Symbol
|
117
|
+
resource[:target] = value
|
118
|
+
value = :link
|
119
|
+
end
|
117
120
|
resource[:links] = :manage if value == :link and resource[:links] != :follow
|
118
121
|
value
|
119
122
|
end
|
@@ -161,33 +164,31 @@ module Puppet
|
|
161
164
|
return true
|
162
165
|
end
|
163
166
|
|
164
|
-
if
|
165
|
-
|
167
|
+
if should == :present
|
168
|
+
!(currentvalue.nil? or currentvalue == :absent)
|
166
169
|
else
|
167
|
-
|
170
|
+
super(currentvalue)
|
168
171
|
end
|
169
172
|
end
|
170
173
|
|
171
174
|
def retrieve
|
172
175
|
stat = @resource.stat
|
173
176
|
if stat
|
174
|
-
|
175
|
-
elsif
|
176
|
-
|
177
|
+
stat.ftype.intern
|
178
|
+
elsif should == :false
|
179
|
+
:false
|
177
180
|
else
|
178
|
-
|
181
|
+
:absent
|
179
182
|
end
|
180
183
|
end
|
181
184
|
|
182
185
|
def sync
|
183
|
-
@resource.remove_existing(
|
184
|
-
if
|
186
|
+
@resource.remove_existing(should)
|
187
|
+
if should == :absent
|
185
188
|
return :file_removed
|
186
189
|
end
|
187
190
|
|
188
|
-
|
189
|
-
|
190
|
-
event
|
191
|
+
super
|
191
192
|
end
|
192
193
|
end
|
193
194
|
end
|
@@ -76,7 +76,7 @@ module Puppet
|
|
76
76
|
EOT
|
77
77
|
|
78
78
|
validate do |value|
|
79
|
-
|
79
|
+
unless value.is_a?(String)
|
80
80
|
raise Puppet::Error, "The file mode specification must be a string, not '#{value.class.name}'"
|
81
81
|
end
|
82
82
|
unless value.nil? or valid_symbolic_mode?(value)
|
@@ -111,9 +111,9 @@ module Puppet
|
|
111
111
|
def dirmask(value)
|
112
112
|
if FileTest.directory?(resource[:path]) and value =~ /^\d+$/ then
|
113
113
|
value = value.to_i(8)
|
114
|
-
value |=
|
115
|
-
value |=
|
116
|
-
value |=
|
114
|
+
value |= 0o100 if value & 0o400 != 0
|
115
|
+
value |= 0o10 if value & 0o40 != 0
|
116
|
+
value |= 0o1 if value & 0o4 != 0
|
117
117
|
value = value.to_s(8)
|
118
118
|
end
|
119
119
|
|
@@ -131,10 +131,10 @@ module Puppet
|
|
131
131
|
end
|
132
132
|
stat = @resource.stat
|
133
133
|
if stat && stat.ftype == "link" && @resource[:links] != :follow
|
134
|
-
|
135
|
-
|
134
|
+
debug _("Not managing symlink mode")
|
135
|
+
true
|
136
136
|
else
|
137
|
-
|
137
|
+
super(currentvalue)
|
138
138
|
end
|
139
139
|
end
|
140
140
|
|
@@ -153,7 +153,7 @@ module Puppet
|
|
153
153
|
# been synced.
|
154
154
|
def retrieve
|
155
155
|
if @resource.stat
|
156
|
-
@should &&= @should.collect { |s|
|
156
|
+
@should &&= @should.collect { |s| dirmask(s) }
|
157
157
|
end
|
158
158
|
|
159
159
|
super
|
@@ -163,7 +163,7 @@ module Puppet
|
|
163
163
|
# don't have access to the calculated "desired" value here, or the
|
164
164
|
# "current" value, only the "should" value we need to retrieve again.
|
165
165
|
def sync
|
166
|
-
current = @resource.stat ? @resource.stat.mode :
|
166
|
+
current = @resource.stat ? @resource.stat.mode : 0o644
|
167
167
|
set(desired_mode_from_current(@should[0], current).to_s(8))
|
168
168
|
end
|
169
169
|
|
@@ -2,8 +2,8 @@
|
|
2
2
|
|
3
3
|
module Puppet
|
4
4
|
Puppet::Type.type(:file).newproperty(:mtime) do
|
5
|
-
desc %q
|
6
|
-
is the time of the most recent change to the content of the file.
|
5
|
+
desc %q(A read-only state to check the file mtime. On \*nix-like systems, this
|
6
|
+
is the time of the most recent change to the content of the file.)
|
7
7
|
|
8
8
|
def retrieve
|
9
9
|
current_value = :absent
|