puppet 6.4.5-universal-darwin → 6.5.0-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 +6 -6
- data/Gemfile.lock +46 -52
- data/ext/build_defaults.yaml +0 -1
- data/ext/project_data.yaml +3 -3
- data/ext/regexp_nodes/regexp_nodes.rb +4 -4
- data/ext/solaris/smf/puppet.xml +0 -2
- data/ext/windows/eventlog/Rakefile +32 -0
- data/ext/windows/eventlog/puppetres.dll +0 -0
- data/ext/windows/eventlog/puppetres.mc +18 -0
- data/ext/windows/service/daemon.rb +8 -38
- data/install.rb +24 -6
- data/lib/puppet.rb +3 -1
- data/lib/puppet/application.rb +1 -1
- data/lib/puppet/application/agent.rb +11 -34
- data/lib/puppet/application/apply.rb +6 -6
- data/lib/puppet/application/describe.rb +9 -3
- data/lib/puppet/application/device.rb +4 -14
- data/lib/puppet/application/doc.rb +1 -1
- data/lib/puppet/application/lookup.rb +2 -2
- data/lib/puppet/application/resource.rb +4 -4
- data/lib/puppet/application/script.rb +2 -2
- data/lib/puppet/application/ssl.rb +10 -9
- data/lib/puppet/configurer.rb +30 -86
- data/lib/puppet/configurer/downloader.rb +6 -2
- data/lib/puppet/defaults.rb +50 -44
- data/lib/puppet/error.rb +14 -9
- data/lib/puppet/face/catalog.rb +20 -1
- data/lib/puppet/face/config.rb +48 -10
- data/lib/puppet/face/facts.rb +1 -1
- data/lib/puppet/face/help.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/parser.rb +48 -9
- data/lib/puppet/face/plugin.rb +2 -9
- data/lib/puppet/file_serving/http_metadata.rb +1 -1
- data/lib/puppet/file_system.rb +12 -2
- data/lib/puppet/file_system/file_impl.rb +6 -3
- data/lib/puppet/file_system/memory_file.rb +1 -1
- data/lib/puppet/file_system/posix.rb +2 -3
- data/lib/puppet/forge.rb +3 -3
- data/lib/puppet/functions.rb +2 -1
- data/lib/puppet/functions/camelcase.rb +2 -2
- data/lib/puppet/functions/epp.rb +4 -4
- data/lib/puppet/functions/find_file.rb +9 -9
- data/lib/puppet/functions/inline_epp.rb +5 -5
- data/lib/puppet/functions/regsubst.rb +6 -8
- 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 +3 -4
- data/lib/puppet/indirector/catalog/compiler.rb +5 -11
- data/lib/puppet/indirector/file_bucket_file/file.rb +1 -1
- data/lib/puppet/indirector/hiera.rb +0 -2
- data/lib/puppet/indirector/resource/ral.rb +3 -1
- data/lib/puppet/indirector/resource/validator.rb +1 -1
- data/lib/puppet/interface.rb +1 -2
- data/lib/puppet/loaders.rb +1 -0
- data/lib/puppet/metatype/manager.rb +1 -1
- data/lib/puppet/module.rb +1 -1
- data/lib/puppet/module/task.rb +4 -20
- 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 +2 -12
- data/lib/puppet/network/http/api/indirected_routes.rb +11 -12
- data/lib/puppet/network/http/connection.rb +12 -10
- data/lib/puppet/network/http/factory.rb +11 -1
- data/lib/puppet/network/http/pool.rb +0 -2
- data/lib/puppet/network/http/site.rb +1 -1
- data/lib/puppet/network/resolver.rb +2 -2
- data/lib/puppet/node/environment.rb +2 -4
- data/lib/puppet/pal/pal_impl.rb +2 -2
- data/lib/puppet/parser/ast.rb +1 -1
- data/lib/puppet/parser/ast/resourceparam.rb +1 -1
- data/lib/puppet/parser/functions.rb +1 -1
- data/lib/puppet/parser/functions/epp.rb +3 -3
- data/lib/puppet/parser/functions/fail.rb +8 -1
- data/lib/puppet/parser/functions/inline_epp.rb +5 -5
- data/lib/puppet/parser/scope.rb +7 -8
- 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/external_syntax_support.rb +2 -3
- data/lib/puppet/pops/evaluator/runtime3_support.rb +4 -4
- data/lib/puppet/pops/loader/null_loader.rb +60 -0
- data/lib/puppet/pops/loader/ruby_legacy_function_instantiator.rb +6 -4
- data/lib/puppet/pops/loader/task_instantiator.rb +0 -4
- data/lib/puppet/pops/loaders.rb +1 -1
- data/lib/puppet/pops/lookup/hiera_config.rb +0 -1
- data/lib/puppet/pops/lookup/sub_lookup.rb +1 -1
- data/lib/puppet/pops/merge_strategy.rb +18 -22
- 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 +16 -17
- data/lib/puppet/pops/puppet_stack.rb +49 -51
- 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/types.rb +6 -5
- data/lib/puppet/property.rb +1 -1
- data/lib/puppet/property/ensure.rb +1 -1
- data/lib/puppet/provider/exec.rb +2 -6
- data/lib/puppet/provider/file/posix.rb +0 -5
- data/lib/puppet/provider/nameservice.rb +3 -10
- data/lib/puppet/provider/nameservice/directoryservice.rb +1 -1
- data/lib/puppet/provider/nameservice/pw.rb +2 -2
- data/lib/puppet/provider/package.rb +0 -2
- data/lib/puppet/provider/package/apt.rb +1 -5
- data/lib/puppet/provider/package/dnf.rb +1 -1
- data/lib/puppet/provider/package/dpkg.rb +18 -34
- data/lib/puppet/provider/package/openbsd.rb +1 -1
- data/lib/puppet/provider/package/pip.rb +13 -37
- data/lib/puppet/provider/package/portage.rb +4 -4
- data/lib/puppet/provider/package/puppet_gem.rb +1 -1
- data/lib/puppet/provider/package/rpm.rb +18 -56
- data/lib/puppet/provider/package/windows/package.rb +1 -1
- data/lib/puppet/provider/package/yum.rb +5 -9
- data/lib/puppet/provider/package_targetable.rb +4 -7
- data/lib/puppet/provider/parsedfile.rb +1 -1
- data/lib/puppet/provider/service/daemontools.rb +9 -9
- data/lib/puppet/provider/service/launchd.rb +5 -20
- 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 +8 -2
- data/lib/puppet/provider/service/systemd.rb +19 -14
- data/lib/puppet/provider/service/windows.rb +0 -8
- data/lib/puppet/provider/user/directoryservice.rb +1 -1
- data/lib/puppet/provider/user/hpux.rb +1 -1
- data/lib/puppet/provider/user/pw.rb +3 -12
- data/lib/puppet/provider/user/user_role_add.rb +1 -5
- data/lib/puppet/provider/user/useradd.rb +20 -45
- data/lib/puppet/provider/user/windows_adsi.rb +5 -4
- data/lib/puppet/reference/configuration.rb +3 -3
- data/lib/puppet/reference/indirection.rb +2 -2
- data/lib/puppet/reference/metaparameter.rb +3 -1
- data/lib/puppet/reference/providers.rb +3 -1
- data/lib/puppet/reference/type.rb +9 -3
- data/lib/puppet/reports.rb +1 -1
- data/lib/puppet/resource.rb +1 -18
- data/lib/puppet/resource/catalog.rb +1 -1
- data/lib/puppet/rest/routes.rb +30 -17
- data/lib/puppet/settings.rb +3 -43
- data/lib/puppet/settings/environment_conf.rb +0 -1
- data/lib/puppet/ssl/certificate_request.rb +12 -2
- data/lib/puppet/ssl/host.rb +2 -2
- data/lib/puppet/ssl/oids.rb +1 -1
- data/lib/puppet/ssl/ssl_provider.rb +11 -5
- data/lib/puppet/ssl/state_machine.rb +102 -98
- data/lib/puppet/test/test_helper.rb +1 -0
- data/lib/puppet/transaction.rb +11 -33
- data/lib/puppet/transaction/report.rb +1 -1
- data/lib/puppet/type.rb +4 -2
- data/lib/puppet/type/exec.rb +17 -23
- data/lib/puppet/type/file.rb +39 -11
- data/lib/puppet/type/file/data_sync.rb +1 -5
- data/lib/puppet/type/group.rb +2 -4
- data/lib/puppet/type/notify.rb +3 -4
- data/lib/puppet/type/package.rb +3 -20
- data/lib/puppet/type/schedule.rb +1 -1
- data/lib/puppet/type/service.rb +3 -8
- data/lib/puppet/type/user.rb +2 -4
- data/lib/puppet/util.rb +29 -39
- data/lib/puppet/util/command_line/trollop.rb +1 -1
- data/lib/puppet/util/execution.rb +3 -4
- data/lib/puppet/util/http_proxy.rb +19 -27
- data/lib/puppet/util/log.rb +2 -2
- data/lib/puppet/util/log/destinations.rb +2 -2
- data/lib/puppet/util/logging.rb +20 -32
- data/lib/puppet/util/metric.rb +2 -2
- data/lib/puppet/util/monkey_patches.rb +33 -0
- data/lib/puppet/util/pidlock.rb +2 -3
- data/lib/puppet/util/provider_features.rb +4 -2
- 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 +2 -8
- data/lib/puppet/util/skip_tags.rb +4 -0
- data/lib/puppet/util/windows/adsi.rb +18 -48
- data/lib/puppet/util/windows/process.rb +8 -8
- data/lib/puppet/util/windows/registry.rb +5 -7
- data/lib/puppet/util/windows/security.rb +0 -2
- data/lib/puppet/util/windows/service.rb +4 -149
- data/lib/puppet/util/windows/sid.rb +0 -1
- data/lib/puppet/vendor.rb +1 -1
- data/lib/puppet/version.rb +1 -1
- data/lib/puppet/x509/cert_provider.rb +81 -24
- data/locales/puppet.pot +462 -482
- data/man/man5/puppet.conf.5 +43 -44
- data/man/man8/puppet-agent.8 +1 -1
- data/man/man8/puppet-apply.8 +3 -3
- data/man/man8/puppet-catalog.8 +31 -3
- data/man/man8/puppet-config.8 +1 -1
- data/man/man8/puppet-describe.8 +1 -1
- data/man/man8/puppet-device.8 +1 -1
- data/man/man8/puppet-doc.8 +1 -1
- data/man/man8/puppet-epp.8 +1 -1
- data/man/man8/puppet-facts.8 +1 -1
- data/man/man8/puppet-filebucket.8 +1 -1
- data/man/man8/puppet-generate.8 +1 -1
- data/man/man8/puppet-help.8 +1 -1
- data/man/man8/puppet-key.8 +1 -1
- data/man/man8/puppet-lookup.8 +1 -1
- data/man/man8/puppet-man.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-ssl.8 +1 -1
- data/man/man8/puppet-status.8 +1 -1
- data/man/man8/puppet.8 +3 -3
- data/spec/fixtures/ssl/127.0.0.1-key.pem +56 -56
- data/spec/fixtures/ssl/127.0.0.1.pem +27 -27
- data/spec/fixtures/ssl/bad-basic-constraints.pem +32 -32
- data/spec/fixtures/ssl/bad-int-basic-constraints.pem +30 -30
- data/spec/fixtures/ssl/ca.pem +30 -30
- data/spec/fixtures/ssl/crl.pem +15 -15
- data/spec/fixtures/ssl/ec-key.pem +18 -0
- data/spec/fixtures/ssl/ec.pem +40 -0
- data/spec/fixtures/ssl/encrypted-ec-key.pem +21 -0
- data/spec/fixtures/ssl/encrypted-key.pem +57 -57
- data/spec/fixtures/ssl/intermediate-agent-crl.pem +16 -16
- data/spec/fixtures/ssl/intermediate-agent.pem +33 -33
- data/spec/fixtures/ssl/intermediate-crl.pem +17 -17
- data/spec/fixtures/ssl/intermediate.pem +31 -31
- data/spec/fixtures/ssl/pluto-key.pem +56 -56
- data/spec/fixtures/ssl/pluto.pem +28 -28
- data/spec/fixtures/ssl/request-key.pem +56 -56
- data/spec/fixtures/ssl/request.pem +24 -24
- data/spec/fixtures/ssl/revoked-key.pem +56 -56
- data/spec/fixtures/ssl/revoked.pem +25 -25
- data/spec/fixtures/ssl/signed-key.pem +56 -56
- data/spec/fixtures/ssl/signed.pem +25 -25
- data/spec/fixtures/ssl/tampered-cert.pem +27 -27
- data/spec/fixtures/ssl/tampered-csr.pem +24 -24
- data/spec/fixtures/unit/pops/loaders/loaders/mix_4x_and_3x_functions/usee/lib/puppet/parser/functions/func_with_syntax_error.rb +9 -0
- data/spec/fixtures/vcr/cassettes/Puppet_Network_HTTP_Connection/when_handling_requests/_request_get/should_yield_to_the_block.yml +24 -0
- data/spec/fixtures/vcr/cassettes/Puppet_Network_HTTP_Connection/when_handling_requests/_request_head/should_yield_to_the_block.yml +24 -0
- data/spec/fixtures/vcr/cassettes/Puppet_Network_HTTP_Connection/when_handling_requests/_request_post/should_yield_to_the_block.yml +24 -0
- data/spec/integration/configurer_spec.rb +0 -52
- data/spec/integration/provider/service/init_spec.rb +1 -0
- data/spec/integration/provider/service/systemd_spec.rb +5 -8
- data/spec/integration/type/file_spec.rb +38 -28
- data/spec/integration/util/execution_spec.rb +0 -27
- data/spec/lib/puppet/certificate_factory.rb +2 -2
- data/spec/lib/puppet/test_ca.rb +17 -4
- data/spec/lib/puppet_spec/fixtures.rb +4 -0
- data/spec/spec_helper.rb +0 -28
- data/spec/unit/application/agent_spec.rb +34 -67
- data/spec/unit/application/device_spec.rb +1 -27
- data/spec/unit/application/ssl_spec.rb +60 -35
- data/spec/unit/configurer_spec.rb +399 -395
- data/spec/unit/defaults_spec.rb +4 -4
- data/spec/unit/face/facts_spec.rb +0 -9
- data/spec/unit/face/parser_spec.rb +69 -22
- data/spec/unit/face/plugin_spec.rb +0 -8
- data/spec/unit/file_system_spec.rb +30 -1
- data/spec/unit/forge/forge_spec.rb +3 -1
- data/spec/unit/forge/repository_spec.rb +3 -1
- data/spec/unit/indirector/catalog/compiler_spec.rb +5 -62
- 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 +10 -25
- data/spec/unit/network/http/connection_spec.rb +145 -119
- data/spec/unit/network/http/factory_spec.rb +5 -27
- data/spec/unit/parser/scope_spec.rb +0 -10
- data/spec/unit/pops/evaluator/evaluating_parser_spec.rb +3 -8
- data/spec/unit/pops/loaders/loaders_spec.rb +4 -0
- data/spec/unit/pops/loaders/module_loaders_spec.rb +0 -37
- data/spec/unit/pops/types/types_spec.rb +27 -0
- data/spec/unit/provider/exec_spec.rb +0 -209
- data/spec/unit/provider/package/aptrpm_spec.rb +1 -1
- data/spec/unit/provider/package/dnf_spec.rb +0 -7
- data/spec/unit/provider/package/dpkg_spec.rb +80 -240
- data/spec/unit/provider/package/pip_spec.rb +8 -61
- data/spec/unit/provider/package/portage_spec.rb +4 -4
- data/spec/unit/provider/package/rpm_spec.rb +16 -150
- data/spec/unit/provider/package/yum_spec.rb +0 -7
- data/spec/unit/provider/service/daemontools_spec.rb +0 -24
- data/spec/unit/provider/service/launchd_spec.rb +0 -28
- data/spec/unit/provider/service/runit_spec.rb +0 -24
- data/spec/unit/provider/service/systemd_spec.rb +25 -39
- data/spec/unit/provider/service/windows_spec.rb +0 -20
- data/spec/unit/provider/user/hpux_spec.rb +2 -2
- data/spec/unit/provider/user/pw_spec.rb +0 -37
- data/spec/unit/provider/user/useradd_spec.rb +0 -88
- data/spec/unit/resource_spec.rb +1 -26
- data/spec/unit/ssl/host_spec.rb +5 -0
- data/spec/unit/ssl/ssl_provider_spec.rb +36 -11
- data/spec/unit/ssl/state_machine_spec.rb +233 -158
- data/spec/unit/transaction_spec.rb +0 -64
- data/spec/unit/type/exec_spec.rb +12 -15
- data/spec/unit/type/file/content_spec.rb +3 -9
- data/spec/unit/type/file/source_spec.rb +4 -4
- data/spec/unit/type/file_spec.rb +15 -11
- data/spec/unit/type/package_spec.rb +0 -5
- data/spec/unit/type/schedule_spec.rb +1 -3
- data/spec/unit/type/service_spec.rb +0 -16
- data/spec/unit/util/execution_spec.rb +0 -16
- data/spec/unit/util/http_proxy_spec.rb +21 -151
- data/spec/unit/util/ldap/manager_spec.rb +0 -15
- data/spec/unit/util/log/destinations_spec.rb +3 -7
- data/spec/unit/util/log_spec.rb +138 -0
- data/spec/unit/util/logging_spec.rb +0 -200
- data/spec/unit/util/pidlock_spec.rb +0 -26
- data/spec/unit/util/skip_tags_spec.rb +14 -0
- data/spec/unit/util/windows/adsi_spec.rb +0 -51
- data/spec/unit/util/windows/service_spec.rb +0 -9
- data/spec/unit/util_spec.rb +10 -0
- data/spec/unit/x509/cert_provider_spec.rb +82 -43
- data/tasks/generate_cert_fixtures.rake +13 -1
- data/tasks/manpages.rake +0 -1
- metadata +26 -20
- data/ext/cert_inspector +0 -140
- data/ext/envpuppet +0 -139
- data/ext/envpuppet.bat +0 -14
- data/ext/puppet-test +0 -476
- data/ext/pure_ruby_dsl/dsl_test.rb +0 -7
- data/ext/upload_facts.rb +0 -119
- data/lib/puppet/provider/package/dnfmodule.rb +0 -87
- data/spec/fixtures/unit/provider/package/dnfmodule/dnf-module-list-installed.txt +0 -11
- data/spec/integration/type/notify_spec.rb +0 -46
- data/spec/unit/provider/package/dnfmodule_spec.rb +0 -186
- data/spec/unit/provider/package_targetable_spec.rb +0 -60
@@ -59,57 +59,5 @@ describe Puppet::Configurer do
|
|
59
59
|
expect(summary["time"]).to be_key("notify")
|
60
60
|
expect(summary["time"]["last_run"]).to be_between(t1, t2)
|
61
61
|
end
|
62
|
-
|
63
|
-
describe 'resubmitting facts' do
|
64
|
-
context 'when resubmit_facts is set to false' do
|
65
|
-
it 'should not send data' do
|
66
|
-
expect(@configurer).to receive(:resubmit_facts).never
|
67
|
-
|
68
|
-
@configurer.run(catalog: @catalog)
|
69
|
-
end
|
70
|
-
end
|
71
|
-
|
72
|
-
context 'when resubmit_facts is set to true' do
|
73
|
-
let(:test_facts) { Puppet::Node::Facts.new('configurer.test') }
|
74
|
-
let(:fact_rest_terminus) { Puppet::Node::Facts.indirection.terminus(:rest) }
|
75
|
-
|
76
|
-
before(:each) do
|
77
|
-
Puppet[:resubmit_facts] = true
|
78
|
-
|
79
|
-
allow(@configurer).to receive(:find_facts).and_return(test_facts)
|
80
|
-
allow(fact_rest_terminus).to receive(:save)
|
81
|
-
end
|
82
|
-
|
83
|
-
it 'sends fact data using the rest terminus' do
|
84
|
-
expect(fact_rest_terminus).to receive(:save)
|
85
|
-
|
86
|
-
@configurer.run(catalog: @catalog)
|
87
|
-
end
|
88
|
-
|
89
|
-
it 'logs errors that occur during fact generation' do
|
90
|
-
allow(@configurer).to receive(:find_facts).and_raise('error generating facts')
|
91
|
-
expect(Puppet).to receive(:log_exception).with(instance_of(RuntimeError),
|
92
|
-
/^Failed to submit facts/)
|
93
|
-
|
94
|
-
@configurer.run(catalog: @catalog)
|
95
|
-
end
|
96
|
-
|
97
|
-
it 'logs errors that occur during fact submission' do
|
98
|
-
allow(fact_rest_terminus).to receive(:save).and_raise('error sending facts')
|
99
|
-
expect(Puppet).to receive(:log_exception).with(instance_of(RuntimeError),
|
100
|
-
/^Failed to submit facts/)
|
101
|
-
|
102
|
-
@configurer.run(catalog: @catalog)
|
103
|
-
end
|
104
|
-
|
105
|
-
it 'records time spent resubmitting facts' do
|
106
|
-
report = Puppet::Transaction::Report.new
|
107
|
-
|
108
|
-
@configurer.run(catalog: @catalog, report: report)
|
109
|
-
|
110
|
-
expect(report.metrics['time'].values).to include(["resubmit_facts", anything, Numeric])
|
111
|
-
end
|
112
|
-
end
|
113
|
-
end
|
114
62
|
end
|
115
63
|
end
|
@@ -8,6 +8,7 @@ describe test_title, unless: Puppet::Util::Platform.jruby? do
|
|
8
8
|
describe "when running on FreeBSD" do
|
9
9
|
before :each do
|
10
10
|
allow(Facter).to receive(:value).with(:operatingsystem).and_return('FreeBSD')
|
11
|
+
allow(Facter).to receive(:value).with(:osfamily).and_return('FreeBSD')
|
11
12
|
end
|
12
13
|
|
13
14
|
it "should set its default path to include /etc/rc.d and /usr/local/etc/rc.d" do
|
@@ -7,19 +7,16 @@ describe test_title, unless: Puppet::Util::Platform.jruby? do
|
|
7
7
|
|
8
8
|
# TODO: Unfortunately there does not seem a way to stub the executable
|
9
9
|
# checks in the systemd provider because they happen at load time.
|
10
|
-
|
11
|
-
it "should be considered suitable if /proc/1/comm is present and contains 'systemd'",
|
12
|
-
:if => File.exist?('/proc/1/comm') && Puppet::FileSystem.read('/proc/1/comm').include?('systemd') do
|
10
|
+
it "should be considered suitable if /bin/systemctl is present", :if => File.executable?('/bin/systemctl') do
|
13
11
|
expect(provider_class).to be_suitable
|
14
12
|
end
|
15
13
|
|
16
|
-
it "should
|
17
|
-
|
18
|
-
expect(provider_class).not_to be_suitable
|
14
|
+
it "should be considered suitable if /usr/bin/systemctl is present", :if => File.executable?('/usr/bin/systemctl') do
|
15
|
+
expect(provider_class).to be_suitable
|
19
16
|
end
|
20
17
|
|
21
|
-
it "should not be
|
22
|
-
:
|
18
|
+
it "should not be cosidered suitable if systemctl is absent",
|
19
|
+
:unless => (File.executable?('/bin/systemctl') or File.executable?('/usr/bin/systemctl')) do
|
23
20
|
expect(provider_class).not_to be_suitable
|
24
21
|
end
|
25
22
|
end
|
@@ -21,13 +21,6 @@ describe Puppet::Type.type(:file), :uses_checksums => true do
|
|
21
21
|
File.join(parent, 'file_testing')
|
22
22
|
end
|
23
23
|
|
24
|
-
let(:path_protected) do
|
25
|
-
# we create a file inside windows protected folders (C:\Windows, C:\Windows\system32, etc)
|
26
|
-
# the file will also be removed after the tests
|
27
|
-
parent = 'C:\Windows'
|
28
|
-
File.join(parent, 'file_testing')
|
29
|
-
end
|
30
|
-
|
31
24
|
let(:dir) do
|
32
25
|
# we create a directory first so backups of :path that are stored in
|
33
26
|
# the same directory will also be removed after the tests
|
@@ -275,27 +268,6 @@ describe Puppet::Type.type(:file), :uses_checksums => true do
|
|
275
268
|
expect(get_mode(path) & 07777).to eq(0666)
|
276
269
|
end
|
277
270
|
|
278
|
-
context "file is in protected windows directory", :if => Puppet.features.microsoft_windows? do
|
279
|
-
after { FileUtils.rm(path_protected) }
|
280
|
-
|
281
|
-
it "should set and get the correct mode for files inside protected windows folders" do
|
282
|
-
catalog.add_resource described_class.new(:path => path_protected, :ensure => :file, :mode => '0640')
|
283
|
-
catalog.apply
|
284
|
-
|
285
|
-
expect(get_mode(path_protected) & 07777).to eq(0640)
|
286
|
-
end
|
287
|
-
|
288
|
-
it "should not change resource's status inside protected windows folders if mode is the same" do
|
289
|
-
FileUtils.touch(path_protected)
|
290
|
-
set_mode(0644, path_protected)
|
291
|
-
catalog.add_resource described_class.new(:path => path_protected, :ensure => :file, :mode => '0644')
|
292
|
-
result = catalog.apply
|
293
|
-
status = result.report.resource_statuses["File[#{path_protected}]"]
|
294
|
-
expect(status).not_to be_failed
|
295
|
-
expect(status).not_to be_changed
|
296
|
-
end
|
297
|
-
end
|
298
|
-
|
299
271
|
it "should not set executable bits when replacing an executable directory (#10365)" do
|
300
272
|
pending("bug #10365")
|
301
273
|
|
@@ -1708,6 +1680,44 @@ describe Puppet::Type.type(:file), :uses_checksums => true do
|
|
1708
1680
|
end
|
1709
1681
|
|
1710
1682
|
describe "when using validate_cmd" do
|
1683
|
+
test_cmd = '/bin/test'
|
1684
|
+
if Facter.value(:osfamily) == 'Debian'
|
1685
|
+
test_cmd = '/usr/bin/test'
|
1686
|
+
end
|
1687
|
+
|
1688
|
+
if Facter.value(:operatingsystem) == 'Darwin'
|
1689
|
+
stat_cmd = "stat -f '%Lp'"
|
1690
|
+
else
|
1691
|
+
stat_cmd = "stat --format=%a"
|
1692
|
+
end
|
1693
|
+
|
1694
|
+
it "sets the default mode of the temporary file to '0644'", :unless => Puppet::Util::Platform.windows? || Puppet::Util::Platform.jruby? do
|
1695
|
+
catalog.add_resource(described_class.new(:path => path, :content => "foo",
|
1696
|
+
:validate_replacement => '^',
|
1697
|
+
:validate_cmd => %Q{
|
1698
|
+
echo "The permissions of the file ($(#{stat_cmd} ^)) should equal 644";
|
1699
|
+
#{test_cmd} "644" == "$(#{stat_cmd} ^)"
|
1700
|
+
}))
|
1701
|
+
report = catalog.apply.report
|
1702
|
+
expect(report.resource_statuses["File[#{path}]"].events.first.message).to match(/defined content as '{md5}/)
|
1703
|
+
expect(report.resource_statuses["File[#{path}]"]).not_to be_failed
|
1704
|
+
expect(Puppet::FileSystem.exist?(path)).to be_truthy
|
1705
|
+
end
|
1706
|
+
|
1707
|
+
it "should change the permissions of the temp file to match the final file permissions", :unless => Puppet::Util::Platform.windows? || Puppet::Util::Platform.jruby?do
|
1708
|
+
catalog.add_resource(described_class.new(:path => path, :content => "foo",
|
1709
|
+
:mode => '0555',
|
1710
|
+
:validate_replacement => '^',
|
1711
|
+
:validate_cmd => %Q{
|
1712
|
+
echo "The permissions of the file ($(#{stat_cmd} ^)) should equal 555";
|
1713
|
+
#{test_cmd} "555" == "$(#{stat_cmd} ^)"
|
1714
|
+
}))
|
1715
|
+
report = catalog.apply.report
|
1716
|
+
expect(report.resource_statuses["File[#{path}]"].events.first.message).to match(/defined content as '{md5}/)
|
1717
|
+
expect(report.resource_statuses["File[#{path}]"]).not_to be_failed
|
1718
|
+
expect(Puppet::FileSystem.exist?(path)).to be_truthy
|
1719
|
+
end
|
1720
|
+
|
1711
1721
|
it "should fail the file resource if command fails" do
|
1712
1722
|
catalog.add_resource(described_class.new(:path => path, :content => "foo", :validate_cmd => "/usr/bin/env false"))
|
1713
1723
|
expect(Puppet::Util::Execution).to receive(:execute).with("/usr/bin/env false", {:combine => true, :failonfail => true}).and_raise(Puppet::ExecutionFailure, "Failed")
|
@@ -25,33 +25,6 @@ describe Puppet::Util::Execution, unless: Puppet::Util::Platform.jruby? do
|
|
25
25
|
end
|
26
26
|
end
|
27
27
|
|
28
|
-
describe "#execute" do
|
29
|
-
if Puppet::Util::Platform.windows?
|
30
|
-
let(:argv) { ["cmd", "/c", "echo", 123] }
|
31
|
-
else
|
32
|
-
let(:argv) { ["echo", 123] }
|
33
|
-
end
|
34
|
-
|
35
|
-
it 'stringifies sensitive arguments when given an array containing integers' do
|
36
|
-
result = Puppet::Util::Execution.execute(argv, sensitive: true)
|
37
|
-
expect(result.to_s.strip).to eq("123")
|
38
|
-
expect(result.exitstatus).to eq(0)
|
39
|
-
end
|
40
|
-
|
41
|
-
it 'redacts sensitive arguments when given an array' do
|
42
|
-
Puppet[:log_level] = :debug
|
43
|
-
Puppet::Util::Execution.execute(argv, sensitive: true)
|
44
|
-
expect(@logs).to include(an_object_having_attributes(level: :debug, message: "Executing: '[redacted]'"))
|
45
|
-
end
|
46
|
-
|
47
|
-
it 'redacts sensitive arguments when given a string' do
|
48
|
-
Puppet[:log_level] = :debug
|
49
|
-
str = argv.map(&:to_s).join(' ')
|
50
|
-
Puppet::Util::Execution.execute(str, sensitive: true)
|
51
|
-
expect(@logs).to include(an_object_having_attributes(level: :debug, message: "Executing: '[redacted]'"))
|
52
|
-
end
|
53
|
-
end
|
54
|
-
|
55
28
|
describe "#execute (non-Windows)", :if => !Puppet::Util::Platform.windows? do
|
56
29
|
it "should execute basic shell command" do
|
57
30
|
result = Puppet::Util::Execution.execute("ls /tmp", :failonfail => true)
|
@@ -25,9 +25,9 @@ module Puppet::CertificateFactory
|
|
25
25
|
# @return [OpenSSL::X509::Certificate]
|
26
26
|
def self.build(cert_type, csr, issuer, serial, ttl = 3600)
|
27
27
|
# Work out if we can even build the requested type of certificate.
|
28
|
-
build_extensions = "build_#{cert_type}_extensions"
|
28
|
+
build_extensions = "build_#{cert_type.to_s}_extensions"
|
29
29
|
respond_to?(build_extensions) or
|
30
|
-
raise ArgumentError, _("%{cert_type} is an invalid certificate type!") % { cert_type: cert_type }
|
30
|
+
raise ArgumentError, _("%{cert_type} is an invalid certificate type!") % { cert_type: cert_type.to_s }
|
31
31
|
|
32
32
|
raise ArgumentError, _("Certificate TTL must be an integer") unless ttl.nil? || ttl.is_a?(Integer)
|
33
33
|
|
data/spec/lib/puppet/test_ca.rb
CHANGED
@@ -40,7 +40,7 @@ module Puppet
|
|
40
40
|
end
|
41
41
|
|
42
42
|
def create_cert(name, issuer_cert, issuer_key, opts = {})
|
43
|
-
key, cert = build_cert(name, issuer_cert.subject)
|
43
|
+
key, cert = build_cert(name, issuer_cert.subject, opts)
|
44
44
|
ef = extension_factory_for(issuer_cert, cert)
|
45
45
|
if opts[:subject_alt_names]
|
46
46
|
ext = ef.create_extension(["subjectAltName", opts[:subject_alt_names], false])
|
@@ -123,10 +123,23 @@ module Puppet
|
|
123
123
|
|
124
124
|
private
|
125
125
|
|
126
|
-
def build_cert(name, issuer)
|
127
|
-
key =
|
126
|
+
def build_cert(name, issuer, opts = {})
|
127
|
+
key = if opts[:key_type] == :ec
|
128
|
+
key = OpenSSL::PKey::EC.generate('prime256v1')
|
129
|
+
else
|
130
|
+
key = OpenSSL::PKey::RSA.new(1024)
|
131
|
+
end
|
128
132
|
cert = OpenSSL::X509::Certificate.new
|
129
|
-
cert.public_key = key.
|
133
|
+
cert.public_key = if key.is_a?(OpenSSL::PKey::EC)
|
134
|
+
# EC#public_key doesn't following the PKey API,
|
135
|
+
# see https://github.com/ruby/openssl/issues/29
|
136
|
+
point = key.public_key
|
137
|
+
pubkey = OpenSSL::PKey::EC.new(point.group)
|
138
|
+
pubkey.public_key = point
|
139
|
+
pubkey
|
140
|
+
else
|
141
|
+
key.public_key
|
142
|
+
end
|
130
143
|
cert.subject = OpenSSL::X509::Name.new([["CN", name]])
|
131
144
|
cert.issuer = issuer
|
132
145
|
cert.version = 2
|
data/spec/spec_helper.rb
CHANGED
@@ -54,19 +54,13 @@ Pathname.glob("#{dir}/shared_examples/**/*.rb") do |behaviour|
|
|
54
54
|
require behaviour.relative_path_from(Pathname.new(dir))
|
55
55
|
end
|
56
56
|
|
57
|
-
require 'webmock/rspec'
|
58
57
|
require 'vcr'
|
59
58
|
VCR.configure do |vcr|
|
60
59
|
vcr.cassette_library_dir = File.expand_path('vcr/cassettes', PuppetSpec::FIXTURE_DIR)
|
61
60
|
vcr.hook_into :webmock
|
62
61
|
vcr.configure_rspec_metadata!
|
63
|
-
# Uncomment next line to debug vcr
|
64
|
-
# vcr.debug_logger = $stderr
|
65
62
|
end
|
66
63
|
|
67
|
-
# Disable VCR by default
|
68
|
-
VCR.turn_off!
|
69
|
-
|
70
64
|
RSpec.configure do |config|
|
71
65
|
include PuppetSpec::Fixtures
|
72
66
|
|
@@ -161,28 +155,6 @@ RSpec.configure do |config|
|
|
161
155
|
Puppet::Test::TestHelper.before_each_test()
|
162
156
|
end
|
163
157
|
|
164
|
-
# Facter 2 uses two versions of the GCE API, so match using regex
|
165
|
-
PUPPET_FACTER_2_GCE_URL = %r{^http://metadata/computeMetadata/v1(beta1)?}.freeze
|
166
|
-
PUPPET_FACTER_3_GCE_URL = "http://metadata.google.internal/computeMetadata/v1/?recursive=true&alt=json".freeze
|
167
|
-
|
168
|
-
config.around :each do |example|
|
169
|
-
# Ignore requests from Facter GCE fact in Travis
|
170
|
-
stub_request(:get, PUPPET_FACTER_2_GCE_URL)
|
171
|
-
stub_request(:get, PUPPET_FACTER_3_GCE_URL)
|
172
|
-
|
173
|
-
# Enable VCR if the example is tagged with `:vcr` metadata.
|
174
|
-
if example.metadata[:vcr]
|
175
|
-
VCR.turn_on!
|
176
|
-
begin
|
177
|
-
example.run
|
178
|
-
ensure
|
179
|
-
VCR.turn_off!
|
180
|
-
end
|
181
|
-
else
|
182
|
-
example.run
|
183
|
-
end
|
184
|
-
end
|
185
|
-
|
186
158
|
config.after :each do
|
187
159
|
Puppet::Test::TestHelper.after_each_test()
|
188
160
|
|
@@ -7,8 +7,6 @@ require 'puppet/daemon'
|
|
7
7
|
describe Puppet::Application::Agent do
|
8
8
|
include PuppetSpec::Files
|
9
9
|
|
10
|
-
let(:machine) { double(ensure_client_certificate: nil) }
|
11
|
-
|
12
10
|
before :each do
|
13
11
|
@puppetd = Puppet::Application[:agent]
|
14
12
|
|
@@ -29,8 +27,9 @@ describe Puppet::Application::Agent do
|
|
29
27
|
allow(Puppet::Node.indirection).to receive(:cache_class=)
|
30
28
|
allow(Puppet::Node::Facts.indirection).to receive(:terminus_class=)
|
31
29
|
|
30
|
+
expect($stderr).not_to receive(:puts)
|
31
|
+
|
32
32
|
allow(Puppet.settings).to receive(:use)
|
33
|
-
allow(Puppet::SSL::StateMachine).to receive(:new).and_return(machine)
|
34
33
|
end
|
35
34
|
|
36
35
|
it "should operate in agent run_mode" do
|
@@ -126,7 +125,7 @@ describe Puppet::Application::Agent do
|
|
126
125
|
allow(@agent).to receive(:run).and_return(2)
|
127
126
|
Puppet[:onetime] = true
|
128
127
|
|
129
|
-
expect(Puppet::SSL::StateMachine).to receive(:new).with(waitforcert: 0).and_return(
|
128
|
+
expect(Puppet::SSL::StateMachine).to receive(:new).with(waitforcert: 0).and_return(double(ensure_client_certificate: nil))
|
130
129
|
|
131
130
|
expect { execute_agent }.to exit_with 0
|
132
131
|
end
|
@@ -136,20 +135,13 @@ describe Puppet::Application::Agent do
|
|
136
135
|
Puppet[:onetime] = true
|
137
136
|
@puppetd.handle_waitforcert(60)
|
138
137
|
|
139
|
-
expect(Puppet::SSL::StateMachine).to receive(:new).with(waitforcert: 60).and_return(
|
138
|
+
expect(Puppet::SSL::StateMachine).to receive(:new).with(waitforcert: 60).and_return(double(ensure_client_certificate: nil))
|
140
139
|
|
141
140
|
expect { execute_agent }.to exit_with 0
|
142
141
|
end
|
143
142
|
|
144
143
|
it "should use a default value for waitforcert when --onetime and --waitforcert are not specified" do
|
145
|
-
expect(Puppet::SSL::StateMachine).to receive(:new).with(waitforcert: 120).and_return(machine)
|
146
|
-
|
147
|
-
execute_agent
|
148
|
-
end
|
149
|
-
|
150
|
-
it "should register ssl OIDs" do
|
151
144
|
expect(Puppet::SSL::StateMachine).to receive(:new).with(waitforcert: 120).and_return(double(ensure_client_certificate: nil))
|
152
|
-
expect(Puppet::SSL::Oids).to receive(:register_puppet_oids)
|
153
145
|
|
154
146
|
execute_agent
|
155
147
|
end
|
@@ -157,7 +149,7 @@ describe Puppet::Application::Agent do
|
|
157
149
|
it "should use the waitforcert setting when checking for a signed certificate" do
|
158
150
|
Puppet[:waitforcert] = 10
|
159
151
|
|
160
|
-
expect(Puppet::SSL::StateMachine).to receive(:new).with(waitforcert: 10).and_return(
|
152
|
+
expect(Puppet::SSL::StateMachine).to receive(:new).with(waitforcert: 10).and_return(double(ensure_client_certificate: nil))
|
161
153
|
|
162
154
|
execute_agent
|
163
155
|
end
|
@@ -394,6 +386,8 @@ describe Puppet::Application::Agent do
|
|
394
386
|
it "should inform the daemon about our agent if :client is set to 'true'" do
|
395
387
|
@puppetd.options[:client] = true
|
396
388
|
|
389
|
+
allow(Puppet::SSL::StateMachine).to receive(:new).and_return(double(ensure_client_certificate: nil))
|
390
|
+
|
397
391
|
execute_agent
|
398
392
|
|
399
393
|
expect(@daemon.agent).to eq(@agent)
|
@@ -404,6 +398,8 @@ describe Puppet::Application::Agent do
|
|
404
398
|
Puppet[:daemonize] = true
|
405
399
|
allow(Signal).to receive(:trap)
|
406
400
|
|
401
|
+
allow(Puppet::SSL::StateMachine).to receive(:new).and_return(double(ensure_client_certificate: nil))
|
402
|
+
|
407
403
|
expect(@daemon).to receive(:daemonize)
|
408
404
|
|
409
405
|
execute_agent
|
@@ -412,7 +408,22 @@ describe Puppet::Application::Agent do
|
|
412
408
|
it "should wait for a certificate" do
|
413
409
|
@puppetd.options[:waitforcert] = 123
|
414
410
|
|
415
|
-
expect(Puppet::SSL::StateMachine).to receive(:new).with(waitforcert: 123).and_return(
|
411
|
+
expect(Puppet::SSL::StateMachine).to receive(:new).with(waitforcert: 123).and_return(double(ensure_client_certificate: nil))
|
412
|
+
|
413
|
+
execute_agent
|
414
|
+
end
|
415
|
+
|
416
|
+
it "should not wait for a certificate in fingerprint mode" do
|
417
|
+
@puppetd.options[:fingerprint] = true
|
418
|
+
@puppetd.options[:waitforcert] = 123
|
419
|
+
@puppetd.options[:digest] = 'MD5'
|
420
|
+
|
421
|
+
certificate = double('certificate')
|
422
|
+
allow(certificate).to receive(:to_der).and_return('ABCDE')
|
423
|
+
ssl_context = double('ssl_context', client_cert: certificate)
|
424
|
+
allow(Puppet::SSL::StateMachine).to receive(:new).with(onetime: true).and_return(double(ensure_client_certificate: ssl_context))
|
425
|
+
|
426
|
+
expect(@puppetd).to receive(:puts).with('(MD5) 2E:CD:DE:39:59:05:1D:91:3F:61:B1:45:79:EA:13:6D')
|
416
427
|
|
417
428
|
execute_agent
|
418
429
|
end
|
@@ -467,6 +478,7 @@ describe Puppet::Application::Agent do
|
|
467
478
|
|
468
479
|
it "should dispatch to onetime if --onetime is used" do
|
469
480
|
Puppet[:onetime] = true
|
481
|
+
allow(Puppet::SSL::StateMachine).to receive(:new).and_return(double(ensure_client_certificate: nil))
|
470
482
|
|
471
483
|
expect(@puppetd).to receive(:onetime)
|
472
484
|
|
@@ -475,6 +487,7 @@ describe Puppet::Application::Agent do
|
|
475
487
|
|
476
488
|
it "should dispatch to main if --onetime and --fingerprint are not used" do
|
477
489
|
Puppet[:onetime] = false
|
490
|
+
allow(Puppet::SSL::StateMachine).to receive(:new).and_return(double(ensure_client_certificate: nil))
|
478
491
|
|
479
492
|
expect(@puppetd).to receive(:main)
|
480
493
|
|
@@ -488,7 +501,7 @@ describe Puppet::Application::Agent do
|
|
488
501
|
@puppetd.options[:client] = :client
|
489
502
|
@puppetd.options[:detailed_exitcodes] = false
|
490
503
|
|
491
|
-
|
504
|
+
allow(Puppet::SSL::StateMachine).to receive(:new).and_return(double(ensure_client_certificate: nil))
|
492
505
|
end
|
493
506
|
|
494
507
|
it "should setup traps" do
|
@@ -539,54 +552,26 @@ describe Puppet::Application::Agent do
|
|
539
552
|
|
540
553
|
describe "with --fingerprint" do
|
541
554
|
before :each do
|
555
|
+
@cert = double('cert')
|
542
556
|
@puppetd.options[:fingerprint] = true
|
543
557
|
@puppetd.options[:digest] = :MD5
|
544
558
|
end
|
545
559
|
|
546
560
|
it "should fingerprint the certificate if it exists" do
|
547
|
-
cert
|
548
|
-
|
549
|
-
|
550
|
-
expect(@puppetd).to receive(:puts).with('(MD5) A6:00:3E:C1:DF:CF:E8:44:A6:4F:8D:92:E8:B2:D9:47')
|
551
|
-
|
552
|
-
@puppetd.fingerprint
|
553
|
-
end
|
554
|
-
|
555
|
-
it "should fingerprint the request if it exists" do
|
556
|
-
request = request_fixture('request.pem')
|
557
|
-
allow_any_instance_of(Puppet::X509::CertProvider).to receive(:load_client_cert).and_return(nil)
|
558
|
-
allow_any_instance_of(Puppet::X509::CertProvider).to receive(:load_request).and_return(request)
|
561
|
+
allow(@cert).to receive(:to_der).and_return('ABCDE')
|
562
|
+
ssl_context = double('ssl_context', client_cert: @cert)
|
563
|
+
allow(Puppet::SSL::StateMachine).to receive(:new).with(onetime: true).and_return(double(ensure_client_certificate: ssl_context))
|
559
564
|
|
560
|
-
expect(@puppetd).to receive(:puts).with('(MD5)
|
565
|
+
expect(@puppetd).to receive(:puts).with('(MD5) 2E:CD:DE:39:59:05:1D:91:3F:61:B1:45:79:EA:13:6D')
|
561
566
|
|
562
567
|
@puppetd.fingerprint
|
563
568
|
end
|
564
|
-
|
565
|
-
it "should print an error to stderr if neither exist" do
|
566
|
-
allow_any_instance_of(Puppet::X509::CertProvider).to receive(:load_client_cert).and_return(nil)
|
567
|
-
allow_any_instance_of(Puppet::X509::CertProvider).to receive(:load_request).and_return(nil)
|
568
|
-
|
569
|
-
expect {
|
570
|
-
expect {
|
571
|
-
@puppetd.fingerprint
|
572
|
-
}.to exit_with(1)
|
573
|
-
}.to output(/Fingerprint asked but neither the certificate, nor the certificate request have been issued/).to_stderr
|
574
|
-
end
|
575
|
-
|
576
|
-
it "should log an error if an exception occurs" do
|
577
|
-
allow_any_instance_of(Puppet::X509::CertProvider).to receive(:load_client_cert).and_raise(Puppet::Error, "Invalid PEM")
|
578
|
-
|
579
|
-
expect {
|
580
|
-
@puppetd.fingerprint
|
581
|
-
}.to exit_with(1)
|
582
|
-
|
583
|
-
expect(@logs).to include(an_object_having_attributes(message: /Failed to generate fingerprint: Invalid PEM/))
|
584
|
-
end
|
585
569
|
end
|
586
570
|
|
587
571
|
describe "without --onetime and --fingerprint" do
|
588
572
|
before :each do
|
589
573
|
allow(Puppet).to receive(:notice)
|
574
|
+
allow(Puppet::SSL::StateMachine).to receive(:new).and_return(double(ensure_client_certificate: nil))
|
590
575
|
end
|
591
576
|
|
592
577
|
it "should start our daemon" do
|
@@ -597,24 +582,6 @@ describe Puppet::Application::Agent do
|
|
597
582
|
end
|
598
583
|
end
|
599
584
|
|
600
|
-
describe "when starting in daemon mode on non-windows", :unless => Puppet.features.microsoft_windows? do
|
601
|
-
before :each do
|
602
|
-
allow(Puppet).to receive(:notice)
|
603
|
-
Puppet[:daemonize] = true
|
604
|
-
end
|
605
|
-
|
606
|
-
it "should not print config in default mode" do
|
607
|
-
execute_agent
|
608
|
-
expect(@logs).to be_empty
|
609
|
-
end
|
610
|
-
|
611
|
-
it "should print config in debug mode" do
|
612
|
-
@puppetd.options[:debug] = true
|
613
|
-
execute_agent
|
614
|
-
expect(@logs).to include(an_object_having_attributes(level: :debug, message: /agent_catalog_run_lockfile=/))
|
615
|
-
end
|
616
|
-
end
|
617
|
-
|
618
585
|
def execute_agent
|
619
586
|
@puppetd.setup
|
620
587
|
@puppetd.run_command
|