puppet 8.5.0-universal-darwin → 8.6.0-universal-darwin
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/Gemfile.lock +29 -26
- data/ext/windows/service/daemon.rb +49 -55
- data/lib/hiera/scope.rb +3 -3
- data/lib/hiera_puppet.rb +1 -1
- data/lib/puppet/agent/disabler.rb +1 -1
- data/lib/puppet/application/agent.rb +2 -2
- data/lib/puppet/application/apply.rb +2 -2
- data/lib/puppet/application/describe.rb +6 -6
- data/lib/puppet/application/device.rb +99 -100
- data/lib/puppet/application/doc.rb +1 -1
- data/lib/puppet/application/face_base.rb +7 -7
- data/lib/puppet/application/filebucket.rb +1 -1
- data/lib/puppet/application/lookup.rb +5 -5
- data/lib/puppet/application/resource.rb +10 -3
- data/lib/puppet/application/ssl.rb +3 -3
- data/lib/puppet/application.rb +16 -18
- data/lib/puppet/coercion.rb +1 -1
- data/lib/puppet/configurer/downloader.rb +9 -4
- data/lib/puppet/configurer/fact_handler.rb +12 -13
- data/lib/puppet/configurer.rb +16 -18
- data/lib/puppet/confine/feature.rb +1 -1
- data/lib/puppet/confine/variable.rb +1 -1
- data/lib/puppet/confine.rb +2 -2
- data/lib/puppet/confine_collection.rb +1 -1
- data/lib/puppet/confiner.rb +2 -2
- data/lib/puppet/daemon.rb +3 -3
- data/lib/puppet/datatypes.rb +5 -6
- data/lib/puppet/defaults.rb +14 -8
- data/lib/puppet/environments.rb +3 -7
- data/lib/puppet/error.rb +3 -3
- data/lib/puppet/external/dot.rb +42 -34
- data/lib/puppet/face/catalog/select.rb +1 -1
- data/lib/puppet/face/epp.rb +7 -9
- data/lib/puppet/face/help.rb +12 -12
- data/lib/puppet/face/module/changes.rb +1 -3
- data/lib/puppet/face/module/list.rb +37 -37
- data/lib/puppet/face/node/clean.rb +1 -1
- data/lib/puppet/face/parser.rb +6 -8
- data/lib/puppet/face/report.rb +5 -7
- data/lib/puppet/facter_impl.rb +1 -1
- data/lib/puppet/feature/base.rb +9 -11
- data/lib/puppet/feature/pe_license.rb +1 -1
- data/lib/puppet/feature/ssh.rb +1 -1
- data/lib/puppet/feature/telnet.rb +3 -5
- data/lib/puppet/feature/zlib.rb +1 -1
- data/lib/puppet/ffi/windows/constants.rb +1 -1
- data/lib/puppet/ffi/windows/functions.rb +2 -2
- data/lib/puppet/ffi/windows/structs.rb +3 -3
- data/lib/puppet/file_bucket/dipper.rb +4 -4
- data/lib/puppet/file_bucket/file.rb +4 -4
- data/lib/puppet/file_serving/base.rb +5 -5
- data/lib/puppet/file_serving/configuration/parser.rb +9 -9
- data/lib/puppet/file_serving/configuration.rb +3 -3
- data/lib/puppet/file_serving/fileset.rb +13 -13
- data/lib/puppet/file_serving/http_metadata.rb +1 -1
- data/lib/puppet/file_serving/metadata.rb +13 -9
- data/lib/puppet/file_serving/mount/file.rb +6 -6
- data/lib/puppet/file_serving/mount/locales.rb +2 -4
- data/lib/puppet/file_serving/mount/pluginfacts.rb +2 -4
- data/lib/puppet/file_serving/mount/plugins.rb +2 -4
- data/lib/puppet/file_serving/mount.rb +1 -1
- data/lib/puppet/file_system/file_impl.rb +3 -3
- data/lib/puppet/file_system/memory_impl.rb +1 -1
- data/lib/puppet/file_system/path_pattern.rb +1 -1
- data/lib/puppet/file_system/uniquefile.rb +17 -16
- data/lib/puppet/file_system/windows.rb +26 -18
- data/lib/puppet/forge/cache.rb +2 -2
- data/lib/puppet/forge/errors.rb +1 -1
- data/lib/puppet/forge/repository.rb +2 -2
- data/lib/puppet/forge.rb +13 -19
- data/lib/puppet/functions/abs.rb +2 -2
- data/lib/puppet/functions/camelcase.rb +1 -1
- data/lib/puppet/functions/compare.rb +2 -2
- data/lib/puppet/functions/contain.rb +1 -1
- data/lib/puppet/functions/defined.rb +2 -2
- data/lib/puppet/functions/dig.rb +1 -1
- data/lib/puppet/functions/eyaml_lookup_key.rb +11 -13
- data/lib/puppet/functions/get.rb +1 -1
- data/lib/puppet/functions/hocon_data.rb +3 -5
- data/lib/puppet/functions/import.rb +1 -1
- data/lib/puppet/functions/json_data.rb +4 -6
- data/lib/puppet/functions/max.rb +2 -2
- data/lib/puppet/functions/min.rb +2 -2
- data/lib/puppet/functions/new.rb +1 -1
- data/lib/puppet/functions/reduce.rb +6 -10
- data/lib/puppet/functions/regsubst.rb +2 -2
- data/lib/puppet/functions/require.rb +1 -1
- data/lib/puppet/functions/yaml_data.rb +11 -13
- data/lib/puppet/functions.rb +32 -37
- data/lib/puppet/generate/type.rb +2 -2
- data/lib/puppet/gettext/config.rb +9 -9
- data/lib/puppet/graph/rb_tree_map.rb +31 -23
- data/lib/puppet/graph/relationship_graph.rb +12 -12
- data/lib/puppet/graph/simple_graph.rb +8 -10
- data/lib/puppet/http/client.rb +1 -1
- data/lib/puppet/http/dns.rb +4 -4
- data/lib/puppet/http/external_client.rb +1 -1
- data/lib/puppet/http/factory.rb +1 -1
- data/lib/puppet/http/proxy.rb +15 -15
- data/lib/puppet/http/redirector.rb +6 -2
- data/lib/puppet/http/resolver.rb +2 -2
- data/lib/puppet/http/retry_after_handler.rb +2 -2
- data/lib/puppet/http/service/ca.rb +1 -1
- data/lib/puppet/http/service/compiler.rb +4 -4
- data/lib/puppet/http/service/file_server.rb +1 -1
- data/lib/puppet/http/service/report.rb +2 -2
- data/lib/puppet/http/service.rb +9 -13
- data/lib/puppet/http/session.rb +1 -1
- data/lib/puppet/http/site.rb +1 -1
- data/lib/puppet/indirector/catalog/compiler.rb +44 -45
- data/lib/puppet/indirector/catalog/rest.rb +7 -5
- data/lib/puppet/indirector/catalog/store_configs.rb +1 -1
- data/lib/puppet/indirector/exec.rb +2 -2
- data/lib/puppet/indirector/face.rb +7 -9
- data/lib/puppet/indirector/fact_search.rb +1 -1
- data/lib/puppet/indirector/facts/facter.rb +6 -6
- data/lib/puppet/indirector/facts/json.rb +1 -1
- data/lib/puppet/indirector/facts/store_configs.rb +1 -1
- data/lib/puppet/indirector/file_bucket_file/file.rb +17 -17
- data/lib/puppet/indirector/file_bucket_file/rest.rb +3 -3
- data/lib/puppet/indirector/file_content/rest.rb +1 -1
- data/lib/puppet/indirector/file_metadata/rest.rb +1 -1
- data/lib/puppet/indirector/hiera.rb +1 -1
- data/lib/puppet/indirector/indirection.rb +27 -29
- data/lib/puppet/indirector/json.rb +4 -4
- data/lib/puppet/indirector/memory.rb +2 -2
- data/lib/puppet/indirector/msgpack.rb +5 -5
- data/lib/puppet/indirector/node/store_configs.rb +1 -1
- data/lib/puppet/indirector/none.rb +1 -1
- data/lib/puppet/indirector/report/json.rb +1 -1
- data/lib/puppet/indirector/report/yaml.rb +1 -1
- data/lib/puppet/indirector/request.rb +4 -4
- data/lib/puppet/indirector/resource/ral.rb +2 -4
- data/lib/puppet/indirector/resource/store_configs.rb +1 -1
- data/lib/puppet/indirector/terminus.rb +4 -4
- data/lib/puppet/indirector/yaml.rb +3 -3
- data/lib/puppet/info_service/class_information_service.rb +5 -8
- data/lib/puppet/info_service/task_information_service.rb +6 -7
- data/lib/puppet/interface/action.rb +5 -5
- data/lib/puppet/interface/action_manager.rb +5 -5
- data/lib/puppet/interface/documentation.rb +5 -5
- data/lib/puppet/interface/face_collection.rb +7 -7
- data/lib/puppet/interface/option.rb +2 -2
- data/lib/puppet/interface/option_manager.rb +6 -6
- data/lib/puppet/interface.rb +4 -4
- data/lib/puppet/metatype/manager.rb +2 -2
- data/lib/puppet/module/plan.rb +10 -10
- data/lib/puppet/module/task.rb +8 -8
- data/lib/puppet/module.rb +39 -41
- data/lib/puppet/module_tool/applications/application.rb +10 -8
- data/lib/puppet/module_tool/applications/installer.rb +53 -50
- data/lib/puppet/module_tool/applications/unpacker.rb +6 -8
- data/lib/puppet/module_tool/applications/upgrader.rb +37 -34
- data/lib/puppet/module_tool/checksums.rb +2 -2
- data/lib/puppet/module_tool/dependency.rb +1 -1
- data/lib/puppet/module_tool/errors/base.rb +1 -1
- data/lib/puppet/module_tool/install_directory.rb +1 -1
- data/lib/puppet/module_tool/local_tarball.rb +3 -5
- data/lib/puppet/module_tool/metadata.rb +12 -8
- data/lib/puppet/module_tool/shared_behaviors.rb +27 -12
- data/lib/puppet/module_tool/tar/mini.rb +3 -3
- data/lib/puppet/module_tool.rb +4 -4
- data/lib/puppet/network/client_request.rb +5 -3
- data/lib/puppet/network/format.rb +2 -2
- data/lib/puppet/network/format_support.rb +1 -1
- data/lib/puppet/network/formats.rb +1 -1
- data/lib/puppet/network/http/api/indirected_routes.rb +24 -44
- data/lib/puppet/network/http/api/server/v3.rb +1 -1
- data/lib/puppet/network/http/connection.rb +1 -1
- data/lib/puppet/network/http/handler.rb +8 -12
- data/lib/puppet/network/http/request.rb +1 -1
- data/lib/puppet/network/http/route.rb +9 -9
- data/lib/puppet/node/environment.rb +21 -23
- data/lib/puppet/node/facts.rb +1 -1
- data/lib/puppet/node.rb +5 -5
- data/lib/puppet/pal/json_catalog_encoder.rb +1 -1
- data/lib/puppet/pal/pal_impl.rb +48 -50
- data/lib/puppet/pal/plan_signature.rb +1 -1
- data/lib/puppet/pal/task_signature.rb +1 -1
- data/lib/puppet/parameter/package_options.rb +1 -1
- data/lib/puppet/parameter/value.rb +2 -2
- data/lib/puppet/parameter/value_collection.rb +7 -7
- data/lib/puppet/parameter.rb +8 -9
- data/lib/puppet/parser/ast/block_expression.rb +2 -2
- data/lib/puppet/parser/ast/hostclass.rb +1 -1
- data/lib/puppet/parser/ast/pops_bridge.rb +3 -4
- data/lib/puppet/parser/ast/resource.rb +4 -4
- data/lib/puppet/parser/ast/resourceparam.rb +4 -4
- data/lib/puppet/parser/ast.rb +14 -15
- data/lib/puppet/parser/compiler.rb +26 -28
- data/lib/puppet/parser/functions/create_resources.rb +3 -3
- data/lib/puppet/parser/functions/fail.rb +1 -1
- data/lib/puppet/parser/functions/generate.rb +2 -2
- data/lib/puppet/parser/functions/tag.rb +1 -1
- data/lib/puppet/parser/functions.rb +2 -2
- data/lib/puppet/parser/relationship.rb +3 -1
- data/lib/puppet/parser/resource/param.rb +2 -2
- data/lib/puppet/parser/resource.rb +23 -23
- data/lib/puppet/parser/scope.rb +10 -10
- data/lib/puppet/parser/script_compiler.rb +1 -1
- data/lib/puppet/parser/templatewrapper.rb +1 -1
- data/lib/puppet/parser/type_loader.rb +10 -12
- data/lib/puppet/parser.rb +1 -1
- data/lib/puppet/pops/adaptable.rb +1 -1
- data/lib/puppet/pops/evaluator/access_operator.rb +8 -8
- data/lib/puppet/pops/evaluator/callable_signature.rb +4 -4
- data/lib/puppet/pops/evaluator/collector_transformer.rb +4 -4
- data/lib/puppet/pops/evaluator/collectors/abstract_collector.rb +7 -7
- data/lib/puppet/pops/evaluator/collectors/fixed_set_collector.rb +6 -6
- data/lib/puppet/pops/evaluator/compare_operator.rb +10 -10
- data/lib/puppet/pops/evaluator/deferred_resolver.rb +1 -1
- data/lib/puppet/pops/evaluator/epp_evaluator.rb +2 -2
- data/lib/puppet/pops/evaluator/evaluator_impl.rb +56 -60
- data/lib/puppet/pops/evaluator/literal_evaluator.rb +4 -0
- data/lib/puppet/pops/evaluator/relationship_operator.rb +2 -2
- data/lib/puppet/pops/evaluator/runtime3_converter.rb +3 -3
- data/lib/puppet/pops/evaluator/runtime3_support.rb +1 -1
- data/lib/puppet/pops/functions/dispatcher.rb +3 -3
- data/lib/puppet/pops/functions/function.rb +14 -16
- data/lib/puppet/pops/issue_reporter.rb +2 -2
- data/lib/puppet/pops/label_provider.rb +2 -2
- data/lib/puppet/pops/loader/dependency_loader.rb +3 -3
- data/lib/puppet/pops/loader/loader.rb +4 -4
- data/lib/puppet/pops/loader/loader_paths.rb +3 -3
- data/lib/puppet/pops/loader/module_loaders.rb +11 -11
- data/lib/puppet/pops/loader/ruby_data_type_instantiator.rb +1 -1
- data/lib/puppet/pops/loader/ruby_function_instantiator.rb +1 -1
- data/lib/puppet/pops/loader/ruby_legacy_function_instantiator.rb +5 -1
- data/lib/puppet/pops/loader/static_loader.rb +3 -3
- data/lib/puppet/pops/loaders.rb +3 -3
- data/lib/puppet/pops/lookup/data_dig_function_provider.rb +1 -1
- data/lib/puppet/pops/lookup/explainer.rb +2 -2
- data/lib/puppet/pops/lookup/global_data_provider.rb +1 -1
- data/lib/puppet/pops/lookup/hiera_config.rb +15 -11
- data/lib/puppet/pops/lookup/interpolation.rb +3 -3
- data/lib/puppet/pops/lookup/key_recorder.rb +1 -1
- data/lib/puppet/pops/lookup/location_resolver.rb +1 -1
- data/lib/puppet/pops/lookup/lookup_adapter.rb +7 -7
- data/lib/puppet/pops/lookup/sub_lookup.rb +1 -1
- data/lib/puppet/pops/merge_strategy.rb +6 -6
- data/lib/puppet/pops/migration/migration_checker.rb +1 -1
- data/lib/puppet/pops/model/ast_transformer.rb +9 -11
- data/lib/puppet/pops/model/factory.rb +4 -5
- data/lib/puppet/pops/parser/epp_parser.rb +2 -2
- data/lib/puppet/pops/parser/epp_support.rb +1 -1
- data/lib/puppet/pops/parser/evaluating_parser.rb +2 -2
- data/lib/puppet/pops/parser/heredoc_support.rb +4 -4
- data/lib/puppet/pops/parser/interpolation_support.rb +3 -3
- data/lib/puppet/pops/parser/lexer2.rb +20 -12
- data/lib/puppet/pops/parser/lexer_support.rb +1 -1
- data/lib/puppet/pops/parser/locator.rb +4 -4
- data/lib/puppet/pops/parser/parser_support.rb +12 -14
- data/lib/puppet/pops/parser/pn_parser.rb +3 -3
- data/lib/puppet/pops/parser/slurp_support.rb +8 -8
- data/lib/puppet/pops/patterns.rb +12 -12
- data/lib/puppet/pops/pcore.rb +1 -1
- data/lib/puppet/pops/pn.rb +2 -2
- data/lib/puppet/pops/puppet_stack.rb +1 -1
- data/lib/puppet/pops/resource/resource_type_impl.rb +1 -1
- data/lib/puppet/pops/serialization/abstract_reader.rb +2 -2
- data/lib/puppet/pops/serialization/abstract_writer.rb +3 -3
- data/lib/puppet/pops/time/timestamp.rb +1 -1
- data/lib/puppet/pops/types/class_loader.rb +4 -6
- data/lib/puppet/pops/types/iterable.rb +1 -1
- data/lib/puppet/pops/types/p_binary_type.rb +1 -1
- data/lib/puppet/pops/types/p_init_type.rb +1 -1
- data/lib/puppet/pops/types/p_object_type.rb +5 -5
- data/lib/puppet/pops/types/p_object_type_extension.rb +4 -6
- data/lib/puppet/pops/types/p_sem_ver_range_type.rb +1 -1
- data/lib/puppet/pops/types/p_sensitive_type.rb +1 -1
- data/lib/puppet/pops/types/p_timespan_type.rb +2 -2
- data/lib/puppet/pops/types/p_type_set_type.rb +10 -10
- data/lib/puppet/pops/types/p_uri_type.rb +4 -4
- data/lib/puppet/pops/types/recursion_guard.rb +4 -4
- data/lib/puppet/pops/types/ruby_generator.rb +2 -2
- data/lib/puppet/pops/types/string_converter.rb +12 -8
- data/lib/puppet/pops/types/tree_iterators.rb +4 -6
- data/lib/puppet/pops/types/type_calculator.rb +10 -10
- data/lib/puppet/pops/types/type_factory.rb +7 -3
- data/lib/puppet/pops/types/type_formatter.rb +22 -24
- data/lib/puppet/pops/types/type_mismatch_describer.rb +24 -24
- data/lib/puppet/pops/types/types.rb +28 -24
- data/lib/puppet/pops/utils.rb +38 -42
- data/lib/puppet/pops/validation/checker4_0.rb +10 -10
- data/lib/puppet/pops/validation/tasks_checker.rb +1 -1
- data/lib/puppet/pops/validation/validator_factory_4_0.rb +2 -0
- data/lib/puppet/pops/validation.rb +4 -4
- data/lib/puppet/pops/visitor.rb +2 -2
- data/lib/puppet/property/ensure.rb +12 -14
- data/lib/puppet/property/keyvalue.rb +4 -4
- data/lib/puppet/property/list.rb +4 -4
- data/lib/puppet/property/ordered_list.rb +1 -1
- data/lib/puppet/property.rb +31 -33
- data/lib/puppet/provider/exec.rb +2 -2
- data/lib/puppet/provider/file/posix.rb +19 -17
- data/lib/puppet/provider/file/windows.rb +13 -19
- data/lib/puppet/provider/group/directoryservice.rb +3 -2
- data/lib/puppet/provider/group/groupadd.rb +4 -4
- data/lib/puppet/provider/group/windows_adsi.rb +2 -2
- data/lib/puppet/provider/nameservice/directoryservice.rb +29 -29
- data/lib/puppet/provider/nameservice/objectadd.rb +2 -4
- data/lib/puppet/provider/nameservice/pw.rb +1 -2
- data/lib/puppet/provider/nameservice.rb +8 -8
- data/lib/puppet/provider/package/aix.rb +19 -19
- data/lib/puppet/provider/package/appdmg.rb +2 -2
- data/lib/puppet/provider/package/apple.rb +1 -1
- data/lib/puppet/provider/package/apt.rb +18 -18
- data/lib/puppet/provider/package/aptitude.rb +1 -3
- data/lib/puppet/provider/package/aptrpm.rb +9 -9
- data/lib/puppet/provider/package/blastwave.rb +10 -14
- data/lib/puppet/provider/package/dnfmodule.rb +3 -3
- data/lib/puppet/provider/package/dpkg.rb +11 -13
- data/lib/puppet/provider/package/fink.rb +14 -14
- data/lib/puppet/provider/package/freebsd.rb +1 -1
- data/lib/puppet/provider/package/gem.rb +12 -14
- data/lib/puppet/provider/package/macports.rb +2 -2
- data/lib/puppet/provider/package/nim.rb +10 -10
- data/lib/puppet/provider/package/openbsd.rb +22 -22
- data/lib/puppet/provider/package/opkg.rb +6 -6
- data/lib/puppet/provider/package/pacman.rb +35 -29
- data/lib/puppet/provider/package/pip.rb +25 -24
- data/lib/puppet/provider/package/pkg.rb +15 -15
- data/lib/puppet/provider/package/pkgdmg.rb +10 -10
- data/lib/puppet/provider/package/pkgin.rb +2 -2
- data/lib/puppet/provider/package/pkgng.rb +5 -5
- data/lib/puppet/provider/package/pkgutil.rb +17 -21
- data/lib/puppet/provider/package/portage.rb +59 -61
- data/lib/puppet/provider/package/ports.rb +12 -11
- data/lib/puppet/provider/package/portupgrade.rb +35 -35
- data/lib/puppet/provider/package/puppetserver_gem.rb +10 -9
- data/lib/puppet/provider/package/rpm.rb +26 -26
- data/lib/puppet/provider/package/rug.rb +7 -9
- data/lib/puppet/provider/package/sun.rb +4 -4
- data/lib/puppet/provider/package/up2date.rb +5 -7
- data/lib/puppet/provider/package/urpmi.rb +6 -6
- data/lib/puppet/provider/package/windows/exe_package.rb +7 -7
- data/lib/puppet/provider/package/windows/msi_package.rb +3 -3
- data/lib/puppet/provider/package/windows/package.rb +2 -2
- data/lib/puppet/provider/package/windows.rb +3 -5
- data/lib/puppet/provider/package/yum.rb +33 -37
- data/lib/puppet/provider/package/zypper.rb +12 -14
- data/lib/puppet/provider/package.rb +1 -1
- data/lib/puppet/provider/package_targetable.rb +1 -1
- data/lib/puppet/provider/parsedfile.rb +9 -9
- data/lib/puppet/provider/service/base.rb +16 -21
- data/lib/puppet/provider/service/bsd.rb +4 -4
- data/lib/puppet/provider/service/daemontools.rb +31 -31
- data/lib/puppet/provider/service/debian.rb +6 -6
- data/lib/puppet/provider/service/freebsd.rb +36 -36
- data/lib/puppet/provider/service/gentoo.rb +6 -6
- data/lib/puppet/provider/service/init.rb +19 -19
- data/lib/puppet/provider/service/launchd.rb +22 -22
- data/lib/puppet/provider/service/openbsd.rb +10 -10
- data/lib/puppet/provider/service/openrc.rb +1 -1
- data/lib/puppet/provider/service/openwrt.rb +3 -3
- data/lib/puppet/provider/service/rcng.rb +3 -3
- data/lib/puppet/provider/service/redhat.rb +4 -4
- data/lib/puppet/provider/service/runit.rb +6 -6
- data/lib/puppet/provider/service/service.rb +5 -7
- data/lib/puppet/provider/service/smf.rb +28 -27
- data/lib/puppet/provider/service/src.rb +7 -7
- data/lib/puppet/provider/service/systemd.rb +31 -37
- data/lib/puppet/provider/service/upstart.rb +17 -17
- data/lib/puppet/provider/service/windows.rb +7 -7
- data/lib/puppet/provider/user/aix.rb +4 -2
- data/lib/puppet/provider/user/directoryservice.rb +34 -36
- data/lib/puppet/provider/user/hpux.rb +10 -14
- data/lib/puppet/provider/user/pw.rb +1 -1
- data/lib/puppet/provider/user/user_role_add.rb +16 -18
- data/lib/puppet/provider/user/useradd.rb +7 -7
- data/lib/puppet/provider/user/windows_adsi.rb +1 -1
- data/lib/puppet/provider.rb +8 -8
- data/lib/puppet/reference/indirection.rb +3 -0
- data/lib/puppet/reference/metaparameter.rb +1 -1
- data/lib/puppet/reference/providers.rb +3 -3
- data/lib/puppet/reference/type.rb +1 -1
- data/lib/puppet/relationship.rb +4 -5
- data/lib/puppet/reports/http.rb +1 -1
- data/lib/puppet/reports/log.rb +2 -2
- data/lib/puppet/reports/store.rb +4 -4
- data/lib/puppet/reports.rb +2 -2
- data/lib/puppet/resource/catalog.rb +16 -16
- data/lib/puppet/resource/status.rb +3 -3
- data/lib/puppet/resource/type.rb +8 -8
- data/lib/puppet/resource/type_collection.rb +1 -1
- data/lib/puppet/resource.rb +41 -41
- data/lib/puppet/scheduler/scheduler.rb +1 -1
- data/lib/puppet/settings/alias_setting.rb +3 -5
- data/lib/puppet/settings/base_setting.rb +11 -11
- data/lib/puppet/settings/boolean_setting.rb +2 -2
- data/lib/puppet/settings/config_file.rb +5 -4
- data/lib/puppet/settings/duration_setting.rb +2 -2
- data/lib/puppet/settings/environment_conf.rb +3 -3
- data/lib/puppet/settings/file_or_directory_setting.rb +2 -2
- data/lib/puppet/settings/file_setting.rb +11 -11
- data/lib/puppet/settings/ini_file.rb +3 -3
- data/lib/puppet/settings/port_setting.rb +1 -1
- data/lib/puppet/settings/priority_setting.rb +2 -2
- data/lib/puppet/settings/ttl_setting.rb +2 -2
- data/lib/puppet/settings/value_translator.rb +8 -8
- data/lib/puppet/settings.rb +65 -70
- data/lib/puppet/ssl/base.rb +2 -4
- data/lib/puppet/ssl/certificate_request.rb +18 -22
- data/lib/puppet/ssl/certificate_request_attributes.rb +3 -3
- data/lib/puppet/ssl/oids.rb +2 -2
- data/lib/puppet/ssl/openssl_loader.rb +4 -4
- data/lib/puppet/syntax_checkers/base64.rb +3 -3
- data/lib/puppet/syntax_checkers/epp.rb +3 -3
- data/lib/puppet/syntax_checkers/json.rb +3 -3
- data/lib/puppet/syntax_checkers/pp.rb +3 -3
- data/lib/puppet/transaction/additional_resource_generator.rb +1 -1
- data/lib/puppet/transaction/event.rb +2 -2
- data/lib/puppet/transaction/event_manager.rb +5 -5
- data/lib/puppet/transaction/persistence.rb +12 -14
- data/lib/puppet/transaction/report.rb +4 -4
- data/lib/puppet/transaction/resource_harness.rb +2 -2
- data/lib/puppet/transaction.rb +14 -18
- data/lib/puppet/type/component.rb +3 -3
- data/lib/puppet/type/exec.rb +43 -45
- data/lib/puppet/type/file/checksum_value.rb +1 -1
- data/lib/puppet/type/file/content.rb +6 -6
- data/lib/puppet/type/file/ctime.rb +2 -2
- data/lib/puppet/type/file/data_sync.rb +3 -3
- data/lib/puppet/type/file/ensure.rb +16 -15
- data/lib/puppet/type/file/mode.rb +9 -9
- data/lib/puppet/type/file/mtime.rb +2 -2
- data/lib/puppet/type/file/selcontext.rb +14 -14
- data/lib/puppet/type/file/source.rb +19 -21
- data/lib/puppet/type/file/target.rb +11 -11
- data/lib/puppet/type/file.rb +21 -21
- data/lib/puppet/type/filebucket.rb +3 -3
- data/lib/puppet/type/group.rb +3 -3
- data/lib/puppet/type/notify.rb +2 -2
- data/lib/puppet/type/package.rb +4 -4
- data/lib/puppet/type/resources.rb +6 -6
- data/lib/puppet/type/schedule.rb +9 -9
- data/lib/puppet/type/service.rb +6 -8
- data/lib/puppet/type/tidy.rb +22 -24
- data/lib/puppet/type/user.rb +13 -13
- data/lib/puppet/type.rb +76 -88
- data/lib/puppet/util/at_fork/solaris.rb +33 -37
- data/lib/puppet/util/autoload.rb +2 -2
- data/lib/puppet/util/backups.rb +9 -9
- data/lib/puppet/util/character_encoding.rb +7 -6
- data/lib/puppet/util/checksums.rb +2 -2
- data/lib/puppet/util/classgen.rb +8 -8
- data/lib/puppet/util/colors.rb +1 -1
- data/lib/puppet/util/command_line/puppet_option_parser.rb +1 -1
- data/lib/puppet/util/command_line/trollop.rb +42 -46
- data/lib/puppet/util/command_line.rb +2 -2
- data/lib/puppet/util/constant_inflector.rb +2 -2
- data/lib/puppet/util/diff.rb +19 -21
- data/lib/puppet/util/docs.rb +2 -2
- data/lib/puppet/util/errors.rb +9 -9
- data/lib/puppet/util/execution.rb +32 -9
- data/lib/puppet/util/feature.rb +1 -1
- data/lib/puppet/util/fileparsing.rb +12 -16
- data/lib/puppet/util/filetype.rb +36 -40
- data/lib/puppet/util/inifile.rb +6 -12
- data/lib/puppet/util/ldap/connection.rb +1 -1
- data/lib/puppet/util/ldap/manager.rb +10 -12
- data/lib/puppet/util/lockfile.rb +6 -8
- data/lib/puppet/util/log/destination.rb +2 -2
- data/lib/puppet/util/log/destinations.rb +4 -4
- data/lib/puppet/util/log.rb +12 -9
- data/lib/puppet/util/logging.rb +11 -11
- data/lib/puppet/util/metric.rb +3 -3
- data/lib/puppet/util/monkey_patches.rb +5 -7
- data/lib/puppet/util/network_device/config.rb +3 -3
- data/lib/puppet/util/package/version/debian.rb +27 -28
- data/lib/puppet/util/package/version/pip.rb +5 -5
- data/lib/puppet/util/package/version/range/eq.rb +1 -1
- data/lib/puppet/util/package/version/rpm.rb +1 -1
- data/lib/puppet/util/package.rb +2 -2
- data/lib/puppet/util/pidlock.rb +2 -2
- data/lib/puppet/util/platform.rb +1 -1
- data/lib/puppet/util/plist.rb +8 -10
- data/lib/puppet/util/posix.rb +17 -17
- data/lib/puppet/util/profiler/aggregate.rb +1 -1
- data/lib/puppet/util/provider_features.rb +3 -3
- data/lib/puppet/util/rdoc/code_objects.rb +3 -3
- data/lib/puppet/util/rdoc/generators/puppet_generator.rb +63 -64
- data/lib/puppet/util/rdoc/generators/template/puppet/puppet.rb +23 -23
- data/lib/puppet/util/rdoc/parser/puppet_parser_core.rb +12 -12
- data/lib/puppet/util/rdoc/parser/puppet_parser_rdoc2.rb +1 -1
- data/lib/puppet/util/rdoc/parser.rb +1 -1
- data/lib/puppet/util/reference.rb +13 -9
- data/lib/puppet/util/retry_action.rb +1 -1
- data/lib/puppet/util/rpm_compare.rb +17 -18
- data/lib/puppet/util/rubygems.rb +1 -1
- data/lib/puppet/util/selinux.rb +7 -7
- data/lib/puppet/util/storage.rb +10 -12
- data/lib/puppet/util/suidmanager.rb +18 -19
- data/lib/puppet/util/symbolic_file_mode.rb +71 -75
- data/lib/puppet/util/tag_set.rb +2 -2
- data/lib/puppet/util/tagging.rb +8 -10
- data/lib/puppet/util/terminal.rb +4 -4
- data/lib/puppet/util/user_attr.rb +7 -7
- data/lib/puppet/util/watcher.rb +3 -5
- data/lib/puppet/util/windows/access_control_list.rb +1 -1
- data/lib/puppet/util/windows/adsi.rb +42 -42
- data/lib/puppet/util/windows/daemon.rb +64 -68
- data/lib/puppet/util/windows/error.rb +2 -2
- data/lib/puppet/util/windows/file.rb +18 -25
- data/lib/puppet/util/windows/monkey_patches/process.rb +1 -1
- data/lib/puppet/util/windows/principal.rb +8 -8
- data/lib/puppet/util/windows/process.rb +16 -28
- data/lib/puppet/util/windows/registry.rb +16 -15
- data/lib/puppet/util/windows/root_certs.rb +2 -2
- data/lib/puppet/util/windows/security.rb +31 -31
- data/lib/puppet/util/windows/service.rb +11 -11
- data/lib/puppet/util/windows/sid.rb +8 -8
- data/lib/puppet/util/windows/user.rb +18 -20
- data/lib/puppet/util/yaml.rb +1 -1
- data/lib/puppet/util.rb +55 -46
- data/lib/puppet/version.rb +2 -2
- data/lib/puppet/x509/pem_store.rb +1 -1
- data/lib/puppet.rb +3 -3
- data/man/man5/puppet.conf.5 +10 -2
- data/man/man8/puppet-agent.8 +1 -1
- data/man/man8/puppet-apply.8 +1 -1
- data/man/man8/puppet-catalog.8 +1 -1
- data/man/man8/puppet-config.8 +1 -1
- data/man/man8/puppet-describe.8 +1 -1
- data/man/man8/puppet-device.8 +1 -1
- data/man/man8/puppet-doc.8 +1 -1
- data/man/man8/puppet-epp.8 +1 -1
- data/man/man8/puppet-facts.8 +1 -1
- data/man/man8/puppet-filebucket.8 +1 -1
- data/man/man8/puppet-generate.8 +1 -1
- data/man/man8/puppet-help.8 +1 -1
- data/man/man8/puppet-lookup.8 +1 -1
- data/man/man8/puppet-module.8 +1 -1
- data/man/man8/puppet-node.8 +1 -1
- data/man/man8/puppet-parser.8 +1 -1
- data/man/man8/puppet-plugin.8 +1 -1
- data/man/man8/puppet-report.8 +1 -1
- data/man/man8/puppet-resource.8 +5 -1
- data/man/man8/puppet-script.8 +1 -1
- data/man/man8/puppet-ssl.8 +1 -1
- data/man/man8/puppet.8 +2 -2
- metadata +2 -2
@@ -31,7 +31,7 @@ module Puppet::FileBucketFile
|
|
31
31
|
raise _("could not find diff_with %{diff}") % { diff: request.options[:diff_with] } unless Puppet::FileSystem.exist?(other_contents_file)
|
32
32
|
raise _("Unable to diff on this platform") unless Puppet[:diff] != ""
|
33
33
|
|
34
|
-
|
34
|
+
diff(Puppet::FileSystem.path_string(contents_file), Puppet::FileSystem.path_string(other_contents_file))
|
35
35
|
else
|
36
36
|
# TRANSLATORS "FileBucket" should not be translated
|
37
37
|
Puppet.info _("FileBucket read %{checksum}") % { checksum: checksum }
|
@@ -64,14 +64,14 @@ module Puppet::FileBucketFile
|
|
64
64
|
msg = ''.dup
|
65
65
|
# Get all files with mtime between 'from' and 'to'
|
66
66
|
Pathname.new(request.options[:bucket_path]).find { |item|
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
67
|
+
next unless item.file? and item.basename.to_s == "paths"
|
68
|
+
|
69
|
+
filenames = item.read.strip.split("\n")
|
70
|
+
filestat = Time.parse(item.stat.mtime.to_s)
|
71
|
+
next unless from <= filestat and filestat <= to
|
72
|
+
|
73
|
+
filenames.each do |filename|
|
74
|
+
bucket[filename] += [[item.stat.mtime, item.parent.basename]]
|
75
75
|
end
|
76
76
|
}
|
77
77
|
# Sort the results
|
@@ -88,7 +88,7 @@ module Puppet::FileBucketFile
|
|
88
88
|
msg += "#{chksum} #{date} #{filename}\n"
|
89
89
|
}
|
90
90
|
}
|
91
|
-
|
91
|
+
model.new(msg)
|
92
92
|
end
|
93
93
|
|
94
94
|
def head(request)
|
@@ -125,7 +125,7 @@ module Puppet::FileBucketFile
|
|
125
125
|
# given its possible that request.options[:bucket_path] or Puppet[:bucketdir]
|
126
126
|
# contained characters in an encoding that are not represented the
|
127
127
|
# same way when the bytes are decoded as UTF-8, continue using system encoding
|
128
|
-
Puppet::FileSystem.open(paths_file,
|
128
|
+
Puppet::FileSystem.open(paths_file, 0o640, 'a+:external') do |f|
|
129
129
|
path_match(f, files_original_path)
|
130
130
|
end
|
131
131
|
end
|
@@ -137,7 +137,7 @@ module Puppet::FileBucketFile
|
|
137
137
|
file_handle.each_line do |line|
|
138
138
|
return true if line.chomp == files_original_path
|
139
139
|
end
|
140
|
-
|
140
|
+
false
|
141
141
|
end
|
142
142
|
|
143
143
|
# @param bucket_file [Puppet::FileBucket::File] IO object representing
|
@@ -152,7 +152,7 @@ module Puppet::FileBucketFile
|
|
152
152
|
# existing and new backup
|
153
153
|
# @api private
|
154
154
|
def save_to_disk(bucket_file, files_original_path, contents_file, paths_file)
|
155
|
-
Puppet::Util.withumask(
|
155
|
+
Puppet::Util.withumask(0o007) do
|
156
156
|
unless Puppet::FileSystem.dir_exist?(paths_file)
|
157
157
|
Puppet::FileSystem.dir_mkpath(paths_file)
|
158
158
|
end
|
@@ -161,14 +161,14 @@ module Puppet::FileBucketFile
|
|
161
161
|
# given its possible that request.options[:bucket_path] or Puppet[:bucketdir]
|
162
162
|
# contained characters in an encoding that are not represented the
|
163
163
|
# same way when the bytes are decoded as UTF-8, continue using system encoding
|
164
|
-
Puppet::FileSystem.exclusive_open(paths_file,
|
164
|
+
Puppet::FileSystem.exclusive_open(paths_file, 0o640, 'a+:external') do |f|
|
165
165
|
if Puppet::FileSystem.exist?(contents_file)
|
166
166
|
if verify_identical_file(contents_file, bucket_file)
|
167
167
|
# TRANSLATORS "FileBucket" should not be translated
|
168
168
|
Puppet.info _("FileBucket got a duplicate file %{file_checksum}") % { file_checksum: bucket_file.checksum }
|
169
169
|
# Don't touch the contents file on Windows, since we can't update the
|
170
170
|
# mtime of read-only files there.
|
171
|
-
|
171
|
+
unless Puppet::Util::Platform.windows?
|
172
172
|
Puppet::FileSystem.touch(contents_file)
|
173
173
|
end
|
174
174
|
elsif contents_file_matches_checksum?(contents_file, bucket_file.checksum_data, bucket_file.checksum_type)
|
@@ -202,7 +202,7 @@ module Puppet::FileBucketFile
|
|
202
202
|
end
|
203
203
|
|
204
204
|
def request_to_checksum_and_path(request)
|
205
|
-
checksum_type, checksum, path = request.key.split(
|
205
|
+
checksum_type, checksum, path = request.key.split(%r{/}, 3)
|
206
206
|
if path == '' # Treat "md5/<checksum>/" like "md5/<checksum>"
|
207
207
|
path = nil
|
208
208
|
end
|
@@ -257,7 +257,7 @@ module Puppet::FileBucketFile
|
|
257
257
|
# @return [void]
|
258
258
|
# @api private
|
259
259
|
def copy_bucket_file_to_contents_file(contents_file, bucket_file)
|
260
|
-
Puppet::FileSystem.replace_file(contents_file,
|
260
|
+
Puppet::FileSystem.replace_file(contents_file, 0o440) do |of|
|
261
261
|
# PUP-1044 writes all of the contents
|
262
262
|
bucket_file.stream() do |src|
|
263
263
|
FileUtils.copy_stream(src, of)
|
@@ -13,7 +13,7 @@ module Puppet::FileBucketFile
|
|
13
13
|
api.head_filebucket_file(
|
14
14
|
request.key,
|
15
15
|
environment: request.environment.to_s,
|
16
|
-
bucket_path: request.options[:bucket_path]
|
16
|
+
bucket_path: request.options[:bucket_path]
|
17
17
|
)
|
18
18
|
rescue Puppet::HTTP::ResponseError => e
|
19
19
|
return nil if e.response.code == 404
|
@@ -31,7 +31,7 @@ module Puppet::FileBucketFile
|
|
31
31
|
diff_with: request.options[:diff_with],
|
32
32
|
list_all: request.options[:list_all],
|
33
33
|
fromdate: request.options[:fromdate],
|
34
|
-
todate: request.options[:todate]
|
34
|
+
todate: request.options[:todate]
|
35
35
|
)
|
36
36
|
filebucket_file
|
37
37
|
rescue Puppet::HTTP::ResponseError => e
|
@@ -44,7 +44,7 @@ module Puppet::FileBucketFile
|
|
44
44
|
api.put_filebucket_file(
|
45
45
|
request.key,
|
46
46
|
body: request.instance.render,
|
47
|
-
environment: request.environment.to_s
|
47
|
+
environment: request.environment.to_s
|
48
48
|
)
|
49
49
|
rescue Puppet::HTTP::ResponseError => e
|
50
50
|
raise convert_to_http_error(e.response)
|
@@ -17,7 +17,7 @@ class Puppet::Indirector::FileContent::Rest < Puppet::Indirector::REST
|
|
17
17
|
|
18
18
|
api.get_file_content(
|
19
19
|
path: Puppet::Util.uri_unescape(url.path),
|
20
|
-
environment: request.environment.to_s
|
20
|
+
environment: request.environment.to_s
|
21
21
|
) do |data|
|
22
22
|
content << data
|
23
23
|
end
|
@@ -46,7 +46,7 @@ class Puppet::Indirector::FileMetadata::Rest < Puppet::Indirector::REST
|
|
46
46
|
ignore: request.options[:ignore],
|
47
47
|
links: request.options[:links],
|
48
48
|
checksum_type: request.options[:checksum_type],
|
49
|
-
source_permissions: request.options[:source_permissions]
|
49
|
+
source_permissions: request.options[:source_permissions]
|
50
50
|
)
|
51
51
|
file_metadatas
|
52
52
|
rescue Puppet::HTTP::ResponseError => e
|
@@ -9,7 +9,7 @@ require 'hiera/scope'
|
|
9
9
|
# Use `Puppet::DataBinding.indirection.terminus(:hiera)` instead.
|
10
10
|
class Puppet::Indirector::Hiera < Puppet::Indirector::Terminus
|
11
11
|
def initialize(*args)
|
12
|
-
|
12
|
+
unless Puppet.features.hiera?
|
13
13
|
# TRANSLATORS "Hiera" is the name of a code library and should not be translated
|
14
14
|
raise _("Hiera terminus not supported without hiera library")
|
15
15
|
end
|
@@ -26,7 +26,7 @@ class Puppet::Indirector::Indirection
|
|
26
26
|
# Return a list of all known indirections. Used to generate the
|
27
27
|
# reference.
|
28
28
|
def self.instances
|
29
|
-
@@indirections.collect
|
29
|
+
@@indirections.collect(&:name)
|
30
30
|
end
|
31
31
|
|
32
32
|
# Find an indirected model by name. This is provided so that Terminus classes
|
@@ -121,10 +121,10 @@ class Puppet::Indirector::Indirection
|
|
121
121
|
def set_global_setting(setting, value)
|
122
122
|
case setting
|
123
123
|
when :cache_class
|
124
|
-
validate_terminus_class(value)
|
124
|
+
validate_terminus_class(value) unless value.nil?
|
125
125
|
@cache_class = Puppet::ThreadLocal.new(value)
|
126
126
|
when :terminus_class
|
127
|
-
validate_terminus_class(value)
|
127
|
+
validate_terminus_class(value) unless value.nil?
|
128
128
|
@terminus_class = Puppet::ThreadLocal.new(value)
|
129
129
|
when :terminus_setting
|
130
130
|
@terminus_setting = Puppet::ThreadLocal.new(value)
|
@@ -135,13 +135,13 @@ class Puppet::Indirector::Indirection
|
|
135
135
|
|
136
136
|
# Set up our request object.
|
137
137
|
def request(*args)
|
138
|
-
Puppet::Indirector::Request.new(
|
138
|
+
Puppet::Indirector::Request.new(name, *args)
|
139
139
|
end
|
140
140
|
|
141
141
|
# Return the singleton terminus for this indirection.
|
142
142
|
def terminus(terminus_name = nil)
|
143
143
|
# Get the name of the terminus.
|
144
|
-
raise Puppet::DevError, _("No terminus specified for %{name}; cannot redirect") % { name:
|
144
|
+
raise Puppet::DevError, _("No terminus specified for %{name}; cannot redirect") % { name: name } unless terminus_name ||= terminus_class
|
145
145
|
|
146
146
|
termini[terminus_name] ||= make_terminus(terminus_name)
|
147
147
|
end
|
@@ -158,11 +158,11 @@ class Puppet::Indirector::Indirection
|
|
158
158
|
# Determine the terminus class.
|
159
159
|
def terminus_class
|
160
160
|
unless @terminus_class.value
|
161
|
-
setting =
|
161
|
+
setting = terminus_setting
|
162
162
|
if setting
|
163
163
|
self.terminus_class = Puppet.settings[setting]
|
164
164
|
else
|
165
|
-
raise Puppet::DevError, _("No terminus class nor terminus setting was provided for indirection %{name}") % { name:
|
165
|
+
raise Puppet::DevError, _("No terminus class nor terminus setting was provided for indirection %{name}") % { name: name }
|
166
166
|
end
|
167
167
|
end
|
168
168
|
@terminus_class.value
|
@@ -184,9 +184,9 @@ class Puppet::Indirector::Indirection
|
|
184
184
|
raise ArgumentError, _("Invalid terminus name %{terminus_class}") % { terminus_class: terminus_class.inspect }
|
185
185
|
end
|
186
186
|
|
187
|
-
unless Puppet::Indirector::Terminus.terminus_class(
|
187
|
+
unless Puppet::Indirector::Terminus.terminus_class(name, terminus_class)
|
188
188
|
raise ArgumentError, _("Could not find terminus %{terminus_class} for indirection %{name}") %
|
189
|
-
{ terminus_class: terminus_class, name:
|
189
|
+
{ terminus_class: terminus_class, name: name }
|
190
190
|
end
|
191
191
|
end
|
192
192
|
|
@@ -201,7 +201,7 @@ class Puppet::Indirector::Indirection
|
|
201
201
|
instance = cache.find(request(:find, key, nil, options))
|
202
202
|
return nil unless instance
|
203
203
|
|
204
|
-
Puppet.info _("Expiring the %{cache} cache of %{instance}") % { cache:
|
204
|
+
Puppet.info _("Expiring the %{cache} cache of %{instance}") % { cache: name, instance: instance.name }
|
205
205
|
|
206
206
|
# Set an expiration date in the past
|
207
207
|
instance.expiration = Time.now - 60
|
@@ -220,7 +220,7 @@ class Puppet::Indirector::Indirection
|
|
220
220
|
terminus = prepare(request)
|
221
221
|
|
222
222
|
result = find_in_cache(request)
|
223
|
-
if
|
223
|
+
if !result.nil?
|
224
224
|
result
|
225
225
|
elsif request.ignore_terminus?
|
226
226
|
nil
|
@@ -228,10 +228,10 @@ class Puppet::Indirector::Indirection
|
|
228
228
|
# Otherwise, return the result from the terminus, caching if
|
229
229
|
# appropriate.
|
230
230
|
result = terminus.find(request)
|
231
|
-
|
232
|
-
result.expiration ||=
|
231
|
+
unless result.nil?
|
232
|
+
result.expiration ||= expiration if result.respond_to?(:expiration)
|
233
233
|
if cache? && !request.ignore_cache_save?
|
234
|
-
Puppet.info _("Caching %{indirection} for %{request}") % { indirection:
|
234
|
+
Puppet.info _("Caching %{indirection} for %{request}") % { indirection: name, request: request.key }
|
235
235
|
begin
|
236
236
|
cache.save request(:save, key, result, options)
|
237
237
|
rescue => detail
|
@@ -242,13 +242,11 @@ class Puppet::Indirector::Indirection
|
|
242
242
|
|
243
243
|
filtered = result
|
244
244
|
if terminus.respond_to?(:filter)
|
245
|
-
Puppet::Util::Profiler.profile(_("Filtered result for %{indirection} %{request}") % { indirection:
|
246
|
-
|
247
|
-
|
248
|
-
|
249
|
-
|
250
|
-
raise detail
|
251
|
-
end
|
245
|
+
Puppet::Util::Profiler.profile(_("Filtered result for %{indirection} %{request}") % { indirection: name, request: request.key }, [:indirector, :filter, name, request.key]) do
|
246
|
+
filtered = terminus.filter(result)
|
247
|
+
rescue Puppet::Error => detail
|
248
|
+
Puppet.log_exception(detail)
|
249
|
+
raise detail
|
252
250
|
end
|
253
251
|
end
|
254
252
|
filtered
|
@@ -273,14 +271,14 @@ class Puppet::Indirector::Indirection
|
|
273
271
|
return nil unless cached
|
274
272
|
|
275
273
|
if cached.expired?
|
276
|
-
Puppet.info _("Not using expired %{indirection} for %{request} from cache; expired at %{expiration}") % { indirection:
|
274
|
+
Puppet.info _("Not using expired %{indirection} for %{request} from cache; expired at %{expiration}") % { indirection: name, request: request.key, expiration: cached.expiration }
|
277
275
|
return nil
|
278
276
|
end
|
279
277
|
|
280
|
-
Puppet.debug { "Using cached #{
|
278
|
+
Puppet.debug { "Using cached #{name} for #{request.key}" }
|
281
279
|
cached
|
282
280
|
rescue => detail
|
283
|
-
Puppet.log_exception(detail, _("Cached %{indirection} for %{request} failed: %{detail}") % { indirection:
|
281
|
+
Puppet.log_exception(detail, _("Cached %{indirection} for %{request} failed: %{detail}") % { indirection: name, request: request.key, detail: detail })
|
284
282
|
nil
|
285
283
|
end
|
286
284
|
|
@@ -311,9 +309,9 @@ class Puppet::Indirector::Indirection
|
|
311
309
|
result.each do |instance|
|
312
310
|
next unless instance.respond_to? :expiration
|
313
311
|
|
314
|
-
instance.expiration ||=
|
312
|
+
instance.expiration ||= expiration
|
315
313
|
end
|
316
|
-
|
314
|
+
result
|
317
315
|
end
|
318
316
|
end
|
319
317
|
|
@@ -323,7 +321,7 @@ class Puppet::Indirector::Indirection
|
|
323
321
|
request = request(:save, key, instance, options)
|
324
322
|
terminus = prepare(request)
|
325
323
|
|
326
|
-
result = terminus.save(request)
|
324
|
+
result = terminus.save(request) unless request.ignore_terminus?
|
327
325
|
|
328
326
|
# If caching is enabled, save our document there
|
329
327
|
cache.save(request) if cache? && !request.ignore_cache_save?
|
@@ -373,9 +371,9 @@ class Puppet::Indirector::Indirection
|
|
373
371
|
# Create a new terminus instance.
|
374
372
|
def make_terminus(terminus_class)
|
375
373
|
# Load our terminus class.
|
376
|
-
klass = Puppet::Indirector::Terminus.terminus_class(
|
374
|
+
klass = Puppet::Indirector::Terminus.terminus_class(name, terminus_class)
|
377
375
|
unless klass
|
378
|
-
raise ArgumentError, _("Could not find terminus %{terminus_class} for indirection %{indirection}") % { terminus_class: terminus_class, indirection:
|
376
|
+
raise ArgumentError, _("Could not find terminus %{terminus_class} for indirection %{indirection}") % { terminus_class: terminus_class, indirection: name }
|
379
377
|
end
|
380
378
|
|
381
379
|
klass.new
|
@@ -16,16 +16,16 @@ class Puppet::Indirector::JSON < Puppet::Indirector::Terminus
|
|
16
16
|
filename = path(request.key)
|
17
17
|
FileUtils.mkdir_p(File.dirname(filename))
|
18
18
|
|
19
|
-
Puppet::FileSystem.replace_file(filename,
|
19
|
+
Puppet::FileSystem.replace_file(filename, 0o660) { |f| f.print to_json(request.instance).force_encoding(Encoding::BINARY) }
|
20
20
|
rescue TypeError => detail
|
21
|
-
Puppet.log_exception(detail, _("Could not save %{json} %{request}: %{detail}") % { json:
|
21
|
+
Puppet.log_exception(detail, _("Could not save %{json} %{request}: %{detail}") % { json: name, request: request.key, detail: detail })
|
22
22
|
end
|
23
23
|
|
24
24
|
def destroy(request)
|
25
25
|
Puppet::FileSystem.unlink(path(request.key))
|
26
26
|
rescue => detail
|
27
27
|
unless detail.is_a? Errno::ENOENT
|
28
|
-
raise Puppet::Error, _("Could not destroy %{json} %{request}: %{detail}") % { json:
|
28
|
+
raise Puppet::Error, _("Could not destroy %{json} %{request}: %{detail}") % { json: name, request: request.key, detail: detail }, detail.backtrace
|
29
29
|
end
|
30
30
|
|
31
31
|
1 # emulate success...
|
@@ -66,7 +66,7 @@ class Puppet::Indirector::JSON < Puppet::Indirector::Terminus
|
|
66
66
|
end
|
67
67
|
|
68
68
|
begin
|
69
|
-
|
69
|
+
from_json(json)
|
70
70
|
rescue => detail
|
71
71
|
raise Puppet::Error, _("Could not parse JSON data for %{name} %{key}: %{detail}") % { name: indirection.name, key: key, detail: detail }, detail.backtrace
|
72
72
|
end
|
@@ -13,7 +13,7 @@ class Puppet::Indirector::Memory < Puppet::Indirector::Terminus
|
|
13
13
|
end
|
14
14
|
|
15
15
|
def destroy(request)
|
16
|
-
raise ArgumentError
|
16
|
+
raise ArgumentError, _("Could not find %{request} to destroy") % { request: request.key } unless @instances.include?(request.key)
|
17
17
|
|
18
18
|
@instances.delete(request.key)
|
19
19
|
end
|
@@ -28,7 +28,7 @@ class Puppet::Indirector::Memory < Puppet::Indirector::Terminus
|
|
28
28
|
end
|
29
29
|
|
30
30
|
def head(request)
|
31
|
-
|
31
|
+
!find(request).nil?
|
32
32
|
end
|
33
33
|
|
34
34
|
def save(request)
|
@@ -9,7 +9,7 @@ require_relative '../../puppet/util'
|
|
9
9
|
# implementations, since it is ~ 30 times faster
|
10
10
|
class Puppet::Indirector::Msgpack < Puppet::Indirector::Terminus
|
11
11
|
def initialize(*args)
|
12
|
-
|
12
|
+
unless Puppet.features.msgpack?
|
13
13
|
raise _("MessagePack terminus not supported without msgpack library")
|
14
14
|
end
|
15
15
|
|
@@ -24,16 +24,16 @@ class Puppet::Indirector::Msgpack < Puppet::Indirector::Terminus
|
|
24
24
|
filename = path(request.key)
|
25
25
|
FileUtils.mkdir_p(File.dirname(filename))
|
26
26
|
|
27
|
-
Puppet::FileSystem.replace_file(filename,
|
27
|
+
Puppet::FileSystem.replace_file(filename, 0o660) { |f| f.print to_msgpack(request.instance) }
|
28
28
|
rescue TypeError => detail
|
29
|
-
Puppet.log_exception(detail, _("Could not save %{name} %{request}: %{detail}") % { name:
|
29
|
+
Puppet.log_exception(detail, _("Could not save %{name} %{request}: %{detail}") % { name: name, request: request.key, detail: detail })
|
30
30
|
end
|
31
31
|
|
32
32
|
def destroy(request)
|
33
33
|
Puppet::FileSystem.unlink(path(request.key))
|
34
34
|
rescue => detail
|
35
35
|
unless detail.is_a? Errno::ENOENT
|
36
|
-
raise Puppet::Error, _("Could not destroy %{name} %{request}: %{detail}") % { name:
|
36
|
+
raise Puppet::Error, _("Could not destroy %{name} %{request}: %{detail}") % { name: name, request: request.key, detail: detail }, detail.backtrace
|
37
37
|
end
|
38
38
|
|
39
39
|
1 # emulate success...
|
@@ -71,7 +71,7 @@ class Puppet::Indirector::Msgpack < Puppet::Indirector::Terminus
|
|
71
71
|
end
|
72
72
|
|
73
73
|
begin
|
74
|
-
|
74
|
+
from_msgpack(msgpack)
|
75
75
|
rescue => detail
|
76
76
|
raise Puppet::Error, _("Could not parse MessagePack data for %{indirection} %{key}: %{detail}") % { indirection: indirection.name, key: key, detail: detail }, detail.backtrace
|
77
77
|
end
|
@@ -4,5 +4,5 @@ require_relative '../../../puppet/indirector/store_configs'
|
|
4
4
|
require_relative '../../../puppet/node'
|
5
5
|
|
6
6
|
class Puppet::Node::StoreConfigs < Puppet::Indirector::StoreConfigs
|
7
|
-
desc
|
7
|
+
desc 'Part of the "storeconfigs" feature. Should not be directly set by end users.'
|
8
8
|
end
|
@@ -30,7 +30,7 @@ class Puppet::Transaction::Report::Json < Puppet::Indirector::JSON
|
|
30
30
|
fh.print JSON.dump(request.instance)
|
31
31
|
end
|
32
32
|
rescue TypeError => detail
|
33
|
-
Puppet.err _("Could not save %{indirection} %{request}: %{detail}") % { indirection:
|
33
|
+
Puppet.err _("Could not save %{indirection} %{request}: %{detail}") % { indirection: name, request: request.key, detail: detail }
|
34
34
|
end
|
35
35
|
end
|
36
36
|
end
|
@@ -30,7 +30,7 @@ class Puppet::Transaction::Report::Yaml < Puppet::Indirector::Yaml
|
|
30
30
|
fh.print YAML.dump(request.instance)
|
31
31
|
end
|
32
32
|
rescue TypeError => detail
|
33
|
-
Puppet.err _("Could not save %{indirection} %{request}: %{detail}") % { indirection:
|
33
|
+
Puppet.err _("Could not save %{indirection} %{request}: %{detail}") % { indirection: name, request: request.key, detail: detail }
|
34
34
|
end
|
35
35
|
end
|
36
36
|
end
|
@@ -80,7 +80,7 @@ class Puppet::Indirector::Request
|
|
80
80
|
# info out in the REST class, but it seemed bad design for the REST
|
81
81
|
# class to rewrite the key.
|
82
82
|
|
83
|
-
if key.to_s =~
|
83
|
+
if key.to_s =~ %r{^\w+:/} and !Puppet::Util.absolute_path?(key.to_s) # it's a URI
|
84
84
|
set_uri_key(key)
|
85
85
|
else
|
86
86
|
@key = key
|
@@ -140,11 +140,11 @@ class Puppet::Indirector::Request
|
|
140
140
|
end
|
141
141
|
|
142
142
|
def description
|
143
|
-
|
143
|
+
uri || "/#{indirection_name}/#{key}"
|
144
144
|
end
|
145
145
|
|
146
146
|
def remote?
|
147
|
-
|
147
|
+
node or ip
|
148
148
|
end
|
149
149
|
|
150
150
|
private
|
@@ -192,6 +192,6 @@ class Puppet::Indirector::Request
|
|
192
192
|
@protocol = uri.scheme
|
193
193
|
end
|
194
194
|
|
195
|
-
@key = Puppet::Util.uri_unescape(uri.path.sub(
|
195
|
+
@key = Puppet::Util.uri_unescape(uri.path.sub(%r{^/}, ''))
|
196
196
|
end
|
197
197
|
end
|
@@ -14,7 +14,7 @@ class Puppet::Resource::Ral < Puppet::Indirector::Code
|
|
14
14
|
def find(request)
|
15
15
|
# find by name
|
16
16
|
res = type(request).instances.find { |o| o.name == resource_name(request) }
|
17
|
-
res ||= type(request).new(:name => resource_name(request), :audit => type(request).properties.collect
|
17
|
+
res ||= type(request).new(:name => resource_name(request), :audit => type(request).properties.collect(&:name))
|
18
18
|
|
19
19
|
res.to_resource
|
20
20
|
end
|
@@ -23,9 +23,7 @@ class Puppet::Resource::Ral < Puppet::Indirector::Code
|
|
23
23
|
conditions = request.options.dup
|
24
24
|
conditions[:name] = resource_name(request) if resource_name(request)
|
25
25
|
|
26
|
-
type(request).instances.map do |res|
|
27
|
-
res.to_resource
|
28
|
-
end.find_all do |res|
|
26
|
+
type(request).instances.map(&:to_resource).find_all do |res|
|
29
27
|
conditions.all? do |property, value|
|
30
28
|
# even though `res` is an instance of Puppet::Resource, calling
|
31
29
|
# `res[:name]` on it returns nil, and for some reason it is necessary
|
@@ -6,7 +6,7 @@ require_relative '../../../puppet/indirector/resource/validator'
|
|
6
6
|
class Puppet::Resource::StoreConfigs < Puppet::Indirector::StoreConfigs
|
7
7
|
include Puppet::Resource::Validator
|
8
8
|
|
9
|
-
desc
|
9
|
+
desc 'Part of the "storeconfigs" feature. Should not be directly set by end users.'
|
10
10
|
|
11
11
|
def allow_remote_requests?
|
12
12
|
false
|
@@ -24,7 +24,7 @@ class Puppet::Indirector::Terminus
|
|
24
24
|
|
25
25
|
# Convert a constant to a short name.
|
26
26
|
def const2name(const)
|
27
|
-
const.sub(/^[A-Z]
|
27
|
+
const.sub(/^[A-Z]/, &:downcase).gsub(/[A-Z]/) { |i| "_#{i.downcase}" }.intern
|
28
28
|
end
|
29
29
|
|
30
30
|
# Look up the indirection if we were only provided a name.
|
@@ -57,7 +57,7 @@ class Puppet::Indirector::Terminus
|
|
57
57
|
names = longname.split("::")
|
58
58
|
|
59
59
|
# Convert everything to a lower-case symbol, converting camelcase to underscore word separation.
|
60
|
-
name = names.pop.sub(/^[A-Z]
|
60
|
+
name = names.pop.sub(/^[A-Z]/, &:downcase).gsub(/[A-Z]/) { |i| "_#{i.downcase}" }.intern
|
61
61
|
|
62
62
|
subclass.name = name
|
63
63
|
|
@@ -75,7 +75,7 @@ class Puppet::Indirector::Terminus
|
|
75
75
|
# This subclass is specifically associated with an indirection.
|
76
76
|
raise("Invalid name #{longname}") unless names.length > 0
|
77
77
|
|
78
|
-
processed_name = names.pop.sub(/^[A-Z]
|
78
|
+
processed_name = names.pop.sub(/^[A-Z]/, &:downcase).gsub(/[A-Z]/) { |i| "_#{i.downcase}" }
|
79
79
|
|
80
80
|
if processed_name.empty?
|
81
81
|
raise Puppet::DevError, _("Could not discern indirection model from class constant")
|
@@ -101,7 +101,7 @@ class Puppet::Indirector::Terminus
|
|
101
101
|
|
102
102
|
# Convert a short name to a constant.
|
103
103
|
def name2const(name)
|
104
|
-
name.to_s.capitalize.sub(/_(.)/) { |_i|
|
104
|
+
name.to_s.capitalize.sub(/_(.)/) { |_i| ::Regexp.last_match(1).upcase }
|
105
105
|
end
|
106
106
|
|
107
107
|
# Register a class, probably autoloaded.
|
@@ -11,7 +11,7 @@ class Puppet::Indirector::Yaml < Puppet::Indirector::Terminus
|
|
11
11
|
return nil unless Puppet::FileSystem.exist?(file)
|
12
12
|
|
13
13
|
begin
|
14
|
-
|
14
|
+
load_file(file)
|
15
15
|
rescue Puppet::Util::Yaml::YamlLoadError => detail
|
16
16
|
raise Puppet::Error, _("Could not parse YAML data for %{indirection} %{request}: %{detail}") % { indirection: indirection.name, request: request.key, detail: detail }, detail.backtrace
|
17
17
|
end
|
@@ -19,7 +19,7 @@ class Puppet::Indirector::Yaml < Puppet::Indirector::Terminus
|
|
19
19
|
|
20
20
|
# Convert our object to YAML and store it to the disk.
|
21
21
|
def save(request)
|
22
|
-
raise ArgumentError
|
22
|
+
raise ArgumentError, _("You can only save objects that respond to :name") unless request.instance.respond_to?(:name)
|
23
23
|
|
24
24
|
file = path(request.key)
|
25
25
|
|
@@ -31,7 +31,7 @@ class Puppet::Indirector::Yaml < Puppet::Indirector::Terminus
|
|
31
31
|
begin
|
32
32
|
Puppet::Util::Yaml.dump(request.instance, file)
|
33
33
|
rescue TypeError => detail
|
34
|
-
Puppet.err _("Could not save %{indirection} %{request}: %{detail}") % { indirection:
|
34
|
+
Puppet.err _("Could not save %{indirection} %{request}: %{detail}") % { indirection: name, request: request.key, detail: detail }
|
35
35
|
end
|
36
36
|
end
|
37
37
|
|
@@ -74,7 +74,7 @@ class Puppet::InfoService::ClassInformationService
|
|
74
74
|
def extract_type(structure, p)
|
75
75
|
return structure if p.type_expr.nil?
|
76
76
|
|
77
|
-
structure[:type] = typeexpr_to_string(p.type_expr)
|
77
|
+
structure[:type] = typeexpr_to_string(p.name, p.type_expr)
|
78
78
|
structure
|
79
79
|
end
|
80
80
|
|
@@ -88,13 +88,10 @@ class Puppet::InfoService::ClassInformationService
|
|
88
88
|
structure
|
89
89
|
end
|
90
90
|
|
91
|
-
def typeexpr_to_string(type_expr)
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
# type is to complex - contains expressions that are not literal
|
96
|
-
nil
|
97
|
-
end
|
91
|
+
def typeexpr_to_string(name, type_expr)
|
92
|
+
type_parser.interpret_any(type_expr, nil).to_s
|
93
|
+
rescue Puppet::ParseError => e
|
94
|
+
raise Puppet::Error, "The parameter '$#{name}' is invalid: #{e.message}", e.backtrace
|
98
95
|
end
|
99
96
|
|
100
97
|
def value_as_literal(value_expr)
|
@@ -10,13 +10,12 @@ class Puppet::InfoService::TaskInformationService
|
|
10
10
|
env.modules.map do |mod|
|
11
11
|
mod.tasks.map do |task|
|
12
12
|
# If any task is malformed continue to list other tasks in module
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
end
|
13
|
+
|
14
|
+
task.validate
|
15
|
+
{ :module => { :name => task.module.name }, :name => task.name, :metadata => task.metadata }
|
16
|
+
rescue Puppet::Module::Task::Error => err
|
17
|
+
Puppet.log_exception(err)
|
18
|
+
nil
|
20
19
|
end
|
21
20
|
end.flatten.compact
|
22
21
|
end
|