puppet 8.5.1-x86-mingw32 → 8.6.0-x86-mingw32
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/Gemfile.lock +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
@@ -15,9 +15,9 @@ class Puppet::SyntaxCheckers::PP < Puppet::Plugins::SyntaxCheckers::SyntaxChecke
|
|
15
15
|
# @api public
|
16
16
|
#
|
17
17
|
def check(text, syntax, acceptor, source_pos)
|
18
|
-
raise ArgumentError
|
19
|
-
raise ArgumentError
|
20
|
-
raise ArgumentError
|
18
|
+
raise ArgumentError, _("PP syntax checker: the text to check must be a String.") unless text.is_a?(String)
|
19
|
+
raise ArgumentError, _("PP syntax checker: the syntax identifier must be a String, e.g. pp") unless syntax == 'pp'
|
20
|
+
raise ArgumentError, _("PP syntax checker: invalid Acceptor, got: '%{klass}'.") % { klass: acceptor.class.name } unless acceptor.is_a?(Puppet::Pops::Validation::Acceptor)
|
21
21
|
|
22
22
|
begin
|
23
23
|
Puppet::Pops::Parser::EvaluatingParser.singleton.parse_string(text)
|
@@ -191,7 +191,7 @@ class Puppet::Transaction::AdditionalResourceGenerator
|
|
191
191
|
parent_contains || child_contains
|
192
192
|
}
|
193
193
|
|
194
|
-
|
194
|
+
unless edge_exists
|
195
195
|
# We *cannot* use target.to_resource here!
|
196
196
|
#
|
197
197
|
# For reasons that are beyond my (and, perhaps, human)
|
@@ -16,10 +16,10 @@ class Puppet::Transaction::Event
|
|
16
16
|
attr_accessor :time
|
17
17
|
attr_reader :default_log_level
|
18
18
|
|
19
|
-
EVENT_STATUSES = %w
|
19
|
+
EVENT_STATUSES = %w[noop success failure audit]
|
20
20
|
|
21
21
|
def self.from_data_hash(data)
|
22
|
-
obj =
|
22
|
+
obj = allocate
|
23
23
|
obj.initialize_from_hash(data)
|
24
24
|
obj
|
25
25
|
end
|
@@ -79,7 +79,7 @@ class Puppet::Transaction::EventManager
|
|
79
79
|
queue_events_for_resource(resource, resource, :refresh, [event]) if resource.self_refresh? and !resource.deleting?
|
80
80
|
end
|
81
81
|
|
82
|
-
dequeue_events_for_resource(resource, :refresh) if events.detect
|
82
|
+
dequeue_events_for_resource(resource, :refresh) if events.detect(&:invalidate_refreshes)
|
83
83
|
end
|
84
84
|
|
85
85
|
def dequeue_all_events_for_resource(target)
|
@@ -142,27 +142,27 @@ class Puppet::Transaction::EventManager
|
|
142
142
|
# associated with this callback and resource.
|
143
143
|
# @return [true, false] Whether the callback was successfully run.
|
144
144
|
def process_callback(resource, callback, events)
|
145
|
-
|
145
|
+
unless process_callback?(resource, events)
|
146
146
|
process_noop_events(resource, callback, events)
|
147
147
|
return false
|
148
148
|
end
|
149
149
|
|
150
150
|
resource.send(callback)
|
151
151
|
|
152
|
-
|
152
|
+
unless resource.is_a?(Puppet::Type.type(:whit))
|
153
153
|
message = n_("Triggered '%{callback}' from %{count} event", "Triggered '%{callback}' from %{count} events", events.length) % { count: events.length, callback: callback }
|
154
154
|
resource.notice message
|
155
155
|
add_callback_status_event(resource, callback, message, "success")
|
156
156
|
end
|
157
157
|
|
158
|
-
|
158
|
+
true
|
159
159
|
rescue => detail
|
160
160
|
resource_error_message = _("Failed to call %{callback}: %{detail}") % { callback: callback, detail: detail }
|
161
161
|
resource.err(resource_error_message)
|
162
162
|
transaction.resource_status(resource).failed_to_restart = true
|
163
163
|
transaction.resource_status(resource).fail_with_event(resource_error_message)
|
164
164
|
resource.log_exception(detail)
|
165
|
-
|
165
|
+
false
|
166
166
|
end
|
167
167
|
|
168
168
|
def add_callback_status_event(resource, callback, message, status)
|
@@ -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
|