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
data/spec/unit/type/user_spec.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
# encoding:
|
1
|
+
# encoding: utf-8
|
2
2
|
require 'spec_helper'
|
3
3
|
|
4
4
|
describe Puppet::Type.type(:user) do
|
@@ -484,22 +484,20 @@ describe Puppet::Type.type(:user) do
|
|
484
484
|
end
|
485
485
|
|
486
486
|
context "with no home directory specified" do
|
487
|
-
|
488
|
-
|
489
|
-
described_class.new(:name => "a", :purge_ssh_keys => true)
|
490
|
-
}.to raise_error(Puppet::Error, /purge_ssh_keys can only be true for users with a defined home directory/)
|
487
|
+
before(:each) do
|
488
|
+
allow(Dir).to receive(:home).with('a').and_return('/home/a')
|
491
489
|
end
|
492
490
|
|
493
|
-
it "should
|
494
|
-
|
495
|
-
described_class.new(:name => "a", :purge_ssh_keys => "~/keys")
|
496
|
-
}.to raise_error(Puppet::Error, /meta character ~ or %h only allowed for users with a defined home directory/)
|
491
|
+
it "should accept true" do
|
492
|
+
described_class.new(:name => "a", :purge_ssh_keys => true)
|
497
493
|
end
|
498
494
|
|
499
|
-
it "should
|
500
|
-
|
501
|
-
|
502
|
-
|
495
|
+
it "should accept the ~ wildcard" do
|
496
|
+
described_class.new(:name => "a", :purge_ssh_keys => "~/keys")
|
497
|
+
end
|
498
|
+
|
499
|
+
it "should accept the %h wildcard" do
|
500
|
+
described_class.new(:name => "a", :purge_ssh_keys => "%h/keys")
|
503
501
|
end
|
504
502
|
end
|
505
503
|
|
@@ -508,6 +506,10 @@ describe Puppet::Type.type(:user) do
|
|
508
506
|
[ "/dev/null", "/tmp/keyfile" ].map { |path| File.expand_path(path) }
|
509
507
|
end
|
510
508
|
|
509
|
+
before(:each) do
|
510
|
+
allow(Dir).to receive(:home).with('test').and_return('/home/test')
|
511
|
+
end
|
512
|
+
|
511
513
|
subject do
|
512
514
|
res = described_class.new(:name => "test", :purge_ssh_keys => paths)
|
513
515
|
res.catalog = Puppet::Resource::Catalog.new
|
@@ -534,6 +536,10 @@ describe Puppet::Type.type(:user) do
|
|
534
536
|
res
|
535
537
|
end
|
536
538
|
|
539
|
+
before(:each) do
|
540
|
+
allow(Dir).to receive(:home).with('test_user_name').and_return('/home/test_user_name')
|
541
|
+
end
|
542
|
+
|
537
543
|
context "when purging is disabled" do
|
538
544
|
let(:purge_param) { false }
|
539
545
|
|
@@ -128,6 +128,13 @@ describe Puppet::Util::Execution do
|
|
128
128
|
|
129
129
|
call_exec_posix('test command', { :cwd => cwd }, @stdin, @stdout, @stderr)
|
130
130
|
end
|
131
|
+
|
132
|
+
it "should not change the current working directory if cwd is unspecified" do
|
133
|
+
expect(Dir).to receive(:chdir).never
|
134
|
+
expect(Kernel).to receive(:exec).with('test command')
|
135
|
+
|
136
|
+
call_exec_posix('test command', {}, @stdin, @stdout, @stderr)
|
137
|
+
end
|
131
138
|
end
|
132
139
|
|
133
140
|
it "should return the pid of the child process" do
|
@@ -171,6 +178,15 @@ describe Puppet::Util::Execution do
|
|
171
178
|
|
172
179
|
call_exec_windows('test command', { :cwd => cwd }, @stdin, @stdout, @stderr)
|
173
180
|
end
|
181
|
+
|
182
|
+
it "should not change the current working directory if cwd is unspecified" do
|
183
|
+
expect(Dir).to receive(:chdir).never
|
184
|
+
expect(Process).to receive(:create) do |args|
|
185
|
+
expect(args[:cwd]).to be_nil
|
186
|
+
end
|
187
|
+
|
188
|
+
call_exec_windows('test command', {}, @stdin, @stdout, @stderr)
|
189
|
+
end
|
174
190
|
end
|
175
191
|
|
176
192
|
context 'suppress_window option' do
|
@@ -12,6 +12,103 @@ describe Puppet::Util::HttpProxy do
|
|
12
12
|
|
13
13
|
host, port, user, password = 'some.host', 1234, 'user1', 'pAssw0rd'
|
14
14
|
|
15
|
+
def expects_direct_connection_to(http, www)
|
16
|
+
expect(http.address).to eq(www.host)
|
17
|
+
expect(http.port).to eq(www.port)
|
18
|
+
|
19
|
+
expect(http.proxy_address).to be_nil
|
20
|
+
expect(http.proxy_port).to be_nil
|
21
|
+
expect(http.proxy_user).to be_nil
|
22
|
+
expect(http.proxy_pass).to be_nil
|
23
|
+
end
|
24
|
+
|
25
|
+
def expects_proxy_connection_via(http, www, host, port, user, password)
|
26
|
+
expect(http.address).to eq(www.host)
|
27
|
+
expect(http.port).to eq(www.port)
|
28
|
+
|
29
|
+
expect(http.proxy_address).to eq(host)
|
30
|
+
expect(http.proxy_port).to eq(port)
|
31
|
+
expect(http.proxy_user).to eq(user)
|
32
|
+
expect(http.proxy_pass).to eq(password)
|
33
|
+
end
|
34
|
+
|
35
|
+
describe '.proxy' do
|
36
|
+
let(:www) { URI::HTTP.build(host: 'www.example.com', port: 80) }
|
37
|
+
|
38
|
+
it 'uses a proxy' do
|
39
|
+
Puppet[:http_proxy_host] = host
|
40
|
+
Puppet[:http_proxy_port] = port
|
41
|
+
Puppet[:http_proxy_user] = user
|
42
|
+
Puppet[:http_proxy_password] = password
|
43
|
+
|
44
|
+
http = subject.proxy(www)
|
45
|
+
expects_proxy_connection_via(http, www, host, port, user, password)
|
46
|
+
end
|
47
|
+
|
48
|
+
it 'connects directly to the server' do
|
49
|
+
http = subject.proxy(www)
|
50
|
+
expects_direct_connection_to(http, www)
|
51
|
+
end
|
52
|
+
|
53
|
+
context 'when setting no_proxy' do
|
54
|
+
before :each do
|
55
|
+
Puppet[:http_proxy_host] = host
|
56
|
+
Puppet[:http_proxy_port] = port
|
57
|
+
end
|
58
|
+
|
59
|
+
it 'connects directly to the server when HTTP_PROXY environment variable is set, but server matches no_proxy setting' do
|
60
|
+
Puppet[:no_proxy] = www.host
|
61
|
+
|
62
|
+
Puppet::Util.withenv('HTTP_PROXY' => "http://#{host}:#{port}") do
|
63
|
+
http = subject.proxy(www)
|
64
|
+
expects_direct_connection_to(http, www)
|
65
|
+
end
|
66
|
+
end
|
67
|
+
|
68
|
+
it 'connects directly to the server when no_proxy matches wildcard domain' do
|
69
|
+
Puppet[:no_proxy] = '*.example.com'
|
70
|
+
|
71
|
+
http = subject.proxy(www)
|
72
|
+
expects_direct_connection_to(http, www)
|
73
|
+
end
|
74
|
+
|
75
|
+
it 'connects directly to the server when no_proxy matches dotted domain' do
|
76
|
+
Puppet[:no_proxy] = '.example.com'
|
77
|
+
|
78
|
+
http = subject.proxy(www)
|
79
|
+
expects_direct_connection_to(http, www)
|
80
|
+
end
|
81
|
+
|
82
|
+
it 'connects directly to the server when no_proxy matches a domain suffix like ruby does' do
|
83
|
+
Puppet[:no_proxy] = 'example.com'
|
84
|
+
|
85
|
+
http = subject.proxy(www)
|
86
|
+
expects_direct_connection_to(http, www)
|
87
|
+
end
|
88
|
+
|
89
|
+
it 'connects directly to the server when no_proxy matches a partial suffix like ruby does' do
|
90
|
+
Puppet[:no_proxy] = 'ample.com'
|
91
|
+
|
92
|
+
http = subject.proxy(www)
|
93
|
+
expects_direct_connection_to(http, www)
|
94
|
+
end
|
95
|
+
|
96
|
+
it 'connects directly to the server when it is a subdomain of no_proxy' do
|
97
|
+
Puppet[:no_proxy] = '*.com'
|
98
|
+
|
99
|
+
http = subject.proxy(www)
|
100
|
+
expects_direct_connection_to(http, www)
|
101
|
+
end
|
102
|
+
|
103
|
+
it 'connects directly to the server when no_proxy is *' do
|
104
|
+
Puppet[:no_proxy] = '*'
|
105
|
+
|
106
|
+
http = subject.proxy(www)
|
107
|
+
expects_direct_connection_to(http, www)
|
108
|
+
end
|
109
|
+
end
|
110
|
+
end
|
111
|
+
|
15
112
|
describe ".http_proxy_env" do
|
16
113
|
it "should return nil if no environment variables" do
|
17
114
|
expect(subject.http_proxy_env).to eq(nil)
|
@@ -44,37 +44,13 @@ describe Puppet::Util::Log.desttypes[:file] do
|
|
44
44
|
end
|
45
45
|
end
|
46
46
|
|
47
|
-
describe "on POSIX systems", :
|
47
|
+
describe "on POSIX systems", :unless => Puppet::Util::Platform.windows? do
|
48
48
|
describe "with a normal file" do
|
49
|
+
let (:parent) { Pathname.new('/tmp') }
|
49
50
|
let (:abspath) { '/tmp/log' }
|
50
51
|
let (:relpath) { 'log' }
|
51
52
|
|
52
53
|
it_behaves_like "file destination"
|
53
|
-
|
54
|
-
it "logs an error if it can't chown the file owner & group" do
|
55
|
-
expect(File).to receive(:exists?).with(abspath).and_return(false)
|
56
|
-
expect(FileUtils).to receive(:chown).with(Puppet[:user], Puppet[:group], abspath).and_raise(Errno::EPERM)
|
57
|
-
expect(Puppet.features).to receive(:root?).and_return(true)
|
58
|
-
expect(Puppet).to receive(:err).with("Unable to set ownership to #{Puppet[:user]}:#{Puppet[:group]} for log file: #{abspath}")
|
59
|
-
|
60
|
-
@class.new(abspath)
|
61
|
-
end
|
62
|
-
|
63
|
-
it "doesn't attempt to chown when running as non-root" do
|
64
|
-
expect(File).to receive(:exists?).with(abspath).and_return(false)
|
65
|
-
expect(FileUtils).not_to receive(:chown).with(Puppet[:user], Puppet[:group], abspath)
|
66
|
-
expect(Puppet.features).to receive(:root?).and_return(false)
|
67
|
-
|
68
|
-
@class.new(abspath)
|
69
|
-
end
|
70
|
-
|
71
|
-
it "doesn't attempt to chown when file already exists" do
|
72
|
-
expect(File).to receive(:exists?).with(abspath).and_return(true)
|
73
|
-
expect(FileUtils).not_to receive(:chown).with(Puppet[:user], Puppet[:group], abspath)
|
74
|
-
expect(Puppet.features).to receive(:root?).and_return(true)
|
75
|
-
|
76
|
-
@class.new(abspath)
|
77
|
-
end
|
78
54
|
end
|
79
55
|
|
80
56
|
describe "with a JSON file" do
|
data/spec/unit/util/log_spec.rb
CHANGED
@@ -177,144 +177,6 @@ describe Puppet::Util::Log do
|
|
177
177
|
|
178
178
|
expect(logs.collect(&:message)).to include("Inner block", "Outer block")
|
179
179
|
end
|
180
|
-
|
181
|
-
it 'includes backtrace for RuntimeError in log message when trace option is passed' do
|
182
|
-
logs = []
|
183
|
-
destination = Puppet::Test::LogCollector.new(logs)
|
184
|
-
|
185
|
-
Puppet::Util::Log.newdestination(destination)
|
186
|
-
Puppet::Util::Log.with_destination(destination) do
|
187
|
-
begin
|
188
|
-
raise RuntimeError, 'Oops'
|
189
|
-
rescue RuntimeError => e
|
190
|
-
Puppet.log_exception(e, :default, :trace => true)
|
191
|
-
end
|
192
|
-
end
|
193
|
-
expect(logs.size).to eq(1)
|
194
|
-
log = logs[0]
|
195
|
-
expect(log.message).to match('/log_spec.rb')
|
196
|
-
expect(log.backtrace).to be_nil
|
197
|
-
end
|
198
|
-
|
199
|
-
context "global options" do
|
200
|
-
around :each do |example|
|
201
|
-
Puppet[:trace] = true
|
202
|
-
example.run
|
203
|
-
Puppet[:trace] = false
|
204
|
-
end
|
205
|
-
|
206
|
-
it 'includes backtrace for RuntimeError in log message when trace is enabled globally' do
|
207
|
-
logs = []
|
208
|
-
destination = Puppet::Test::LogCollector.new(logs)
|
209
|
-
|
210
|
-
Puppet::Util::Log.newdestination(destination)
|
211
|
-
Puppet::Util::Log.with_destination(destination) do
|
212
|
-
begin
|
213
|
-
raise RuntimeError, 'Oops'
|
214
|
-
rescue RuntimeError => e
|
215
|
-
Puppet.log_exception(e, :default)
|
216
|
-
end
|
217
|
-
end
|
218
|
-
expect(logs.size).to eq(1)
|
219
|
-
log = logs[0]
|
220
|
-
expect(log.message).to match('/log_spec.rb')
|
221
|
-
expect(log.backtrace).to be_nil
|
222
|
-
end
|
223
|
-
end
|
224
|
-
|
225
|
-
it 'excludes backtrace for RuntimeError in log message when trace is disabled' do
|
226
|
-
logs = []
|
227
|
-
destination = Puppet::Test::LogCollector.new(logs)
|
228
|
-
|
229
|
-
Puppet::Util::Log.newdestination(destination)
|
230
|
-
Puppet::Util::Log.with_destination(destination) do
|
231
|
-
begin
|
232
|
-
raise RuntimeError, 'Oops'
|
233
|
-
rescue RuntimeError => e
|
234
|
-
Puppet.log_exception(e)
|
235
|
-
end
|
236
|
-
end
|
237
|
-
expect(logs.size).to eq(1)
|
238
|
-
log = logs[0]
|
239
|
-
expect(log.message).to_not match('/log_spec.rb')
|
240
|
-
expect(log.backtrace).to be_nil
|
241
|
-
end
|
242
|
-
|
243
|
-
it "backtrace is Array in 'backtrace' and excluded from 'message' when logging ParseErrorWithIssue with trace enabled" do
|
244
|
-
logs = []
|
245
|
-
destination = Puppet::Test::LogCollector.new(logs)
|
246
|
-
|
247
|
-
Puppet::Util::Log.newdestination(destination)
|
248
|
-
Puppet::Util::Log.with_destination(destination) do
|
249
|
-
begin
|
250
|
-
raise Puppet::ParseErrorWithIssue.new('Oops', '/tmp/test.pp', 30, 15, nil, :SYNTAX_ERROR)
|
251
|
-
rescue RuntimeError => e
|
252
|
-
Puppet.log_exception(e, :default, :trace => true)
|
253
|
-
end
|
254
|
-
end
|
255
|
-
expect(logs.size).to eq(1)
|
256
|
-
log = logs[0]
|
257
|
-
expect(log.message).to_not match('/log_spec.rb')
|
258
|
-
expect(log.backtrace).to be_a(Array)
|
259
|
-
end
|
260
|
-
|
261
|
-
it "backtrace is excluded when logging ParseErrorWithIssue with trace disabled" do
|
262
|
-
logs = []
|
263
|
-
destination = Puppet::Test::LogCollector.new(logs)
|
264
|
-
|
265
|
-
Puppet::Util::Log.newdestination(destination)
|
266
|
-
Puppet::Util::Log.with_destination(destination) do
|
267
|
-
begin
|
268
|
-
raise Puppet::ParseErrorWithIssue.new('Oops', '/tmp/test.pp', 30, 15, nil, :SYNTAX_ERROR)
|
269
|
-
rescue RuntimeError => e
|
270
|
-
Puppet.log_exception(e)
|
271
|
-
end
|
272
|
-
end
|
273
|
-
expect(logs.size).to eq(1)
|
274
|
-
log = logs[0]
|
275
|
-
expect(log.message).to_not match('/log_spec.rb')
|
276
|
-
expect(log.backtrace).to be_nil
|
277
|
-
end
|
278
|
-
|
279
|
-
it 'includes position details for ParseError in log message' do
|
280
|
-
logs = []
|
281
|
-
destination = Puppet::Test::LogCollector.new(logs)
|
282
|
-
|
283
|
-
Puppet::Util::Log.newdestination(destination)
|
284
|
-
Puppet::Util::Log.with_destination(destination) do
|
285
|
-
begin
|
286
|
-
raise Puppet::ParseError.new('Oops', '/tmp/test.pp', 30, 15)
|
287
|
-
rescue RuntimeError => e
|
288
|
-
Puppet.log_exception(e)
|
289
|
-
end
|
290
|
-
end
|
291
|
-
expect(logs.size).to eq(1)
|
292
|
-
log = logs[0]
|
293
|
-
expect(log.message).to match(/ \(file: \/tmp\/test\.pp, line: 30, column: 15\)/)
|
294
|
-
expect(log.message).to be(log.to_s)
|
295
|
-
end
|
296
|
-
|
297
|
-
it 'excludes position details for ParseErrorWithIssue from log message' do
|
298
|
-
logs = []
|
299
|
-
destination = Puppet::Test::LogCollector.new(logs)
|
300
|
-
|
301
|
-
Puppet::Util::Log.newdestination(destination)
|
302
|
-
Puppet::Util::Log.with_destination(destination) do
|
303
|
-
begin
|
304
|
-
raise Puppet::ParseErrorWithIssue.new('Oops', '/tmp/test.pp', 30, 15, nil, :SYNTAX_ERROR)
|
305
|
-
rescue RuntimeError => e
|
306
|
-
Puppet.log_exception(e)
|
307
|
-
end
|
308
|
-
end
|
309
|
-
expect(logs.size).to eq(1)
|
310
|
-
log = logs[0]
|
311
|
-
expect(log.message).to_not match(/ \(file: \/tmp\/test\.pp, line: 30, column: 15\)/)
|
312
|
-
expect(log.to_s).to match(/ \(file: \/tmp\/test\.pp, line: 30, column: 15\)/)
|
313
|
-
expect(log.issue_code).to eq(:SYNTAX_ERROR)
|
314
|
-
expect(log.file).to eq('/tmp/test.pp')
|
315
|
-
expect(log.line).to eq(30)
|
316
|
-
expect(log.pos).to eq(15)
|
317
|
-
end
|
318
180
|
end
|
319
181
|
|
320
182
|
describe Puppet::Util::Log::DestConsole do
|
@@ -6,6 +6,39 @@ class LoggingTester
|
|
6
6
|
include Puppet::Util::Logging
|
7
7
|
end
|
8
8
|
|
9
|
+
class PuppetStackCreator
|
10
|
+
def raise_error(exception_class)
|
11
|
+
case exception_class
|
12
|
+
when Puppet::ParseErrorWithIssue
|
13
|
+
raise exception_class.new('Oops', '/tmp/test.pp', 30, 15, nil, :SYNTAX_ERROR)
|
14
|
+
when Puppet::ParseError
|
15
|
+
raise exception_class.new('Oops', '/tmp/test.pp', 30, 15)
|
16
|
+
else
|
17
|
+
raise exception_class.new('Oops')
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
def call_raiser(exception_class)
|
22
|
+
Puppet::Pops::PuppetStack.stack('/tmp/test2.pp', 20, self, :raise_error, [exception_class])
|
23
|
+
end
|
24
|
+
|
25
|
+
def two_frames_and_a_raise(exception_class)
|
26
|
+
Puppet::Pops::PuppetStack.stack('/tmp/test3.pp', 15, self, :call_raiser, [exception_class])
|
27
|
+
end
|
28
|
+
|
29
|
+
def outer_rescue(exception_class)
|
30
|
+
begin
|
31
|
+
two_frames_and_a_raise(exception_class)
|
32
|
+
rescue Puppet::Error => e
|
33
|
+
Puppet.log_exception(e)
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
def run(exception_class)
|
38
|
+
Puppet::Pops::PuppetStack.stack('/tmp/test4.pp', 10, self, :outer_rescue, [exception_class])
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
9
42
|
describe Puppet::Util::Logging do
|
10
43
|
before do
|
11
44
|
@logger = LoggingTester.new
|
@@ -275,6 +308,173 @@ original
|
|
275
308
|
.*2\.rb:2:in `b'
|
276
309
|
.*3\.rb:1/)
|
277
310
|
end
|
311
|
+
|
312
|
+
describe "when trace is disabled" do
|
313
|
+
it 'excludes backtrace for RuntimeError in log message' do
|
314
|
+
begin
|
315
|
+
raise RuntimeError, 'Oops'
|
316
|
+
rescue RuntimeError => e
|
317
|
+
Puppet.log_exception(e)
|
318
|
+
end
|
319
|
+
|
320
|
+
expect(@logs.size).to eq(1)
|
321
|
+
log = @logs[0]
|
322
|
+
expect(log.message).to_not match('/logging_spec.rb')
|
323
|
+
expect(log.backtrace).to be_nil
|
324
|
+
end
|
325
|
+
|
326
|
+
it "backtrace member is unset when logging ParseErrorWithIssue" do
|
327
|
+
begin
|
328
|
+
raise Puppet::ParseErrorWithIssue.new('Oops', '/tmp/test.pp', 30, 15, nil, :SYNTAX_ERROR)
|
329
|
+
rescue RuntimeError => e
|
330
|
+
Puppet.log_exception(e)
|
331
|
+
end
|
332
|
+
|
333
|
+
expect(@logs.size).to eq(1)
|
334
|
+
log = @logs[0]
|
335
|
+
expect(log.message).to_not match('/logging_spec.rb')
|
336
|
+
expect(log.backtrace).to be_nil
|
337
|
+
end
|
338
|
+
end
|
339
|
+
|
340
|
+
describe "when trace is enabled" do
|
341
|
+
it 'includes backtrace for RuntimeError in log message when enabled globally' do
|
342
|
+
Puppet[:trace] = true
|
343
|
+
begin
|
344
|
+
raise RuntimeError, 'Oops'
|
345
|
+
rescue RuntimeError => e
|
346
|
+
Puppet.log_exception(e, :default)
|
347
|
+
end
|
348
|
+
Puppet[:trace] = false
|
349
|
+
|
350
|
+
expect(@logs.size).to eq(1)
|
351
|
+
log = @logs[0]
|
352
|
+
expect(log.message).to match('/logging_spec.rb')
|
353
|
+
expect(log.backtrace).to be_nil
|
354
|
+
end
|
355
|
+
|
356
|
+
it 'includes backtrace for RuntimeError in log message when enabled via option' do
|
357
|
+
begin
|
358
|
+
raise RuntimeError, 'Oops'
|
359
|
+
rescue RuntimeError => e
|
360
|
+
Puppet.log_exception(e, :default, :trace => true)
|
361
|
+
end
|
362
|
+
|
363
|
+
expect(@logs.size).to eq(1)
|
364
|
+
log = @logs[0]
|
365
|
+
expect(log.message).to match('/logging_spec.rb')
|
366
|
+
expect(log.backtrace).to be_nil
|
367
|
+
end
|
368
|
+
|
369
|
+
|
370
|
+
it "backtrace member is set when logging ParseErrorWithIssue" do
|
371
|
+
begin
|
372
|
+
raise Puppet::ParseErrorWithIssue.new('Oops', '/tmp/test.pp', 30, 15, nil, :SYNTAX_ERROR)
|
373
|
+
rescue RuntimeError => e
|
374
|
+
Puppet.log_exception(e, :default, :trace => true)
|
375
|
+
end
|
376
|
+
|
377
|
+
expect(@logs.size).to eq(1)
|
378
|
+
log = @logs[0]
|
379
|
+
expect(log.message).to_not match('/logging_spec.rb')
|
380
|
+
expect(log.backtrace).to be_a(Array)
|
381
|
+
expect(log.backtrace[0]).to match('/logging_spec.rb')
|
382
|
+
end
|
383
|
+
it "backtrace has interleaved PuppetStack when logging ParseErrorWithIssue" do
|
384
|
+
Puppet[:trace] = true
|
385
|
+
PuppetStackCreator.new.run(Puppet::ParseErrorWithIssue)
|
386
|
+
Puppet[:trace] = false
|
387
|
+
|
388
|
+
expect(@logs.size).to eq(1)
|
389
|
+
log = @logs[0]
|
390
|
+
expect(log.message).to_not match('/logging_spec.rb')
|
391
|
+
expect(log.backtrace[0]).to match('/logging_spec.rb')
|
392
|
+
|
393
|
+
expect(log.backtrace[1]).to match('/tmp/test2.pp:20')
|
394
|
+
puppetstack = log.backtrace.select { |l| l =~ /tmp\/test\d\.pp/ }
|
395
|
+
|
396
|
+
expect(puppetstack.length).to equal 3
|
397
|
+
end
|
398
|
+
|
399
|
+
it "message has interleaved PuppetStack when logging ParseError" do
|
400
|
+
Puppet[:trace] = true
|
401
|
+
PuppetStackCreator.new.run(Puppet::ParseError)
|
402
|
+
Puppet[:trace] = false
|
403
|
+
|
404
|
+
expect(@logs.size).to eq(1)
|
405
|
+
log = @logs[0]
|
406
|
+
|
407
|
+
log_lines = log.message.split("\n")
|
408
|
+
expect(log_lines[1]).to match('/logging_spec.rb')
|
409
|
+
expect(log_lines[2]).to match('/tmp/test2.pp:20')
|
410
|
+
puppetstack = log_lines.select { |l| l =~ /tmp\/test\d\.pp/ }
|
411
|
+
|
412
|
+
expect(puppetstack.length).to equal 3
|
413
|
+
end
|
414
|
+
end
|
415
|
+
|
416
|
+
describe "when trace is disabled but puppet_trace is enabled" do
|
417
|
+
it "includes only PuppetStack as backtrace member with ParseErrorWithIssue" do
|
418
|
+
Puppet[:trace] = false
|
419
|
+
Puppet[:puppet_trace] = true
|
420
|
+
PuppetStackCreator.new.run(Puppet::ParseErrorWithIssue)
|
421
|
+
Puppet[:trace] = false
|
422
|
+
Puppet[:puppet_trace] = false
|
423
|
+
|
424
|
+
expect(@logs.size).to eq(1)
|
425
|
+
log = @logs[0]
|
426
|
+
|
427
|
+
expect(log.backtrace[0]).to match('/tmp/test2.pp:20')
|
428
|
+
expect(log.backtrace.length).to equal 3
|
429
|
+
end
|
430
|
+
|
431
|
+
it "includes only PuppetStack in message with ParseError" do
|
432
|
+
Puppet[:trace] = false
|
433
|
+
Puppet[:puppet_trace] = true
|
434
|
+
PuppetStackCreator.new.run(Puppet::ParseError)
|
435
|
+
Puppet[:trace] = false
|
436
|
+
Puppet[:puppet_trace] = false
|
437
|
+
|
438
|
+
expect(@logs.size).to eq(1)
|
439
|
+
log = @logs[0]
|
440
|
+
|
441
|
+
log_lines = log.message.split("\n")
|
442
|
+
expect(log_lines[1]).to match('/tmp/test2.pp:20')
|
443
|
+
puppetstack = log_lines.select { |l| l =~ /tmp\/test\d\.pp/ }
|
444
|
+
|
445
|
+
expect(puppetstack.length).to equal 3
|
446
|
+
end
|
447
|
+
end
|
448
|
+
|
449
|
+
it 'includes position details for ParseError in log message' do
|
450
|
+
begin
|
451
|
+
raise Puppet::ParseError.new('Oops', '/tmp/test.pp', 30, 15)
|
452
|
+
rescue RuntimeError => e
|
453
|
+
Puppet.log_exception(e)
|
454
|
+
end
|
455
|
+
|
456
|
+
expect(@logs.size).to eq(1)
|
457
|
+
log = @logs[0]
|
458
|
+
expect(log.message).to match(/ \(file: \/tmp\/test\.pp, line: 30, column: 15\)/)
|
459
|
+
expect(log.message).to be(log.to_s)
|
460
|
+
end
|
461
|
+
|
462
|
+
it 'excludes position details for ParseErrorWithIssue from log message' do
|
463
|
+
begin
|
464
|
+
raise Puppet::ParseErrorWithIssue.new('Oops', '/tmp/test.pp', 30, 15, nil, :SYNTAX_ERROR)
|
465
|
+
rescue RuntimeError => e
|
466
|
+
Puppet.log_exception(e)
|
467
|
+
end
|
468
|
+
|
469
|
+
expect(@logs.size).to eq(1)
|
470
|
+
log = @logs[0]
|
471
|
+
expect(log.message).to_not match(/ \(file: \/tmp\/test\.pp, line: 30, column: 15\)/)
|
472
|
+
expect(log.to_s).to match(/ \(file: \/tmp\/test\.pp, line: 30, column: 15\)/)
|
473
|
+
expect(log.issue_code).to eq(:SYNTAX_ERROR)
|
474
|
+
expect(log.file).to eq('/tmp/test.pp')
|
475
|
+
expect(log.line).to eq(30)
|
476
|
+
expect(log.pos).to eq(15)
|
477
|
+
end
|
278
478
|
end
|
279
479
|
|
280
480
|
describe 'when Facter' do
|