puppet 8.5.1-universal-darwin → 8.7.0-universal-darwin
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/Gemfile +6 -2
- data/Gemfile.lock +55 -48
- data/Rakefile +45 -22
- data/examples/hiera/README.md +68 -57
- data/examples/hiera/data/common.yaml +12 -0
- data/examples/hiera/data/dc1.yaml +6 -0
- data/examples/hiera/hiera.yaml +15 -0
- data/examples/hiera/modules/ntp/data/common.yaml +4 -0
- data/examples/hiera/modules/ntp/hiera.yaml +9 -0
- data/examples/hiera/modules/ntp/manifests/config.pp +16 -4
- data/examples/hiera/modules/ntp/templates/ntp.conf.epp +3 -0
- data/examples/hiera/modules/users/manifests/common.pp +7 -2
- data/examples/hiera/modules/users/manifests/dc1.pp +7 -2
- data/examples/hiera/site.pp +1 -1
- data/ext/project_data.yaml +0 -45
- data/ext/windows/service/daemon.rb +49 -55
- data/lib/hiera/scope.rb +3 -3
- data/lib/hiera_puppet.rb +1 -1
- data/lib/puppet/agent/disabler.rb +1 -1
- data/lib/puppet/application/agent.rb +2 -2
- data/lib/puppet/application/apply.rb +2 -2
- data/lib/puppet/application/describe.rb +6 -6
- data/lib/puppet/application/device.rb +99 -100
- data/lib/puppet/application/doc.rb +1 -1
- data/lib/puppet/application/face_base.rb +7 -7
- data/lib/puppet/application/filebucket.rb +1 -1
- data/lib/puppet/application/lookup.rb +5 -5
- data/lib/puppet/application/resource.rb +10 -3
- data/lib/puppet/application/ssl.rb +3 -3
- data/lib/puppet/application.rb +16 -18
- data/lib/puppet/coercion.rb +1 -1
- data/lib/puppet/configurer/downloader.rb +9 -4
- data/lib/puppet/configurer/fact_handler.rb +12 -13
- data/lib/puppet/configurer.rb +16 -18
- data/lib/puppet/confine/feature.rb +1 -1
- data/lib/puppet/confine/variable.rb +1 -1
- data/lib/puppet/confine.rb +2 -2
- data/lib/puppet/confine_collection.rb +1 -1
- data/lib/puppet/confiner.rb +2 -2
- data/lib/puppet/daemon.rb +4 -3
- data/lib/puppet/datatypes.rb +5 -6
- data/lib/puppet/defaults.rb +14 -8
- data/lib/puppet/environments.rb +3 -7
- data/lib/puppet/error.rb +3 -3
- data/lib/puppet/external/dot.rb +42 -34
- data/lib/puppet/face/catalog/select.rb +1 -1
- data/lib/puppet/face/epp.rb +7 -9
- data/lib/puppet/face/help.rb +12 -12
- data/lib/puppet/face/module/changes.rb +1 -3
- data/lib/puppet/face/module/list.rb +37 -37
- data/lib/puppet/face/node/clean.rb +1 -1
- data/lib/puppet/face/parser.rb +6 -8
- data/lib/puppet/face/report.rb +5 -7
- data/lib/puppet/facter_impl.rb +1 -1
- data/lib/puppet/feature/base.rb +9 -11
- data/lib/puppet/feature/pe_license.rb +1 -1
- data/lib/puppet/feature/ssh.rb +1 -1
- data/lib/puppet/feature/telnet.rb +3 -5
- data/lib/puppet/feature/zlib.rb +1 -1
- data/lib/puppet/ffi/windows/constants.rb +1 -1
- data/lib/puppet/ffi/windows/functions.rb +2 -2
- data/lib/puppet/ffi/windows/structs.rb +3 -3
- data/lib/puppet/file_bucket/dipper.rb +4 -4
- data/lib/puppet/file_bucket/file.rb +4 -4
- data/lib/puppet/file_serving/base.rb +5 -5
- data/lib/puppet/file_serving/configuration/parser.rb +9 -9
- data/lib/puppet/file_serving/configuration.rb +3 -3
- data/lib/puppet/file_serving/fileset.rb +13 -13
- data/lib/puppet/file_serving/http_metadata.rb +1 -1
- data/lib/puppet/file_serving/metadata.rb +13 -9
- data/lib/puppet/file_serving/mount/file.rb +6 -6
- data/lib/puppet/file_serving/mount/locales.rb +2 -4
- data/lib/puppet/file_serving/mount/pluginfacts.rb +2 -4
- data/lib/puppet/file_serving/mount/plugins.rb +2 -4
- data/lib/puppet/file_serving/mount.rb +1 -1
- data/lib/puppet/file_system/file_impl.rb +3 -3
- data/lib/puppet/file_system/memory_impl.rb +1 -1
- data/lib/puppet/file_system/path_pattern.rb +1 -1
- data/lib/puppet/file_system/uniquefile.rb +17 -16
- data/lib/puppet/file_system/windows.rb +26 -18
- data/lib/puppet/forge/cache.rb +2 -2
- data/lib/puppet/forge/errors.rb +1 -1
- data/lib/puppet/forge/repository.rb +2 -2
- data/lib/puppet/forge.rb +13 -19
- data/lib/puppet/functions/abs.rb +2 -2
- data/lib/puppet/functions/camelcase.rb +1 -1
- data/lib/puppet/functions/compare.rb +2 -2
- data/lib/puppet/functions/contain.rb +1 -1
- data/lib/puppet/functions/defined.rb +2 -2
- data/lib/puppet/functions/dig.rb +1 -1
- data/lib/puppet/functions/eyaml_lookup_key.rb +11 -13
- data/lib/puppet/functions/get.rb +1 -1
- data/lib/puppet/functions/hocon_data.rb +3 -5
- data/lib/puppet/functions/import.rb +1 -1
- data/lib/puppet/functions/json_data.rb +4 -6
- data/lib/puppet/functions/max.rb +2 -2
- data/lib/puppet/functions/min.rb +2 -2
- data/lib/puppet/functions/new.rb +1 -1
- data/lib/puppet/functions/reduce.rb +6 -10
- data/lib/puppet/functions/regsubst.rb +2 -2
- data/lib/puppet/functions/require.rb +1 -1
- data/lib/puppet/functions/yaml_data.rb +11 -13
- data/lib/puppet/functions.rb +32 -37
- data/lib/puppet/generate/type.rb +2 -2
- data/lib/puppet/gettext/config.rb +9 -9
- data/lib/puppet/graph/rb_tree_map.rb +31 -23
- data/lib/puppet/graph/relationship_graph.rb +12 -12
- data/lib/puppet/graph/simple_graph.rb +8 -10
- data/lib/puppet/http/client.rb +1 -1
- data/lib/puppet/http/dns.rb +4 -4
- data/lib/puppet/http/external_client.rb +1 -1
- data/lib/puppet/http/factory.rb +1 -1
- data/lib/puppet/http/proxy.rb +15 -15
- data/lib/puppet/http/redirector.rb +6 -2
- data/lib/puppet/http/resolver.rb +2 -2
- data/lib/puppet/http/retry_after_handler.rb +2 -2
- data/lib/puppet/http/service/ca.rb +1 -1
- data/lib/puppet/http/service/compiler.rb +4 -4
- data/lib/puppet/http/service/file_server.rb +1 -1
- data/lib/puppet/http/service/report.rb +2 -2
- data/lib/puppet/http/service.rb +9 -13
- data/lib/puppet/http/session.rb +1 -1
- data/lib/puppet/http/site.rb +1 -1
- data/lib/puppet/indirector/catalog/compiler.rb +44 -45
- data/lib/puppet/indirector/catalog/rest.rb +7 -5
- data/lib/puppet/indirector/catalog/store_configs.rb +1 -1
- data/lib/puppet/indirector/exec.rb +2 -2
- data/lib/puppet/indirector/face.rb +7 -9
- data/lib/puppet/indirector/fact_search.rb +1 -1
- data/lib/puppet/indirector/facts/facter.rb +6 -6
- data/lib/puppet/indirector/facts/json.rb +1 -1
- data/lib/puppet/indirector/facts/store_configs.rb +1 -1
- data/lib/puppet/indirector/file_bucket_file/file.rb +17 -17
- data/lib/puppet/indirector/file_bucket_file/rest.rb +3 -3
- data/lib/puppet/indirector/file_content/rest.rb +1 -1
- data/lib/puppet/indirector/file_metadata/rest.rb +1 -1
- data/lib/puppet/indirector/hiera.rb +1 -1
- data/lib/puppet/indirector/indirection.rb +27 -29
- data/lib/puppet/indirector/json.rb +4 -4
- data/lib/puppet/indirector/memory.rb +2 -2
- data/lib/puppet/indirector/msgpack.rb +5 -5
- data/lib/puppet/indirector/node/store_configs.rb +1 -1
- data/lib/puppet/indirector/none.rb +1 -1
- data/lib/puppet/indirector/report/json.rb +1 -1
- data/lib/puppet/indirector/report/yaml.rb +1 -1
- data/lib/puppet/indirector/request.rb +4 -4
- data/lib/puppet/indirector/resource/ral.rb +2 -4
- data/lib/puppet/indirector/resource/store_configs.rb +1 -1
- data/lib/puppet/indirector/terminus.rb +4 -4
- data/lib/puppet/indirector/yaml.rb +3 -3
- data/lib/puppet/info_service/class_information_service.rb +5 -8
- data/lib/puppet/info_service/task_information_service.rb +6 -7
- data/lib/puppet/interface/action.rb +5 -5
- data/lib/puppet/interface/action_manager.rb +5 -5
- data/lib/puppet/interface/documentation.rb +5 -5
- data/lib/puppet/interface/face_collection.rb +7 -7
- data/lib/puppet/interface/option.rb +2 -2
- data/lib/puppet/interface/option_manager.rb +6 -6
- data/lib/puppet/interface.rb +4 -4
- data/lib/puppet/metatype/manager.rb +2 -2
- data/lib/puppet/module/plan.rb +10 -10
- data/lib/puppet/module/task.rb +8 -8
- data/lib/puppet/module.rb +39 -41
- data/lib/puppet/module_tool/applications/application.rb +10 -8
- data/lib/puppet/module_tool/applications/installer.rb +53 -50
- data/lib/puppet/module_tool/applications/unpacker.rb +6 -8
- data/lib/puppet/module_tool/applications/upgrader.rb +37 -34
- data/lib/puppet/module_tool/checksums.rb +2 -2
- data/lib/puppet/module_tool/dependency.rb +1 -1
- data/lib/puppet/module_tool/errors/base.rb +1 -1
- data/lib/puppet/module_tool/install_directory.rb +1 -1
- data/lib/puppet/module_tool/local_tarball.rb +3 -5
- data/lib/puppet/module_tool/metadata.rb +12 -8
- data/lib/puppet/module_tool/shared_behaviors.rb +27 -12
- data/lib/puppet/module_tool/tar/mini.rb +3 -3
- data/lib/puppet/module_tool.rb +4 -4
- data/lib/puppet/network/client_request.rb +5 -3
- data/lib/puppet/network/format.rb +2 -2
- data/lib/puppet/network/format_support.rb +1 -1
- data/lib/puppet/network/formats.rb +1 -1
- data/lib/puppet/network/http/api/indirected_routes.rb +24 -44
- data/lib/puppet/network/http/api/server/v3.rb +1 -1
- data/lib/puppet/network/http/connection.rb +1 -1
- data/lib/puppet/network/http/handler.rb +8 -12
- data/lib/puppet/network/http/request.rb +1 -1
- data/lib/puppet/network/http/route.rb +9 -9
- data/lib/puppet/node/environment.rb +21 -23
- data/lib/puppet/node/facts.rb +1 -1
- data/lib/puppet/node.rb +5 -5
- data/lib/puppet/pal/json_catalog_encoder.rb +1 -1
- data/lib/puppet/pal/pal_impl.rb +48 -50
- data/lib/puppet/pal/plan_signature.rb +1 -1
- data/lib/puppet/pal/task_signature.rb +1 -1
- data/lib/puppet/parameter/package_options.rb +1 -1
- data/lib/puppet/parameter/value.rb +2 -2
- data/lib/puppet/parameter/value_collection.rb +7 -7
- data/lib/puppet/parameter.rb +8 -9
- data/lib/puppet/parser/ast/block_expression.rb +2 -2
- data/lib/puppet/parser/ast/hostclass.rb +1 -1
- data/lib/puppet/parser/ast/pops_bridge.rb +3 -4
- data/lib/puppet/parser/ast/resource.rb +4 -4
- data/lib/puppet/parser/ast/resourceparam.rb +4 -4
- data/lib/puppet/parser/ast.rb +14 -15
- data/lib/puppet/parser/compiler.rb +26 -28
- data/lib/puppet/parser/functions/create_resources.rb +3 -3
- data/lib/puppet/parser/functions/fail.rb +1 -1
- data/lib/puppet/parser/functions/generate.rb +2 -2
- data/lib/puppet/parser/functions/tag.rb +1 -1
- data/lib/puppet/parser/functions.rb +2 -2
- data/lib/puppet/parser/relationship.rb +3 -1
- data/lib/puppet/parser/resource/param.rb +2 -2
- data/lib/puppet/parser/resource.rb +23 -23
- data/lib/puppet/parser/scope.rb +10 -10
- data/lib/puppet/parser/script_compiler.rb +1 -1
- data/lib/puppet/parser/templatewrapper.rb +1 -1
- data/lib/puppet/parser/type_loader.rb +10 -12
- data/lib/puppet/parser.rb +1 -1
- data/lib/puppet/pops/adaptable.rb +1 -1
- data/lib/puppet/pops/evaluator/access_operator.rb +8 -8
- data/lib/puppet/pops/evaluator/callable_signature.rb +4 -4
- data/lib/puppet/pops/evaluator/collector_transformer.rb +4 -4
- data/lib/puppet/pops/evaluator/collectors/abstract_collector.rb +7 -7
- data/lib/puppet/pops/evaluator/collectors/fixed_set_collector.rb +6 -6
- data/lib/puppet/pops/evaluator/compare_operator.rb +10 -10
- data/lib/puppet/pops/evaluator/deferred_resolver.rb +1 -1
- data/lib/puppet/pops/evaluator/epp_evaluator.rb +2 -2
- data/lib/puppet/pops/evaluator/evaluator_impl.rb +56 -60
- data/lib/puppet/pops/evaluator/relationship_operator.rb +2 -2
- data/lib/puppet/pops/evaluator/runtime3_converter.rb +3 -3
- data/lib/puppet/pops/evaluator/runtime3_support.rb +1 -1
- data/lib/puppet/pops/functions/dispatcher.rb +3 -3
- data/lib/puppet/pops/functions/function.rb +14 -16
- data/lib/puppet/pops/issue_reporter.rb +2 -2
- data/lib/puppet/pops/label_provider.rb +2 -2
- data/lib/puppet/pops/loader/dependency_loader.rb +3 -3
- data/lib/puppet/pops/loader/loader.rb +4 -4
- data/lib/puppet/pops/loader/loader_paths.rb +3 -3
- data/lib/puppet/pops/loader/module_loaders.rb +11 -11
- data/lib/puppet/pops/loader/ruby_data_type_instantiator.rb +1 -1
- data/lib/puppet/pops/loader/ruby_function_instantiator.rb +1 -1
- data/lib/puppet/pops/loader/ruby_legacy_function_instantiator.rb +5 -1
- data/lib/puppet/pops/loader/static_loader.rb +5 -5
- data/lib/puppet/pops/loaders.rb +3 -3
- data/lib/puppet/pops/lookup/data_dig_function_provider.rb +1 -1
- data/lib/puppet/pops/lookup/explainer.rb +2 -2
- data/lib/puppet/pops/lookup/global_data_provider.rb +1 -1
- data/lib/puppet/pops/lookup/hiera_config.rb +15 -11
- data/lib/puppet/pops/lookup/interpolation.rb +3 -3
- data/lib/puppet/pops/lookup/key_recorder.rb +1 -1
- data/lib/puppet/pops/lookup/location_resolver.rb +1 -1
- data/lib/puppet/pops/lookup/lookup_adapter.rb +7 -7
- data/lib/puppet/pops/lookup/module_data_provider.rb +9 -9
- data/lib/puppet/pops/lookup/sub_lookup.rb +1 -1
- data/lib/puppet/pops/merge_strategy.rb +6 -6
- data/lib/puppet/pops/migration/migration_checker.rb +1 -1
- data/lib/puppet/pops/model/ast_transformer.rb +9 -11
- data/lib/puppet/pops/model/factory.rb +4 -5
- data/lib/puppet/pops/parser/epp_parser.rb +2 -2
- data/lib/puppet/pops/parser/epp_support.rb +1 -1
- data/lib/puppet/pops/parser/evaluating_parser.rb +2 -2
- data/lib/puppet/pops/parser/heredoc_support.rb +4 -4
- data/lib/puppet/pops/parser/interpolation_support.rb +3 -3
- data/lib/puppet/pops/parser/lexer2.rb +20 -12
- data/lib/puppet/pops/parser/lexer_support.rb +1 -1
- data/lib/puppet/pops/parser/locator.rb +4 -4
- data/lib/puppet/pops/parser/parser_support.rb +12 -14
- data/lib/puppet/pops/parser/pn_parser.rb +3 -3
- data/lib/puppet/pops/parser/slurp_support.rb +8 -8
- data/lib/puppet/pops/patterns.rb +12 -12
- data/lib/puppet/pops/pcore.rb +1 -1
- data/lib/puppet/pops/pn.rb +2 -2
- data/lib/puppet/pops/puppet_stack.rb +1 -1
- data/lib/puppet/pops/resource/resource_type_impl.rb +1 -1
- data/lib/puppet/pops/serialization/abstract_reader.rb +2 -2
- data/lib/puppet/pops/serialization/abstract_writer.rb +3 -3
- data/lib/puppet/pops/time/timestamp.rb +1 -1
- data/lib/puppet/pops/types/class_loader.rb +4 -6
- data/lib/puppet/pops/types/iterable.rb +1 -1
- data/lib/puppet/pops/types/p_binary_type.rb +1 -1
- data/lib/puppet/pops/types/p_init_type.rb +1 -1
- data/lib/puppet/pops/types/p_object_type.rb +5 -5
- data/lib/puppet/pops/types/p_object_type_extension.rb +4 -6
- data/lib/puppet/pops/types/p_sem_ver_range_type.rb +1 -1
- data/lib/puppet/pops/types/p_sensitive_type.rb +1 -1
- data/lib/puppet/pops/types/p_timespan_type.rb +2 -2
- data/lib/puppet/pops/types/p_type_set_type.rb +10 -10
- data/lib/puppet/pops/types/p_uri_type.rb +4 -4
- data/lib/puppet/pops/types/recursion_guard.rb +4 -4
- data/lib/puppet/pops/types/ruby_generator.rb +2 -2
- data/lib/puppet/pops/types/string_converter.rb +12 -8
- data/lib/puppet/pops/types/tree_iterators.rb +4 -6
- data/lib/puppet/pops/types/type_calculator.rb +10 -10
- data/lib/puppet/pops/types/type_factory.rb +7 -3
- data/lib/puppet/pops/types/type_formatter.rb +22 -24
- data/lib/puppet/pops/types/type_mismatch_describer.rb +24 -24
- data/lib/puppet/pops/types/types.rb +28 -24
- data/lib/puppet/pops/utils.rb +38 -42
- data/lib/puppet/pops/validation/checker4_0.rb +10 -10
- data/lib/puppet/pops/validation/tasks_checker.rb +1 -1
- data/lib/puppet/pops/validation/validator_factory_4_0.rb +1 -1
- data/lib/puppet/pops/validation.rb +4 -4
- data/lib/puppet/pops/visitor.rb +2 -2
- data/lib/puppet/property/ensure.rb +12 -14
- data/lib/puppet/property/keyvalue.rb +4 -4
- data/lib/puppet/property/list.rb +4 -4
- data/lib/puppet/property/ordered_list.rb +1 -1
- data/lib/puppet/property.rb +31 -33
- data/lib/puppet/provider/aix_object.rb +1 -1
- data/lib/puppet/provider/exec.rb +2 -2
- data/lib/puppet/provider/file/posix.rb +19 -17
- data/lib/puppet/provider/file/windows.rb +13 -19
- data/lib/puppet/provider/group/directoryservice.rb +3 -2
- data/lib/puppet/provider/group/groupadd.rb +32 -11
- data/lib/puppet/provider/group/windows_adsi.rb +2 -2
- data/lib/puppet/provider/nameservice/directoryservice.rb +29 -29
- data/lib/puppet/provider/nameservice/objectadd.rb +2 -4
- data/lib/puppet/provider/nameservice/pw.rb +1 -2
- data/lib/puppet/provider/nameservice.rb +8 -8
- data/lib/puppet/provider/package/aix.rb +19 -19
- data/lib/puppet/provider/package/appdmg.rb +2 -2
- data/lib/puppet/provider/package/apple.rb +1 -1
- data/lib/puppet/provider/package/apt.rb +18 -18
- data/lib/puppet/provider/package/aptitude.rb +1 -3
- data/lib/puppet/provider/package/aptrpm.rb +9 -9
- data/lib/puppet/provider/package/blastwave.rb +10 -14
- data/lib/puppet/provider/package/dnfmodule.rb +3 -3
- data/lib/puppet/provider/package/dpkg.rb +11 -13
- data/lib/puppet/provider/package/fink.rb +14 -14
- data/lib/puppet/provider/package/freebsd.rb +1 -1
- data/lib/puppet/provider/package/gem.rb +12 -14
- data/lib/puppet/provider/package/macports.rb +2 -2
- data/lib/puppet/provider/package/nim.rb +10 -10
- data/lib/puppet/provider/package/openbsd.rb +22 -22
- data/lib/puppet/provider/package/opkg.rb +6 -6
- data/lib/puppet/provider/package/pacman.rb +35 -29
- data/lib/puppet/provider/package/pip.rb +25 -24
- data/lib/puppet/provider/package/pkg.rb +15 -15
- data/lib/puppet/provider/package/pkgdmg.rb +10 -10
- data/lib/puppet/provider/package/pkgin.rb +2 -2
- data/lib/puppet/provider/package/pkgng.rb +5 -5
- data/lib/puppet/provider/package/pkgutil.rb +17 -21
- data/lib/puppet/provider/package/portage.rb +59 -61
- data/lib/puppet/provider/package/ports.rb +12 -11
- data/lib/puppet/provider/package/portupgrade.rb +35 -35
- data/lib/puppet/provider/package/puppetserver_gem.rb +10 -9
- data/lib/puppet/provider/package/rpm.rb +26 -26
- data/lib/puppet/provider/package/rug.rb +7 -9
- data/lib/puppet/provider/package/sun.rb +4 -4
- data/lib/puppet/provider/package/up2date.rb +5 -7
- data/lib/puppet/provider/package/urpmi.rb +6 -6
- data/lib/puppet/provider/package/windows/exe_package.rb +7 -7
- data/lib/puppet/provider/package/windows/msi_package.rb +3 -3
- data/lib/puppet/provider/package/windows/package.rb +2 -2
- data/lib/puppet/provider/package/windows.rb +3 -5
- data/lib/puppet/provider/package/xbps.rb +127 -0
- data/lib/puppet/provider/package/yum.rb +33 -37
- data/lib/puppet/provider/package/zypper.rb +12 -14
- data/lib/puppet/provider/package.rb +1 -1
- data/lib/puppet/provider/package_targetable.rb +1 -1
- data/lib/puppet/provider/parsedfile.rb +9 -9
- data/lib/puppet/provider/service/base.rb +16 -21
- data/lib/puppet/provider/service/bsd.rb +4 -4
- data/lib/puppet/provider/service/daemontools.rb +31 -31
- data/lib/puppet/provider/service/debian.rb +6 -6
- data/lib/puppet/provider/service/freebsd.rb +36 -36
- data/lib/puppet/provider/service/gentoo.rb +6 -6
- data/lib/puppet/provider/service/init.rb +19 -19
- data/lib/puppet/provider/service/launchd.rb +22 -22
- data/lib/puppet/provider/service/openbsd.rb +10 -10
- data/lib/puppet/provider/service/openrc.rb +1 -1
- data/lib/puppet/provider/service/openwrt.rb +3 -3
- data/lib/puppet/provider/service/rcng.rb +3 -3
- data/lib/puppet/provider/service/redhat.rb +4 -4
- data/lib/puppet/provider/service/runit.rb +6 -6
- data/lib/puppet/provider/service/service.rb +5 -7
- data/lib/puppet/provider/service/smf.rb +28 -27
- data/lib/puppet/provider/service/src.rb +7 -7
- data/lib/puppet/provider/service/systemd.rb +31 -37
- data/lib/puppet/provider/service/upstart.rb +17 -17
- data/lib/puppet/provider/service/windows.rb +7 -7
- data/lib/puppet/provider/user/aix.rb +4 -2
- data/lib/puppet/provider/user/directoryservice.rb +34 -36
- data/lib/puppet/provider/user/hpux.rb +10 -14
- data/lib/puppet/provider/user/pw.rb +1 -1
- data/lib/puppet/provider/user/user_role_add.rb +16 -18
- data/lib/puppet/provider/user/useradd.rb +7 -7
- data/lib/puppet/provider/user/windows_adsi.rb +1 -1
- data/lib/puppet/provider.rb +8 -8
- data/lib/puppet/reference/indirection.rb +3 -0
- data/lib/puppet/reference/metaparameter.rb +1 -1
- data/lib/puppet/reference/providers.rb +3 -3
- data/lib/puppet/reference/type.rb +1 -1
- data/lib/puppet/relationship.rb +4 -5
- data/lib/puppet/reports/http.rb +1 -1
- data/lib/puppet/reports/log.rb +2 -2
- data/lib/puppet/reports/store.rb +4 -4
- data/lib/puppet/reports.rb +2 -2
- data/lib/puppet/resource/catalog.rb +16 -16
- data/lib/puppet/resource/status.rb +3 -3
- data/lib/puppet/resource/type.rb +8 -8
- data/lib/puppet/resource/type_collection.rb +1 -1
- data/lib/puppet/resource.rb +41 -41
- data/lib/puppet/scheduler/scheduler.rb +1 -1
- data/lib/puppet/scheduler/splay_job.rb +9 -0
- data/lib/puppet/settings/alias_setting.rb +3 -5
- data/lib/puppet/settings/base_setting.rb +11 -11
- data/lib/puppet/settings/boolean_setting.rb +2 -2
- data/lib/puppet/settings/config_file.rb +5 -4
- data/lib/puppet/settings/duration_setting.rb +2 -2
- data/lib/puppet/settings/environment_conf.rb +3 -3
- data/lib/puppet/settings/file_or_directory_setting.rb +2 -2
- data/lib/puppet/settings/file_setting.rb +11 -11
- data/lib/puppet/settings/ini_file.rb +3 -3
- data/lib/puppet/settings/port_setting.rb +1 -1
- data/lib/puppet/settings/priority_setting.rb +2 -2
- data/lib/puppet/settings/ttl_setting.rb +2 -2
- data/lib/puppet/settings/value_translator.rb +8 -8
- data/lib/puppet/settings.rb +65 -70
- data/lib/puppet/ssl/base.rb +2 -4
- data/lib/puppet/ssl/certificate_request.rb +18 -22
- data/lib/puppet/ssl/certificate_request_attributes.rb +3 -3
- data/lib/puppet/ssl/oids.rb +2 -2
- data/lib/puppet/ssl/openssl_loader.rb +4 -4
- data/lib/puppet/syntax_checkers/base64.rb +3 -3
- data/lib/puppet/syntax_checkers/epp.rb +3 -3
- data/lib/puppet/syntax_checkers/json.rb +3 -3
- data/lib/puppet/syntax_checkers/pp.rb +3 -3
- data/lib/puppet/transaction/additional_resource_generator.rb +1 -1
- data/lib/puppet/transaction/event.rb +2 -2
- data/lib/puppet/transaction/event_manager.rb +5 -5
- data/lib/puppet/transaction/persistence.rb +12 -14
- data/lib/puppet/transaction/report.rb +4 -4
- data/lib/puppet/transaction/resource_harness.rb +2 -2
- data/lib/puppet/transaction.rb +14 -18
- data/lib/puppet/type/component.rb +3 -3
- data/lib/puppet/type/exec.rb +51 -45
- data/lib/puppet/type/file/checksum_value.rb +1 -1
- data/lib/puppet/type/file/content.rb +6 -6
- data/lib/puppet/type/file/ctime.rb +2 -2
- data/lib/puppet/type/file/data_sync.rb +3 -3
- data/lib/puppet/type/file/ensure.rb +16 -15
- data/lib/puppet/type/file/mode.rb +9 -9
- data/lib/puppet/type/file/mtime.rb +2 -2
- data/lib/puppet/type/file/selcontext.rb +14 -14
- data/lib/puppet/type/file/source.rb +19 -21
- data/lib/puppet/type/file/target.rb +11 -11
- data/lib/puppet/type/file.rb +21 -21
- data/lib/puppet/type/filebucket.rb +3 -3
- data/lib/puppet/type/group.rb +3 -3
- data/lib/puppet/type/notify.rb +2 -2
- data/lib/puppet/type/package.rb +4 -4
- data/lib/puppet/type/resources.rb +6 -6
- data/lib/puppet/type/schedule.rb +9 -9
- data/lib/puppet/type/service.rb +6 -8
- data/lib/puppet/type/tidy.rb +22 -24
- data/lib/puppet/type/user.rb +13 -13
- data/lib/puppet/type.rb +76 -88
- data/lib/puppet/util/at_fork/solaris.rb +33 -37
- data/lib/puppet/util/autoload.rb +2 -2
- data/lib/puppet/util/backups.rb +9 -9
- data/lib/puppet/util/character_encoding.rb +7 -6
- data/lib/puppet/util/checksums.rb +2 -2
- data/lib/puppet/util/classgen.rb +8 -8
- data/lib/puppet/util/colors.rb +1 -1
- data/lib/puppet/util/command_line/puppet_option_parser.rb +1 -1
- data/lib/puppet/util/command_line/trollop.rb +60 -46
- data/lib/puppet/util/command_line.rb +2 -2
- data/lib/puppet/util/constant_inflector.rb +2 -2
- data/lib/puppet/util/diff.rb +19 -21
- data/lib/puppet/util/docs.rb +2 -2
- data/lib/puppet/util/errors.rb +9 -9
- data/lib/puppet/util/execution.rb +32 -9
- data/lib/puppet/util/feature.rb +1 -1
- data/lib/puppet/util/fileparsing.rb +12 -16
- data/lib/puppet/util/filetype.rb +36 -40
- data/lib/puppet/util/inifile.rb +6 -12
- data/lib/puppet/util/ldap/connection.rb +1 -1
- data/lib/puppet/util/ldap/manager.rb +10 -12
- data/lib/puppet/util/lockfile.rb +6 -8
- data/lib/puppet/util/log/destination.rb +2 -2
- data/lib/puppet/util/log/destinations.rb +4 -4
- data/lib/puppet/util/log.rb +12 -9
- data/lib/puppet/util/logging.rb +11 -11
- data/lib/puppet/util/metric.rb +3 -3
- data/lib/puppet/util/monkey_patches.rb +5 -7
- data/lib/puppet/util/network_device/config.rb +3 -3
- data/lib/puppet/util/package/version/debian.rb +27 -28
- data/lib/puppet/util/package/version/pip.rb +5 -5
- data/lib/puppet/util/package/version/range/eq.rb +1 -1
- data/lib/puppet/util/package/version/rpm.rb +1 -1
- data/lib/puppet/util/package.rb +2 -2
- data/lib/puppet/util/pidlock.rb +2 -2
- data/lib/puppet/util/platform.rb +1 -1
- data/lib/puppet/util/plist.rb +8 -10
- data/lib/puppet/util/posix.rb +17 -17
- data/lib/puppet/util/profiler/aggregate.rb +1 -1
- data/lib/puppet/util/provider_features.rb +3 -3
- data/lib/puppet/util/rdoc/code_objects.rb +3 -3
- data/lib/puppet/util/rdoc/generators/puppet_generator.rb +63 -64
- data/lib/puppet/util/rdoc/generators/template/puppet/puppet.rb +23 -23
- data/lib/puppet/util/rdoc/parser/puppet_parser_core.rb +12 -12
- data/lib/puppet/util/rdoc/parser/puppet_parser_rdoc2.rb +1 -1
- data/lib/puppet/util/rdoc/parser.rb +1 -1
- data/lib/puppet/util/reference.rb +13 -9
- data/lib/puppet/util/retry_action.rb +1 -1
- data/lib/puppet/util/rpm_compare.rb +18 -19
- data/lib/puppet/util/rubygems.rb +1 -1
- data/lib/puppet/util/selinux.rb +7 -7
- data/lib/puppet/util/storage.rb +10 -12
- data/lib/puppet/util/suidmanager.rb +18 -19
- data/lib/puppet/util/symbolic_file_mode.rb +71 -75
- data/lib/puppet/util/tag_set.rb +2 -2
- data/lib/puppet/util/tagging.rb +8 -10
- data/lib/puppet/util/terminal.rb +4 -4
- data/lib/puppet/util/user_attr.rb +7 -7
- data/lib/puppet/util/watcher.rb +3 -5
- data/lib/puppet/util/windows/access_control_list.rb +1 -1
- data/lib/puppet/util/windows/adsi.rb +42 -42
- data/lib/puppet/util/windows/com.rb +2 -2
- data/lib/puppet/util/windows/daemon.rb +64 -68
- data/lib/puppet/util/windows/error.rb +2 -2
- data/lib/puppet/util/windows/file.rb +18 -25
- data/lib/puppet/util/windows/monkey_patches/process.rb +1 -1
- data/lib/puppet/util/windows/principal.rb +8 -8
- data/lib/puppet/util/windows/process.rb +16 -28
- data/lib/puppet/util/windows/registry.rb +16 -15
- data/lib/puppet/util/windows/root_certs.rb +2 -2
- data/lib/puppet/util/windows/security.rb +31 -31
- data/lib/puppet/util/windows/service.rb +11 -11
- data/lib/puppet/util/windows/sid.rb +8 -8
- data/lib/puppet/util/windows/user.rb +18 -20
- data/lib/puppet/util/yaml.rb +1 -1
- data/lib/puppet/util.rb +55 -46
- data/lib/puppet/version.rb +2 -2
- data/lib/puppet/x509/pem_store.rb +1 -1
- data/lib/puppet.rb +3 -3
- data/locales/puppet.pot +604 -600
- data/man/man5/puppet.conf.5 +10 -2
- data/man/man8/puppet-agent.8 +1 -1
- data/man/man8/puppet-apply.8 +1 -1
- data/man/man8/puppet-catalog.8 +1 -1
- data/man/man8/puppet-config.8 +1 -1
- data/man/man8/puppet-describe.8 +1 -1
- data/man/man8/puppet-device.8 +1 -1
- data/man/man8/puppet-doc.8 +1 -1
- data/man/man8/puppet-epp.8 +1 -1
- data/man/man8/puppet-facts.8 +1 -1
- data/man/man8/puppet-filebucket.8 +1 -1
- data/man/man8/puppet-generate.8 +1 -1
- data/man/man8/puppet-help.8 +1 -1
- data/man/man8/puppet-lookup.8 +1 -1
- data/man/man8/puppet-module.8 +1 -1
- data/man/man8/puppet-node.8 +1 -1
- data/man/man8/puppet-parser.8 +1 -1
- data/man/man8/puppet-plugin.8 +1 -1
- data/man/man8/puppet-report.8 +1 -1
- data/man/man8/puppet-resource.8 +5 -1
- data/man/man8/puppet-script.8 +1 -1
- data/man/man8/puppet-ssl.8 +1 -1
- data/man/man8/puppet.8 +2 -2
- metadata +23 -27
- data/examples/hiera/etc/hiera.yaml +0 -15
- data/examples/hiera/etc/hieradb/common.yaml +0 -3
- data/examples/hiera/etc/hieradb/dc1.yaml +0 -6
- data/examples/hiera/etc/hieradb/development.yaml +0 -2
- data/examples/hiera/etc/puppet.conf +0 -3
- data/examples/hiera/modules/data/manifests/common.pp +0 -4
- data/examples/hiera/modules/ntp/manifests/data.pp +0 -4
- data/examples/hiera/modules/ntp/templates/ntp.conf.erb +0 -3
- data/examples/hiera/modules/users/manifests/development.pp +0 -4
- data/tasks/benchmark.rake +0 -180
- data/tasks/cfpropertylist.rake +0 -15
- data/tasks/ci.rake +0 -24
- data/tasks/generate_ast_model.rake +0 -90
- data/tasks/generate_cert_fixtures.rake +0 -199
- data/tasks/manpages.rake +0 -67
- data/tasks/memwalk.rake +0 -195
- data/tasks/parallel.rake +0 -410
- data/tasks/parser.rake +0 -22
- data/tasks/yard.rake +0 -59
data/ext/project_data.yaml
CHANGED
@@ -1,53 +1,8 @@
|
|
1
1
|
---
|
2
2
|
project: 'puppet'
|
3
|
-
author: 'Puppet Labs'
|
4
|
-
email: 'info@puppetlabs.com'
|
5
|
-
homepage: 'https://github.com/puppetlabs/puppet'
|
6
|
-
summary: 'Puppet, an automated configuration management tool'
|
7
|
-
description: 'Puppet, an automated configuration management tool'
|
8
|
-
version_file: 'lib/puppet/version.rb'
|
9
|
-
# files and gem_files are space separated lists
|
10
|
-
files: '[A-Z]* install.rb bin lib conf man examples ext tasks locales'
|
11
|
-
# Make sure these gem requirements are in sync with the gemspec and Gemfile
|
12
|
-
gem_files: '[A-Z]* install.rb bin lib conf man examples ext tasks locales'
|
13
|
-
gem_test_files:
|
14
|
-
gem_executables: 'puppet'
|
15
|
-
gem_default_executables: 'puppet'
|
16
|
-
gem_license: 'Apache-2.0'
|
17
|
-
gem_forge_project: 'puppet'
|
18
|
-
gem_required_ruby_version: '>= 3.1.0'
|
19
|
-
gem_required_rubygems_version: '> 1.3.1'
|
20
|
-
gem_runtime_dependencies:
|
21
|
-
facter: ['>= 4.3.0', '< 5']
|
22
|
-
semantic_puppet: '~> 1.0'
|
23
|
-
fast_gettext: ['>= 2.1', '< 3']
|
24
|
-
locale: '~> 2.1'
|
25
|
-
multi_json: '~> 1.13'
|
26
|
-
puppet-resource_api: '~>1.5'
|
27
|
-
concurrent-ruby: "~> 1.0"
|
28
|
-
deep_merge: '~> 1.0'
|
29
|
-
scanf: '~> 1.0'
|
30
3
|
gem_rdoc_options:
|
31
4
|
- --title
|
32
5
|
- "Puppet - Configuration Management"
|
33
6
|
- --main
|
34
7
|
- README.md
|
35
8
|
- --line-numbers
|
36
|
-
gem_platform_dependencies:
|
37
|
-
universal-darwin:
|
38
|
-
gem_runtime_dependencies:
|
39
|
-
CFPropertyList: '~> 2.2'
|
40
|
-
x86-mingw32:
|
41
|
-
gem_runtime_dependencies:
|
42
|
-
ffi: '1.15.5'
|
43
|
-
minitar: '~> 0.9'
|
44
|
-
x64-mingw32:
|
45
|
-
gem_runtime_dependencies:
|
46
|
-
ffi: '1.15.5'
|
47
|
-
minitar: '~> 0.9'
|
48
|
-
bundle_platforms:
|
49
|
-
universal-darwin: all
|
50
|
-
x86-mingw32: mingw
|
51
|
-
x64-mingw32: x64_mingw
|
52
|
-
pre_tasks:
|
53
|
-
'package:apple': 'cfpropertylist'
|
@@ -36,7 +36,7 @@ class WindowsDaemon < Puppet::Util::Windows::Daemon
|
|
36
36
|
|
37
37
|
@LOG_TO_FILE = (argsv.index('--logtofile') ? true : false)
|
38
38
|
|
39
|
-
if
|
39
|
+
if @LOG_TO_FILE
|
40
40
|
FileUtils.mkdir_p(File.dirname(LOG_FILE))
|
41
41
|
args = args.gsub("--logtofile", "")
|
42
42
|
end
|
@@ -75,25 +75,23 @@ class WindowsDaemon < Puppet::Util::Windows::Daemon
|
|
75
75
|
|
76
76
|
service = self
|
77
77
|
@run_thread = Thread.new do
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
service.log_debug("Service is paused. Not invoking Puppet agent")
|
88
|
-
end
|
89
|
-
|
90
|
-
service.log_debug("Service worker thread waiting for #{runinterval} seconds")
|
91
|
-
sleep(runinterval)
|
92
|
-
service.log_debug('Service worker thread woken up')
|
78
|
+
while service.running?
|
79
|
+
runinterval = service.parse_runinterval(ruby_puppet_cmd)
|
80
|
+
|
81
|
+
if service.state == RUNNING or service.state == IDLE
|
82
|
+
service.log_notice("Executing agent with arguments: #{args}")
|
83
|
+
pid = Process.create(:command_line => "#{ruby_puppet_cmd} agent --onetime #{args}", :creation_flags => CREATE_NEW_CONSOLE).process_id
|
84
|
+
service.log_debug("Process created: #{pid}")
|
85
|
+
else
|
86
|
+
service.log_debug("Service is paused. Not invoking Puppet agent")
|
93
87
|
end
|
94
|
-
|
95
|
-
service.
|
88
|
+
|
89
|
+
service.log_debug("Service worker thread waiting for #{runinterval} seconds")
|
90
|
+
sleep(runinterval)
|
91
|
+
service.log_debug('Service worker thread woken up')
|
96
92
|
end
|
93
|
+
rescue Exception => e
|
94
|
+
service.log_exception(e)
|
97
95
|
end
|
98
96
|
@run_thread.join
|
99
97
|
rescue Exception => e
|
@@ -131,7 +129,7 @@ class WindowsDaemon < Puppet::Util::Windows::Daemon
|
|
131
129
|
|
132
130
|
def log(msg, level)
|
133
131
|
if LEVELS.index(level) >= @loglevel
|
134
|
-
if
|
132
|
+
if @LOG_TO_FILE
|
135
133
|
# without this change its possible that we get Encoding errors trying to write UTF-8 messages in current codepage
|
136
134
|
File.open(LOG_FILE, 'a:UTF-8') { |f| f.puts("#{Time.now} Puppet (#{level}): #{msg}") }
|
137
135
|
end
|
@@ -142,26 +140,24 @@ class WindowsDaemon < Puppet::Util::Windows::Daemon
|
|
142
140
|
end
|
143
141
|
|
144
142
|
def report_windows_event(type, id, message)
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
eventlog.close
|
158
|
-
end
|
143
|
+
eventlog = nil
|
144
|
+
eventlog = Puppet::Util::Windows::EventLog.open("Puppet")
|
145
|
+
eventlog.report_event(
|
146
|
+
:event_type => type, # EVENTLOG_ERROR_TYPE, etc
|
147
|
+
:event_id => id, # 0x01 or 0x02, 0x03 etc.
|
148
|
+
:data => message # "the message"
|
149
|
+
)
|
150
|
+
rescue Exception
|
151
|
+
# Ignore all errors
|
152
|
+
ensure
|
153
|
+
unless eventlog.nil?
|
154
|
+
eventlog.close
|
159
155
|
end
|
160
156
|
end
|
161
157
|
|
162
158
|
def parse_runinterval(puppet_path)
|
163
159
|
begin
|
164
|
-
runinterval = %x
|
160
|
+
runinterval = %x(#{puppet_path} config --section agent --log_level notice print runinterval).to_i
|
165
161
|
if runinterval == 0
|
166
162
|
runinterval = 1800
|
167
163
|
log_err("Failed to determine runinterval, defaulting to #{runinterval} seconds")
|
@@ -176,7 +172,7 @@ class WindowsDaemon < Puppet::Util::Windows::Daemon
|
|
176
172
|
|
177
173
|
def parse_log_level(puppet_path, cmdline_debug)
|
178
174
|
begin
|
179
|
-
loglevel = %x
|
175
|
+
loglevel = %x(#{puppet_path} config --section agent --log_level notice print log_level).chomp
|
180
176
|
unless loglevel && respond_to?("log_#{loglevel}")
|
181
177
|
loglevel = :notice
|
182
178
|
log_err("Failed to determine loglevel, defaulting to #{loglevel}")
|
@@ -186,33 +182,31 @@ class WindowsDaemon < Puppet::Util::Windows::Daemon
|
|
186
182
|
loglevel = :notice
|
187
183
|
end
|
188
184
|
|
189
|
-
LEVELS.index(cmdline_debug
|
185
|
+
LEVELS.index(cmdline_debug || loglevel.to_sym)
|
190
186
|
end
|
191
187
|
|
192
188
|
private
|
193
189
|
|
194
190
|
def load_env(base_dir)
|
195
|
-
|
196
|
-
|
197
|
-
|
198
|
-
|
199
|
-
|
200
|
-
|
201
|
-
|
202
|
-
|
203
|
-
|
204
|
-
|
205
|
-
|
206
|
-
|
207
|
-
|
208
|
-
|
209
|
-
|
210
|
-
|
211
|
-
log_exception(e)
|
212
|
-
end
|
191
|
+
# ENV that uses backward slashes
|
192
|
+
ENV['FACTER_env_windows_installdir'] = base_dir.tr('/', '\\')
|
193
|
+
ENV['PL_BASEDIR'] = base_dir.tr('/', '\\')
|
194
|
+
ENV['PUPPET_DIR'] = File.join(base_dir, 'puppet').tr('/', '\\')
|
195
|
+
ENV['OPENSSL_CONF'] = File.join(base_dir, 'puppet', 'ssl', 'openssl.cnf').tr('/', '\\')
|
196
|
+
ENV['SSL_CERT_DIR'] = File.join(base_dir, 'puppet', 'ssl', 'certs').tr('/', '\\')
|
197
|
+
ENV['SSL_CERT_FILE'] = File.join(base_dir, 'puppet', 'ssl', 'cert.pem').tr('/', '\\')
|
198
|
+
ENV['Path'] = [
|
199
|
+
File.join(base_dir, 'puppet', 'bin'),
|
200
|
+
File.join(base_dir, 'bin')
|
201
|
+
].join(';').tr('/', '\\') + ';' + ENV.fetch('Path', nil)
|
202
|
+
|
203
|
+
# ENV that uses forward slashes
|
204
|
+
ENV['RUBYLIB'] = "#{File.join(base_dir, 'puppet', 'lib')};#{ENV.fetch('RUBYLIB', nil)}"
|
205
|
+
rescue => e
|
206
|
+
log_exception(e)
|
213
207
|
end
|
214
208
|
end
|
215
209
|
|
216
|
-
if __FILE__ == $
|
210
|
+
if __FILE__ == $PROGRAM_NAME
|
217
211
|
WindowsDaemon.mainloop
|
218
212
|
end
|
data/lib/hiera/scope.rb
CHANGED
@@ -77,11 +77,11 @@ class Hiera
|
|
77
77
|
|
78
78
|
def find_hostclass(scope)
|
79
79
|
if scope.source and scope.source.type == :hostclass
|
80
|
-
|
80
|
+
scope.source.name.downcase
|
81
81
|
elsif scope.parent
|
82
|
-
|
82
|
+
find_hostclass(scope.parent)
|
83
83
|
else
|
84
|
-
|
84
|
+
nil
|
85
85
|
end
|
86
86
|
end
|
87
87
|
private :find_hostclass
|
data/lib/hiera_puppet.rb
CHANGED
@@ -441,7 +441,7 @@ class Puppet::Application::Agent < Puppet::Application
|
|
441
441
|
|
442
442
|
daemon.stop(:exit => false)
|
443
443
|
|
444
|
-
if
|
444
|
+
if !exitstatus
|
445
445
|
exit(1)
|
446
446
|
elsif options[:detailed_exitcodes] then
|
447
447
|
exit(exitstatus)
|
@@ -509,7 +509,7 @@ class Puppet::Application::Agent < Puppet::Application
|
|
509
509
|
end
|
510
510
|
|
511
511
|
def setup_agent
|
512
|
-
agent = Puppet::Agent.new(Puppet::Configurer, (
|
512
|
+
agent = Puppet::Agent.new(Puppet::Configurer, !(Puppet[:onetime]))
|
513
513
|
|
514
514
|
enable_disable_client(agent) if options[:enable] or options[:disable]
|
515
515
|
|
@@ -224,7 +224,7 @@ class Puppet::Application::Apply < Puppet::Application
|
|
224
224
|
$stderr.puts _("%{file} is not readable") % { file: file }
|
225
225
|
exit(63)
|
226
226
|
end
|
227
|
-
node.classes = Puppet::FileSystem.read(file, :encoding => 'utf-8').split(
|
227
|
+
node.classes = Puppet::FileSystem.read(file, :encoding => 'utf-8').split(/\s+/)
|
228
228
|
end
|
229
229
|
end
|
230
230
|
|
@@ -276,7 +276,7 @@ class Puppet::Application::Apply < Puppet::Application
|
|
276
276
|
|
277
277
|
exit_status = apply_catalog(catalog)
|
278
278
|
|
279
|
-
if
|
279
|
+
if !exit_status
|
280
280
|
exit(1)
|
281
281
|
elsif options[:detailed_exitcodes] then
|
282
282
|
exit(exit_status)
|
@@ -11,7 +11,7 @@ class Formatter
|
|
11
11
|
return "" unless txt && !txt.empty?
|
12
12
|
|
13
13
|
work = (opts[:scrub] ? scrub(txt) : txt)
|
14
|
-
indent =
|
14
|
+
indent = opts[:indent] || 0
|
15
15
|
textLen = @width - indent
|
16
16
|
patt = Regexp.new("\\A(.{0,#{textLen}})[ \n]")
|
17
17
|
prefix = " " * indent
|
@@ -20,8 +20,8 @@ class Formatter
|
|
20
20
|
|
21
21
|
while work.length > textLen
|
22
22
|
if work =~ patt
|
23
|
-
res <<
|
24
|
-
work.slice!(0,
|
23
|
+
res << ::Regexp.last_match(1)
|
24
|
+
work.slice!(0, ::Regexp.last_match(0).length)
|
25
25
|
else
|
26
26
|
res << work.slice!(0, textLen)
|
27
27
|
end
|
@@ -43,10 +43,10 @@ class Formatter
|
|
43
43
|
# If we can match an indentation, then just remove that same level of
|
44
44
|
# indent from every line.
|
45
45
|
if text =~ /^(\s+)/
|
46
|
-
indent =
|
47
|
-
|
46
|
+
indent = ::Regexp.last_match(1)
|
47
|
+
text.gsub(/^#{indent}/, '')
|
48
48
|
else
|
49
|
-
|
49
|
+
text
|
50
50
|
end
|
51
51
|
end
|
52
52
|
end
|
@@ -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]
|