puppet 8.5.0-universal-darwin → 8.6.0-universal-darwin
Sign up to get free protection for your applications and to get access to all the features.
- 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
|