puppet 5.5.16-universal-darwin → 5.5.21-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 +10 -10
- data/Gemfile +2 -3
- data/Gemfile.lock +57 -52
- data/ext/build_defaults.yaml +1 -0
- data/ext/cert_inspector +3 -3
- data/ext/project_data.yaml +2 -2
- 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 -24
- 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 +15 -1
- data/lib/puppet/application/apply.rb +2 -2
- data/lib/puppet/application/describe.rb +3 -9
- data/lib/puppet/application/device.rb +4 -4
- 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/resource.rb +4 -4
- data/lib/puppet/application/script.rb +2 -2
- data/lib/puppet/configurer.rb +86 -28
- data/lib/puppet/configurer/downloader.rb +2 -6
- data/lib/puppet/daemon.rb +1 -1
- data/lib/puppet/defaults.rb +82 -38
- 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/config.rb +10 -48
- data/lib/puppet/face/facts.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/face/plugin.rb +9 -2
- data/lib/puppet/file_serving/http_metadata.rb +1 -1
- 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/reduce.rb +2 -4
- 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 +2 -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 +12 -2
- 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/factory.rb +1 -11
- 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 +4 -2
- data/lib/puppet/parameter.rb +8 -0
- 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 +1 -1
- 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/evaluator/access_operator.rb +2 -2
- 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/p_sensitive_type.rb +1 -1
- 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 +10 -0
- 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/file/posix.rb +5 -0
- 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.rb +10 -3
- 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/dnf.rb +1 -1
- 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/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/rpm.rb +57 -19
- data/lib/puppet/provider/package/windows/package.rb +1 -1
- data/lib/puppet/provider/package/yum.rb +35 -24
- 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/launchd.rb +20 -5
- 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 +35 -22
- data/lib/puppet/provider/service/windows.rb +8 -0
- data/lib/puppet/provider/user/directoryservice.rb +31 -6
- data/lib/puppet/provider/user/hpux.rb +1 -1
- data/lib/puppet/provider/user/pw.rb +12 -3
- data/lib/puppet/provider/user/user_role_add.rb +5 -1
- data/lib/puppet/provider/user/useradd.rb +62 -27
- 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 +18 -1
- data/lib/puppet/resource/catalog.rb +1 -1
- data/lib/puppet/resource/type.rb +8 -0
- data/lib/puppet/settings.rb +43 -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 +15 -10
- data/lib/puppet/transaction/report.rb +1 -1
- data/lib/puppet/transaction/resource_harness.rb +1 -1
- data/lib/puppet/type.rb +15 -4
- data/lib/puppet/type/cron.rb +1 -1
- data/lib/puppet/type/exec.rb +21 -9
- 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 +107 -8
- data/lib/puppet/type/schedule.rb +1 -1
- data/lib/puppet/type/selboolean.rb +17 -3
- data/lib/puppet/type/service.rb +9 -10
- data/lib/puppet/type/user.rb +6 -24
- data/lib/puppet/type/yumrepo.rb +3 -7
- data/lib/puppet/util.rb +47 -25
- data/lib/puppet/util/command_line/trollop.rb +1 -1
- data/lib/puppet/util/execution.rb +4 -3
- data/lib/puppet/util/http_proxy.rb +24 -16
- 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 +8 -2
- 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 +3 -0
- data/lib/puppet/util/windows/service.rb +149 -4
- data/lib/puppet/util/windows/sid.rb +4 -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 +479 -443
- data/man/man5/puppet.conf.5 +38 -8
- 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 +52 -0
- data/spec/integration/defaults_spec.rb +1 -2
- data/spec/integration/indirector/facts/facter_spec.rb +4 -0
- data/spec/integration/parser/compiler_spec.rb +11 -0
- data/spec/integration/provider/service/systemd_spec.rb +8 -5
- data/spec/integration/type/file_spec.rb +28 -0
- data/spec/integration/type/notify_spec.rb +46 -0
- data/spec/integration/util/execution_spec.rb +27 -0
- data/spec/integration/util/windows/adsi_spec.rb +6 -1
- data/spec/integration/util/windows/registry_spec.rb +7 -7
- data/spec/unit/agent_spec.rb +34 -26
- data/spec/unit/application/agent_spec.rb +18 -0
- data/spec/unit/application/apply_spec.rb +2 -12
- data/spec/unit/application/device_spec.rb +1 -1
- data/spec/unit/configurer/fact_handler_spec.rb +0 -4
- data/spec/unit/configurer_spec.rb +377 -397
- data/spec/unit/daemon_spec.rb +0 -1
- data/spec/unit/face/facts_spec.rb +9 -0
- data/spec/unit/face/plugin_spec.rb +8 -0
- 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/module_tool/tar/mini_spec.rb +1 -1
- data/spec/unit/network/http/api/indirected_routes_spec.rb +28 -11
- data/spec/unit/network/http/connection_spec.rb +43 -1
- data/spec/unit/network/http/factory_spec.rb +27 -5
- 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/pops/validator/validator_spec.rb +7 -0
- 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/aptrpm_spec.rb +1 -1
- data/spec/unit/provider/package/dnf_spec.rb +7 -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/rpm_spec.rb +150 -16
- data/spec/unit/provider/package/yum_spec.rb +66 -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/launchd_spec.rb +28 -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/service/windows_spec.rb +20 -0
- 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/pw_spec.rb +37 -0
- data/spec/unit/provider/user/useradd_spec.rb +122 -15
- data/spec/unit/provider/user/windows_adsi_spec.rb +3 -3
- data/spec/unit/puppet_pal_2pec.rb +3 -0
- data/spec/unit/resource_spec.rb +26 -1
- data/spec/unit/ssl/certificate_authority_spec.rb +2 -3
- data/spec/unit/ssl/certificate_spec.rb +7 -0
- data/spec/unit/test/test_helper_spec.rb +17 -0
- data/spec/unit/transaction_spec.rb +18 -0
- data/spec/unit/type/exec_spec.rb +15 -12
- data/spec/unit/type/file/content_spec.rb +9 -3
- data/spec/unit/type/file/source_spec.rb +4 -4
- data/spec/unit/type/file_spec.rb +9 -4
- data/spec/unit/type/package_spec.rb +8 -0
- data/spec/unit/type/schedule_spec.rb +3 -1
- data/spec/unit/type/selboolean_spec.rb +4 -6
- data/spec/unit/type/service_spec.rb +25 -8
- data/spec/unit/type/user_spec.rb +32 -26
- data/spec/unit/type/yumrepo_spec.rb +30 -0
- data/spec/unit/type_spec.rb +40 -0
- data/spec/unit/util/execution_spec.rb +16 -0
- data/spec/unit/util/http_proxy_spec.rb +121 -1
- data/spec/unit/util/log/destinations_spec.rb +2 -26
- data/spec/unit/util/log_spec.rb +0 -112
- 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/service_spec.rb +9 -0
- data/spec/unit/util/windows/sid_spec.rb +2 -2
- data/tasks/manpages.rake +1 -0
- metadata +16 -11
- data/ext/windows/eventlog/Rakefile +0 -32
- data/ext/windows/eventlog/puppetres.dll +0 -0
- data/ext/windows/eventlog/puppetres.mc +0 -18
- 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
data/lib/puppet/type/user.rb
CHANGED
@@ -255,21 +255,7 @@ module Puppet
|
|
255
255
|
raise ArgumentError, _("Passwords cannot include ':'") if value.is_a?(String) and value.include?(":")
|
256
256
|
end
|
257
257
|
|
258
|
-
|
259
|
-
if currentvalue == :absent
|
260
|
-
return _("created password")
|
261
|
-
else
|
262
|
-
return _("changed password")
|
263
|
-
end
|
264
|
-
end
|
265
|
-
|
266
|
-
def is_to_s( currentvalue )
|
267
|
-
return _('[old password hash redacted]')
|
268
|
-
end
|
269
|
-
def should_to_s( newvalue )
|
270
|
-
return _('[new password hash redacted]')
|
271
|
-
end
|
272
|
-
|
258
|
+
sensitive true
|
273
259
|
end
|
274
260
|
|
275
261
|
newproperty(:password_min_age, :required_features => :manages_password_age) do
|
@@ -628,7 +614,8 @@ module Puppet
|
|
628
614
|
end
|
629
615
|
|
630
616
|
newparam(:ia_load_module, :required_features => :manages_aix_lam) do
|
631
|
-
desc "The name of the I&A module to use to manage this user.
|
617
|
+
desc "The name of the I&A module to use to manage this user.
|
618
|
+
This should be set to `files` if managing local users."
|
632
619
|
end
|
633
620
|
|
634
621
|
newproperty(:attributes, :parent => Puppet::Property::KeyValue, :required_features => :manages_aix_lam) do
|
@@ -679,7 +666,8 @@ module Puppet
|
|
679
666
|
:required_features => :libuser,
|
680
667
|
:parent => Puppet::Parameter::Boolean) do
|
681
668
|
desc "Forces the management of local accounts when accounts are also
|
682
|
-
being managed by some other NSS
|
669
|
+
being managed by some other NSS. For AIX, refer to the
|
670
|
+
`ia_load_module` parameter."
|
683
671
|
defaultto false
|
684
672
|
end
|
685
673
|
|
@@ -731,17 +719,11 @@ module Puppet
|
|
731
719
|
value = test_sym if [:true, :false].include? test_sym
|
732
720
|
|
733
721
|
return [] if value == :false
|
734
|
-
home = resource[:home]
|
735
|
-
if value == :true and not home
|
736
|
-
raise ArgumentError, _("purge_ssh_keys can only be true for users with a defined home directory")
|
737
|
-
end
|
722
|
+
home = resource[:home] || Dir.home(resource[:name])
|
738
723
|
|
739
724
|
return [ "#{home}/.ssh/authorized_keys" ] if value == :true
|
740
725
|
# value is an array - munge each value
|
741
726
|
[ value ].flatten.map do |entry|
|
742
|
-
if entry =~ /^~|^%h/ and not home
|
743
|
-
raise ArgumentError, _("purge_ssh_keys value '%{value}' meta character ~ or %{home_placeholder} only allowed for users with a defined home directory") % { value: value, home_placeholder: '%h' }
|
744
|
-
end
|
745
727
|
entry.gsub!(/^~\//, "#{home}/")
|
746
728
|
entry.gsub!(/^%h\//, "#{home}/")
|
747
729
|
entry
|
data/lib/puppet/type/yumrepo.rb
CHANGED
@@ -321,6 +321,8 @@ Puppet::Type.newtype(:yumrepo) do
|
|
321
321
|
desc "Password for this proxy. #{ABSENT_DOC}"
|
322
322
|
|
323
323
|
newvalues(/.*/, :absent)
|
324
|
+
|
325
|
+
sensitive true
|
324
326
|
end
|
325
327
|
|
326
328
|
newproperty(:s3_enabled) do
|
@@ -423,12 +425,6 @@ Puppet::Type.newtype(:yumrepo) do
|
|
423
425
|
desc "Password to use with the username for basic authentication.
|
424
426
|
#{ABSENT_DOC}"
|
425
427
|
newvalues(/.*/, :absent)
|
426
|
-
|
427
|
-
|
428
|
-
private
|
429
|
-
|
430
|
-
def set_sensitive_parameters(sensitive_parameters)
|
431
|
-
parameter(:password).sensitive = true if parameter(:password)
|
432
|
-
super(sensitive_parameters)
|
428
|
+
sensitive true
|
433
429
|
end
|
434
430
|
end
|
data/lib/puppet/util.rb
CHANGED
@@ -27,21 +27,20 @@ module Util
|
|
27
27
|
|
28
28
|
extend Puppet::Util::SymbolicFileMode
|
29
29
|
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
module_function :default_env
|
30
|
+
DEFAULT_ENV = if Puppet::Util::Platform.windows?
|
31
|
+
:windows
|
32
|
+
else
|
33
|
+
:posix
|
34
|
+
end.freeze
|
36
35
|
|
37
36
|
# @param name [String] The name of the environment variable to retrieve
|
38
37
|
# @param mode [Symbol] Which operating system mode to use e.g. :posix or :windows. Use nil to autodetect
|
39
38
|
# @return [String] Value of the specified environment variable. nil if it does not exist
|
40
39
|
# @api private
|
41
|
-
def get_env(name, mode =
|
40
|
+
def get_env(name, mode = DEFAULT_ENV)
|
42
41
|
if mode == :windows
|
43
|
-
Puppet::Util::Windows::Process.get_environment_strings.
|
44
|
-
if name.casecmp(key) == 0
|
42
|
+
Puppet::Util::Windows::Process.get_environment_strings.find do |key, value|
|
43
|
+
if name.casecmp(key) == 0
|
45
44
|
return value
|
46
45
|
end
|
47
46
|
end
|
@@ -55,7 +54,7 @@ module Util
|
|
55
54
|
# @param mode [Symbol] Which operating system mode to use e.g. :posix or :windows. Use nil to autodetect
|
56
55
|
# @return [Hash] A hashtable of all environment variables
|
57
56
|
# @api private
|
58
|
-
def get_environment(mode =
|
57
|
+
def get_environment(mode = DEFAULT_ENV)
|
59
58
|
case mode
|
60
59
|
when :posix
|
61
60
|
ENV.to_hash
|
@@ -70,7 +69,7 @@ module Util
|
|
70
69
|
# Removes all environment variables
|
71
70
|
# @param mode [Symbol] Which operating system mode to use e.g. :posix or :windows. Use nil to autodetect
|
72
71
|
# @api private
|
73
|
-
def clear_environment(mode =
|
72
|
+
def clear_environment(mode = DEFAULT_ENV)
|
74
73
|
case mode
|
75
74
|
when :posix
|
76
75
|
ENV.clear
|
@@ -88,7 +87,7 @@ module Util
|
|
88
87
|
# @param value [String] The value to set the variable to. nil deletes the environment variable
|
89
88
|
# @param mode [Symbol] Which operating system mode to use e.g. :posix or :windows. Use nil to autodetect
|
90
89
|
# @api private
|
91
|
-
def set_env(name, value = nil, mode =
|
90
|
+
def set_env(name, value = nil, mode = DEFAULT_ENV)
|
92
91
|
case mode
|
93
92
|
when :posix
|
94
93
|
ENV[name] = value
|
@@ -103,7 +102,7 @@ module Util
|
|
103
102
|
# @param name [Hash] Environment variables to merge into the existing environment. nil values will remove the variable
|
104
103
|
# @param mode [Symbol] Which operating system mode to use e.g. :posix or :windows. Use nil to autodetect
|
105
104
|
# @api private
|
106
|
-
def merge_environment(env_hash, mode =
|
105
|
+
def merge_environment(env_hash, mode = DEFAULT_ENV)
|
107
106
|
case mode
|
108
107
|
when :posix
|
109
108
|
env_hash.each { |name, val| ENV[name.to_s] = val }
|
@@ -323,7 +322,7 @@ module Util
|
|
323
322
|
params = { :scheme => 'file' }
|
324
323
|
|
325
324
|
if Puppet.features.microsoft_windows?
|
326
|
-
path = path.
|
325
|
+
path = path.tr('\\', '/')
|
327
326
|
|
328
327
|
if unc = /^\/\/([^\/]+)(\/.+)/.match(path)
|
329
328
|
params[:host] = unc[1]
|
@@ -524,21 +523,44 @@ module Util
|
|
524
523
|
|
525
524
|
module_function :thinmark
|
526
525
|
|
526
|
+
PUPPET_STACK_INSERTION_FRAME = /.*puppet_stack\.rb.*in.*`stack'/
|
527
|
+
|
527
528
|
# utility method to get the current call stack and format it to a human-readable string (which some IDEs/editors
|
528
529
|
# will recognize as links to the line numbers in the trace)
|
529
|
-
def self.pretty_backtrace(backtrace = caller(1))
|
530
|
-
backtrace.
|
531
|
-
|
532
|
-
|
533
|
-
|
534
|
-
|
535
|
-
|
536
|
-
|
537
|
-
|
530
|
+
def self.pretty_backtrace(backtrace = caller(1), puppetstack = [])
|
531
|
+
format_backtrace_array(backtrace, puppetstack).join("\n")
|
532
|
+
end
|
533
|
+
|
534
|
+
# arguments may be a Ruby stack, with an optional Puppet stack argument,
|
535
|
+
# or just a Puppet stack.
|
536
|
+
# stacks may be an Array of Strings "/foo.rb:0 in `blah'" or
|
537
|
+
# an Array of Arrays that represent a frame: ["/foo.pp", 0]
|
538
|
+
def self.format_backtrace_array(primary_stack, puppetstack = [])
|
539
|
+
primary_stack.flat_map do |frame|
|
540
|
+
frame = format_puppetstack_frame(frame) if frame.is_a?(Array)
|
541
|
+
primary_frame = resolve_stackframe(frame)
|
542
|
+
|
543
|
+
if primary_frame =~ PUPPET_STACK_INSERTION_FRAME && !puppetstack.empty?
|
544
|
+
[resolve_stackframe(format_puppetstack_frame(puppetstack.shift)),
|
545
|
+
primary_frame]
|
538
546
|
else
|
539
|
-
|
547
|
+
primary_frame
|
540
548
|
end
|
541
|
-
end
|
549
|
+
end
|
550
|
+
end
|
551
|
+
|
552
|
+
def self.resolve_stackframe(frame)
|
553
|
+
_, path, rest = /^(.*):(\d+.*)$/.match(frame).to_a
|
554
|
+
if path
|
555
|
+
path = Pathname(path).realpath rescue path
|
556
|
+
"#{path}:#{rest}"
|
557
|
+
else
|
558
|
+
frame
|
559
|
+
end
|
560
|
+
end
|
561
|
+
|
562
|
+
def self.format_puppetstack_frame(file_and_lineno)
|
563
|
+
file_and_lineno.join(':')
|
542
564
|
end
|
543
565
|
|
544
566
|
# Replace a file, securely. This takes a block, and passes it the file
|
@@ -215,7 +215,7 @@ class Parser
|
|
215
215
|
opts[:type] = opts[:type] || type_from_default || :flag
|
216
216
|
|
217
217
|
## fill in :long
|
218
|
-
opts[:long] = opts[:long] ? opts[:long].to_s : name.to_s.
|
218
|
+
opts[:long] = opts[:long] ? opts[:long].to_s : name.to_s.tr("_", "-")
|
219
219
|
opts[:long] =
|
220
220
|
case opts[:long]
|
221
221
|
when /^--([^-].*)$/
|
@@ -162,15 +162,16 @@ module Puppet::Util::Execution
|
|
162
162
|
|
163
163
|
options = default_options.merge(options)
|
164
164
|
|
165
|
-
if
|
166
|
-
command_str = '[redacted]'
|
167
|
-
elsif command.is_a?(Array)
|
165
|
+
if command.is_a?(Array)
|
168
166
|
command = command.flatten.map(&:to_s)
|
169
167
|
command_str = command.join(" ")
|
170
168
|
elsif command.is_a?(String)
|
171
169
|
command_str = command
|
172
170
|
end
|
173
171
|
|
172
|
+
# do this after processing 'command' array or string
|
173
|
+
command_str = '[redacted]' if options[:sensitive]
|
174
|
+
|
174
175
|
user_log_s = ''
|
175
176
|
if options[:uid]
|
176
177
|
user_log_s << " uid=#{options[:uid]}"
|
@@ -4,13 +4,15 @@ require 'puppet/network/http'
|
|
4
4
|
|
5
5
|
module Puppet::Util::HttpProxy
|
6
6
|
def self.proxy(uri)
|
7
|
-
if
|
8
|
-
|
7
|
+
if http_proxy_host && !no_proxy?(uri)
|
8
|
+
Net::HTTP.new(uri.host, uri.port, self.http_proxy_host, self.http_proxy_port, self.http_proxy_user, self.http_proxy_password)
|
9
9
|
else
|
10
|
-
|
10
|
+
http = Net::HTTP.new(uri.host, uri.port, nil, nil, nil, nil)
|
11
|
+
# Net::HTTP defaults the proxy port even though we said not to
|
12
|
+
# use one. Set it to nil so caller is not surprised
|
13
|
+
http.proxy_port = nil if http.respond_to?(:proxy_port=)
|
14
|
+
http
|
11
15
|
end
|
12
|
-
|
13
|
-
return proxy_class.new(uri.host, uri.port)
|
14
16
|
end
|
15
17
|
|
16
18
|
def self.http_proxy_env
|
@@ -33,7 +35,7 @@ module Puppet::Util::HttpProxy
|
|
33
35
|
# .example.com
|
34
36
|
# We'll accommodate both here.
|
35
37
|
def self.no_proxy?(dest)
|
36
|
-
unless
|
38
|
+
unless no_proxy = self.no_proxy
|
37
39
|
return false
|
38
40
|
end
|
39
41
|
|
@@ -45,18 +47,10 @@ module Puppet::Util::HttpProxy
|
|
45
47
|
end
|
46
48
|
end
|
47
49
|
|
48
|
-
|
50
|
+
no_proxy.split(/\s*,\s*/).each do |d|
|
49
51
|
host, port = d.split(':')
|
50
52
|
host = Regexp.escape(host).gsub('\*', '.*')
|
51
53
|
|
52
|
-
#If the host of this no_proxy value starts with '.', this entry is
|
53
|
-
#a domain level entry. Don't pin the regex to the beginning of the entry.
|
54
|
-
#If it does not start with a '.' then it is a host specific entry and
|
55
|
-
#should be matched to the destination starting at the beginning.
|
56
|
-
unless host =~ /^\\\./
|
57
|
-
host = "^#{host}"
|
58
|
-
end
|
59
|
-
|
60
54
|
#If this no_proxy entry specifies a port, we want to match it against
|
61
55
|
#the destination port. Otherwise just match hosts.
|
62
56
|
if port
|
@@ -127,6 +121,20 @@ module Puppet::Util::HttpProxy
|
|
127
121
|
return Puppet.settings[:http_proxy_password]
|
128
122
|
end
|
129
123
|
|
124
|
+
def self.no_proxy
|
125
|
+
no_proxy_env = ENV["no_proxy"] || ENV["NO_PROXY"]
|
126
|
+
|
127
|
+
if no_proxy_env
|
128
|
+
return no_proxy_env
|
129
|
+
end
|
130
|
+
|
131
|
+
if Puppet.settings[:no_proxy] == 'none'
|
132
|
+
return nil
|
133
|
+
end
|
134
|
+
|
135
|
+
return Puppet.settings[:no_proxy]
|
136
|
+
end
|
137
|
+
|
130
138
|
# Return a Net::HTTP::Proxy object.
|
131
139
|
#
|
132
140
|
# This method optionally configures SSL correctly if the URI scheme is
|
@@ -178,7 +186,7 @@ module Puppet::Util::HttpProxy
|
|
178
186
|
|
179
187
|
headers = { 'Accept' => '*/*', 'User-Agent' => Puppet[:http_user_agent] }
|
180
188
|
if Puppet.features.zlib?
|
181
|
-
headers
|
189
|
+
headers["Accept-Encoding"] = Puppet::Network::HTTP::Compression::ACCEPT_ENCODING
|
182
190
|
end
|
183
191
|
|
184
192
|
response = proxy.send(:head, current_uri.path, headers)
|
@@ -40,7 +40,7 @@ module Puppet::Util::InstanceLoader
|
|
40
40
|
instance_loader(type).loadall
|
41
41
|
|
42
42
|
# Use this method so they all get loaded
|
43
|
-
loaded_instances(type).
|
43
|
+
loaded_instances(type).sort_by(&:to_s).each do |name|
|
44
44
|
mod = self.loaded_instance(type, name)
|
45
45
|
docs << "#{name}\n#{"-" * name.to_s.length}\n"
|
46
46
|
|
data/lib/puppet/util/log.rb
CHANGED
@@ -34,7 +34,7 @@ Puppet::Util::Log.newdesttype :syslog do
|
|
34
34
|
end
|
35
35
|
else
|
36
36
|
msg.to_s.split("\n").each do |line|
|
37
|
-
@syslog.send(msg.level, "(%s) %s" % [msg.source.to_s.
|
37
|
+
@syslog.send(msg.level, "(%s) %s" % [msg.source.to_s.delete("%"),
|
38
38
|
line.gsub("%", '%%')
|
39
39
|
]
|
40
40
|
)
|
@@ -77,7 +77,7 @@ Puppet::Util::Log.newdesttype :file do
|
|
77
77
|
|
78
78
|
# create the log file, if it doesn't already exist
|
79
79
|
need_array_start = false
|
80
|
-
file_exists =
|
80
|
+
file_exists = Puppet::FileSystem.exist?(path)
|
81
81
|
if @json == 1
|
82
82
|
need_array_start = true
|
83
83
|
if file_exists
|
@@ -90,18 +90,9 @@ Puppet::Util::Log.newdesttype :file do
|
|
90
90
|
end
|
91
91
|
end
|
92
92
|
|
93
|
-
file = File.open(path,
|
93
|
+
file = File.open(path, File::WRONLY|File::CREAT|File::APPEND)
|
94
94
|
file.puts('[') if need_array_start
|
95
95
|
|
96
|
-
# Give ownership to the user and group puppet will run as
|
97
|
-
if Puppet.features.root? && !Puppet::Util::Platform.windows? && !file_exists
|
98
|
-
begin
|
99
|
-
FileUtils.chown(Puppet[:user], Puppet[:group], path)
|
100
|
-
rescue ArgumentError, Errno::EPERM
|
101
|
-
Puppet.err _("Unable to set ownership to %{user}:%{group} for log file: %{path}") % { user: Puppet[:user], group: Puppet[:group], path: path }
|
102
|
-
end
|
103
|
-
end
|
104
|
-
|
105
96
|
@file = file
|
106
97
|
|
107
98
|
@autoflush = Puppet[:autoflush]
|
data/lib/puppet/util/logging.rb
CHANGED
@@ -48,11 +48,12 @@ module Logging
|
|
48
48
|
# wish to log a message at all; in this case it is likely that you are only calling this method in order
|
49
49
|
# to take advantage of the backtrace logging.
|
50
50
|
def log_exception(exception, message = :default, options = {})
|
51
|
-
|
51
|
+
combined_trace = Puppet[:trace] || options[:trace]
|
52
|
+
puppet_trace = Puppet[:puppet_trace] || options[:puppet_trace]
|
53
|
+
|
52
54
|
if message == :default && exception.is_a?(Puppet::ParseErrorWithIssue)
|
53
55
|
# Retain all detailed info and keep plain message and stacktrace separate
|
54
|
-
backtrace =
|
55
|
-
build_exception_trace(backtrace, exception, trace)
|
56
|
+
backtrace = build_exception_trace(exception, combined_trace, puppet_trace)
|
56
57
|
Puppet::Util::Log.create({
|
57
58
|
:level => options[:level] || :err,
|
58
59
|
:source => log_source,
|
@@ -66,28 +67,27 @@ module Logging
|
|
66
67
|
:node => exception.node
|
67
68
|
}.merge(log_metadata))
|
68
69
|
else
|
69
|
-
err(format_exception(exception, message,
|
70
|
+
err(format_exception(exception, message, combined_trace, puppet_trace))
|
70
71
|
end
|
71
72
|
end
|
72
73
|
|
73
|
-
def build_exception_trace(
|
74
|
-
|
75
|
-
|
76
|
-
arr << line =~ /^(.+):(\d+.*)$/ ? ("#{Pathname($1).realpath}:#{$2}" rescue line) : line
|
77
|
-
end
|
78
|
-
end
|
74
|
+
def build_exception_trace(exception, combined_trace = true, puppet_trace = false)
|
75
|
+
built_trace = format_backtrace(exception, combined_trace, puppet_trace)
|
76
|
+
|
79
77
|
if exception.respond_to?(:original)
|
80
78
|
original = exception.original
|
81
79
|
unless original.nil?
|
82
|
-
|
83
|
-
|
84
|
-
build_exception_trace(
|
80
|
+
built_trace << _('Wrapped exception:')
|
81
|
+
built_trace << original.message
|
82
|
+
built_trace += build_exception_trace(original, combined_trace, puppet_trace)
|
85
83
|
end
|
86
84
|
end
|
85
|
+
|
86
|
+
built_trace
|
87
87
|
end
|
88
88
|
private :build_exception_trace
|
89
89
|
|
90
|
-
def format_exception(exception, message = :default,
|
90
|
+
def format_exception(exception, message = :default, combined_trace = true, puppet_trace = false)
|
91
91
|
arr = []
|
92
92
|
case message
|
93
93
|
when :default
|
@@ -98,16 +98,28 @@ module Logging
|
|
98
98
|
arr << message
|
99
99
|
end
|
100
100
|
|
101
|
-
|
102
|
-
|
103
|
-
end
|
101
|
+
arr += format_backtrace(exception, combined_trace, puppet_trace)
|
102
|
+
|
104
103
|
if exception.respond_to?(:original) and exception.original
|
105
104
|
arr << _("Wrapped exception:")
|
106
|
-
arr << format_exception(exception.original, :default,
|
105
|
+
arr << format_exception(exception.original, :default, combined_trace, puppet_trace)
|
107
106
|
end
|
107
|
+
|
108
108
|
arr.flatten.join("\n")
|
109
109
|
end
|
110
110
|
|
111
|
+
def format_backtrace(exception, combined_trace, puppet_trace)
|
112
|
+
puppetstack = exception.respond_to?(:puppetstack) ? exception.puppetstack : []
|
113
|
+
|
114
|
+
if combined_trace and exception.backtrace
|
115
|
+
Puppet::Util.format_backtrace_array(exception.backtrace, puppetstack)
|
116
|
+
elsif puppet_trace && !puppetstack.empty?
|
117
|
+
Puppet::Util.format_backtrace_array(puppetstack)
|
118
|
+
else
|
119
|
+
[]
|
120
|
+
end
|
121
|
+
end
|
122
|
+
|
111
123
|
def log_and_raise(exception, message)
|
112
124
|
log_exception(exception, message)
|
113
125
|
raise exception, message + "\n" + exception.to_s, exception.backtrace
|