puppet 5.5.17-universal-darwin → 5.5.22-universal-darwin
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of puppet might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/CODEOWNERS +1 -1
- data/Gemfile +4 -5
- data/Gemfile.lock +59 -55
- data/ext/build_defaults.yaml +1 -0
- data/ext/cert_inspector +3 -3
- data/ext/puppet-test +2 -2
- data/ext/regexp_nodes/regexp_nodes.rb +4 -4
- data/ext/windows/service/daemon.rb +54 -8
- data/install.rb +6 -6
- data/lib/puppet.rb +5 -2
- data/lib/puppet/agent.rb +5 -13
- data/lib/puppet/application.rb +1 -1
- data/lib/puppet/application/agent.rb +3 -1
- data/lib/puppet/application/apply.rb +2 -2
- data/lib/puppet/application/describe.rb +3 -9
- data/lib/puppet/application/doc.rb +1 -1
- data/lib/puppet/application/filebucket.rb +13 -0
- data/lib/puppet/application/lookup.rb +1 -1
- data/lib/puppet/application/script.rb +2 -2
- data/lib/puppet/configurer.rb +106 -31
- data/lib/puppet/configurer/downloader.rb +33 -16
- data/lib/puppet/daemon.rb +1 -1
- data/lib/puppet/defaults.rb +86 -40
- data/lib/puppet/error.rb +9 -1
- data/lib/puppet/external/nagios/base.rb +1 -1
- data/lib/puppet/face/ca.rb +1 -1
- data/lib/puppet/face/module/list.rb +5 -5
- data/lib/puppet/face/module/search.rb +1 -1
- data/lib/puppet/face/module/uninstall.rb +1 -1
- data/lib/puppet/face/module/upgrade.rb +1 -1
- data/lib/puppet/file_serving/http_metadata.rb +1 -1
- data/lib/puppet/file_serving/mount/locales.rb +1 -2
- data/lib/puppet/file_serving/mount/pluginfacts.rb +1 -2
- data/lib/puppet/file_serving/mount/plugins.rb +1 -2
- data/lib/puppet/file_system.rb +0 -8
- data/lib/puppet/file_system/memory_file.rb +1 -1
- data/lib/puppet/file_system/posix.rb +3 -2
- data/lib/puppet/file_system/uniquefile.rb +4 -0
- data/lib/puppet/forge.rb +3 -3
- data/lib/puppet/functions/epp.rb +4 -4
- data/lib/puppet/functions/inline_epp.rb +5 -5
- data/lib/puppet/functions/new.rb +8 -3
- data/lib/puppet/functions/reduce.rb +2 -4
- data/lib/puppet/functions/reverse_each.rb +1 -1
- data/lib/puppet/functions/step.rb +1 -1
- data/lib/puppet/gettext/module_translations.rb +1 -1
- data/lib/puppet/graph/rb_tree_map.rb +2 -2
- data/lib/puppet/graph/simple_graph.rb +6 -5
- data/lib/puppet/indirector/catalog/compiler.rb +8 -0
- data/lib/puppet/indirector/file_bucket_file/file.rb +1 -1
- data/lib/puppet/indirector/hiera.rb +6 -0
- data/lib/puppet/indirector/resource/ral.rb +1 -3
- data/lib/puppet/indirector/resource/validator.rb +1 -1
- data/lib/puppet/interface.rb +2 -1
- data/lib/puppet/loaders.rb +0 -1
- data/lib/puppet/metatype/manager.rb +1 -1
- data/lib/puppet/module.rb +1 -1
- data/lib/puppet/module_tool/applications/builder.rb +1 -1
- data/lib/puppet/module_tool/applications/installer.rb +1 -1
- data/lib/puppet/module_tool/applications/uninstaller.rb +3 -3
- data/lib/puppet/module_tool/metadata.rb +1 -1
- data/lib/puppet/module_tool/shared_behaviors.rb +4 -4
- data/lib/puppet/module_tool/tar/mini.rb +1 -1
- data/lib/puppet/network/http/api/indirected_routes.rb +13 -12
- data/lib/puppet/network/http/api/master/v3/environment.rb +3 -0
- data/lib/puppet/network/http/connection.rb +14 -12
- data/lib/puppet/network/http/pool.rb +7 -1
- data/lib/puppet/network/http/rack/rest.rb +2 -2
- data/lib/puppet/network/http/site.rb +1 -1
- data/lib/puppet/network/resolver.rb +2 -2
- data/lib/puppet/node/environment.rb +11 -3
- data/lib/puppet/parser/ast.rb +1 -1
- data/lib/puppet/parser/ast/resourceparam.rb +1 -1
- data/lib/puppet/parser/compiler/catalog_validator/env_relationship_validator.rb +2 -0
- data/lib/puppet/parser/compiler/catalog_validator/site_validator.rb +2 -0
- data/lib/puppet/parser/environment_compiler.rb +3 -0
- data/lib/puppet/parser/functions.rb +14 -10
- data/lib/puppet/parser/functions/epp.rb +3 -3
- data/lib/puppet/parser/functions/inline_epp.rb +5 -5
- data/lib/puppet/parser/resource.rb +3 -2
- data/lib/puppet/parser/resource/param.rb +6 -0
- data/lib/puppet/pops/adaptable.rb +7 -13
- data/lib/puppet/pops/adapters.rb +8 -4
- data/lib/puppet/pops/evaluator/access_operator.rb +2 -2
- data/lib/puppet/pops/evaluator/collectors/abstract_collector.rb +1 -3
- data/lib/puppet/pops/evaluator/collectors/catalog_collector.rb +1 -1
- data/lib/puppet/pops/evaluator/collectors/exported_collector.rb +1 -1
- data/lib/puppet/pops/evaluator/evaluator_impl.rb +1 -1
- data/lib/puppet/pops/evaluator/external_syntax_support.rb +3 -2
- data/lib/puppet/pops/evaluator/runtime3_support.rb +4 -4
- data/lib/puppet/pops/issues.rb +5 -0
- data/lib/puppet/pops/loaders.rb +1 -1
- data/lib/puppet/pops/lookup/hiera_config.rb +1 -0
- data/lib/puppet/pops/lookup/sub_lookup.rb +1 -1
- data/lib/puppet/pops/merge_strategy.rb +22 -18
- data/lib/puppet/pops/parser/heredoc_support.rb +1 -1
- data/lib/puppet/pops/parser/interpolation_support.rb +4 -4
- data/lib/puppet/pops/parser/locator.rb +1 -1
- data/lib/puppet/pops/parser/pn_parser.rb +17 -16
- data/lib/puppet/pops/puppet_stack.rb +51 -48
- data/lib/puppet/pops/resource/resource_type_impl.rb +2 -0
- data/lib/puppet/pops/types/iterable.rb +34 -8
- data/lib/puppet/pops/types/p_meta_type.rb +1 -1
- data/lib/puppet/pops/types/p_sensitive_type.rb +1 -1
- data/lib/puppet/pops/types/p_type_set_type.rb +4 -0
- data/lib/puppet/pops/types/string_converter.rb +10 -10
- data/lib/puppet/pops/types/type_calculator.rb +24 -0
- data/lib/puppet/pops/types/types.rb +3 -3
- data/lib/puppet/pops/validation/checker4_0.rb +29 -15
- data/lib/puppet/pops/validation/validator_factory_4_0.rb +1 -0
- data/lib/puppet/property.rb +1 -1
- data/lib/puppet/property/ensure.rb +1 -1
- data/lib/puppet/provider/augeas/augeas.rb +1 -1
- data/lib/puppet/provider/cron/crontab.rb +1 -1
- data/lib/puppet/provider/exec.rb +6 -2
- data/lib/puppet/provider/group/groupadd.rb +19 -19
- data/lib/puppet/provider/group/windows_adsi.rb +3 -3
- data/lib/puppet/provider/mailalias/aliases.rb +1 -1
- data/lib/puppet/provider/mount.rb +1 -1
- data/lib/puppet/provider/mount/parsed.rb +8 -8
- data/lib/puppet/provider/nameservice/directoryservice.rb +1 -1
- data/lib/puppet/provider/nameservice/pw.rb +2 -2
- data/lib/puppet/provider/package/aix.rb +17 -2
- data/lib/puppet/provider/package/apt.rb +14 -3
- data/lib/puppet/provider/package/dnfmodule.rb +141 -0
- data/lib/puppet/provider/package/dpkg.rb +16 -18
- data/lib/puppet/provider/package/fink.rb +20 -3
- data/lib/puppet/provider/package/gem.rb +4 -2
- data/lib/puppet/provider/package/openbsd.rb +14 -2
- data/lib/puppet/provider/package/pip.rb +37 -10
- data/lib/puppet/provider/package/pkg.rb +18 -5
- data/lib/puppet/provider/package/pkgdmg.rb +1 -1
- data/lib/puppet/provider/package/pkgng.rb +16 -4
- data/lib/puppet/provider/package/portage.rb +4 -4
- data/lib/puppet/provider/package/puppet_gem.rb +5 -0
- data/lib/puppet/provider/package/rpm.rb +6 -6
- data/lib/puppet/provider/package/windows/package.rb +1 -1
- data/lib/puppet/provider/package/yum.rb +28 -20
- data/lib/puppet/provider/package/zypper.rb +1 -0
- data/lib/puppet/provider/package_targetable.rb +5 -4
- data/lib/puppet/provider/parsedfile.rb +1 -1
- data/lib/puppet/provider/scheduled_task/win32_taskscheduler.rb +3 -3
- data/lib/puppet/provider/selmodule/semodule.rb +43 -26
- data/lib/puppet/provider/service/daemontools.rb +9 -9
- data/lib/puppet/provider/service/openbsd.rb +1 -1
- data/lib/puppet/provider/service/rcng.rb +2 -2
- data/lib/puppet/provider/service/runit.rb +2 -8
- data/lib/puppet/provider/service/systemd.rb +31 -13
- data/lib/puppet/provider/user/directoryservice.rb +31 -6
- data/lib/puppet/provider/user/hpux.rb +1 -1
- data/lib/puppet/provider/user/user_role_add.rb +1 -1
- data/lib/puppet/provider/user/useradd.rb +39 -20
- data/lib/puppet/provider/user/windows_adsi.rb +4 -5
- data/lib/puppet/provider/yumrepo/inifile.rb +2 -2
- data/lib/puppet/reference/indirection.rb +2 -2
- data/lib/puppet/reference/metaparameter.rb +1 -3
- data/lib/puppet/reference/providers.rb +1 -1
- data/lib/puppet/reference/type.rb +3 -9
- data/lib/puppet/reports.rb +1 -1
- data/lib/puppet/resource.rb +1 -1
- data/lib/puppet/resource/catalog.rb +1 -1
- data/lib/puppet/resource/type.rb +10 -1
- data/lib/puppet/settings.rb +3 -3
- data/lib/puppet/settings/environment_conf.rb +1 -0
- data/lib/puppet/ssl/certificate.rb +2 -1
- data/lib/puppet/ssl/certificate_authority.rb +6 -5
- data/lib/puppet/ssl/certificate_authority/interface.rb +1 -1
- data/lib/puppet/ssl/certificate_factory.rb +2 -2
- data/lib/puppet/ssl/host.rb +3 -3
- data/lib/puppet/ssl/oids.rb +1 -1
- data/lib/puppet/test/test_helper.rb +20 -12
- data/lib/puppet/transaction/report.rb +1 -1
- data/lib/puppet/transaction/resource_harness.rb +1 -1
- data/lib/puppet/type.rb +8 -4
- data/lib/puppet/type/cron.rb +1 -1
- data/lib/puppet/type/exec.rb +7 -3
- data/lib/puppet/type/file.rb +14 -2
- data/lib/puppet/type/file/data_sync.rb +5 -1
- data/lib/puppet/type/group.rb +4 -2
- data/lib/puppet/type/interface.rb +1 -1
- data/lib/puppet/type/notify.rb +3 -2
- data/lib/puppet/type/package.rb +97 -8
- data/lib/puppet/type/schedule.rb +1 -1
- data/lib/puppet/type/selboolean.rb +17 -3
- data/lib/puppet/type/service.rb +2 -8
- data/lib/puppet/type/user.rb +5 -9
- data/lib/puppet/util.rb +35 -12
- data/lib/puppet/util/autoload.rb +9 -7
- data/lib/puppet/util/command_line/trollop.rb +1 -1
- data/lib/puppet/util/http_proxy.rb +8 -14
- data/lib/puppet/util/instance_loader.rb +1 -1
- data/lib/puppet/util/log.rb +1 -1
- data/lib/puppet/util/log/destinations.rb +3 -12
- data/lib/puppet/util/logging.rb +30 -18
- data/lib/puppet/util/metric.rb +2 -2
- data/lib/puppet/util/monkey_patches.rb +1 -1
- data/lib/puppet/util/nagios_maker.rb +2 -2
- data/lib/puppet/util/network_device/cisco/device.rb +1 -1
- data/lib/puppet/util/network_device/cisco/interface.rb +2 -2
- data/lib/puppet/util/network_device/transport/ssh.rb +1 -1
- data/lib/puppet/util/pidlock.rb +12 -6
- data/lib/puppet/util/plist.rb +6 -0
- data/lib/puppet/util/provider_features.rb +2 -4
- data/lib/puppet/util/rdoc.rb +1 -1
- data/lib/puppet/util/reference.rb +1 -1
- data/lib/puppet/util/resource_template.rb +1 -1
- data/lib/puppet/util/selinux.rb +3 -1
- data/lib/puppet/util/windows/adsi.rb +60 -30
- data/lib/puppet/util/windows/api_types.rb +45 -32
- data/lib/puppet/util/windows/eventlog.rb +1 -6
- data/lib/puppet/util/windows/principal.rb +8 -6
- data/lib/puppet/util/windows/process.rb +16 -15
- data/lib/puppet/util/windows/registry.rb +17 -15
- data/lib/puppet/util/windows/security.rb +1 -0
- data/lib/puppet/util/windows/sid.rb +3 -3
- data/lib/puppet/vendor.rb +1 -1
- data/lib/puppet/version.rb +1 -1
- data/lib/puppet_pal.rb +2 -2
- data/locales/puppet.pot +362 -318
- data/man/man5/puppet.conf.5 +39 -9
- data/man/man8/puppet-agent.8 +2 -2
- data/man/man8/puppet-apply.8 +1 -1
- data/man/man8/puppet-ca.8 +1 -1
- data/man/man8/puppet-catalog.8 +1 -1
- data/man/man8/puppet-cert.8 +1 -1
- data/man/man8/puppet-certificate.8 +1 -1
- data/man/man8/puppet-certificate_request.8 +1 -1
- data/man/man8/puppet-certificate_revocation_list.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 +16 -1
- data/man/man8/puppet-generate.8 +1 -1
- data/man/man8/puppet-help.8 +1 -1
- data/man/man8/puppet-key.8 +1 -1
- data/man/man8/puppet-lookup.8 +1 -1
- data/man/man8/puppet-man.8 +1 -1
- data/man/man8/puppet-master.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 +1 -1
- data/man/man8/puppet-script.8 +1 -1
- data/man/man8/puppet-status.8 +1 -1
- data/man/man8/puppet.8 +2 -2
- data/spec/fixtures/integration/provider/mailalias/aliases/test1 +1 -0
- data/spec/fixtures/unit/provider/package/dnfmodule/dnf-module-list.txt +19 -0
- data/spec/fixtures/unit/provider/package/pkgng/pkg.version +2 -0
- data/spec/fixtures/unit/provider/package/yum/yum-check-update-subscription-manager.txt +9 -0
- data/spec/fixtures/unit/provider/service/systemd/list_unit_files_services +9 -0
- data/spec/integration/configurer_spec.rb +66 -0
- data/spec/integration/data_binding_spec.rb +1 -0
- data/spec/integration/defaults_spec.rb +1 -2
- data/spec/integration/faces/plugin_spec.rb +29 -47
- data/spec/integration/indirector/facts/facter_spec.rb +4 -0
- data/spec/integration/parser/compiler_spec.rb +11 -0
- data/spec/integration/type/notify_spec.rb +46 -0
- data/spec/integration/util/windows/adsi_spec.rb +6 -1
- data/spec/integration/util/windows/registry_spec.rb +7 -7
- data/spec/shared_contexts/types_setup.rb +2 -0
- data/spec/unit/agent_spec.rb +34 -26
- data/spec/unit/application/apply_spec.rb +2 -12
- data/spec/unit/configurer/downloader_spec.rb +10 -0
- data/spec/unit/configurer/fact_handler_spec.rb +0 -4
- data/spec/unit/configurer_spec.rb +430 -415
- data/spec/unit/daemon_spec.rb +0 -1
- data/spec/unit/file_serving/mount/locales_spec.rb +2 -2
- data/spec/unit/file_serving/mount/pluginfacts_spec.rb +2 -2
- data/spec/unit/file_serving/mount/plugins_spec.rb +2 -2
- data/spec/unit/file_system/uniquefile_spec.rb +11 -0
- data/spec/unit/forge/forge_spec.rb +1 -3
- data/spec/unit/forge/repository_spec.rb +1 -3
- data/spec/unit/indirector/catalog/compiler_spec.rb +45 -26
- data/spec/unit/indirector/resource/ral_spec.rb +4 -4
- data/spec/unit/network/http/api/indirected_routes_spec.rb +2 -1
- data/spec/unit/network/http/connection_spec.rb +43 -1
- data/spec/unit/network/http/pool_spec.rb +32 -0
- data/spec/unit/node_spec.rb +7 -4
- data/spec/unit/parser/environment_compiler_spec.rb +7 -0
- data/spec/unit/pops/evaluator/evaluating_parser_spec.rb +8 -3
- data/spec/unit/provider/exec_spec.rb +209 -0
- data/spec/unit/provider/group/groupadd_spec.rb +30 -1
- data/spec/unit/provider/group/windows_adsi_spec.rb +43 -10
- data/spec/unit/provider/package/aix_spec.rb +29 -0
- data/spec/unit/provider/package/apt_spec.rb +13 -2
- data/spec/unit/provider/package/aptitude_spec.rb +1 -0
- data/spec/unit/provider/package/dnfmodule_spec.rb +247 -0
- data/spec/unit/provider/package/dpkg_spec.rb +35 -7
- data/spec/unit/provider/package/openbsd_spec.rb +17 -0
- data/spec/unit/provider/package/pip_spec.rb +93 -22
- data/spec/unit/provider/package/pkg_spec.rb +13 -1
- data/spec/unit/provider/package/pkgdmg_spec.rb +1 -1
- data/spec/unit/provider/package/pkgng_spec.rb +36 -0
- data/spec/unit/provider/package/portage_spec.rb +4 -4
- data/spec/unit/provider/package/puppet_gem_spec.rb +4 -1
- data/spec/unit/provider/package/yum_spec.rb +90 -0
- data/spec/unit/provider/package/zypper_spec.rb +13 -0
- data/spec/unit/provider/package_targetable_spec.rb +60 -0
- data/spec/unit/provider/selmodule_spec.rb +118 -47
- data/spec/unit/provider/service/daemontools_spec.rb +24 -0
- data/spec/unit/provider/service/runit_spec.rb +24 -0
- data/spec/unit/provider/service/systemd_spec.rb +109 -36
- data/spec/unit/provider/user/directoryservice_spec.rb +41 -0
- data/spec/unit/provider/user/hpux_spec.rb +2 -2
- data/spec/unit/provider/user/openbsd_spec.rb +1 -0
- data/spec/unit/provider/user/useradd_spec.rb +81 -16
- data/spec/unit/provider/user/windows_adsi_spec.rb +3 -3
- data/spec/unit/puppet_pal_2pec.rb +3 -0
- data/spec/unit/ssl/certificate_authority_spec.rb +2 -3
- data/spec/unit/ssl/certificate_spec.rb +7 -0
- data/spec/unit/ssl/host_spec.rb +2 -0
- data/spec/unit/test/test_helper_spec.rb +17 -0
- data/spec/unit/type/exec_spec.rb +6 -12
- data/spec/unit/type/file/content_spec.rb +9 -3
- data/spec/unit/type/file_spec.rb +9 -4
- data/spec/unit/type/package_spec.rb +8 -0
- data/spec/unit/type/selboolean_spec.rb +4 -6
- data/spec/unit/type/service_spec.rb +9 -8
- data/spec/unit/type/user_spec.rb +19 -13
- data/spec/unit/util/execution_spec.rb +16 -0
- data/spec/unit/util/http_proxy_spec.rb +97 -0
- data/spec/unit/util/log/destinations_spec.rb +2 -26
- data/spec/unit/util/log_spec.rb +0 -138
- data/spec/unit/util/logging_spec.rb +200 -0
- data/spec/unit/util/pidlock_spec.rb +67 -40
- data/spec/unit/util/plist_spec.rb +20 -0
- data/spec/unit/util/windows/adsi_spec.rb +55 -4
- data/spec/unit/util/windows/api_types_spec.rb +104 -40
- data/spec/unit/util/windows/sid_spec.rb +2 -2
- data/tasks/manpages.rake +1 -0
- metadata +16 -7
- data/lib/puppet/pops/loader/null_loader.rb +0 -60
- data/locales/ja/puppet.po +0 -12114
- data/spec/integration/test/test_helper_spec.rb +0 -31
@@ -304,7 +304,7 @@ module Puppet::ModuleTool
|
|
304
304
|
@environment.modules_by_path[options[:target_dir]].each do |mod|
|
305
305
|
if mod.has_metadata?
|
306
306
|
metadata = {
|
307
|
-
:name => mod.forge_name.
|
307
|
+
:name => mod.forge_name.tr('/', '-'),
|
308
308
|
:version => mod.version
|
309
309
|
}
|
310
310
|
next if release[:module] == metadata[:name]
|
@@ -53,7 +53,7 @@ module Puppet::ModuleTool
|
|
53
53
|
|
54
54
|
def find_installed_module
|
55
55
|
@environment.modules_by_path.values.flatten.each do |mod|
|
56
|
-
mod_name = (mod.forge_name || mod.name).
|
56
|
+
mod_name = (mod.forge_name || mod.name).tr('/', '-')
|
57
57
|
if mod_name == @name
|
58
58
|
@unfiltered << {
|
59
59
|
:name => mod_name,
|
@@ -102,7 +102,7 @@ module Puppet::ModuleTool
|
|
102
102
|
if mod.has_metadata? && !changes.empty?
|
103
103
|
raise LocalChangesError,
|
104
104
|
:action => :uninstall,
|
105
|
-
:module_name => (mod.forge_name || mod.name).
|
105
|
+
:module_name => (mod.forge_name || mod.name).tr('/', '-'),
|
106
106
|
:requested_version => @options[:version],
|
107
107
|
:installed_version => mod.version
|
108
108
|
end
|
@@ -110,7 +110,7 @@ module Puppet::ModuleTool
|
|
110
110
|
|
111
111
|
if !@options[:force] && !mod.required_by.empty?
|
112
112
|
raise ModuleIsRequiredError,
|
113
|
-
:module_name => (mod.forge_name || mod.name).
|
113
|
+
:module_name => (mod.forge_name || mod.name).tr('/', '-'),
|
114
114
|
:required_by => mod.required_by,
|
115
115
|
:requested_version => @options[:version],
|
116
116
|
:installed_version => mod.version
|
@@ -103,7 +103,7 @@ module Puppet::ModuleTool
|
|
103
103
|
|
104
104
|
contents = data.keys.map do |k|
|
105
105
|
value = (Puppet::Util::Json.dump(data[k], :pretty => true) rescue data[k].to_json)
|
106
|
-
%Q("#{k
|
106
|
+
%Q("#{k}": #{value})
|
107
107
|
end
|
108
108
|
|
109
109
|
"{\n" + contents.join(",\n").gsub(/^/, ' ') + "\n}\n"
|
@@ -8,12 +8,12 @@ module Puppet::ModuleTool::Shared
|
|
8
8
|
@installed = Hash.new { |h,k| h[k] = [] }
|
9
9
|
|
10
10
|
@environment.modules_by_path.values.flatten.each do |mod|
|
11
|
-
mod_name = (mod.forge_name || mod.name).
|
11
|
+
mod_name = (mod.forge_name || mod.name).tr('/', '-')
|
12
12
|
@installed[mod_name] << mod
|
13
13
|
d = @local["#{mod_name}@#{mod.version}"]
|
14
14
|
(mod.dependencies || []).each do |hash|
|
15
15
|
name, conditions = hash['name'], hash['version_requirement']
|
16
|
-
name = name.
|
16
|
+
name = name.tr('/', '-')
|
17
17
|
d[name] = conditions
|
18
18
|
@conditions[name] << {
|
19
19
|
:module => mod_name,
|
@@ -34,7 +34,7 @@ module Puppet::ModuleTool::Shared
|
|
34
34
|
info = forge.remote_dependency_info(author, modname, @options[:version])
|
35
35
|
info.each do |pair|
|
36
36
|
mod_name, releases = pair
|
37
|
-
mod_name = mod_name.
|
37
|
+
mod_name = mod_name.tr('/', '-')
|
38
38
|
releases.each do |rel|
|
39
39
|
semver = SemanticPuppet::Version.parse(rel['version']) rescue SemanticPuppet::Version::MIN
|
40
40
|
@versions[mod_name] << { :vstring => rel['version'], :semver => semver }
|
@@ -42,7 +42,7 @@ module Puppet::ModuleTool::Shared
|
|
42
42
|
@urls["#{mod_name}@#{rel['version']}"] = rel['file']
|
43
43
|
d = @remote["#{mod_name}@#{rel['version']}"]
|
44
44
|
(rel['dependencies'] || []).each do |name, conditions|
|
45
|
-
d[name.
|
45
|
+
d[name.tr('/', '-')] = conditions
|
46
46
|
end
|
47
47
|
end
|
48
48
|
end
|
@@ -93,7 +93,7 @@ class Puppet::ModuleTool::Tar::Mini
|
|
93
93
|
def find_valid_files(tarfile)
|
94
94
|
Archive::Tar::Minitar.open(tarfile).collect do |entry|
|
95
95
|
flag = entry.typeflag
|
96
|
-
if flag.nil? || flag =~ /[[:digit:]]/ && (0..7).
|
96
|
+
if flag.nil? || flag =~ /[[:digit:]]/ && (0..7).cover?(flag.to_i)
|
97
97
|
entry.full_name
|
98
98
|
else
|
99
99
|
Puppet.debug "Invalid tar flag '#{flag}' will not be extracted: #{entry.name}"
|
@@ -114,6 +114,17 @@ class Puppet::Network::HTTP::API::IndirectedRoutes
|
|
114
114
|
[indirection, method, key, params]
|
115
115
|
end
|
116
116
|
|
117
|
+
def self.request_to_uri(request)
|
118
|
+
uri, body = request_to_uri_and_body(request)
|
119
|
+
"#{uri}?#{body}"
|
120
|
+
end
|
121
|
+
|
122
|
+
def self.request_to_uri_and_body(request)
|
123
|
+
url_prefix = IndirectionType.url_prefix_for(request.indirection_name.to_s)
|
124
|
+
indirection = request.method == :search ? pluralize(request.indirection_name.to_s) : request.indirection_name.to_s
|
125
|
+
["#{url_prefix}/#{indirection}/#{Puppet::Util.uri_encode(request.key)}", "environment=#{request.environment.name}&#{request.query_string}"]
|
126
|
+
end
|
127
|
+
|
117
128
|
private
|
118
129
|
|
119
130
|
# Execute our find.
|
@@ -199,7 +210,7 @@ class Puppet::Network::HTTP::API::IndirectedRoutes
|
|
199
210
|
return formatter if formatter
|
200
211
|
|
201
212
|
raise Puppet::Network::HTTP::Error::HTTPNotAcceptableError.new(
|
202
|
-
_("No supported formats are acceptable (Accept: %{accepted_formats})") % { accepted_formats: formats },
|
213
|
+
_("No supported formats are acceptable (Accept: %{accepted_formats})") % { accepted_formats: formats.map(&:mime).join(', ') },
|
203
214
|
Puppet::Network::HTTP::Issues::UNSUPPORTED_FORMAT)
|
204
215
|
end
|
205
216
|
|
@@ -246,20 +257,10 @@ class Puppet::Network::HTTP::API::IndirectedRoutes
|
|
246
257
|
method
|
247
258
|
end
|
248
259
|
|
249
|
-
def self.request_to_uri(request)
|
250
|
-
uri, body = request_to_uri_and_body(request)
|
251
|
-
"#{uri}?#{body}"
|
252
|
-
end
|
253
|
-
|
254
|
-
def self.request_to_uri_and_body(request)
|
255
|
-
url_prefix = IndirectionType.url_prefix_for(request.indirection_name.to_s)
|
256
|
-
indirection = request.method == :search ? pluralize(request.indirection_name.to_s) : request.indirection_name.to_s
|
257
|
-
["#{url_prefix}/#{indirection}/#{Puppet::Util.uri_encode(request.key)}", "environment=#{request.environment.name}&#{request.query_string}"]
|
258
|
-
end
|
259
|
-
|
260
260
|
def self.pluralize(indirection)
|
261
261
|
return(indirection == "status" ? "statuses" : indirection + "s")
|
262
262
|
end
|
263
|
+
private_class_method :pluralize
|
263
264
|
|
264
265
|
def plurality(indirection)
|
265
266
|
# NOTE These specific hooks for paths are ridiculous, but it's a *many*-line
|
@@ -1,8 +1,11 @@
|
|
1
1
|
require 'puppet/util/json'
|
2
2
|
require 'puppet/parser/environment_compiler'
|
3
3
|
|
4
|
+
# @deprecated application orchestration will be removed in puppet 7
|
4
5
|
class Puppet::Network::HTTP::API::Master::V3::Environment
|
5
6
|
def call(request, response)
|
7
|
+
Puppet.deprecation_warning("Application orchestration is deprecated. See https://puppet.com/docs/puppet/5.5/deprecated_language.html")
|
8
|
+
|
6
9
|
env_name = request.routing_path.split('/').last
|
7
10
|
env = Puppet.lookup(:environments).get(env_name)
|
8
11
|
code_id = request.params[:code_id]
|
@@ -198,6 +198,10 @@ module Puppet::Network::HTTP
|
|
198
198
|
current_request[header] = value
|
199
199
|
end
|
200
200
|
when 429, 503
|
201
|
+
if connection.started?
|
202
|
+
Puppet.debug("Closing connection for #{current_site}")
|
203
|
+
connection.finish
|
204
|
+
end
|
201
205
|
response = handle_retry_after(current_response)
|
202
206
|
else
|
203
207
|
response = current_response
|
@@ -311,19 +315,17 @@ module Puppet::Network::HTTP
|
|
311
315
|
rescue => exception
|
312
316
|
elapsed = (Time.now - start).to_f.round(3)
|
313
317
|
uri = [@site.addr, request.path.split('?')[0]].join('/')
|
314
|
-
eclass = exception.class
|
315
|
-
|
316
|
-
err = case exception
|
317
|
-
when EOFError
|
318
|
-
eclass.new(_('request %{uri} interrupted after %{elapsed} seconds') % {uri: uri, elapsed: elapsed})
|
319
|
-
when Timeout::Error
|
320
|
-
eclass.new(_('request %{uri} timed out after %{elapsed} seconds') % {uri: uri, elapsed: elapsed})
|
321
|
-
else
|
322
|
-
eclass.new(_('request %{uri} failed: %{msg}') % {uri: uri, msg: exception.message})
|
323
|
-
end
|
324
318
|
|
325
|
-
|
326
|
-
|
319
|
+
case exception
|
320
|
+
when EOFError
|
321
|
+
Puppet.log_exception(exception, _('request %{uri} interrupted after %{elapsed} seconds') % {uri: uri, elapsed: elapsed})
|
322
|
+
when Timeout::Error
|
323
|
+
Puppet.log_exception(exception, _('request %{uri} timed out after %{elapsed} seconds') % {uri: uri, elapsed: elapsed})
|
324
|
+
else
|
325
|
+
Puppet.log_exception(exception, _('request %{uri} failed: %{msg}') % {uri: uri, msg: exception.message})
|
326
|
+
end
|
327
|
+
|
328
|
+
raise exception
|
327
329
|
end
|
328
330
|
|
329
331
|
def with_connection(site, &block)
|
@@ -33,7 +33,7 @@ class Puppet::Network::HTTP::Pool
|
|
33
33
|
reuse = false
|
34
34
|
raise detail
|
35
35
|
ensure
|
36
|
-
if reuse
|
36
|
+
if reuse && http.started?
|
37
37
|
release(site, http)
|
38
38
|
else
|
39
39
|
close_connection(site, http)
|
@@ -56,13 +56,17 @@ class Puppet::Network::HTTP::Pool
|
|
56
56
|
end
|
57
57
|
|
58
58
|
# Safely close a persistent connection.
|
59
|
+
# Don't try to close a connection that's already closed.
|
59
60
|
#
|
60
61
|
# @api private
|
61
62
|
def close_connection(site, http)
|
63
|
+
return false unless http.started?
|
62
64
|
Puppet.debug("Closing connection for #{site}")
|
63
65
|
http.finish
|
66
|
+
true
|
64
67
|
rescue => detail
|
65
68
|
Puppet.log_exception(detail, _("Failed to close connection for %{site}: %{detail}") % { site: site, detail: detail })
|
69
|
+
nil
|
66
70
|
end
|
67
71
|
|
68
72
|
# Borrow and take ownership of a persistent connection. If a new
|
@@ -90,6 +94,8 @@ class Puppet::Network::HTTP::Pool
|
|
90
94
|
#
|
91
95
|
# @api private
|
92
96
|
def setsockopts(netio)
|
97
|
+
return unless netio
|
98
|
+
|
93
99
|
socket = netio.io
|
94
100
|
socket.setsockopt(Socket::SOL_SOCKET, Socket::SO_KEEPALIVE, true)
|
95
101
|
end
|
@@ -52,7 +52,7 @@ class Puppet::Network::HTTP::RackREST
|
|
52
52
|
# Retrieve all headers from the http request, as a map.
|
53
53
|
def headers(request)
|
54
54
|
headers = request.env.select {|k,v| k.start_with? 'HTTP_'}.inject({}) do |m, (k,v)|
|
55
|
-
m[k.sub(/^HTTP_/, '').
|
55
|
+
m[k.sub(/^HTTP_/, '').tr('_','-').downcase] = v
|
56
56
|
m
|
57
57
|
end
|
58
58
|
headers['content-type'] = request.content_type
|
@@ -113,7 +113,7 @@ class Puppet::Network::HTTP::RackREST
|
|
113
113
|
# in contrast to the environment variable, the client cert is passed in
|
114
114
|
# as single string, therefore restore the certificate to a valid pem
|
115
115
|
# encoded certificate
|
116
|
-
cert.
|
116
|
+
cert.tr!(' ', "\n")
|
117
117
|
cert.gsub!(/BEGIN\nCERT/, "BEGIN CERT")
|
118
118
|
cert.gsub!(/END\nCERT/, "END CERT")
|
119
119
|
cert = Puppet::SSL::Certificate.from_instance(OpenSSL::X509::Certificate.new(cert))
|
@@ -18,7 +18,7 @@ module Puppet::Network::Resolver
|
|
18
18
|
when :ca then service = '_x-puppet-ca'
|
19
19
|
when :report then service = '_x-puppet-report'
|
20
20
|
when :file then service = '_x-puppet-fileserver'
|
21
|
-
else service = "_x-puppet-#{service_name
|
21
|
+
else service = "_x-puppet-#{service_name}"
|
22
22
|
end
|
23
23
|
srv_record = "#{service}._tcp.#{domain}"
|
24
24
|
|
@@ -33,7 +33,7 @@ module Puppet::Network::Resolver
|
|
33
33
|
else
|
34
34
|
each_priority(records) do |priority, recs|
|
35
35
|
while next_rr = recs.delete(find_weighted_server(recs))
|
36
|
-
Puppet.debug "Yielding next server of #{next_rr.target
|
36
|
+
Puppet.debug "Yielding next server of #{next_rr.target}:#{next_rr.port}"
|
37
37
|
yield next_rr.target.to_s, next_rr.port
|
38
38
|
end
|
39
39
|
end
|
@@ -285,7 +285,7 @@ class Puppet::Node::Environment
|
|
285
285
|
# @param name [String] The module name
|
286
286
|
# @return [Puppet::Module, nil] The module if found, else nil
|
287
287
|
def module(name)
|
288
|
-
|
288
|
+
modules_by_name[name]
|
289
289
|
end
|
290
290
|
|
291
291
|
# Locate a module instance by the full forge name (EG authorname/module)
|
@@ -340,6 +340,12 @@ class Puppet::Node::Environment
|
|
340
340
|
@modules
|
341
341
|
end
|
342
342
|
|
343
|
+
# @api private
|
344
|
+
def modules_by_name
|
345
|
+
@modules_by_name ||= Hash[modules.map { |mod| [mod.name, mod] }]
|
346
|
+
end
|
347
|
+
private :modules_by_name
|
348
|
+
|
343
349
|
# Generate a warning if the given directory in a module path entry is named `lib`.
|
344
350
|
#
|
345
351
|
# @api private
|
@@ -507,8 +513,7 @@ class Puppet::Node::Environment
|
|
507
513
|
[self.class, name, full_modulepath, manifest].hash
|
508
514
|
end
|
509
515
|
|
510
|
-
private
|
511
|
-
|
516
|
+
# not private so it can be called in tests
|
512
517
|
def self.extralibs()
|
513
518
|
if Puppet::Util.get_env('PUPPETLIB')
|
514
519
|
split_path(Puppet::Util.get_env('PUPPETLIB'))
|
@@ -517,11 +522,14 @@ class Puppet::Node::Environment
|
|
517
522
|
end
|
518
523
|
end
|
519
524
|
|
525
|
+
private
|
526
|
+
|
520
527
|
def self.expand_dirs(dirs)
|
521
528
|
dirs.collect do |dir|
|
522
529
|
Puppet::FileSystem.expand_path(dir)
|
523
530
|
end
|
524
531
|
end
|
532
|
+
private_class_method :expand_dirs
|
525
533
|
|
526
534
|
# Reparse the manifests for the given environment
|
527
535
|
#
|
data/lib/puppet/parser/ast.rb
CHANGED
@@ -12,7 +12,7 @@ class Puppet::Parser::AST
|
|
12
12
|
attr_accessor :parent, :scope, :file, :line, :pos
|
13
13
|
|
14
14
|
def inspect
|
15
|
-
"( #{self.class} #{self
|
15
|
+
"( #{self.class} #{self} #{@children.inspect} )"
|
16
16
|
end
|
17
17
|
|
18
18
|
# Evaluate the current object. Just a stub method, since the subclass
|
@@ -1,6 +1,8 @@
|
|
1
1
|
class Puppet::Parser::Compiler
|
2
2
|
# Validator that asserts that all capability resources that are referenced by 'consume' or 'require' has
|
3
3
|
# been exported by some other resource in the environment
|
4
|
+
#
|
5
|
+
# @deprecated application orchestration will be removed in puppet 7
|
4
6
|
class CatalogValidator::EnvironmentRelationshipValidator < CatalogValidator
|
5
7
|
|
6
8
|
def validate
|
@@ -1,5 +1,7 @@
|
|
1
1
|
class Puppet::Parser::Compiler
|
2
2
|
# Validator that asserts that only application components can appear inside a site.
|
3
|
+
#
|
4
|
+
# @deprecated application orchestration will be removed in puppet 7
|
3
5
|
class CatalogValidator::SiteValidator < CatalogValidator
|
4
6
|
def self.validation_stage?(stage)
|
5
7
|
PRE_FINISH.equal?(stage)
|
@@ -1,5 +1,6 @@
|
|
1
1
|
require 'puppet/parser/compiler'
|
2
2
|
|
3
|
+
# @deprecated application orchestration will be removed in puppet 7
|
3
4
|
class Puppet::Parser::EnvironmentCompiler < Puppet::Parser::Compiler
|
4
5
|
def self.compile(env, code_id=nil)
|
5
6
|
begin
|
@@ -54,6 +55,8 @@ class Puppet::Parser::EnvironmentCompiler < Puppet::Parser::Compiler
|
|
54
55
|
end
|
55
56
|
|
56
57
|
def compile
|
58
|
+
Puppet.deprecation_warning("Application orchestration is deprecated. See https://puppet.com/docs/puppet/5.5/deprecated_language.html")
|
59
|
+
|
57
60
|
add_function_overrides
|
58
61
|
begin
|
59
62
|
Puppet.override(@context_overrides, _("For compiling environment catalog %{env}") % { env: environment.name }) do
|
@@ -24,7 +24,7 @@ module Puppet::Parser::Functions
|
|
24
24
|
Puppet::Util::Log.levels.each do |level|
|
25
25
|
newfunction(level,
|
26
26
|
:environment => root_env,
|
27
|
-
:doc => "Log a message on the server at level #{level
|
27
|
+
:doc => "Log a message on the server at level #{level}.") do |vals|
|
28
28
|
send(level, vals.join(" "))
|
29
29
|
end
|
30
30
|
end
|
@@ -44,15 +44,10 @@ module Puppet::Parser::Functions
|
|
44
44
|
# @api private
|
45
45
|
class AnonymousModuleAdapter < Puppet::Pops::Adaptable::Adapter
|
46
46
|
attr_accessor :module
|
47
|
-
end
|
48
47
|
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
# @api private
|
53
|
-
def self.environment_module(env)
|
54
|
-
AnonymousModuleAdapter.adapt(env) do |a|
|
55
|
-
a.module ||= Module.new do
|
48
|
+
def self.create_adapter(env)
|
49
|
+
adapter = super(env)
|
50
|
+
adapter.module = Module.new do
|
56
51
|
@metadata = {}
|
57
52
|
|
58
53
|
def self.all_function_info
|
@@ -67,7 +62,16 @@ module Puppet::Parser::Functions
|
|
67
62
|
@metadata[name] = info
|
68
63
|
end
|
69
64
|
end
|
70
|
-
|
65
|
+
adapter
|
66
|
+
end
|
67
|
+
end
|
68
|
+
|
69
|
+
# Get the module that functions are mixed into corresponding to an
|
70
|
+
# environment
|
71
|
+
#
|
72
|
+
# @api private
|
73
|
+
def self.environment_module(env)
|
74
|
+
AnonymousModuleAdapter.adapt(env).module
|
71
75
|
end
|
72
76
|
|
73
77
|
# Create a new Puppet DSL function.
|
@@ -7,12 +7,12 @@ result as a String.
|
|
7
7
|
The first argument to this function should be a `<MODULE NAME>/<TEMPLATE FILE>`
|
8
8
|
reference, which loads `<TEMPLATE FILE>` from `<MODULE NAME>`'s `templates`
|
9
9
|
directory. In most cases, the last argument is optional; if used, it should be a
|
10
|
-
[hash](/puppet/latest/
|
10
|
+
[hash](https://puppet.com/docs/puppet/latest/lang_data_hash.html) that contains parameters to
|
11
11
|
pass to the template.
|
12
12
|
|
13
|
-
- See the [template](/puppet/latest/
|
13
|
+
- See the [template](https://puppet.com/docs/puppet/latest/lang_template.html) documentation
|
14
14
|
for general template usage information.
|
15
|
-
- See the [EPP syntax](/puppet/latest/
|
15
|
+
- See the [EPP syntax](https://puppet.com/docs/puppet/latest/lang_template_epp.html)
|
16
16
|
documentation for examples of EPP.
|
17
17
|
|
18
18
|
For example, to call the apache module's `templates/vhost/_docroot.epp`
|
@@ -6,12 +6,12 @@ text result as a String.
|
|
6
6
|
|
7
7
|
The first argument to this function should be a string containing an EPP
|
8
8
|
template. In most cases, the last argument is optional; if used, it should be a
|
9
|
-
[hash](/puppet/latest/
|
9
|
+
[hash](https://puppet.com/docs/puppet/latest/lang_data_hash.html) that contains parameters to
|
10
10
|
pass to the template.
|
11
11
|
|
12
|
-
- See the [template](/puppet/latest/
|
12
|
+
- See the [template](https://puppet.com/docs/puppet/latest/lang_template.html) documentation
|
13
13
|
for general template usage information.
|
14
|
-
- See the [EPP syntax](/puppet/latest/
|
14
|
+
- See the [EPP syntax](https://puppet.com/docs/puppet/latest/lang_template_epp.html)
|
15
15
|
documentation for examples of EPP.
|
16
16
|
|
17
17
|
For example, to evaluate an inline EPP template and pass it the `docroot` and
|
@@ -29,7 +29,7 @@ parameter tag without default values. Puppet produces an error if the
|
|
29
29
|
`inline_epp` function fails to pass any required parameter.
|
30
30
|
|
31
31
|
An inline EPP template should be written as a single-quoted string or
|
32
|
-
[heredoc](/puppet/latest/
|
32
|
+
[heredoc](https://puppet.com/docs/puppet/latest/lang_data_string.html#heredocs).
|
33
33
|
A double-quoted string is subject to expression interpolation before the string
|
34
34
|
is parsed as an EPP template.
|
35
35
|
|
@@ -45,7 +45,7 @@ END
|
|
45
45
|
~~~
|
46
46
|
|
47
47
|
- Since 3.5
|
48
|
-
- Requires [future parser](/puppet/3.8/
|
48
|
+
- Requires [future parser](https://puppet.com/docs/puppet/3.8/experiments_future.html) in Puppet 3.5 to 3.8") do |arguments|
|
49
49
|
|
50
50
|
Puppet::Parser::Functions::Error.is4x('inline_epp')
|
51
51
|
end
|