puppet 8.5.1-universal-darwin → 8.7.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 +6 -2
- data/Gemfile.lock +55 -48
- data/Rakefile +45 -22
- data/examples/hiera/README.md +68 -57
- data/examples/hiera/data/common.yaml +12 -0
- data/examples/hiera/data/dc1.yaml +6 -0
- data/examples/hiera/hiera.yaml +15 -0
- data/examples/hiera/modules/ntp/data/common.yaml +4 -0
- data/examples/hiera/modules/ntp/hiera.yaml +9 -0
- data/examples/hiera/modules/ntp/manifests/config.pp +16 -4
- data/examples/hiera/modules/ntp/templates/ntp.conf.epp +3 -0
- data/examples/hiera/modules/users/manifests/common.pp +7 -2
- data/examples/hiera/modules/users/manifests/dc1.pp +7 -2
- data/examples/hiera/site.pp +1 -1
- data/ext/project_data.yaml +0 -45
- 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 +4 -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 +5 -5
- 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/module_data_provider.rb +9 -9
- 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/aix_object.rb +1 -1
- 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 +32 -11
- 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/xbps.rb +127 -0
- 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/scheduler/splay_job.rb +9 -0
- 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 +51 -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 +60 -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 +18 -19
- 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/com.rb +2 -2
- 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/locales/puppet.pot +604 -600
- 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 +23 -27
- data/examples/hiera/etc/hiera.yaml +0 -15
- data/examples/hiera/etc/hieradb/common.yaml +0 -3
- data/examples/hiera/etc/hieradb/dc1.yaml +0 -6
- data/examples/hiera/etc/hieradb/development.yaml +0 -2
- data/examples/hiera/etc/puppet.conf +0 -3
- data/examples/hiera/modules/data/manifests/common.pp +0 -4
- data/examples/hiera/modules/ntp/manifests/data.pp +0 -4
- data/examples/hiera/modules/ntp/templates/ntp.conf.erb +0 -3
- data/examples/hiera/modules/users/manifests/development.pp +0 -4
- data/tasks/benchmark.rake +0 -180
- data/tasks/cfpropertylist.rake +0 -15
- data/tasks/ci.rake +0 -24
- data/tasks/generate_ast_model.rake +0 -90
- data/tasks/generate_cert_fixtures.rake +0 -199
- data/tasks/manpages.rake +0 -67
- data/tasks/memwalk.rake +0 -195
- data/tasks/parallel.rake +0 -410
- data/tasks/parser.rake +0 -22
- data/tasks/yard.rake +0 -59
@@ -7,10 +7,7 @@ require_relative '../../puppet/util/platform'
|
|
7
7
|
# core Puppet code to load correctly in JRuby environments that do not
|
8
8
|
# have a functioning openssl (eg a FIPS enabled one).
|
9
9
|
|
10
|
-
|
11
|
-
require 'openssl'
|
12
|
-
require 'net/https'
|
13
|
-
else
|
10
|
+
if Puppet::Util::Platform.jruby_fips?
|
14
11
|
# Even in JRuby we need to define the constants that are wrapped in
|
15
12
|
# Indirections: Puppet::SSL::{Key, Certificate, CertificateRequest}
|
16
13
|
module OpenSSL
|
@@ -23,4 +20,7 @@ else
|
|
23
20
|
class Certificate; end
|
24
21
|
end
|
25
22
|
end
|
23
|
+
else
|
24
|
+
require 'openssl'
|
25
|
+
require 'net/https'
|
26
26
|
end
|
@@ -16,9 +16,9 @@ class Puppet::SyntaxCheckers::Base64 < Puppet::Plugins::SyntaxCheckers::SyntaxCh
|
|
16
16
|
# @api public
|
17
17
|
#
|
18
18
|
def check(text, syntax, acceptor, source_pos)
|
19
|
-
raise ArgumentError
|
20
|
-
raise ArgumentError
|
21
|
-
raise ArgumentError
|
19
|
+
raise ArgumentError, _("Base64 syntax checker: the text to check must be a String.") unless text.is_a?(String)
|
20
|
+
raise ArgumentError, _("Base64 syntax checker: the syntax identifier must be a String, e.g. json, data+json") unless syntax.is_a?(String)
|
21
|
+
raise ArgumentError, _("Base64 syntax checker: invalid Acceptor, got: '%{klass}'.") % { klass: acceptor.class.name } unless acceptor.is_a?(Puppet::Pops::Validation::Acceptor)
|
22
22
|
|
23
23
|
cleaned_text = text.gsub(/[\r?\n[:blank:]]/, '')
|
24
24
|
begin
|
@@ -15,9 +15,9 @@ class Puppet::SyntaxCheckers::EPP < Puppet::Plugins::SyntaxCheckers::SyntaxCheck
|
|
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, _("EPP syntax checker: the text to check must be a String.") unless text.is_a?(String)
|
19
|
+
raise ArgumentError, _("EPP syntax checker: the syntax identifier must be a String, e.g. pp") unless syntax == 'epp'
|
20
|
+
raise ArgumentError, _("EPP 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::EvaluatingEppParser.singleton.parse_string(text)
|
@@ -15,9 +15,9 @@ class Puppet::SyntaxCheckers::Json < Puppet::Plugins::SyntaxCheckers::SyntaxChec
|
|
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, _("Json syntax checker: the text to check must be a String.") unless text.is_a?(String)
|
19
|
+
raise ArgumentError, _("Json syntax checker: the syntax identifier must be a String, e.g. json, data+json") unless syntax.is_a?(String)
|
20
|
+
raise ArgumentError, _("Json 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::Util::Json.load(text)
|
@@ -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
|
|
@@ -438,6 +436,14 @@ module Puppet
|
|
438
436
|
back by re-extracting the tarball. If `important.tar` does **not**
|
439
437
|
actually contain `myfile`, the exec will keep running every time
|
440
438
|
Puppet runs.
|
439
|
+
|
440
|
+
This parameter can also take an array of files and the command will
|
441
|
+
not run if **any** of these files exist. For example:
|
442
|
+
|
443
|
+
creates => ['/tmp/file1', '/tmp/file2'],
|
444
|
+
|
445
|
+
will only run the command if both files don't exist.
|
446
|
+
|
441
447
|
EOT
|
442
448
|
|
443
449
|
accept_arrays
|
@@ -503,10 +509,10 @@ module Puppet
|
|
503
509
|
end
|
504
510
|
|
505
511
|
if sensitive
|
506
|
-
|
512
|
+
debug("[output redacted]")
|
507
513
|
else
|
508
514
|
output.split(/\n/).each { |line|
|
509
|
-
|
515
|
+
debug(line)
|
510
516
|
}
|
511
517
|
end
|
512
518
|
|
@@ -566,10 +572,10 @@ module Puppet
|
|
566
572
|
end
|
567
573
|
|
568
574
|
if sensitive
|
569
|
-
|
575
|
+
debug("[output redacted]")
|
570
576
|
else
|
571
577
|
output.split(/\n/).each { |line|
|
572
|
-
|
578
|
+
debug(line)
|
573
579
|
}
|
574
580
|
end
|
575
581
|
|
@@ -596,7 +602,7 @@ module Puppet
|
|
596
602
|
cmd = cmd[0] if cmd.is_a? Array
|
597
603
|
|
598
604
|
if cmd.is_a?(Puppet::Pops::Evaluator::DeferredValue)
|
599
|
-
|
605
|
+
debug("The 'command' parameter is deferred and cannot be autorequired")
|
600
606
|
else
|
601
607
|
cmd.scan(file_regex) { |str|
|
602
608
|
reqs << str
|
@@ -621,7 +627,7 @@ module Puppet
|
|
621
627
|
# to do.
|
622
628
|
line = line[0] if line.is_a? Array
|
623
629
|
if line.is_a?(Puppet::Pops::Evaluator::DeferredValue)
|
624
|
-
|
630
|
+
debug("The '#{param}' parameter is deferred and cannot be autorequired")
|
625
631
|
else
|
626
632
|
reqs += line.scan(file_regex)
|
627
633
|
end
|
@@ -653,20 +659,20 @@ module Puppet
|
|
653
659
|
self.class.checks.each { |check|
|
654
660
|
next if refreshing and check == :refreshonly
|
655
661
|
|
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
|
662
|
+
next unless @parameters.include?(check)
|
664
663
|
|
665
|
-
|
664
|
+
val = @parameters[check].value
|
665
|
+
val = [val] unless val.is_a? Array
|
666
|
+
val.each do |value|
|
667
|
+
next if @parameters[check].check(value)
|
666
668
|
|
667
|
-
|
668
|
-
|
669
|
-
|
669
|
+
# Give a debug message so users can figure out what command would have been
|
670
|
+
# but don't print sensitive commands or parameters in the clear
|
671
|
+
cmdstring = @parameters[:command].sensitive ? "[command redacted]" : @parameters[:command].value
|
672
|
+
|
673
|
+
debug(_("'%{cmd}' won't be executed because of failed check '%{check}'") % { cmd: cmdstring, check: check })
|
674
|
+
|
675
|
+
return false
|
670
676
|
end
|
671
677
|
}
|
672
678
|
|
@@ -674,21 +680,21 @@ module Puppet
|
|
674
680
|
end
|
675
681
|
|
676
682
|
def output
|
677
|
-
if
|
678
|
-
|
683
|
+
if property(:returns).nil?
|
684
|
+
nil
|
679
685
|
else
|
680
|
-
|
686
|
+
property(:returns).output
|
681
687
|
end
|
682
688
|
end
|
683
689
|
|
684
690
|
# Run the command, or optionally run a separately-specified command.
|
685
691
|
def refresh
|
686
|
-
if
|
692
|
+
if check_all_attributes(true)
|
687
693
|
cmd = self[:refresh]
|
688
694
|
if cmd
|
689
695
|
provider.run(cmd)
|
690
696
|
else
|
691
|
-
|
697
|
+
property(:returns).sync
|
692
698
|
end
|
693
699
|
end
|
694
700
|
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
|