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
@@ -263,115 +263,114 @@ class Puppet::Application::Device < Puppet::Application
|
|
263
263
|
end
|
264
264
|
devices.collect do |_devicename, device|
|
265
265
|
# TODO when we drop support for ruby < 2.5 we can remove the extra block here
|
266
|
-
begin
|
267
|
-
device_url = URI.parse(device.url)
|
268
|
-
# Handle nil scheme & port
|
269
|
-
scheme = "#{device_url.scheme}://" if device_url.scheme
|
270
|
-
port = ":#{device_url.port}" if device_url.port
|
271
|
-
|
272
|
-
# override local $vardir and $certname
|
273
|
-
Puppet[:ssldir] = ::File.join(Puppet[:deviceconfdir], device.name, 'ssl')
|
274
|
-
Puppet[:confdir] = ::File.join(Puppet[:devicedir], device.name)
|
275
|
-
Puppet[:libdir] = options[:libdir] || ::File.join(Puppet[:devicedir], device.name, 'lib')
|
276
|
-
Puppet[:vardir] = ::File.join(Puppet[:devicedir], device.name)
|
277
|
-
Puppet[:certname] = device.name
|
278
|
-
ssl_context = nil
|
279
|
-
|
280
|
-
# create device directory under $deviceconfdir
|
281
|
-
Puppet::FileSystem.dir_mkpath(Puppet[:ssldir]) unless Puppet::FileSystem.dir_exist?(Puppet[:ssldir])
|
282
|
-
|
283
|
-
# this will reload and recompute default settings and create device-specific sub vardir
|
284
|
-
Puppet.settings.use :main, :agent, :ssl
|
285
|
-
|
286
|
-
# Workaround for PUP-8736: store ssl certs outside the cache directory to prevent accidental removal and keep the old path as symlink
|
287
|
-
optssldir = File.join(Puppet[:confdir], 'ssl')
|
288
|
-
Puppet::FileSystem.symlink(Puppet[:ssldir], optssldir) unless Puppet::FileSystem.exist?(optssldir)
|
289
|
-
|
290
|
-
unless options[:resource] || options[:facts] || options[:apply]
|
291
|
-
# Since it's too complicated to fix properly in the default settings, we workaround for PUP-9642 here.
|
292
|
-
# See https://github.com/puppetlabs/puppet/pull/7483#issuecomment-483455997 for details.
|
293
|
-
# This has to happen after `settings.use` above, so the directory is created and before `setup_host` below, where the SSL
|
294
|
-
# routines would fail with access errors
|
295
|
-
if Puppet.features.root? && !Puppet::Util::Platform.windows?
|
296
|
-
user = Puppet::Type.type(:user).new(name: Puppet[:user]).exists? ? Puppet[:user] : nil
|
297
|
-
group = Puppet::Type.type(:group).new(name: Puppet[:group]).exists? ? Puppet[:group] : nil
|
298
|
-
Puppet.debug("Fixing perms for #{user}:#{group} on #{Puppet[:confdir]}")
|
299
|
-
FileUtils.chown(user, group, Puppet[:confdir]) if user || group
|
300
|
-
end
|
301
266
|
|
302
|
-
|
267
|
+
device_url = URI.parse(device.url)
|
268
|
+
# Handle nil scheme & port
|
269
|
+
scheme = "#{device_url.scheme}://" if device_url.scheme
|
270
|
+
port = ":#{device_url.port}" if device_url.port
|
271
|
+
|
272
|
+
# override local $vardir and $certname
|
273
|
+
Puppet[:ssldir] = ::File.join(Puppet[:deviceconfdir], device.name, 'ssl')
|
274
|
+
Puppet[:confdir] = ::File.join(Puppet[:devicedir], device.name)
|
275
|
+
Puppet[:libdir] = options[:libdir] || ::File.join(Puppet[:devicedir], device.name, 'lib')
|
276
|
+
Puppet[:vardir] = ::File.join(Puppet[:devicedir], device.name)
|
277
|
+
Puppet[:certname] = device.name
|
278
|
+
ssl_context = nil
|
279
|
+
|
280
|
+
# create device directory under $deviceconfdir
|
281
|
+
Puppet::FileSystem.dir_mkpath(Puppet[:ssldir]) unless Puppet::FileSystem.dir_exist?(Puppet[:ssldir])
|
282
|
+
|
283
|
+
# this will reload and recompute default settings and create device-specific sub vardir
|
284
|
+
Puppet.settings.use :main, :agent, :ssl
|
285
|
+
|
286
|
+
# Workaround for PUP-8736: store ssl certs outside the cache directory to prevent accidental removal and keep the old path as symlink
|
287
|
+
optssldir = File.join(Puppet[:confdir], 'ssl')
|
288
|
+
Puppet::FileSystem.symlink(Puppet[:ssldir], optssldir) unless Puppet::FileSystem.exist?(optssldir)
|
289
|
+
|
290
|
+
unless options[:resource] || options[:facts] || options[:apply]
|
291
|
+
# Since it's too complicated to fix properly in the default settings, we workaround for PUP-9642 here.
|
292
|
+
# See https://github.com/puppetlabs/puppet/pull/7483#issuecomment-483455997 for details.
|
293
|
+
# This has to happen after `settings.use` above, so the directory is created and before `setup_host` below, where the SSL
|
294
|
+
# routines would fail with access errors
|
295
|
+
if Puppet.features.root? && !Puppet::Util::Platform.windows?
|
296
|
+
user = Puppet::Type.type(:user).new(name: Puppet[:user]).exists? ? Puppet[:user] : nil
|
297
|
+
group = Puppet::Type.type(:group).new(name: Puppet[:group]).exists? ? Puppet[:group] : nil
|
298
|
+
Puppet.debug("Fixing perms for #{user}:#{group} on #{Puppet[:confdir]}")
|
299
|
+
FileUtils.chown(user, group, Puppet[:confdir]) if user || group
|
300
|
+
end
|
301
|
+
|
302
|
+
ssl_context = setup_context
|
303
303
|
|
304
|
-
|
305
|
-
|
306
|
-
|
307
|
-
end
|
304
|
+
unless options[:libdir]
|
305
|
+
Puppet.override(ssl_context: ssl_context) do
|
306
|
+
Puppet::Configurer::PluginHandler.new.download_plugins(env) if Puppet::Configurer.should_pluginsync?
|
308
307
|
end
|
309
308
|
end
|
309
|
+
end
|
310
310
|
|
311
|
-
|
312
|
-
|
313
|
-
|
314
|
-
|
315
|
-
|
316
|
-
|
317
|
-
|
318
|
-
|
319
|
-
|
320
|
-
|
321
|
-
|
322
|
-
|
323
|
-
|
324
|
-
else
|
325
|
-
text = resources.map do |resource|
|
326
|
-
resource.prune_parameters(:parameters_to_include => @extra_params).to_manifest.force_encoding(Encoding.default_external)
|
327
|
-
end.join("\n")
|
328
|
-
end
|
329
|
-
(puts text)
|
330
|
-
0
|
331
|
-
elsif options[:facts]
|
332
|
-
Puppet.info _("retrieving facts from %{target} at %{scheme}%{url_host}%{port}%{url_path}") % { resource: type, target: device.name, scheme: scheme, url_host: device_url.host, port: port, url_path: device_url.path }
|
333
|
-
remote_facts = Puppet::Node::Facts.indirection.find(name, :environment => env)
|
334
|
-
# Give a proper name to the facts
|
335
|
-
remote_facts.name = remote_facts.values['clientcert']
|
336
|
-
renderer = Puppet::Network::FormatHandler.format(:console)
|
337
|
-
puts renderer.render(remote_facts)
|
338
|
-
0
|
339
|
-
elsif options[:apply]
|
340
|
-
# avoid reporting to server
|
341
|
-
Puppet::Transaction::Report.indirection.terminus_class = :yaml
|
342
|
-
Puppet::Resource::Catalog.indirection.cache_class = nil
|
343
|
-
|
344
|
-
require_relative '../../puppet/application/apply'
|
345
|
-
begin
|
346
|
-
Puppet[:node_terminus] = :plain
|
347
|
-
Puppet[:catalog_terminus] = :compiler
|
348
|
-
Puppet[:catalog_cache_terminus] = nil
|
349
|
-
Puppet[:facts_terminus] = :network_device
|
350
|
-
Puppet.override(:network_device => true) do
|
351
|
-
Puppet::Application::Apply.new(Puppet::Util::CommandLine.new('puppet', ["apply", options[:apply]])).run_command
|
352
|
-
end
|
353
|
-
end
|
311
|
+
# this inits the device singleton, so that the facts terminus
|
312
|
+
# and the various network_device provider can use it
|
313
|
+
Puppet::Util::NetworkDevice.init(device)
|
314
|
+
|
315
|
+
if options[:resource]
|
316
|
+
type, name = parse_args(command_line.args)
|
317
|
+
Puppet.info _("retrieving resource: %{resource} from %{target} at %{scheme}%{url_host}%{port}%{url_path}") % { resource: type, target: device.name, scheme: scheme, url_host: device_url.host, port: port, url_path: device_url.path }
|
318
|
+
resources = find_resources(type, name)
|
319
|
+
if options[:to_yaml]
|
320
|
+
data = resources.map do |resource|
|
321
|
+
resource.prune_parameters(:parameters_to_include => @extra_params).to_hiera_hash
|
322
|
+
end.inject(:merge!)
|
323
|
+
text = YAML.dump(type.downcase => data)
|
354
324
|
else
|
355
|
-
|
356
|
-
|
357
|
-
|
358
|
-
|
359
|
-
|
360
|
-
|
361
|
-
|
325
|
+
text = resources.map do |resource|
|
326
|
+
resource.prune_parameters(:parameters_to_include => @extra_params).to_manifest.force_encoding(Encoding.default_external)
|
327
|
+
end.join("\n")
|
328
|
+
end
|
329
|
+
(puts text)
|
330
|
+
0
|
331
|
+
elsif options[:facts]
|
332
|
+
Puppet.info _("retrieving facts from %{target} at %{scheme}%{url_host}%{port}%{url_path}") % { resource: type, target: device.name, scheme: scheme, url_host: device_url.host, port: port, url_path: device_url.path }
|
333
|
+
remote_facts = Puppet::Node::Facts.indirection.find(name, :environment => env)
|
334
|
+
# Give a proper name to the facts
|
335
|
+
remote_facts.name = remote_facts.values['clientcert']
|
336
|
+
renderer = Puppet::Network::FormatHandler.format(:console)
|
337
|
+
puts renderer.render(remote_facts)
|
338
|
+
0
|
339
|
+
elsif options[:apply]
|
340
|
+
# avoid reporting to server
|
341
|
+
Puppet::Transaction::Report.indirection.terminus_class = :yaml
|
342
|
+
Puppet::Resource::Catalog.indirection.cache_class = nil
|
343
|
+
|
344
|
+
require_relative '../../puppet/application/apply'
|
345
|
+
begin
|
346
|
+
Puppet[:node_terminus] = :plain
|
347
|
+
Puppet[:catalog_terminus] = :compiler
|
348
|
+
Puppet[:catalog_cache_terminus] = nil
|
349
|
+
Puppet[:facts_terminus] = :network_device
|
350
|
+
Puppet.override(:network_device => true) do
|
351
|
+
Puppet::Application::Apply.new(Puppet::Util::CommandLine.new('puppet', ["apply", options[:apply]])).run_command
|
362
352
|
end
|
363
353
|
end
|
364
|
-
|
365
|
-
Puppet.
|
366
|
-
|
367
|
-
|
368
|
-
|
369
|
-
Puppet
|
370
|
-
|
371
|
-
|
372
|
-
|
373
|
-
Puppet[:certname] = certname
|
354
|
+
else
|
355
|
+
Puppet.info _("starting applying configuration to %{target} at %{scheme}%{url_host}%{port}%{url_path}") % { target: device.name, scheme: scheme, url_host: device_url.host, port: port, url_path: device_url.path }
|
356
|
+
|
357
|
+
overrides = {}
|
358
|
+
overrides[:ssl_context] = ssl_context if ssl_context
|
359
|
+
Puppet.override(overrides) do
|
360
|
+
configurer = Puppet::Configurer.new
|
361
|
+
configurer.run(:network_device => true, :pluginsync => false)
|
362
|
+
end
|
374
363
|
end
|
364
|
+
rescue => detail
|
365
|
+
Puppet.log_exception(detail)
|
366
|
+
# If we rescued an error, then we return 1 as the exit code
|
367
|
+
1
|
368
|
+
ensure
|
369
|
+
Puppet[:libdir] = libdir
|
370
|
+
Puppet[:vardir] = vardir
|
371
|
+
Puppet[:confdir] = confdir
|
372
|
+
Puppet[:ssldir] = ssldir
|
373
|
+
Puppet[:certname] = certname
|
375
374
|
end
|
376
375
|
end
|
377
376
|
|
@@ -122,7 +122,7 @@ class Puppet::Application::Doc < Puppet::Application
|
|
122
122
|
end
|
123
123
|
|
124
124
|
def run_command
|
125
|
-
|
125
|
+
[:rdoc].include?(options[:mode]) ? send(options[:mode]) : other
|
126
126
|
end
|
127
127
|
|
128
128
|
def rdoc
|
@@ -74,7 +74,7 @@ class Puppet::Application::FaceBase < Puppet::Application
|
|
74
74
|
# non-option word to use as the action.
|
75
75
|
action_name = nil
|
76
76
|
index = -1
|
77
|
-
until action_name or (index += 1) >= command_line.args.length
|
77
|
+
until action_name or (index += 1) >= command_line.args.length
|
78
78
|
item = command_line.args[index]
|
79
79
|
if item =~ /^-/
|
80
80
|
option = @face.options.find do |name|
|
@@ -88,7 +88,7 @@ class Puppet::Application::FaceBase < Puppet::Application
|
|
88
88
|
# when we get there. --daniel 2011-04-04
|
89
89
|
if option.takes_argument? and !item.index('=')
|
90
90
|
index += 1 unless
|
91
|
-
|
91
|
+
option.optional_argument? and command_line.args[index + 1] =~ /^-/
|
92
92
|
end
|
93
93
|
else
|
94
94
|
option = find_global_settings_argument(item)
|
@@ -103,9 +103,9 @@ class Puppet::Application::FaceBase < Puppet::Application
|
|
103
103
|
else
|
104
104
|
option = find_application_argument(item)
|
105
105
|
if option
|
106
|
-
index += 1 if
|
106
|
+
index += 1 if option[:argument] and !(option[:optional])
|
107
107
|
else
|
108
|
-
raise OptionParser::InvalidOption
|
108
|
+
raise OptionParser::InvalidOption, item.sub(/=.*$/, '')
|
109
109
|
end
|
110
110
|
end
|
111
111
|
end
|
@@ -164,7 +164,7 @@ class Puppet::Application::FaceBase < Puppet::Application
|
|
164
164
|
pattern.match item and return object
|
165
165
|
end
|
166
166
|
end
|
167
|
-
|
167
|
+
nil # nothing found.
|
168
168
|
end
|
169
169
|
|
170
170
|
def find_application_argument(item)
|
@@ -181,7 +181,7 @@ class Puppet::Application::FaceBase < Puppet::Application
|
|
181
181
|
}
|
182
182
|
end
|
183
183
|
end
|
184
|
-
|
184
|
+
nil # not found
|
185
185
|
end
|
186
186
|
|
187
187
|
def setup
|
@@ -205,7 +205,7 @@ class Puppet::Application::FaceBase < Puppet::Application
|
|
205
205
|
@arguments << options
|
206
206
|
|
207
207
|
# If we don't have a rendering format, set one early.
|
208
|
-
self.render_as ||=
|
208
|
+
self.render_as ||= @action.render_as || :console
|
209
209
|
end
|
210
210
|
|
211
211
|
def main
|
@@ -213,7 +213,7 @@ class Puppet::Application::Filebucket < Puppet::Application
|
|
213
213
|
def run_command
|
214
214
|
@args = command_line.args
|
215
215
|
command = args.shift
|
216
|
-
return send(command) if %w
|
216
|
+
return send(command) if %w[get backup restore diff list].include? command
|
217
217
|
|
218
218
|
help
|
219
219
|
end
|
@@ -8,7 +8,7 @@ require_relative '../../puppet/parser/compiler'
|
|
8
8
|
class Puppet::Application::Lookup < Puppet::Application
|
9
9
|
RUN_HELP = _("Run 'puppet lookup --help' for more details").freeze
|
10
10
|
DEEP_MERGE_OPTIONS = '--knock-out-prefix, --sort-merged-arrays, and --merge-hash-arrays'
|
11
|
-
TRUSTED_INFORMATION_FACTS = [
|
11
|
+
TRUSTED_INFORMATION_FACTS = %w[hostname domain fqdn clientcert].freeze
|
12
12
|
|
13
13
|
run_mode :server
|
14
14
|
|
@@ -354,7 +354,7 @@ class Puppet::Application::Lookup < Puppet::Application
|
|
354
354
|
given_facts = Puppet::Util::Yaml.safe_load_file(fact_file)
|
355
355
|
else
|
356
356
|
given_facts = Puppet::Util::Json.load_file_if_valid(fact_file)
|
357
|
-
given_facts
|
357
|
+
given_facts ||= Puppet::Util::Yaml.safe_load_file_if_valid(fact_file)
|
358
358
|
end
|
359
359
|
|
360
360
|
unless given_facts.instance_of?(Hash)
|
@@ -369,7 +369,9 @@ class Puppet::Application::Lookup < Puppet::Application
|
|
369
369
|
end
|
370
370
|
end
|
371
371
|
|
372
|
-
|
372
|
+
if node.is_a?(Puppet::Node)
|
373
|
+
node.add_extra_facts(given_facts) if given_facts
|
374
|
+
else # to allow unit tests to pass a node instance
|
373
375
|
facts = retrieve_node_facts(node, given_facts)
|
374
376
|
ni = Puppet::Node.indirection
|
375
377
|
tc = ni.terminus_class
|
@@ -399,8 +401,6 @@ class Puppet::Application::Lookup < Puppet::Application
|
|
399
401
|
node = ni.find(node, facts: facts, environment: Puppet[:environment])
|
400
402
|
ni.terminus_class = tc
|
401
403
|
end
|
402
|
-
else
|
403
|
-
node.add_extra_facts(given_facts) if given_facts
|
404
404
|
end
|
405
405
|
node.environment = Puppet[:environment] if Puppet.settings.set_by_cli?(:environment)
|
406
406
|
Puppet[:code] = 'undef' unless options[:compile]
|
@@ -15,6 +15,7 @@ class Puppet::Application::Resource < Puppet::Application
|
|
15
15
|
option("--verbose", "-v")
|
16
16
|
option("--edit", "-e")
|
17
17
|
option("--to_yaml", "-y")
|
18
|
+
option('--fail', '-f')
|
18
19
|
|
19
20
|
option("--types", "-t") do |_arg|
|
20
21
|
env = Puppet.lookup(:environments).get(Puppet[:environment]) || create_default_environment
|
@@ -109,6 +110,9 @@ class Puppet::Application::Resource < Puppet::Application
|
|
109
110
|
Output found resources in yaml format, suitable to use with Hiera and
|
110
111
|
create_resources.
|
111
112
|
|
113
|
+
* --fail:
|
114
|
+
Fails and returns an exit code of 1 if the resource could not be modified.
|
115
|
+
|
112
116
|
EXAMPLE
|
113
117
|
-------
|
114
118
|
This example uses `puppet resource` to return a Puppet configuration for
|
@@ -207,7 +211,7 @@ class Puppet::Application::Resource < Puppet::Application
|
|
207
211
|
params = {}
|
208
212
|
args.each do |setting|
|
209
213
|
if setting =~ /^(\w+)=(.+)$/
|
210
|
-
params[
|
214
|
+
params[::Regexp.last_match(1)] = ::Regexp.last_match(2)
|
211
215
|
else
|
212
216
|
raise _("Invalid parameter setting %{setting}") % { setting: setting }
|
213
217
|
end
|
@@ -236,8 +240,11 @@ class Puppet::Application::Resource < Puppet::Application
|
|
236
240
|
resource = Puppet::Resource.new(type, name, :parameters => params)
|
237
241
|
|
238
242
|
# save returns [resource that was saved, transaction log from applying the resource]
|
239
|
-
save_result = Puppet::Resource.indirection.save(resource, key)
|
240
|
-
[
|
243
|
+
save_result, report = Puppet::Resource.indirection.save(resource, key)
|
244
|
+
status = report.resource_statuses[resource.ref]
|
245
|
+
raise "Failed to manage resource #{resource.ref}" if status&.failed? && options[:fail]
|
246
|
+
|
247
|
+
[save_result]
|
241
248
|
end
|
242
249
|
else
|
243
250
|
if type == "file"
|
@@ -160,7 +160,7 @@ class Puppet::Application::Ssl < Puppet::Application
|
|
160
160
|
|
161
161
|
clean(certname)
|
162
162
|
when 'bootstrap'
|
163
|
-
|
163
|
+
unless Puppet::Util::Log.sendlevel?(:info)
|
164
164
|
Puppet::Util::Log.level = :info
|
165
165
|
end
|
166
166
|
@machine.ensure_client_certificate
|
@@ -192,7 +192,7 @@ class Puppet::Application::Ssl < Puppet::Application
|
|
192
192
|
Puppet.notice _("Submitted certificate request for '%{name}' to %{url}") % { name: Puppet[:certname], url: route.url }
|
193
193
|
rescue Puppet::HTTP::ResponseError => e
|
194
194
|
if e.response.code == 400
|
195
|
-
raise Puppet::Error
|
195
|
+
raise Puppet::Error, _("Could not submit certificate request for '%{name}' to %{url} due to a conflict on the server") % { name: Puppet[:certname], url: route.url }
|
196
196
|
else
|
197
197
|
raise Puppet::Error.new(_("Failed to submit certificate request: %{message}") % { message: e.message }, e)
|
198
198
|
end
|
@@ -234,7 +234,7 @@ class Puppet::Application::Ssl < Puppet::Application
|
|
234
234
|
cert
|
235
235
|
rescue Puppet::HTTP::ResponseError => e
|
236
236
|
if e.response.code == 404
|
237
|
-
|
237
|
+
nil
|
238
238
|
else
|
239
239
|
raise Puppet::Error.new(_("Failed to download certificate: %{message}") % { message: e.message }, e)
|
240
240
|
end
|
data/lib/puppet/application.rb
CHANGED
@@ -180,14 +180,14 @@ class Application
|
|
180
180
|
def option(*options, &block)
|
181
181
|
long = options.find { |opt| opt =~ /^--/ }.gsub(/^--(?:\[no-\])?([^ =]+).*$/, '\1').tr('-', '_')
|
182
182
|
fname = "handle_#{long}".intern
|
183
|
-
if
|
183
|
+
if block_given?
|
184
184
|
define_method(fname, &block)
|
185
185
|
else
|
186
186
|
define_method(fname) do |value|
|
187
|
-
self.options[
|
187
|
+
self.options[long.to_s.to_sym] = value
|
188
188
|
end
|
189
189
|
end
|
190
|
-
|
190
|
+
option_parser_commands << [options, fname]
|
191
191
|
end
|
192
192
|
|
193
193
|
def banner(banner = nil)
|
@@ -242,7 +242,7 @@ class Application
|
|
242
242
|
#### eventually we need to issue a deprecation warning here,
|
243
243
|
#### and then get rid of this stanza in a subsequent release.
|
244
244
|
################################################################
|
245
|
-
if
|
245
|
+
if clazz.nil?
|
246
246
|
class_name = application_name.capitalize
|
247
247
|
clazz = try_load_class(class_name)
|
248
248
|
end
|
@@ -251,17 +251,17 @@ class Application
|
|
251
251
|
################################################################
|
252
252
|
|
253
253
|
if clazz.nil?
|
254
|
-
raise Puppet::Error
|
254
|
+
raise Puppet::Error, _("Unable to load application class '%{class_name}' from file 'puppet/application/%{application_name}.rb'") % { class_name: class_name, application_name: application_name }
|
255
255
|
end
|
256
256
|
|
257
|
-
|
257
|
+
clazz
|
258
258
|
end
|
259
259
|
|
260
260
|
# Given the fully qualified name of a class, attempt to get the class instance.
|
261
261
|
# @param [String] class_name the fully qualified name of the class to try to load
|
262
262
|
# @return [Class] the Class instance, or nil? if it could not be loaded.
|
263
263
|
def try_load_class(class_name)
|
264
|
-
|
264
|
+
const_defined?(class_name) ? const_get(class_name) : nil
|
265
265
|
end
|
266
266
|
private :try_load_class
|
267
267
|
|
@@ -284,7 +284,7 @@ class Application
|
|
284
284
|
Puppet.settings.preferred_run_mode = mode_name
|
285
285
|
end
|
286
286
|
|
287
|
-
return @run_mode if @run_mode and
|
287
|
+
return @run_mode if @run_mode and !mode_name
|
288
288
|
|
289
289
|
require_relative '../puppet/util/run_mode'
|
290
290
|
@run_mode = Puppet::Util::RunMode[mode_name || Puppet.settings.preferred_run_mode]
|
@@ -330,7 +330,7 @@ class Application
|
|
330
330
|
# See also `lib/puppet/util/command_line.rb` for some special case early
|
331
331
|
# handling of this.
|
332
332
|
option("--version", "-V") do |_arg|
|
333
|
-
puts
|
333
|
+
puts Puppet.version
|
334
334
|
exit(0)
|
335
335
|
end
|
336
336
|
|
@@ -452,7 +452,7 @@ class Application
|
|
452
452
|
# @return [void]
|
453
453
|
# @api public
|
454
454
|
def setup_logs
|
455
|
-
handle_logdest_arg(Puppet[:logdest])
|
455
|
+
handle_logdest_arg(Puppet[:logdest]) unless options[:setdest]
|
456
456
|
|
457
457
|
unless options[:setdest]
|
458
458
|
if options[:debug] || options[:verbose]
|
@@ -481,12 +481,10 @@ class Application
|
|
481
481
|
Puppet[:logdest] = arg
|
482
482
|
|
483
483
|
logdest.each do |dest|
|
484
|
-
|
485
|
-
|
486
|
-
|
487
|
-
|
488
|
-
Puppet.log_and_raise(detail, _("Could not set logdest to %{dest}.") % { dest: arg })
|
489
|
-
end
|
484
|
+
Puppet::Util::Log.newdestination(dest)
|
485
|
+
options[:setdest] = true
|
486
|
+
rescue => detail
|
487
|
+
Puppet.log_and_raise(detail, _("Could not set logdest to %{dest}.") % { dest: arg })
|
490
488
|
end
|
491
489
|
end
|
492
490
|
|
@@ -555,14 +553,14 @@ class Application
|
|
555
553
|
self.class.option_parser_commands.each do |options, fname|
|
556
554
|
option_parser.on(*options) do |value|
|
557
555
|
# Call the method that "option()" created.
|
558
|
-
|
556
|
+
send(fname, value)
|
559
557
|
end
|
560
558
|
end
|
561
559
|
|
562
560
|
# Scan command line. We just hand any exceptions to our upper levels,
|
563
561
|
# rather than printing help and exiting, so that we can meaningfully
|
564
562
|
# respond with context-sensitive help if we want to. --daniel 2011-04-12
|
565
|
-
option_parser.parse!(
|
563
|
+
option_parser.parse!(command_line.args)
|
566
564
|
end
|
567
565
|
|
568
566
|
def handlearg(opt, val)
|
data/lib/puppet/coercion.rb
CHANGED
@@ -20,7 +20,7 @@ class Puppet::Configurer::Downloader
|
|
20
20
|
if first_failure
|
21
21
|
event = (first_failure.events || []).first
|
22
22
|
detail = event ? event.message : 'unknown'
|
23
|
-
raise Puppet::Error
|
23
|
+
raise Puppet::Error, _("Failed to retrieve %{name}: %{detail}") % { name: name, detail: detail }
|
24
24
|
end
|
25
25
|
end
|
26
26
|
|
@@ -40,7 +40,12 @@ class Puppet::Configurer::Downloader
|
|
40
40
|
end
|
41
41
|
|
42
42
|
def initialize(name, path, source, ignore = nil, environment = nil, source_permissions = :ignore)
|
43
|
-
@name
|
43
|
+
@name = name
|
44
|
+
@path = path
|
45
|
+
@source = source
|
46
|
+
@ignore = ignore
|
47
|
+
@environment = environment
|
48
|
+
@source_permissions = source_permissions
|
44
49
|
end
|
45
50
|
|
46
51
|
def file
|
@@ -77,10 +82,10 @@ class Puppet::Configurer::Downloader
|
|
77
82
|
:noop => false,
|
78
83
|
:max_files => -1
|
79
84
|
}
|
80
|
-
|
85
|
+
unless Puppet::Util::Platform.windows?
|
81
86
|
defargs[:owner] = Process.uid
|
82
87
|
defargs[:group] = Process.gid
|
83
88
|
end
|
84
|
-
|
89
|
+
defargs
|
85
90
|
end
|
86
91
|
end
|
@@ -13,20 +13,19 @@ module Puppet::Configurer::FactHandler
|
|
13
13
|
# This works because puppet agent configures Facts to use 'facter' for
|
14
14
|
# finding facts and the 'rest' terminus for caching them. Thus, we'll
|
15
15
|
# compile them and then "cache" them on the server.
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
end
|
22
|
-
facts
|
23
|
-
rescue SystemExit, NoMemoryError
|
24
|
-
raise
|
25
|
-
rescue Exception => detail
|
26
|
-
message = _("Could not retrieve local facts: %{detail}") % { detail: detail }
|
27
|
-
Puppet.log_exception(detail, message)
|
28
|
-
raise Puppet::Error, message, detail.backtrace
|
16
|
+
|
17
|
+
facts = Puppet::Node::Facts.indirection.find(Puppet[:node_name_value], :environment => Puppet::Node::Environment.remote(@environment))
|
18
|
+
unless Puppet[:node_name_fact].empty?
|
19
|
+
Puppet[:node_name_value] = facts.values[Puppet[:node_name_fact]]
|
20
|
+
facts.name = Puppet[:node_name_value]
|
29
21
|
end
|
22
|
+
facts
|
23
|
+
rescue SystemExit, NoMemoryError
|
24
|
+
raise
|
25
|
+
rescue Exception => detail
|
26
|
+
message = _("Could not retrieve local facts: %{detail}") % { detail: detail }
|
27
|
+
Puppet.log_exception(detail, message)
|
28
|
+
raise Puppet::Error, message, detail.backtrace
|
30
29
|
end
|
31
30
|
|
32
31
|
def facts_for_uploading
|