puppet 8.5.1-x64-mingw32 → 8.6.0-x64-mingw32
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/Gemfile.lock +23 -20
- 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/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 +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/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
@@ -76,7 +76,11 @@ module Puppet::ModuleTool
|
|
76
76
|
vstring = mod.version ? "v#{mod.version}" : '???'
|
77
77
|
Puppet.notice _("Found '%{name}' (%{version}) in %{dir} ...") % { name: name, version: colorize(:cyan, vstring), dir: dir }
|
78
78
|
unless @ignore_changes
|
79
|
-
changes =
|
79
|
+
changes = begin
|
80
|
+
Checksummer.run(mod.path)
|
81
|
+
rescue
|
82
|
+
[]
|
83
|
+
end
|
80
84
|
if mod.has_metadata? && !changes.empty?
|
81
85
|
raise LocalChangesError,
|
82
86
|
:action => :upgrade,
|
@@ -117,22 +121,22 @@ module Puppet::ModuleTool
|
|
117
121
|
|
118
122
|
version = release.version
|
119
123
|
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
124
|
+
next if forced?
|
125
|
+
|
126
|
+
# Since upgrading already installed modules can be troublesome,
|
127
|
+
# we'll place constraints on the graph for each installed
|
128
|
+
# module, locking it to upgrades within the same major version.
|
129
|
+
installed_range = ">=#{version} #{version.major}.x"
|
130
|
+
graph.add_constraint('installed', installed_module, installed_range) do |node|
|
131
|
+
Puppet::Module.parse_range(installed_range).include? node.version
|
132
|
+
end
|
128
133
|
|
129
|
-
|
130
|
-
|
134
|
+
release.mod.dependencies.each do |dep|
|
135
|
+
dep_name = dep['name'].tr('/', '-')
|
131
136
|
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
end
|
137
|
+
range = dep['version_requirement']
|
138
|
+
graph.add_constraint("#{installed_module} constraint", dep_name, range) do |node|
|
139
|
+
Puppet::Module.parse_range(range).include? node.version
|
136
140
|
end
|
137
141
|
end
|
138
142
|
end
|
@@ -146,30 +150,29 @@ module Puppet::ModuleTool
|
|
146
150
|
|
147
151
|
releases.each do |rel|
|
148
152
|
mod = installed_modules_source.by_name[rel.name.split('-').last]
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
end
|
158
|
-
|
159
|
-
raise InstallConflictError,
|
160
|
-
:requested_module => name,
|
161
|
-
:requested_version => options[:version] || 'latest',
|
162
|
-
:dependency => dependency,
|
163
|
-
:directory => mod.path,
|
164
|
-
:metadata => mod.metadata
|
153
|
+
next unless mod
|
154
|
+
next if mod.has_metadata? && mod.forge_name.tr('/', '-') == rel.name
|
155
|
+
|
156
|
+
if rel.name != name
|
157
|
+
dependency = {
|
158
|
+
:name => rel.name,
|
159
|
+
:version => rel.version
|
160
|
+
}
|
165
161
|
end
|
162
|
+
|
163
|
+
raise InstallConflictError,
|
164
|
+
:requested_module => name,
|
165
|
+
:requested_version => options[:version] || 'latest',
|
166
|
+
:dependency => dependency,
|
167
|
+
:directory => mod.path,
|
168
|
+
:metadata => mod.metadata
|
166
169
|
end
|
167
170
|
|
168
171
|
child = releases.find { |x| x.name == name }
|
169
172
|
|
170
173
|
unless forced?
|
171
174
|
if child.version == results[:installed_version]
|
172
|
-
versions = graph.dependencies[name].map
|
175
|
+
versions = graph.dependencies[name].map(&:version)
|
173
176
|
newer_versions = versions.select { |v| v > results[:installed_version] }
|
174
177
|
|
175
178
|
raise VersionAlreadyInstalledError,
|
@@ -187,7 +190,7 @@ module Puppet::ModuleTool
|
|
187
190
|
end
|
188
191
|
|
189
192
|
Puppet.info _("Preparing to upgrade ...")
|
190
|
-
releases.each
|
193
|
+
releases.each(&:prepare)
|
191
194
|
|
192
195
|
Puppet.notice _('Upgrading -- do not interrupt ...')
|
193
196
|
releases.each do |release|
|
@@ -268,7 +271,7 @@ module Puppet::ModuleTool
|
|
268
271
|
end
|
269
272
|
end
|
270
273
|
|
271
|
-
|
274
|
+
{
|
272
275
|
:release => release,
|
273
276
|
:name => release.name,
|
274
277
|
:path => release.install_dir,
|
@@ -19,7 +19,7 @@ module Puppet::ModuleTool
|
|
19
19
|
|
20
20
|
# Return checksum for the +Pathname+.
|
21
21
|
def checksum(pathname)
|
22
|
-
|
22
|
+
Digest::MD5.hexdigest(Puppet::FileSystem.binread(pathname))
|
23
23
|
end
|
24
24
|
|
25
25
|
# Return checksums for object's +Pathname+, generate if it's needed.
|
@@ -36,7 +36,7 @@ module Puppet::ModuleTool
|
|
36
36
|
end
|
37
37
|
end
|
38
38
|
end
|
39
|
-
|
39
|
+
@data
|
40
40
|
end
|
41
41
|
|
42
42
|
alias :to_data_hash :data
|
@@ -36,7 +36,7 @@ module Puppet
|
|
36
36
|
}
|
37
37
|
|
38
38
|
def converted_to_friendly_error(module_name, version, orig_error)
|
39
|
-
return orig_error
|
39
|
+
return orig_error unless ERROR_MAPPINGS.include?(orig_error.class)
|
40
40
|
|
41
41
|
ERROR_MAPPINGS[orig_error.class].new(orig_error,
|
42
42
|
:requested_module => module_name,
|
@@ -84,11 +84,9 @@ module Puppet::ModuleTool
|
|
84
84
|
# rubocop:enable Naming/MemoizedInstanceVariableName
|
85
85
|
|
86
86
|
def unpack(file, destination)
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
raise RuntimeError, _("Could not extract contents of module archive: %{message}") % { message: e.message }
|
91
|
-
end
|
87
|
+
Puppet::ModuleTool::Applications::Unpacker.unpack(file, destination)
|
88
|
+
rescue Puppet::ExecutionFailure => e
|
89
|
+
raise RuntimeError, _("Could not extract contents of module archive: %{message}") % { message: e.message }
|
92
90
|
end
|
93
91
|
end
|
94
92
|
end
|
@@ -58,7 +58,7 @@ module Puppet::ModuleTool
|
|
58
58
|
merge_dependencies(data) if data['dependencies']
|
59
59
|
|
60
60
|
@data.merge!(data)
|
61
|
-
|
61
|
+
self
|
62
62
|
end
|
63
63
|
|
64
64
|
# Validates the name and version_requirement for a dependency, then creates
|
@@ -102,7 +102,11 @@ module Puppet::ModuleTool
|
|
102
102
|
data = @data.dup.merge('dependencies' => dependencies)
|
103
103
|
|
104
104
|
contents = data.keys.map do |k|
|
105
|
-
value =
|
105
|
+
value = begin
|
106
|
+
Puppet::Util::Json.dump(data[k], :pretty => true)
|
107
|
+
rescue
|
108
|
+
data[k].to_json
|
109
|
+
end
|
106
110
|
%Q("#{k}": #{value})
|
107
111
|
end
|
108
112
|
|
@@ -121,7 +125,7 @@ module Puppet::ModuleTool
|
|
121
125
|
# Do basic validation and parsing of the name parameter.
|
122
126
|
def process_name(data)
|
123
127
|
validate_name(data['name'])
|
124
|
-
author, @module_name = data['name'].split(
|
128
|
+
author, @module_name = data['name'].split(%r{[-/]}, 2)
|
125
129
|
|
126
130
|
data['author'] ||= author if @data['author'] == DEFAULTS['author']
|
127
131
|
end
|
@@ -139,7 +143,7 @@ module Puppet::ModuleTool
|
|
139
143
|
# GitHub, we can predict sensible defaults for both project_page and
|
140
144
|
# issues_url.
|
141
145
|
def process_source(data)
|
142
|
-
if data['source'] =~ %r
|
146
|
+
if data['source'] =~ %r{://}
|
143
147
|
source_uri = URI.parse(data['source'])
|
144
148
|
else
|
145
149
|
source_uri = URI.parse("http://#{data['source']}")
|
@@ -149,10 +153,10 @@ module Puppet::ModuleTool
|
|
149
153
|
source_uri.scheme = 'https'
|
150
154
|
source_uri.path.sub!(/\.git$/, '')
|
151
155
|
data['project_page'] ||= @data['project_page'] || source_uri.to_s
|
152
|
-
data['issues_url'] ||= @data['issues_url'] || source_uri.to_s.sub(
|
156
|
+
data['issues_url'] ||= @data['issues_url'] || source_uri.to_s.sub(%r{/*$}, '') + '/issues'
|
153
157
|
end
|
154
158
|
rescue URI::Error
|
155
|
-
|
159
|
+
nil
|
156
160
|
end
|
157
161
|
|
158
162
|
# Validates and parses the dependencies.
|
@@ -167,9 +171,9 @@ module Puppet::ModuleTool
|
|
167
171
|
|
168
172
|
# Validates that the given module name is both namespaced and well-formed.
|
169
173
|
def validate_name(name)
|
170
|
-
return if name =~
|
174
|
+
return if name =~ %r{\A[a-z0-9]+[-/][a-z][a-z0-9_]*\Z}i
|
171
175
|
|
172
|
-
namespace, modname = name.split(
|
176
|
+
namespace, modname = name.split(%r{[-/]}, 2)
|
173
177
|
modname = :namespace_missing if namespace == ''
|
174
178
|
|
175
179
|
err = case modname
|
@@ -13,7 +13,8 @@ module Puppet::ModuleTool::Shared
|
|
13
13
|
@installed[mod_name] << mod
|
14
14
|
d = @local["#{mod_name}@#{mod.version}"]
|
15
15
|
(mod.dependencies || []).each do |hash|
|
16
|
-
name
|
16
|
+
name = hash['name']
|
17
|
+
conditions = hash['version_requirement']
|
17
18
|
name = name.tr('/', '-')
|
18
19
|
d[name] = conditions
|
19
20
|
@conditions[name] << {
|
@@ -37,7 +38,11 @@ module Puppet::ModuleTool::Shared
|
|
37
38
|
mod_name, releases = pair
|
38
39
|
mod_name = mod_name.tr('/', '-')
|
39
40
|
releases.each do |rel|
|
40
|
-
semver =
|
41
|
+
semver = begin
|
42
|
+
SemanticPuppet::Version.parse(rel['version'])
|
43
|
+
rescue
|
44
|
+
SemanticPuppet::Version::MIN
|
45
|
+
end
|
41
46
|
@versions[mod_name] << { :vstring => rel['version'], :semver => semver }
|
42
47
|
@versions[mod_name].sort_by! { |a| a[:semver] }
|
43
48
|
@urls["#{mod_name}@#{rel['version']}"] = rel['file']
|
@@ -55,14 +60,14 @@ module Puppet::ModuleTool::Shared
|
|
55
60
|
return :latest
|
56
61
|
end
|
57
62
|
|
58
|
-
|
63
|
+
:best
|
59
64
|
end
|
60
65
|
|
61
66
|
def annotated_version(mod, versions)
|
62
67
|
if versions.empty?
|
63
|
-
|
68
|
+
implicit_version(mod)
|
64
69
|
else
|
65
|
-
|
70
|
+
"#{implicit_version(mod)}: #{versions.last}"
|
66
71
|
end
|
67
72
|
end
|
68
73
|
|
@@ -78,10 +83,16 @@ module Puppet::ModuleTool::Shared
|
|
78
83
|
}
|
79
84
|
|
80
85
|
if forced?
|
81
|
-
range =
|
86
|
+
range = begin
|
87
|
+
Puppet::Module.parse_range(@version)
|
88
|
+
rescue
|
89
|
+
Puppet::Module.parse_range('>= 0.0.0')
|
90
|
+
end
|
82
91
|
else
|
83
92
|
range = (@conditions[mod]).map do |r|
|
84
|
-
Puppet::Module.parse_range(r[:dependency])
|
93
|
+
Puppet::Module.parse_range(r[:dependency])
|
94
|
+
rescue
|
95
|
+
Puppet::Module.parse_range('>= 0.0.0')
|
85
96
|
end.inject(&:&)
|
86
97
|
end
|
87
98
|
|
@@ -89,7 +100,7 @@ module Puppet::ModuleTool::Shared
|
|
89
100
|
next if range === seen[mod][:semver]
|
90
101
|
|
91
102
|
req_module = @module_name
|
92
|
-
req_versions = @versions[
|
103
|
+
req_versions = @versions[@module_name.to_s].map { |v| v[:semver] }
|
93
104
|
raise InvalidDependencyCycleError,
|
94
105
|
:module_name => mod,
|
95
106
|
:source => (source + [{ :name => mod, :version => source.last[:dependency] }]),
|
@@ -110,14 +121,14 @@ module Puppet::ModuleTool::Shared
|
|
110
121
|
@conditions.each { |_, conds| conds.delete_if { |c| c[:module] == mod } }
|
111
122
|
end
|
112
123
|
|
113
|
-
versions = @versions[
|
124
|
+
versions = @versions[mod.to_s].select { |h| range === h[:semver] }
|
114
125
|
valid_versions = versions.select { |x| x[:semver].special == '' }
|
115
126
|
valid_versions = versions if valid_versions.empty?
|
116
127
|
|
117
128
|
version = valid_versions.last
|
118
129
|
unless version
|
119
130
|
req_module = @module_name
|
120
|
-
req_versions = @versions[
|
131
|
+
req_versions = @versions[@module_name.to_s].map { |v| v[:semver] }
|
121
132
|
raise NoVersionsSatisfyError,
|
122
133
|
:requested_name => req_module,
|
123
134
|
:requested_version => @version || annotated_version(req_module, req_versions),
|
@@ -135,7 +146,11 @@ module Puppet::ModuleTool::Shared
|
|
135
146
|
:action => action,
|
136
147
|
:previous_version => @installed[mod].empty? ? nil : @installed[mod].first.version,
|
137
148
|
:file => @urls["#{mod}@#{version[:vstring]}"],
|
138
|
-
:path => action == :install
|
149
|
+
:path => if action == :install
|
150
|
+
@options[:target_dir]
|
151
|
+
else
|
152
|
+
@installed[mod].empty? ? @options[:target_dir] : @installed[mod].first.modulepath
|
153
|
+
end,
|
139
154
|
:dependencies => []
|
140
155
|
}
|
141
156
|
end
|
@@ -143,7 +158,7 @@ module Puppet::ModuleTool::Shared
|
|
143
158
|
deps = @remote["#{mod[:module]}@#{mod[:version][:vstring]}"].sort_by(&:first)
|
144
159
|
mod[:dependencies] = resolve_constraints(deps, source + [{ :name => mod[:module], :version => mod[:version][:vstring] }], seen, :install)
|
145
160
|
end unless @ignore_dependencies
|
146
|
-
|
161
|
+
dependencies
|
147
162
|
end
|
148
163
|
|
149
164
|
def download_tarballs(graph, default_path, forge)
|
data/lib/puppet/module_tool.rb
CHANGED
@@ -13,7 +13,7 @@ module Puppet
|
|
13
13
|
|
14
14
|
# Directory and names that should not be checksummed.
|
15
15
|
ARTIFACTS = ['pkg', /^\./, /^~/, /^#/, 'coverage', 'checksums.json', 'REVISION']
|
16
|
-
FULL_MODULE_NAME_PATTERN =
|
16
|
+
FULL_MODULE_NAME_PATTERN = %r{\A([^-/|.]+)[-|/](.+)\z}
|
17
17
|
REPOSITORY_URL = Puppet.settings[:module_repository]
|
18
18
|
|
19
19
|
# Is this a directory that shouldn't be checksummed?
|
@@ -35,7 +35,7 @@ module Puppet
|
|
35
35
|
def self.username_and_modname_from(full_module_name)
|
36
36
|
matcher = full_module_name.match(FULL_MODULE_NAME_PATTERN)
|
37
37
|
if matcher
|
38
|
-
|
38
|
+
matcher.captures
|
39
39
|
else
|
40
40
|
raise ArgumentError, _("Not a valid full name: %{full_module_name}") % { full_module_name: full_module_name }
|
41
41
|
end
|
@@ -87,7 +87,7 @@ module Puppet
|
|
87
87
|
str << branch
|
88
88
|
end
|
89
89
|
|
90
|
-
|
90
|
+
str
|
91
91
|
end
|
92
92
|
|
93
93
|
def self.build_tree(mods, dir)
|
@@ -102,7 +102,7 @@ module Puppet
|
|
102
102
|
mod[:text] = "#{mod[:name]} (#{colorize(:cyan, version_string)})"
|
103
103
|
mod[:text] += " [#{mod[:path]}]" unless mod[:path].to_s == dir.to_s
|
104
104
|
|
105
|
-
deps =
|
105
|
+
deps = mod[:dependencies] || []
|
106
106
|
deps.sort_by! { |a| a[:name] }
|
107
107
|
build_tree(deps, dir)
|
108
108
|
end
|
@@ -7,7 +7,7 @@ module Puppet::Network # :nodoc:
|
|
7
7
|
attr_accessor :name, :ip, :authenticated, :handler, :method
|
8
8
|
|
9
9
|
def authenticated?
|
10
|
-
|
10
|
+
authenticated
|
11
11
|
end
|
12
12
|
|
13
13
|
# A common way of talking about the full call. Individual servers
|
@@ -20,11 +20,13 @@ module Puppet::Network # :nodoc:
|
|
20
20
|
end
|
21
21
|
|
22
22
|
def initialize(name, ip, authenticated)
|
23
|
-
@name
|
23
|
+
@name = name
|
24
|
+
@ip = ip
|
25
|
+
@authenticated = authenticated
|
24
26
|
end
|
25
27
|
|
26
28
|
def to_s
|
27
|
-
"#{
|
29
|
+
"#{name}(#{ip})"
|
28
30
|
end
|
29
31
|
end
|
30
32
|
end
|
@@ -14,7 +14,7 @@ class Puppet::Network::Format
|
|
14
14
|
value = @options.delete(name)
|
15
15
|
value = default if value.nil?
|
16
16
|
|
17
|
-
|
17
|
+
send(name.to_s + "=", value)
|
18
18
|
end
|
19
19
|
|
20
20
|
def initialize(name, options = {}, &block)
|
@@ -111,6 +111,6 @@ class Puppet::Network::Format
|
|
111
111
|
|
112
112
|
method = send(name)
|
113
113
|
|
114
|
-
|
114
|
+
(type == :class ? klass.respond_to?(method) : klass.method_defined?(method))
|
115
115
|
end
|
116
116
|
end
|
@@ -36,7 +36,7 @@ class Puppet::Network::HTTP::API::IndirectedRoutes
|
|
36
36
|
indirection, method, key, params = uri2indirection(request.method, request.path, request.params)
|
37
37
|
certificate = request.client_cert
|
38
38
|
|
39
|
-
|
39
|
+
unless indirection.allow_remote_requests?
|
40
40
|
# TODO: should we tell the user we found an indirection but it doesn't
|
41
41
|
# allow remote requests, or just pretend there's no handler at all? what
|
42
42
|
# are the security implications for the former?
|
@@ -62,9 +62,7 @@ class Puppet::Network::HTTP::API::IndirectedRoutes
|
|
62
62
|
environment = params.delete(:environment)
|
63
63
|
|
64
64
|
if indirection_name !~ /^\w+$/
|
65
|
-
raise Puppet::Network::HTTP::Error::HTTPBadRequestError
|
66
|
-
_("The indirection name must be purely alphanumeric, not '%{indirection_name}'") % { indirection_name: indirection_name }
|
67
|
-
)
|
65
|
+
raise Puppet::Network::HTTP::Error::HTTPBadRequestError, _("The indirection name must be purely alphanumeric, not '%{indirection_name}'") % { indirection_name: indirection_name }
|
68
66
|
end
|
69
67
|
|
70
68
|
# this also depluralizes the indirection_name if it is a search
|
@@ -73,29 +71,23 @@ class Puppet::Network::HTTP::API::IndirectedRoutes
|
|
73
71
|
# check whether this indirection matches the prefix and version in the
|
74
72
|
# request
|
75
73
|
if url_prefix != IndirectionType.url_prefix_for(indirection_name)
|
76
|
-
raise Puppet::Network::HTTP::Error::HTTPBadRequestError
|
77
|
-
_("Indirection '%{indirection_name}' does not match url prefix '%{url_prefix}'") % { indirection_name: indirection_name, url_prefix: url_prefix }
|
78
|
-
)
|
74
|
+
raise Puppet::Network::HTTP::Error::HTTPBadRequestError, _("Indirection '%{indirection_name}' does not match url prefix '%{url_prefix}'") % { indirection_name: indirection_name, url_prefix: url_prefix }
|
79
75
|
end
|
80
76
|
|
81
77
|
indirection = Puppet::Indirector::Indirection.instance(indirection_name.to_sym)
|
82
|
-
|
78
|
+
unless indirection
|
83
79
|
raise Puppet::Network::HTTP::Error::HTTPNotFoundError.new(
|
84
80
|
_("Could not find indirection '%{indirection_name}'") % { indirection_name: indirection_name },
|
85
81
|
Puppet::Network::HTTP::Issues::HANDLER_NOT_FOUND
|
86
82
|
)
|
87
83
|
end
|
88
84
|
|
89
|
-
|
90
|
-
raise Puppet::Network::HTTP::Error::HTTPBadRequestError
|
91
|
-
_("An environment parameter must be specified")
|
92
|
-
)
|
85
|
+
unless environment
|
86
|
+
raise Puppet::Network::HTTP::Error::HTTPBadRequestError, _("An environment parameter must be specified")
|
93
87
|
end
|
94
88
|
|
95
|
-
|
96
|
-
raise Puppet::Network::HTTP::Error::HTTPBadRequestError
|
97
|
-
_("The environment must be purely alphanumeric, not '%{environment}'") % { environment: environment }
|
98
|
-
)
|
89
|
+
unless Puppet::Node::Environment.valid_name?(environment)
|
90
|
+
raise Puppet::Network::HTTP::Error::HTTPBadRequestError, _("The environment must be purely alphanumeric, not '%{environment}'") % { environment: environment }
|
99
91
|
end
|
100
92
|
|
101
93
|
configured_environment = Puppet.lookup(:environments).get(environment)
|
@@ -105,17 +97,13 @@ class Puppet::Network::HTTP::API::IndirectedRoutes
|
|
105
97
|
end
|
106
98
|
|
107
99
|
if configured_environment.nil? && indirection.terminus.require_environment?
|
108
|
-
raise Puppet::Network::HTTP::Error::HTTPNotFoundError
|
109
|
-
_("Could not find environment '%{environment}'") % { environment: environment }
|
110
|
-
)
|
100
|
+
raise Puppet::Network::HTTP::Error::HTTPNotFoundError, _("Could not find environment '%{environment}'") % { environment: environment }
|
111
101
|
end
|
112
102
|
|
113
103
|
params.delete(:bucket_path)
|
114
104
|
|
115
105
|
if key == "" or key.nil?
|
116
|
-
raise Puppet::Network::HTTP::Error::HTTPBadRequestError
|
117
|
-
_("No request key specified in %{uri}") % { uri: uri }
|
118
|
-
)
|
106
|
+
raise Puppet::Network::HTTP::Error::HTTPBadRequestError, _("No request key specified in %{uri}") % { uri: uri }
|
119
107
|
end
|
120
108
|
|
121
109
|
[indirection, method, key, params]
|
@@ -196,19 +184,17 @@ class Puppet::Network::HTTP::API::IndirectedRoutes
|
|
196
184
|
def first_response_formatter_for(model, request, key, &block)
|
197
185
|
formats = accepted_response_formatters_for(model, request)
|
198
186
|
formatter = formats.find do |format|
|
199
|
-
|
200
|
-
|
201
|
-
|
202
|
-
|
203
|
-
|
204
|
-
|
205
|
-
|
206
|
-
|
207
|
-
|
208
|
-
raise Puppet::Network::FormatHandler::FormatError.new(msg)
|
209
|
-
end
|
210
|
-
false
|
187
|
+
yield format
|
188
|
+
true
|
189
|
+
rescue Puppet::Network::FormatHandler::FormatError => err
|
190
|
+
msg = _("Failed to serialize %{model} for '%{key}': %{detail}") %
|
191
|
+
{ model: model, key: key, detail: err }
|
192
|
+
if Puppet[:allow_pson_serialization]
|
193
|
+
Puppet.warning(msg)
|
194
|
+
else
|
195
|
+
raise Puppet::Network::FormatHandler::FormatError, msg
|
211
196
|
end
|
197
|
+
false
|
212
198
|
end
|
213
199
|
|
214
200
|
return formatter if formatter
|
@@ -239,9 +225,7 @@ class Puppet::Network::HTTP::API::IndirectedRoutes
|
|
239
225
|
begin
|
240
226
|
return model_class.convert_from(formatter.name.to_s, data)
|
241
227
|
rescue => e
|
242
|
-
raise Puppet::Network::HTTP::Error::HTTPBadRequestError.
|
243
|
-
_("The request body is invalid: %{message}") % { message: e.message }
|
244
|
-
)
|
228
|
+
raise Puppet::Network::HTTP::Error::HTTPBadRequestError, _("The request body is invalid: %{message}") % { message: e.message }
|
245
229
|
end
|
246
230
|
end
|
247
231
|
|
@@ -253,22 +237,18 @@ class Puppet::Network::HTTP::API::IndirectedRoutes
|
|
253
237
|
end
|
254
238
|
|
255
239
|
def indirection_method(http_method, indirection)
|
256
|
-
raise Puppet::Network::HTTP::Error::HTTPMethodNotAllowedError
|
257
|
-
_("No support for http method %{http_method}") % { http_method: http_method }
|
258
|
-
) unless METHOD_MAP[http_method]
|
240
|
+
raise Puppet::Network::HTTP::Error::HTTPMethodNotAllowedError, _("No support for http method %{http_method}") % { http_method: http_method } unless METHOD_MAP[http_method]
|
259
241
|
|
260
242
|
method = METHOD_MAP[http_method][plurality(indirection)]
|
261
243
|
unless method
|
262
|
-
raise Puppet::Network::HTTP::Error::HTTPBadRequestError
|
263
|
-
_("No support for plurality %{indirection} for %{http_method} operations") % { indirection: plurality(indirection), http_method: http_method }
|
264
|
-
)
|
244
|
+
raise Puppet::Network::HTTP::Error::HTTPBadRequestError, _("No support for plurality %{indirection} for %{http_method} operations") % { indirection: plurality(indirection), http_method: http_method }
|
265
245
|
end
|
266
246
|
|
267
247
|
method
|
268
248
|
end
|
269
249
|
|
270
250
|
def self.pluralize(indirection)
|
271
|
-
|
251
|
+
(indirection == "status" ? "statuses" : indirection + "s")
|
272
252
|
end
|
273
253
|
private_class_method :pluralize
|
274
254
|
|
@@ -245,7 +245,7 @@ class Puppet::Network::HTTP::Connection
|
|
245
245
|
end
|
246
246
|
|
247
247
|
def to_url(path)
|
248
|
-
if path =~
|
248
|
+
if path =~ %r{^https?://}
|
249
249
|
# The old Connection class accepts a URL as the request path, and sends
|
250
250
|
# it in "absolute-form" in the request line, e.g. GET https://puppet:8140/.
|
251
251
|
# See https://httpwg.org/specs/rfc7230.html#absolute-form. It just so happens
|