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
data/lib/puppet/settings.rb
CHANGED
@@ -50,7 +50,7 @@ class Puppet::Settings
|
|
50
50
|
REQUIRED_APP_SETTINGS = [:logdir, :confdir, :vardir, :codedir]
|
51
51
|
|
52
52
|
# The acceptable sections of the puppet.conf configuration file.
|
53
|
-
ALLOWED_SECTION_NAMES = [
|
53
|
+
ALLOWED_SECTION_NAMES = %w[main server master agent user].freeze
|
54
54
|
|
55
55
|
NONE = 'none'
|
56
56
|
|
@@ -220,7 +220,7 @@ class Puppet::Settings
|
|
220
220
|
# understand, and add them to the passed option list.
|
221
221
|
def addargs(options)
|
222
222
|
# Add all of the settings as valid options.
|
223
|
-
|
223
|
+
each { |_name, setting|
|
224
224
|
setting.getopt_args.each { |args| options << args }
|
225
225
|
}
|
226
226
|
|
@@ -231,7 +231,7 @@ class Puppet::Settings
|
|
231
231
|
# understand, and add them to the passed option list.
|
232
232
|
def optparse_addargs(options)
|
233
233
|
# Add all of the settings as valid options.
|
234
|
-
|
234
|
+
each { |_name, setting|
|
235
235
|
options << setting.optparse_args
|
236
236
|
}
|
237
237
|
|
@@ -344,7 +344,7 @@ class Puppet::Settings
|
|
344
344
|
option_parser.ignore_invalid_options = true
|
345
345
|
|
346
346
|
# Add all global options to it.
|
347
|
-
|
347
|
+
optparse_addargs([]).each do |option|
|
348
348
|
option_parser.on(*option) do |arg|
|
349
349
|
opt, val = Puppet::Settings.clean_opt(option[0], arg)
|
350
350
|
handlearg(opt, val)
|
@@ -361,7 +361,7 @@ class Puppet::Settings
|
|
361
361
|
|
362
362
|
# remove run_mode options from the arguments so that later parses don't think
|
363
363
|
# it is an unknown option.
|
364
|
-
while option_index = args.index('--run_mode')
|
364
|
+
while option_index = args.index('--run_mode') # rubocop:disable Lint/AssignmentInCondition
|
365
365
|
args.delete_at option_index
|
366
366
|
args.delete_at option_index
|
367
367
|
end
|
@@ -421,7 +421,7 @@ class Puppet::Settings
|
|
421
421
|
def create_ancestors(dir)
|
422
422
|
parent_dir = File.dirname(dir)
|
423
423
|
|
424
|
-
|
424
|
+
unless File.exist?(parent_dir)
|
425
425
|
FileUtils.mkdir_p(parent_dir)
|
426
426
|
end
|
427
427
|
end
|
@@ -429,13 +429,11 @@ class Puppet::Settings
|
|
429
429
|
|
430
430
|
def call_hooks_deferred_to_application_initialization(options = {})
|
431
431
|
@hooks_to_call_on_application_initialization.each do |setting|
|
432
|
-
|
433
|
-
|
434
|
-
|
435
|
-
|
436
|
-
|
437
|
-
# we'll get another chance after application defaults are initialized
|
438
|
-
end
|
432
|
+
setting.handle(value(setting.name))
|
433
|
+
rescue InterpolationError => err
|
434
|
+
raise InterpolationError, err.message, err.backtrace unless options[:ignore_interpolation_dependency_errors]
|
435
|
+
# swallow. We're not concerned if we can't call hooks because dependencies don't exist yet
|
436
|
+
# we'll get another chance after application defaults are initialized
|
439
437
|
end
|
440
438
|
end
|
441
439
|
private :call_hooks_deferred_to_application_initialization
|
@@ -519,7 +517,7 @@ class Puppet::Settings
|
|
519
517
|
def print_config_options
|
520
518
|
if Puppet::Util::Log.sendlevel?(:info)
|
521
519
|
Puppet::Util::Log.newdestination(:console)
|
522
|
-
message =
|
520
|
+
message = _("Using --configprint is deprecated. Use 'puppet config <subcommand>' instead.")
|
523
521
|
Puppet.deprecation_warning(message)
|
524
522
|
end
|
525
523
|
|
@@ -622,7 +620,7 @@ class Puppet::Settings
|
|
622
620
|
|
623
621
|
# Determine our environment, if we have one.
|
624
622
|
if @config[:environment]
|
625
|
-
env =
|
623
|
+
env = value(:environment).to_sym
|
626
624
|
else
|
627
625
|
env = NONE
|
628
626
|
end
|
@@ -631,24 +629,24 @@ class Puppet::Settings
|
|
631
629
|
value_sets = value_sets_for(env, preferred_run_mode)
|
632
630
|
@config.values.select(&:has_hook?).each do |setting|
|
633
631
|
value_sets.each do |source|
|
634
|
-
|
635
|
-
|
636
|
-
|
637
|
-
|
638
|
-
|
639
|
-
|
640
|
-
|
641
|
-
|
642
|
-
|
643
|
-
|
644
|
-
|
645
|
-
|
646
|
-
|
647
|
-
|
648
|
-
|
649
|
-
|
650
|
-
break
|
632
|
+
next unless source.include?(setting.name)
|
633
|
+
|
634
|
+
# We still have to use value to retrieve the value, since
|
635
|
+
# we want the fully interpolated value, not $vardir/lib or whatever.
|
636
|
+
# This results in extra work, but so few of the settings
|
637
|
+
# will have associated hooks that it ends up being less work this
|
638
|
+
# way overall.
|
639
|
+
if setting.call_hook_on_initialize?
|
640
|
+
@hooks_to_call_on_application_initialization |= [setting]
|
641
|
+
else
|
642
|
+
setting.handle(ChainedValues.new(
|
643
|
+
preferred_run_mode,
|
644
|
+
env,
|
645
|
+
value_sets,
|
646
|
+
@config
|
647
|
+
).interpolate(setting.name))
|
651
648
|
end
|
649
|
+
break
|
652
650
|
end
|
653
651
|
end
|
654
652
|
|
@@ -681,15 +679,15 @@ class Puppet::Settings
|
|
681
679
|
|
682
680
|
def main_config_file
|
683
681
|
if explicit_config_file?
|
684
|
-
|
682
|
+
self[:config]
|
685
683
|
else
|
686
|
-
|
684
|
+
File.join(Puppet::Util::RunMode[:server].conf_dir, config_file_name)
|
687
685
|
end
|
688
686
|
end
|
689
687
|
private :main_config_file
|
690
688
|
|
691
689
|
def user_config_file
|
692
|
-
|
690
|
+
File.join(Puppet::Util::RunMode[:user].conf_dir, config_file_name)
|
693
691
|
end
|
694
692
|
private :user_config_file
|
695
693
|
|
@@ -708,7 +706,7 @@ class Puppet::Settings
|
|
708
706
|
# This just means that the setting wasn't explicitly set on the command line, so we will ignore it and
|
709
707
|
# fall through to the default name.
|
710
708
|
end
|
711
|
-
|
709
|
+
self.class.default_config_file_name
|
712
710
|
end
|
713
711
|
private :config_file_name
|
714
712
|
|
@@ -783,9 +781,7 @@ class Puppet::Settings
|
|
783
781
|
klass = StringSetting
|
784
782
|
end
|
785
783
|
hash[:settings] = self
|
786
|
-
|
787
|
-
|
788
|
-
setting
|
784
|
+
klass.new(hash)
|
789
785
|
end
|
790
786
|
|
791
787
|
# This has to be private, because it doesn't add the settings to @config
|
@@ -794,7 +790,7 @@ class Puppet::Settings
|
|
794
790
|
# Iterate across all of the objects in a given section.
|
795
791
|
def persection(section)
|
796
792
|
section = section.to_sym
|
797
|
-
|
793
|
+
each { |_name, obj|
|
798
794
|
if obj.section == section
|
799
795
|
yield obj
|
800
796
|
end
|
@@ -842,10 +838,10 @@ class Puppet::Settings
|
|
842
838
|
|
843
839
|
new = @used
|
844
840
|
@used = []
|
845
|
-
|
841
|
+
use(*new)
|
846
842
|
end
|
847
843
|
|
848
|
-
|
844
|
+
SearchPathElement = Struct.new(:name, :type)
|
849
845
|
|
850
846
|
# The order in which to search for values, without defaults.
|
851
847
|
#
|
@@ -856,7 +852,7 @@ class Puppet::Settings
|
|
856
852
|
def configsearchpath(environment = nil, run_mode = preferred_run_mode)
|
857
853
|
searchpath = [
|
858
854
|
SearchPathElement.new(:memory, :values),
|
859
|
-
SearchPathElement.new(:cli, :values)
|
855
|
+
SearchPathElement.new(:cli, :values)
|
860
856
|
]
|
861
857
|
searchpath << SearchPathElement.new(environment.intern, :environment) if environment
|
862
858
|
|
@@ -1060,7 +1056,7 @@ class Puppet::Settings
|
|
1060
1056
|
end
|
1061
1057
|
|
1062
1058
|
call.each do |setting|
|
1063
|
-
setting.handle(
|
1059
|
+
setting.handle(value(setting.name))
|
1064
1060
|
end
|
1065
1061
|
end
|
1066
1062
|
|
@@ -1072,7 +1068,7 @@ class Puppet::Settings
|
|
1072
1068
|
@config.keys.find_all { |key| @config[key].is_a?(FileSetting) }.each do |key|
|
1073
1069
|
file = @config[key]
|
1074
1070
|
next if file.value.nil?
|
1075
|
-
next unless
|
1071
|
+
next unless sections.nil? or sections.include?(file.section)
|
1076
1072
|
|
1077
1073
|
resource = file.to_resource
|
1078
1074
|
next unless resource
|
@@ -1091,7 +1087,7 @@ class Puppet::Settings
|
|
1091
1087
|
|
1092
1088
|
# Convert our list of config settings into a configuration file.
|
1093
1089
|
def to_config
|
1094
|
-
str = %
|
1090
|
+
str = %(The configuration file for #{Puppet.run_mode.name}. Note that this file
|
1095
1091
|
is likely to have unused settings in it; any setting that's
|
1096
1092
|
valid anywhere in Puppet can be in any config file, even if it's not used.
|
1097
1093
|
|
@@ -1103,7 +1099,7 @@ own configured state, so they can be used to make Puppet a bit more self-managin
|
|
1103
1099
|
The file format supports octothorpe-commented lines, but not partial-line comments.
|
1104
1100
|
|
1105
1101
|
Generated on #{Time.now}.
|
1106
|
-
|
1102
|
+
).gsub(/^/, "# ")
|
1107
1103
|
|
1108
1104
|
# Add a section heading that matches our name.
|
1109
1105
|
str += "[#{preferred_run_mode}]\n"
|
@@ -1113,7 +1109,7 @@ Generated on #{Time.now}.
|
|
1113
1109
|
end
|
1114
1110
|
end
|
1115
1111
|
|
1116
|
-
|
1112
|
+
str
|
1117
1113
|
end
|
1118
1114
|
|
1119
1115
|
# Convert to a parseable manifest
|
@@ -1128,7 +1124,7 @@ Generated on #{Time.now}.
|
|
1128
1124
|
# you can 'use' a section as many times as you want.
|
1129
1125
|
def use(*sections)
|
1130
1126
|
if Puppet[:settings_catalog]
|
1131
|
-
sections = sections.collect
|
1127
|
+
sections = sections.collect(&:to_sym)
|
1132
1128
|
sections = sections.reject { |s| @used.include?(s) }
|
1133
1129
|
|
1134
1130
|
Puppet.warning(":master section deprecated in favor of :server section") if sections.include?(:master)
|
@@ -1136,7 +1132,7 @@ Generated on #{Time.now}.
|
|
1136
1132
|
# add :server if sections include :master or :master if sections include :server
|
1137
1133
|
sections |= [:master, :server] if (sections & [:master, :server]).any?
|
1138
1134
|
|
1139
|
-
sections = sections.collect
|
1135
|
+
sections = sections.collect(&:to_sym)
|
1140
1136
|
sections = sections.reject { |s| @used.include?(s) }
|
1141
1137
|
|
1142
1138
|
return if sections.empty?
|
@@ -1153,7 +1149,7 @@ Generated on #{Time.now}.
|
|
1153
1149
|
catalog.apply do |transaction|
|
1154
1150
|
if transaction.any_failed?
|
1155
1151
|
report = transaction.report
|
1156
|
-
status_failures = report.resource_statuses.values.select
|
1152
|
+
status_failures = report.resource_statuses.values.select(&:failed?)
|
1157
1153
|
status_fail_msg = status_failures
|
1158
1154
|
.collect(&:events)
|
1159
1155
|
.flatten
|
@@ -1251,9 +1247,9 @@ Generated on #{Time.now}.
|
|
1251
1247
|
# in {https://projects.puppetlabs.com/issues/16637 #16637}
|
1252
1248
|
def which_configuration_file
|
1253
1249
|
if explicit_config_file? or Puppet.features.root? then
|
1254
|
-
|
1250
|
+
main_config_file
|
1255
1251
|
else
|
1256
|
-
|
1252
|
+
user_config_file
|
1257
1253
|
end
|
1258
1254
|
end
|
1259
1255
|
|
@@ -1275,7 +1271,7 @@ Generated on #{Time.now}.
|
|
1275
1271
|
def screen_non_puppet_conf_settings(puppet_conf)
|
1276
1272
|
puppet_conf.sections.values.each do |section|
|
1277
1273
|
forbidden = section.settings.select { |setting| Puppet::Settings::EnvironmentConf::ENVIRONMENT_CONF_ONLY_SETTINGS.include?(setting.name) }
|
1278
|
-
raise(SettingsError, "Cannot set #{forbidden.map
|
1274
|
+
raise(SettingsError, "Cannot set #{forbidden.map(&:name).join(', ')} settings in puppet.conf") unless forbidden.empty?
|
1279
1275
|
end
|
1280
1276
|
end
|
1281
1277
|
|
@@ -1369,7 +1365,7 @@ Generated on #{Time.now}.
|
|
1369
1365
|
catalog.add_resource resource
|
1370
1366
|
end
|
1371
1367
|
group = setting.group
|
1372
|
-
if group && !%w
|
1368
|
+
if group && !%w[root wheel].include?(group) && catalog.resource(:group, group).nil?
|
1373
1369
|
catalog.add_resource Puppet::Resource.new(:group, group, :parameters => { :ensure => :present })
|
1374
1370
|
end
|
1375
1371
|
end
|
@@ -1383,7 +1379,7 @@ Generated on #{Time.now}.
|
|
1383
1379
|
# Read the file in.
|
1384
1380
|
# @api private
|
1385
1381
|
def read_file(file)
|
1386
|
-
|
1382
|
+
Puppet::FileSystem.read(file, :encoding => 'utf-8')
|
1387
1383
|
end
|
1388
1384
|
|
1389
1385
|
# Private method for internal test use only; allows to do a comprehensive clear of all settings between tests.
|
@@ -1410,14 +1406,13 @@ Generated on #{Time.now}.
|
|
1410
1406
|
# If they've specified neither, then the interpolation will fail and we'll
|
1411
1407
|
# get an exception.
|
1412
1408
|
#
|
1413
|
-
|
1414
|
-
|
1415
|
-
|
1416
|
-
|
1417
|
-
|
1418
|
-
|
1419
|
-
|
1420
|
-
end
|
1409
|
+
|
1410
|
+
true if self[:config]
|
1411
|
+
rescue InterpolationError
|
1412
|
+
# This means we failed to interpolate, which means that they didn't
|
1413
|
+
# explicitly specify either :config or :confdir... so we'll fall out to
|
1414
|
+
# the default value.
|
1415
|
+
false
|
1421
1416
|
end
|
1422
1417
|
private :explicit_config_file?
|
1423
1418
|
|
@@ -1448,7 +1443,7 @@ Generated on #{Time.now}.
|
|
1448
1443
|
end
|
1449
1444
|
if set
|
1450
1445
|
value = set.lookup(name)
|
1451
|
-
|
1446
|
+
unless value.nil?
|
1452
1447
|
return value
|
1453
1448
|
end
|
1454
1449
|
end
|
@@ -1516,7 +1511,7 @@ Generated on #{Time.now}.
|
|
1516
1511
|
when String
|
1517
1512
|
failed_environment_interpolation = false
|
1518
1513
|
interpolated_value = value.gsub(/\$(\w+)|\$\{(\w+)\}/) do |expression|
|
1519
|
-
varname =
|
1514
|
+
varname = ::Regexp.last_match(2) || ::Regexp.last_match(1)
|
1520
1515
|
interpolated_expression =
|
1521
1516
|
if varname != ENVIRONMENT_SETTING || ok_to_interpolate_environment(setting_name)
|
1522
1517
|
if varname == ENVIRONMENT_SETTING && @environment
|
@@ -1567,7 +1562,7 @@ Generated on #{Time.now}.
|
|
1567
1562
|
def set(name, value)
|
1568
1563
|
default = @defaults[name]
|
1569
1564
|
|
1570
|
-
|
1565
|
+
unless default
|
1571
1566
|
raise ArgumentError, _("Attempt to assign a value to unknown setting %{name}") % { name: name.inspect }
|
1572
1567
|
end
|
1573
1568
|
|
@@ -1588,7 +1583,7 @@ Generated on #{Time.now}.
|
|
1588
1583
|
end
|
1589
1584
|
|
1590
1585
|
def inspect
|
1591
|
-
%Q
|
1586
|
+
%Q(<#{self.class}:#{object_id} @name="#{@name}" @values="#{@values}">)
|
1592
1587
|
end
|
1593
1588
|
end
|
1594
1589
|
|
@@ -1612,7 +1607,7 @@ Generated on #{Time.now}.
|
|
1612
1607
|
end
|
1613
1608
|
|
1614
1609
|
def inspect
|
1615
|
-
%Q
|
1610
|
+
%Q(<#{self.class}:#{object_id} @name="#{@name}" @section="#{@section}">)
|
1616
1611
|
end
|
1617
1612
|
end
|
1618
1613
|
|
@@ -1649,7 +1644,7 @@ Generated on #{Time.now}.
|
|
1649
1644
|
end
|
1650
1645
|
|
1651
1646
|
def inspect
|
1652
|
-
%Q
|
1647
|
+
%Q(<#{self.class}:#{object_id} @environment_name="#{@environment_name}" @conf="#{@conf}">)
|
1653
1648
|
end
|
1654
1649
|
end
|
1655
1650
|
end
|
data/lib/puppet/ssl/base.rb
CHANGED
@@ -17,7 +17,7 @@ class Puppet::SSL::Base
|
|
17
17
|
end
|
18
18
|
|
19
19
|
def self.to_multiple_s(instances)
|
20
|
-
instances.collect
|
20
|
+
instances.collect(&:to_s).join(SEPARATOR)
|
21
21
|
end
|
22
22
|
|
23
23
|
def self.wraps(klass)
|
@@ -119,9 +119,7 @@ class Puppet::SSL::Base
|
|
119
119
|
end
|
120
120
|
|
121
121
|
def digest(algorithm = nil)
|
122
|
-
|
123
|
-
algorithm = digest_algorithm
|
124
|
-
end
|
122
|
+
algorithm ||= digest_algorithm
|
125
123
|
|
126
124
|
Puppet::SSL::Digest.new(algorithm, content.to_der)
|
127
125
|
end
|
@@ -209,29 +209,27 @@ class Puppet::SSL::CertificateRequest < Puppet::SSL::Base
|
|
209
209
|
# we need to prevent that field from being written to directly.
|
210
210
|
PRIVATE_CSR_ATTRIBUTES = [
|
211
211
|
'extReq', '1.2.840.113549.1.9.14',
|
212
|
-
'msExtReq', '1.3.6.1.4.1.311.2.1.14'
|
212
|
+
'msExtReq', '1.3.6.1.4.1.311.2.1.14'
|
213
213
|
]
|
214
214
|
|
215
215
|
def add_csr_attributes(csr, csr_attributes)
|
216
216
|
csr_attributes.each do |oid, value|
|
217
|
-
|
218
|
-
|
219
|
-
|
220
|
-
end
|
217
|
+
if PRIVATE_CSR_ATTRIBUTES.include? oid
|
218
|
+
raise ArgumentError, _("Cannot specify CSR attribute %{oid}: conflicts with internally used CSR attribute") % { oid: oid }
|
219
|
+
end
|
221
220
|
|
222
|
-
|
221
|
+
encoded = OpenSSL::ASN1::PrintableString.new(value.to_s)
|
223
222
|
|
224
|
-
|
225
|
-
|
226
|
-
|
227
|
-
|
228
|
-
|
229
|
-
end
|
223
|
+
attr_set = OpenSSL::ASN1::Set.new([encoded])
|
224
|
+
csr.add_attribute(OpenSSL::X509::Attribute.new(oid, attr_set))
|
225
|
+
Puppet.debug("Added csr attribute: #{oid} => #{attr_set.inspect}")
|
226
|
+
rescue OpenSSL::X509::AttributeError => e
|
227
|
+
raise Puppet::Error, _("Cannot create CSR with attribute %{oid}: %{message}") % { oid: oid, message: e.message }, e.backtrace
|
230
228
|
end
|
231
229
|
end
|
232
230
|
|
233
231
|
PRIVATE_EXTENSIONS = [
|
234
|
-
'subjectAltName', '2.5.29.17'
|
232
|
+
'subjectAltName', '2.5.29.17'
|
235
233
|
]
|
236
234
|
|
237
235
|
# @api private
|
@@ -240,16 +238,14 @@ class Puppet::SSL::CertificateRequest < Puppet::SSL::Base
|
|
240
238
|
|
241
239
|
if options[:extension_requests]
|
242
240
|
options[:extension_requests].each_pair do |oid, value|
|
243
|
-
|
244
|
-
|
245
|
-
raise Puppet::Error, _("Cannot specify CSR extension request %{oid}: conflicts with internally used extension request") % { oid: oid }
|
246
|
-
end
|
247
|
-
|
248
|
-
ext = OpenSSL::X509::Extension.new(oid, OpenSSL::ASN1::UTF8String.new(value.to_s).to_der, false)
|
249
|
-
extensions << ext
|
250
|
-
rescue OpenSSL::X509::ExtensionError => e
|
251
|
-
raise Puppet::Error, _("Cannot create CSR with extension request %{oid}: %{message}") % { oid: oid, message: e.message }, e.backtrace
|
241
|
+
if PRIVATE_EXTENSIONS.include? oid
|
242
|
+
raise Puppet::Error, _("Cannot specify CSR extension request %{oid}: conflicts with internally used extension request") % { oid: oid }
|
252
243
|
end
|
244
|
+
|
245
|
+
ext = OpenSSL::X509::Extension.new(oid, OpenSSL::ASN1::UTF8String.new(value.to_s).to_der, false)
|
246
|
+
extensions << ext
|
247
|
+
rescue OpenSSL::X509::ExtensionError => e
|
248
|
+
raise Puppet::Error, _("Cannot create CSR with extension request %{oid}: %{message}") % { oid: oid, message: e.message }, e.backtrace
|
253
249
|
end
|
254
250
|
end
|
255
251
|
|
@@ -23,18 +23,18 @@ class Puppet::SSL::CertificateRequestAttributes
|
|
23
23
|
Puppet.info(_("csr_attributes file loading from %{path}") % { path: path })
|
24
24
|
if Puppet::FileSystem.exist?(path)
|
25
25
|
hash = Puppet::Util::Yaml.safe_load_file(path, [Symbol]) || {}
|
26
|
-
|
26
|
+
unless hash.is_a?(Hash)
|
27
27
|
raise Puppet::Error, _("invalid CSR attributes, expected instance of Hash, received instance of %{klass}") % { klass: hash.class }
|
28
28
|
end
|
29
29
|
|
30
30
|
@custom_attributes = hash.delete('custom_attributes') || {}
|
31
31
|
@extension_requests = hash.delete('extension_requests') || {}
|
32
|
-
|
32
|
+
unless hash.keys.empty?
|
33
33
|
raise Puppet::Error, _("unexpected attributes %{keys} in %{path}") % { keys: hash.keys.inspect, path: @path.inspect }
|
34
34
|
end
|
35
35
|
|
36
36
|
return true
|
37
37
|
end
|
38
|
-
|
38
|
+
false
|
39
39
|
end
|
40
40
|
end
|
data/lib/puppet/ssl/oids.rb
CHANGED
@@ -73,7 +73,7 @@ module Puppet::SSL::Oids
|
|
73
73
|
["1.3.6.1.4.1.34380.1.3.1", 'pp_authorization', 'Certificate Extension Authorization'],
|
74
74
|
["1.3.6.1.4.1.34380.1.3.2", 'pp_auth_auto_renew', 'Auto-Renew Certificate Attribute'],
|
75
75
|
["1.3.6.1.4.1.34380.1.3.13", 'pp_auth_role', 'Puppet Node Role Name for Authorization'],
|
76
|
-
["1.3.6.1.4.1.34380.1.3.39", 'pp_cli_auth', 'Puppetserver CA CLI Authorization']
|
76
|
+
["1.3.6.1.4.1.34380.1.3.39", 'pp_cli_auth', 'Puppetserver CA CLI Authorization']
|
77
77
|
]
|
78
78
|
|
79
79
|
@did_register_puppet_oids = false
|
@@ -82,7 +82,7 @@ module Puppet::SSL::Oids
|
|
82
82
|
# extensions. Without registering these OIDs, OpenSSL will fail when it
|
83
83
|
# encounters such an extension in a CSR.
|
84
84
|
def self.register_puppet_oids
|
85
|
-
|
85
|
+
unless @did_register_puppet_oids
|
86
86
|
PUPPET_OIDS.each do |oid_defn|
|
87
87
|
OpenSSL::ASN1::ObjectId.register(*oid_defn)
|
88
88
|
end
|
@@ -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)
|