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
@@ -28,13 +28,13 @@ module Puppet::Interface::OptionManager
|
|
28
28
|
|
29
29
|
# @api private
|
30
30
|
def walk_inheritance_tree(start, sym)
|
31
|
-
result =
|
32
|
-
if
|
31
|
+
result = start || []
|
32
|
+
if is_a?(Class) and superclass.respond_to?(sym)
|
33
33
|
result = superclass.send(sym) + result
|
34
34
|
elsif self.class.respond_to?(sym)
|
35
35
|
result = self.class.send(sym) + result
|
36
36
|
end
|
37
|
-
|
37
|
+
result
|
38
38
|
end
|
39
39
|
|
40
40
|
# Declare that this app can take a specific option, and provide the
|
@@ -77,7 +77,7 @@ module Puppet::Interface::OptionManager
|
|
77
77
|
@options_hash[name] = option
|
78
78
|
end
|
79
79
|
|
80
|
-
|
80
|
+
option
|
81
81
|
end
|
82
82
|
|
83
83
|
# @api private
|
@@ -91,14 +91,14 @@ module Puppet::Interface::OptionManager
|
|
91
91
|
|
92
92
|
result = @options_hash[name.to_sym]
|
93
93
|
if result.nil? and with_inherited_options then
|
94
|
-
if
|
94
|
+
if is_a?(Class) and superclass.respond_to?(:get_option)
|
95
95
|
result = superclass.get_option(name)
|
96
96
|
elsif self.class.respond_to?(:get_option)
|
97
97
|
result = self.class.get_option(name)
|
98
98
|
end
|
99
99
|
end
|
100
100
|
|
101
|
-
|
101
|
+
result
|
102
102
|
end
|
103
103
|
|
104
104
|
# @api private
|
data/lib/puppet/interface.rb
CHANGED
@@ -58,7 +58,7 @@ class Puppet::Interface
|
|
58
58
|
def define(name, version, &block)
|
59
59
|
face = Puppet::Interface::FaceCollection[name, version]
|
60
60
|
if face.nil? then
|
61
|
-
face =
|
61
|
+
face = new(name, version)
|
62
62
|
Puppet::Interface::FaceCollection.register(face)
|
63
63
|
# REVISIT: Shouldn't this be delayed until *after* we evaluate the
|
64
64
|
# current block, not done before? --daniel 2011-04-07
|
@@ -67,7 +67,7 @@ class Puppet::Interface
|
|
67
67
|
|
68
68
|
face.instance_eval(&block) if block_given?
|
69
69
|
|
70
|
-
|
70
|
+
face
|
71
71
|
end
|
72
72
|
|
73
73
|
# Retrieves a face by name and version. Use `:current` for the
|
@@ -126,7 +126,7 @@ class Puppet::Interface
|
|
126
126
|
# @return [String] usage synopsis
|
127
127
|
# @api private
|
128
128
|
def synopsis
|
129
|
-
build_synopsis
|
129
|
+
build_synopsis name, '<action>'
|
130
130
|
end
|
131
131
|
|
132
132
|
########################################################################
|
@@ -219,7 +219,7 @@ class Puppet::Interface
|
|
219
219
|
# Exceptions here should propagate up; this implements a hook we can use
|
220
220
|
# reasonably for option validation.
|
221
221
|
methods.each do |hook|
|
222
|
-
respond_to? hook and
|
222
|
+
respond_to? hook and __send__(hook, action, passed_args, passed_options)
|
223
223
|
end
|
224
224
|
end
|
225
225
|
|
@@ -88,7 +88,7 @@ module Manager
|
|
88
88
|
selfobj = singleton_class
|
89
89
|
|
90
90
|
if @types.include?(name)
|
91
|
-
if
|
91
|
+
if respond_to?(newmethod)
|
92
92
|
# Remove the old newmethod
|
93
93
|
selfobj.send(:remove_method, newmethod)
|
94
94
|
end
|
@@ -106,7 +106,7 @@ module Manager
|
|
106
106
|
)
|
107
107
|
|
108
108
|
# Now define a "new<type>" method for convenience.
|
109
|
-
if
|
109
|
+
if respond_to? newmethod
|
110
110
|
# Refuse to overwrite existing methods like 'newparam' or 'newtype'.
|
111
111
|
# TRANSLATORS 'new%{method}' will become a method name, do not translate this string
|
112
112
|
Puppet.warning(_("'new%{method}' method already exists; skipping") % { method: name.to_s })
|
data/lib/puppet/module/plan.rb
CHANGED
@@ -48,18 +48,18 @@ class Puppet::Module
|
|
48
48
|
end
|
49
49
|
end
|
50
50
|
|
51
|
-
ALLOWED_EXTENSIONS = %w
|
52
|
-
RESERVED_WORDS = %w
|
51
|
+
ALLOWED_EXTENSIONS = %w[.pp .yaml]
|
52
|
+
RESERVED_WORDS = %w[and application attr case class consumes default else
|
53
53
|
elsif environment false function if import in inherits node or private
|
54
|
-
produces site true type undef unless
|
55
|
-
RESERVED_DATA_TYPES = %w
|
54
|
+
produces site true type undef unless]
|
55
|
+
RESERVED_DATA_TYPES = %w[any array boolean catalogentry class collection
|
56
56
|
callable data default enum float hash integer numeric optional pattern
|
57
|
-
resource runtime scalar string struct tuple type undef variant
|
57
|
+
resource runtime scalar string struct tuple type undef variant]
|
58
58
|
|
59
59
|
def self.is_plan_name?(name)
|
60
60
|
return true if name =~ /^[a-z][a-z0-9_]*$/
|
61
61
|
|
62
|
-
|
62
|
+
false
|
63
63
|
end
|
64
64
|
|
65
65
|
# Determine whether a plan file has a legal name and extension
|
@@ -77,7 +77,7 @@ class Puppet::Module
|
|
77
77
|
return [false, _("Plan name cannot be a Puppet data type, but was '%{name}'") % { name: name }]
|
78
78
|
end
|
79
79
|
|
80
|
-
|
80
|
+
[true]
|
81
81
|
end
|
82
82
|
|
83
83
|
# Executables list should contain the full path of all possible implementation files
|
@@ -89,7 +89,7 @@ class Puppet::Module
|
|
89
89
|
implementations = plan_files.select { |impl| File.basename(impl, '.*') == basename }
|
90
90
|
|
91
91
|
# Select .pp before .yaml, since .pp comes before .yaml alphabetically.
|
92
|
-
chosen = implementations.
|
92
|
+
chosen = implementations.min
|
93
93
|
|
94
94
|
[{ "name" => File.basename(chosen), "path" => chosen }]
|
95
95
|
end
|
@@ -143,7 +143,7 @@ class Puppet::Module
|
|
143
143
|
end
|
144
144
|
|
145
145
|
def ==(other)
|
146
|
-
|
146
|
+
name == other.name &&
|
147
147
|
self.module == other.module
|
148
148
|
end
|
149
149
|
|
@@ -159,7 +159,7 @@ class Puppet::Module
|
|
159
159
|
|
160
160
|
# Abstracted here so we can add support for subdirectories later
|
161
161
|
def self.plan_name_from_path(path)
|
162
|
-
|
162
|
+
File.basename(path, '.*')
|
163
163
|
end
|
164
164
|
private_class_method :plan_name_from_path
|
165
165
|
end
|
data/lib/puppet/module/task.rb
CHANGED
@@ -49,13 +49,13 @@ class Puppet::Module
|
|
49
49
|
end
|
50
50
|
end
|
51
51
|
|
52
|
-
FORBIDDEN_EXTENSIONS = %w
|
52
|
+
FORBIDDEN_EXTENSIONS = %w[.conf .md]
|
53
53
|
MOUNTS = %w[files lib scripts tasks]
|
54
54
|
|
55
55
|
def self.is_task_name?(name)
|
56
56
|
return true if name =~ /^[a-z][a-z0-9_]*$/
|
57
57
|
|
58
|
-
|
58
|
+
false
|
59
59
|
end
|
60
60
|
|
61
61
|
def self.is_tasks_file?(path)
|
@@ -65,12 +65,12 @@ class Puppet::Module
|
|
65
65
|
# Determine whether a file has a legal name for either a task's executable or metadata file.
|
66
66
|
def self.is_tasks_filename?(path)
|
67
67
|
name_less_extension = File.basename(path, '.*')
|
68
|
-
return false
|
68
|
+
return false unless is_task_name?(name_less_extension)
|
69
69
|
|
70
70
|
FORBIDDEN_EXTENSIONS.each do |ext|
|
71
71
|
return false if path.end_with?(ext)
|
72
72
|
end
|
73
|
-
|
73
|
+
true
|
74
74
|
end
|
75
75
|
|
76
76
|
def self.get_file_details(path, mod)
|
@@ -130,7 +130,7 @@ class Puppet::Module
|
|
130
130
|
|
131
131
|
unless File.exist?(path)
|
132
132
|
msg = _("Could not find %{path} on disk" % { path: path })
|
133
|
-
raise InvalidFile
|
133
|
+
raise InvalidFile, msg
|
134
134
|
end
|
135
135
|
|
136
136
|
last_char = file[-1] == '/'
|
@@ -226,7 +226,7 @@ class Puppet::Module
|
|
226
226
|
|
227
227
|
# file paths must be relative to the modules task directory
|
228
228
|
def initialize(pup_module, task_name, module_executables, metadata_file = nil)
|
229
|
-
|
229
|
+
unless Puppet::Module::Task.is_task_name?(task_name)
|
230
230
|
raise InvalidName, _("Task names must start with a lowercase letter and be composed of only lowercase letters, numbers, and underscores")
|
231
231
|
end
|
232
232
|
|
@@ -264,7 +264,7 @@ class Puppet::Module
|
|
264
264
|
end
|
265
265
|
|
266
266
|
def ==(other)
|
267
|
-
|
267
|
+
name == other.name &&
|
268
268
|
self.module == other.module
|
269
269
|
end
|
270
270
|
|
@@ -281,7 +281,7 @@ class Puppet::Module
|
|
281
281
|
|
282
282
|
# Abstracted here so we can add support for subdirectories later
|
283
283
|
def self.task_name_from_path(path)
|
284
|
-
|
284
|
+
File.basename(path, '.*')
|
285
285
|
end
|
286
286
|
private_class_method :task_name_from_path
|
287
287
|
end
|
data/lib/puppet/module.rb
CHANGED
@@ -46,21 +46,21 @@ class Puppet::Module
|
|
46
46
|
fullpath = File.join(path, name)
|
47
47
|
return false unless Puppet::FileSystem.directory?(fullpath)
|
48
48
|
|
49
|
-
|
49
|
+
is_module_directory_name?(name)
|
50
50
|
end
|
51
51
|
|
52
52
|
def self.is_module_directory_name?(name)
|
53
53
|
# it must match an installed module name according to forge validator
|
54
54
|
return true if name =~ /^[a-z][a-z0-9_]*$/
|
55
55
|
|
56
|
-
|
56
|
+
false
|
57
57
|
end
|
58
58
|
|
59
59
|
def self.is_module_namespaced_name?(name)
|
60
60
|
# it must match the full module name according to forge validator
|
61
|
-
return true if name =~ /^[a-zA-Z0-9]
|
61
|
+
return true if name =~ /^[a-zA-Z0-9]+-[a-z][a-z0-9_]*$/
|
62
62
|
|
63
|
-
|
63
|
+
false
|
64
64
|
end
|
65
65
|
|
66
66
|
# @api private
|
@@ -96,16 +96,14 @@ class Puppet::Module
|
|
96
96
|
|
97
97
|
# @deprecated The puppetversion module metadata field is no longer used.
|
98
98
|
def validate_puppet_version
|
99
|
-
|
99
|
+
nil
|
100
100
|
end
|
101
101
|
|
102
102
|
def has_metadata?
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
false
|
108
|
-
end
|
103
|
+
load_metadata
|
104
|
+
@metadata.is_a?(Hash) && !@metadata.empty?
|
105
|
+
rescue Puppet::Module::MissingMetadata
|
106
|
+
false
|
109
107
|
end
|
110
108
|
|
111
109
|
FILETYPES.each do |type, location|
|
@@ -118,7 +116,7 @@ class Puppet::Module
|
|
118
116
|
return false
|
119
117
|
end
|
120
118
|
|
121
|
-
|
119
|
+
true
|
122
120
|
end
|
123
121
|
|
124
122
|
# A method for returning a given file of a given type.
|
@@ -137,7 +135,7 @@ class Puppet::Module
|
|
137
135
|
|
138
136
|
return nil unless Puppet::FileSystem.exist?(full_path)
|
139
137
|
|
140
|
-
|
138
|
+
full_path
|
141
139
|
end
|
142
140
|
|
143
141
|
# Return the base directory for the given type
|
@@ -173,9 +171,9 @@ class Puppet::Module
|
|
173
171
|
end
|
174
172
|
|
175
173
|
if Puppet::FileSystem.exist?(full_path)
|
176
|
-
|
174
|
+
full_path
|
177
175
|
else
|
178
|
-
|
176
|
+
nil
|
179
177
|
end
|
180
178
|
end
|
181
179
|
|
@@ -206,9 +204,9 @@ class Puppet::Module
|
|
206
204
|
end
|
207
205
|
|
208
206
|
if Puppet::FileSystem.exist?(full_path)
|
209
|
-
|
207
|
+
full_path
|
210
208
|
else
|
211
|
-
|
209
|
+
nil
|
212
210
|
end
|
213
211
|
end
|
214
212
|
|
@@ -252,11 +250,11 @@ class Puppet::Module
|
|
252
250
|
|
253
251
|
[:source, :author, :version, :license, :dependencies].each do |attr|
|
254
252
|
value = data[attr.to_s]
|
255
|
-
raise MissingMetadata, "No #{attr} module metadata provided for #{
|
253
|
+
raise MissingMetadata, "No #{attr} module metadata provided for #{name}" if value.nil?
|
256
254
|
|
257
255
|
if attr == :dependencies
|
258
256
|
unless value.is_a?(Array)
|
259
|
-
raise MissingMetadata, "The value for the key dependencies in the file metadata.json of the module #{
|
257
|
+
raise MissingMetadata, "The value for the key dependencies in the file metadata.json of the module #{name} must be an array, not: '#{value}'"
|
260
258
|
end
|
261
259
|
|
262
260
|
value.each do |dep|
|
@@ -338,7 +336,7 @@ class Puppet::Module
|
|
338
336
|
# @return true if the module has a directory for the locale, false
|
339
337
|
# false otherwise
|
340
338
|
def has_translations?(locale)
|
341
|
-
|
339
|
+
Puppet::FileSystem.exist?(File.join(locale_directory, locale))
|
342
340
|
end
|
343
341
|
|
344
342
|
def has_external_facts?
|
@@ -368,7 +366,7 @@ class Puppet::Module
|
|
368
366
|
end
|
369
367
|
|
370
368
|
def required_by
|
371
|
-
environment.module_requirements[
|
369
|
+
environment.module_requirements[forge_name] || {}
|
372
370
|
end
|
373
371
|
|
374
372
|
# Identify and mark unmet dependencies. A dependency will be marked unmet
|
@@ -415,8 +413,8 @@ class Puppet::Module
|
|
415
413
|
:name => name,
|
416
414
|
:version_constraint => version_string.gsub(/^(?=\d)/, "v"),
|
417
415
|
:parent => {
|
418
|
-
:name =>
|
419
|
-
:version =>
|
416
|
+
:name => forge_name,
|
417
|
+
:version => version.gsub(/^(?=\d)/, "v")
|
420
418
|
},
|
421
419
|
:mod_details => {
|
422
420
|
:installed_version => dep_mod.nil? ? nil : dep_mod.version
|
@@ -429,32 +427,32 @@ class Puppet::Module
|
|
429
427
|
next
|
430
428
|
end
|
431
429
|
|
432
|
-
|
433
|
-
begin
|
434
|
-
required_version_semver_range = self.class.parse_range(version_string)
|
435
|
-
actual_version_semver = SemanticPuppet::Version.parse(dep_mod.version)
|
436
|
-
rescue ArgumentError
|
437
|
-
error_details[:reason] = :non_semantic_version
|
438
|
-
unmet_dependencies << error_details
|
439
|
-
next
|
440
|
-
end
|
430
|
+
next unless version_string
|
441
431
|
|
442
|
-
|
443
|
-
|
444
|
-
|
445
|
-
|
446
|
-
|
432
|
+
begin
|
433
|
+
required_version_semver_range = self.class.parse_range(version_string)
|
434
|
+
actual_version_semver = SemanticPuppet::Version.parse(dep_mod.version)
|
435
|
+
rescue ArgumentError
|
436
|
+
error_details[:reason] = :non_semantic_version
|
437
|
+
unmet_dependencies << error_details
|
438
|
+
next
|
447
439
|
end
|
440
|
+
|
441
|
+
next if required_version_semver_range.include? actual_version_semver
|
442
|
+
|
443
|
+
error_details[:reason] = :version_mismatch
|
444
|
+
unmet_dependencies << error_details
|
445
|
+
next
|
448
446
|
end
|
449
447
|
|
450
448
|
unmet_dependencies
|
451
449
|
end
|
452
450
|
|
453
451
|
def ==(other)
|
454
|
-
|
455
|
-
|
456
|
-
|
457
|
-
|
452
|
+
name == other.name &&
|
453
|
+
version == other.version &&
|
454
|
+
path == other.path &&
|
455
|
+
environment == other.environment
|
458
456
|
end
|
459
457
|
|
460
458
|
private
|
@@ -28,7 +28,11 @@ module Puppet::ModuleTool
|
|
28
28
|
when Net::HTTPOK, Net::HTTPCreated
|
29
29
|
Puppet.notice success
|
30
30
|
else
|
31
|
-
errors =
|
31
|
+
errors = begin
|
32
|
+
Puppet::Util::Json.load(response.body)['error']
|
33
|
+
rescue
|
34
|
+
"HTTP #{response.code}, #{response.body}"
|
35
|
+
end
|
32
36
|
Puppet.warning "#{failure} (#{errors})"
|
33
37
|
end
|
34
38
|
end
|
@@ -50,11 +54,9 @@ module Puppet::ModuleTool
|
|
50
54
|
|
51
55
|
if File.file?(metadata_path)
|
52
56
|
File.open(metadata_path) do |f|
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
raise ArgumentError, _("Could not parse JSON %{metadata_path}") % { metadata_path: metadata_path }, ex.backtrace
|
57
|
-
end
|
57
|
+
@metadata.update(Puppet::Util::Json.load(f))
|
58
|
+
rescue Puppet::Util::Json::ParseError => ex
|
59
|
+
raise ArgumentError, _("Could not parse JSON %{metadata_path}") % { metadata_path: metadata_path }, ex.backtrace
|
58
60
|
end
|
59
61
|
end
|
60
62
|
|
@@ -62,7 +64,7 @@ module Puppet::ModuleTool
|
|
62
64
|
Puppet.warning _("A Modulefile was found in the root directory of the module. This file will be ignored and can safely be removed.")
|
63
65
|
end
|
64
66
|
|
65
|
-
|
67
|
+
@metadata
|
66
68
|
end
|
67
69
|
|
68
70
|
def load_metadata!
|
@@ -82,7 +84,7 @@ module Puppet::ModuleTool
|
|
82
84
|
raise ArgumentError, _("Invalid version format: %{version} (Semantic Versions are acceptable: http://semver.org)") % { version: version }
|
83
85
|
end
|
84
86
|
|
85
|
-
|
87
|
+
{
|
86
88
|
:module_name => module_name,
|
87
89
|
:author => author,
|
88
90
|
:dir_name => shortname,
|
@@ -72,7 +72,11 @@ module Puppet::ModuleTool
|
|
72
72
|
results[:version] = installed_module.version
|
73
73
|
return results
|
74
74
|
else
|
75
|
-
changes =
|
75
|
+
changes = begin
|
76
|
+
Checksummer.run(installed_modules[name].mod.path)
|
77
|
+
rescue
|
78
|
+
[]
|
79
|
+
end
|
76
80
|
raise AlreadyInstalledError,
|
77
81
|
:module_name => name,
|
78
82
|
:installed_version => installed_modules[name].version,
|
@@ -107,22 +111,22 @@ module Puppet::ModuleTool
|
|
107
111
|
|
108
112
|
version = release.version
|
109
113
|
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
114
|
+
next if forced?
|
115
|
+
|
116
|
+
# Since upgrading already installed modules can be troublesome,
|
117
|
+
# we'll place constraints on the graph for each installed module,
|
118
|
+
# locking it to upgrades within the same major version.
|
119
|
+
installed_range = ">=#{version} #{version.major}.x"
|
120
|
+
graph.add_constraint('installed', mod, installed_range) do |node|
|
121
|
+
Puppet::Module.parse_range(installed_range).include? node.version
|
122
|
+
end
|
118
123
|
|
119
|
-
|
120
|
-
|
124
|
+
release.mod.dependencies.each do |dep|
|
125
|
+
dep_name = dep['name'].tr('/', '-')
|
121
126
|
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
end
|
127
|
+
range = dep['version_requirement']
|
128
|
+
graph.add_constraint("#{mod} constraint", dep_name, range) do |node|
|
129
|
+
Puppet::Module.parse_range(range).include? node.version
|
126
130
|
end
|
127
131
|
end
|
128
132
|
end
|
@@ -194,28 +198,27 @@ module Puppet::ModuleTool
|
|
194
198
|
# Check for module name conflicts.
|
195
199
|
releases.each do |rel|
|
196
200
|
installed_module = installed_modules_source.by_name[rel.name.split('-').last]
|
197
|
-
|
198
|
-
|
199
|
-
|
200
|
-
|
201
|
-
|
202
|
-
|
203
|
-
|
204
|
-
|
205
|
-
end
|
206
|
-
|
207
|
-
raise InstallConflictError,
|
208
|
-
:requested_module => name,
|
209
|
-
:requested_version => options[:version] || 'latest',
|
210
|
-
:dependency => dependency,
|
211
|
-
:directory => installed_module.path,
|
212
|
-
:metadata => installed_module.metadata
|
201
|
+
next unless installed_module
|
202
|
+
next if installed_module.has_metadata? && installed_module.forge_name.tr('/', '-') == rel.name
|
203
|
+
|
204
|
+
if rel.name != name
|
205
|
+
dependency = {
|
206
|
+
:name => rel.name,
|
207
|
+
:version => rel.version
|
208
|
+
}
|
213
209
|
end
|
210
|
+
|
211
|
+
raise InstallConflictError,
|
212
|
+
:requested_module => name,
|
213
|
+
:requested_version => options[:version] || 'latest',
|
214
|
+
:dependency => dependency,
|
215
|
+
:directory => installed_module.path,
|
216
|
+
:metadata => installed_module.metadata
|
214
217
|
end
|
215
218
|
end
|
216
219
|
|
217
220
|
Puppet.info _("Preparing to install ...")
|
218
|
-
releases.each
|
221
|
+
releases.each(&:prepare)
|
219
222
|
|
220
223
|
Puppet.notice _('Installing -- do not interrupt ...')
|
221
224
|
releases.each do |release|
|
@@ -287,7 +290,7 @@ module Puppet::ModuleTool
|
|
287
290
|
|
288
291
|
previous = installed_modules[release.name]
|
289
292
|
previous = previous.version if previous
|
290
|
-
|
293
|
+
{
|
291
294
|
:release => release,
|
292
295
|
:name => release.name,
|
293
296
|
:path => release.install_dir.to_s,
|
@@ -368,24 +371,24 @@ module Puppet::ModuleTool
|
|
368
371
|
metadata = nil
|
369
372
|
end
|
370
373
|
|
371
|
-
|
372
|
-
dependency_info = {
|
373
|
-
:name => release[:module],
|
374
|
-
:version => release[:version][:vstring]
|
375
|
-
}
|
376
|
-
dependency = is_dependency ? dependency_info : nil
|
377
|
-
all_versions = @versions["#{@module_name}"].sort_by { |h| h[:semver] }
|
378
|
-
versions = all_versions.select { |x| x[:semver].special == '' }
|
379
|
-
versions = all_versions if versions.empty?
|
380
|
-
latest_version = versions.last[:vstring]
|
374
|
+
next unless release[:module] =~ /-#{mod.name}$/
|
381
375
|
|
382
|
-
|
383
|
-
|
384
|
-
|
385
|
-
|
386
|
-
|
387
|
-
|
388
|
-
|
376
|
+
dependency_info = {
|
377
|
+
:name => release[:module],
|
378
|
+
:version => release[:version][:vstring]
|
379
|
+
}
|
380
|
+
dependency = is_dependency ? dependency_info : nil
|
381
|
+
all_versions = @versions[@module_name.to_s].sort_by { |h| h[:semver] }
|
382
|
+
versions = all_versions.select { |x| x[:semver].special == '' }
|
383
|
+
versions = all_versions if versions.empty?
|
384
|
+
latest_version = versions.last[:vstring]
|
385
|
+
|
386
|
+
raise InstallConflictError,
|
387
|
+
:requested_module => @module_name,
|
388
|
+
:requested_version => @version || "latest: v#{latest_version}",
|
389
|
+
:dependency => dependency,
|
390
|
+
:directory => mod.path,
|
391
|
+
:metadata => metadata
|
389
392
|
end
|
390
393
|
|
391
394
|
deps = release[:dependencies]
|
@@ -9,7 +9,7 @@ module Puppet::ModuleTool
|
|
9
9
|
module Applications
|
10
10
|
class Unpacker < Application
|
11
11
|
def self.unpack(filename, target)
|
12
|
-
app =
|
12
|
+
app = new(filename, :target_dir => target)
|
13
13
|
app.unpack
|
14
14
|
app.sanity_check
|
15
15
|
app.move_into(target)
|
@@ -38,7 +38,7 @@ module Puppet::ModuleTool
|
|
38
38
|
|
39
39
|
# Return the Pathname object representing the directory where the
|
40
40
|
# module release archive was unpacked the to.
|
41
|
-
|
41
|
+
module_dir
|
42
42
|
end
|
43
43
|
|
44
44
|
# @api private
|
@@ -54,11 +54,9 @@ module Puppet::ModuleTool
|
|
54
54
|
|
55
55
|
# @api private
|
56
56
|
def unpack
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
raise RuntimeError, _("Could not extract contents of module archive: %{message}") % { message: e.message }
|
61
|
-
end
|
57
|
+
Puppet::ModuleTool::Tar.instance.unpack(@filename.to_s, tmpdir, [@module_path.stat.uid, @module_path.stat.gid].join(':'))
|
58
|
+
rescue Puppet::ExecutionFailure => e
|
59
|
+
raise RuntimeError, _("Could not extract contents of module archive: %{message}") % { message: e.message }
|
62
60
|
end
|
63
61
|
|
64
62
|
# @api private
|
@@ -66,7 +64,7 @@ module Puppet::ModuleTool
|
|
66
64
|
return @root_dir if @root_dir
|
67
65
|
|
68
66
|
# Grab the first directory containing a metadata.json file
|
69
|
-
metadata_file = Dir["#{tmpdir}/**/metadata.json"].
|
67
|
+
metadata_file = Dir["#{tmpdir}/**/metadata.json"].min_by(&:length)
|
70
68
|
|
71
69
|
if metadata_file
|
72
70
|
@root_dir = Pathname.new(metadata_file).dirname
|