puppet 7.8.0 → 7.9.0
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/CONTRIBUTING.md +5 -5
- data/Gemfile.lock +9 -9
- data/README.md +4 -4
- data/ext/project_data.yaml +1 -0
- data/install.rb +0 -4
- data/lib/puppet.rb +3 -3
- data/lib/puppet/application/filebucket.rb +1 -0
- data/lib/puppet/application/resource.rb +15 -2
- data/lib/puppet/application/ssl.rb +1 -0
- data/lib/puppet/defaults.rb +7 -0
- data/lib/puppet/environments.rb +10 -0
- data/lib/puppet/face/help/action.erb +1 -0
- data/lib/puppet/face/help/face.erb +1 -0
- data/lib/puppet/face/node/clean.rb +1 -1
- data/lib/puppet/file_system/file_impl.rb +1 -1
- data/lib/puppet/file_system/windows.rb +2 -2
- data/lib/puppet/forge.rb +3 -3
- data/lib/puppet/forge/cache.rb +1 -1
- data/lib/puppet/functions/empty.rb +8 -0
- data/lib/puppet/functions/strftime.rb +1 -0
- data/lib/puppet/functions/unwrap.rb +17 -2
- data/lib/puppet/indirector/resource/ral.rb +6 -1
- data/lib/puppet/interface/documentation.rb +1 -0
- data/lib/puppet/module_tool/applications/installer.rb +4 -0
- data/lib/puppet/module_tool/errors/shared.rb +17 -0
- data/lib/puppet/module_tool/tar/mini.rb +1 -1
- data/lib/puppet/pops/types/type_mismatch_describer.rb +1 -1
- data/lib/puppet/provider/exec/posix.rb +16 -4
- data/lib/puppet/provider/package/pip.rb +15 -3
- data/lib/puppet/provider/package/windows.rb +14 -1
- data/lib/puppet/provider/package/windows/exe_package.rb +30 -1
- data/lib/puppet/provider/package/windows/package.rb +2 -1
- data/lib/puppet/provider/parsedfile.rb +3 -0
- data/lib/puppet/resource/type_collection.rb +2 -0
- data/lib/puppet/settings.rb +30 -7
- data/lib/puppet/settings/config_file.rb +1 -8
- data/lib/puppet/settings/value_translator.rb +0 -1
- data/lib/puppet/type/exec.rb +16 -3
- data/lib/puppet/type/file/mode.rb +6 -0
- data/lib/puppet/type/tidy.rb +1 -1
- data/lib/puppet/type/user.rb +1 -1
- data/lib/puppet/util/monkey_patches.rb +2 -17
- data/lib/puppet/util/symbolic_file_mode.rb +29 -17
- data/lib/puppet/util/windows/sid.rb +3 -1
- data/lib/puppet/version.rb +1 -1
- data/lib/puppet/x509/cert_provider.rb +3 -21
- data/locales/puppet.pot +207 -171
- data/man/man5/puppet.conf.5 +2 -2
- data/man/man8/puppet-agent.8 +1 -1
- data/man/man8/puppet-apply.8 +1 -1
- data/man/man8/puppet-catalog.8 +9 -9
- 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 +7 -7
- data/man/man8/puppet-filebucket.8 +1 -1
- data/man/man8/puppet-generate.8 +1 -1
- data/man/man8/puppet-help.8 +1 -1
- data/man/man8/puppet-lookup.8 +1 -1
- data/man/man8/puppet-module.8 +1 -1
- data/man/man8/puppet-node.8 +5 -5
- data/man/man8/puppet-parser.8 +1 -1
- data/man/man8/puppet-plugin.8 +1 -1
- data/man/man8/puppet-report.8 +5 -5
- 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.8 +2 -2
- data/spec/fixtures/ssl/127.0.0.1-key.pem +106 -106
- data/spec/fixtures/ssl/127.0.0.1.pem +48 -48
- data/spec/fixtures/ssl/bad-basic-constraints.pem +54 -54
- data/spec/fixtures/ssl/bad-int-basic-constraints.pem +51 -51
- data/spec/fixtures/ssl/ca.pem +52 -52
- data/spec/fixtures/ssl/crl.pem +25 -25
- data/spec/fixtures/ssl/ec-key-openssl.pem +8 -0
- data/spec/fixtures/ssl/ec-key-pk8.pem +5 -0
- data/spec/fixtures/ssl/ec-key.pem +11 -11
- data/spec/fixtures/ssl/ec.pem +32 -32
- data/spec/fixtures/ssl/encrypted-ec-key.pem +12 -12
- data/spec/fixtures/ssl/encrypted-key.pem +107 -107
- data/spec/fixtures/ssl/intermediate-agent-crl.pem +25 -25
- data/spec/fixtures/ssl/intermediate-agent.pem +54 -54
- data/spec/fixtures/ssl/intermediate-crl.pem +28 -28
- data/spec/fixtures/ssl/intermediate.pem +51 -51
- data/spec/fixtures/ssl/oid-key.pem +117 -0
- data/spec/fixtures/ssl/oid.pem +69 -0
- data/spec/fixtures/ssl/pluto-key.pem +106 -106
- data/spec/fixtures/ssl/pluto.pem +50 -50
- data/spec/fixtures/ssl/request-key.pem +106 -106
- data/spec/fixtures/ssl/request.pem +45 -45
- data/spec/fixtures/ssl/revoked-key.pem +106 -106
- data/spec/fixtures/ssl/revoked.pem +49 -49
- data/spec/fixtures/ssl/signed-key.pem +106 -106
- data/spec/fixtures/ssl/signed.pem +47 -47
- data/spec/fixtures/ssl/tampered-cert.pem +49 -49
- data/spec/fixtures/ssl/tampered-csr.pem +45 -45
- data/spec/fixtures/ssl/trusted_oid_mapping.yaml +5 -0
- data/spec/fixtures/ssl/unknown-127.0.0.1-key.pem +106 -106
- data/spec/fixtures/ssl/unknown-127.0.0.1.pem +48 -48
- data/spec/fixtures/ssl/unknown-ca-key.pem +106 -106
- data/spec/fixtures/ssl/unknown-ca.pem +52 -52
- data/spec/integration/application/filebucket_spec.rb +11 -0
- data/spec/integration/application/module_spec.rb +21 -0
- data/spec/integration/application/resource_spec.rb +35 -1
- data/spec/integration/application/ssl_spec.rb +20 -0
- data/spec/integration/defaults_spec.rb +5 -0
- data/spec/integration/environments/settings_interpolation_spec.rb +0 -4
- data/spec/integration/indirector/facts/facter_spec.rb +90 -36
- data/spec/integration/type/exec_spec.rb +70 -45
- data/spec/lib/puppet/test_ca.rb +5 -0
- data/spec/lib/puppet_spec/settings.rb +1 -0
- data/spec/unit/environments_spec.rb +35 -0
- data/spec/unit/file_system_spec.rb +6 -0
- data/spec/unit/functions/assert_type_spec.rb +1 -1
- data/spec/unit/functions/empty_spec.rb +10 -0
- data/spec/unit/functions/lookup_spec.rb +23 -0
- data/spec/unit/functions/unwrap_spec.rb +8 -0
- data/spec/unit/functions4_spec.rb +2 -2
- data/spec/unit/indirector/resource/ral_spec.rb +40 -75
- data/spec/unit/module_tool/applications/installer_spec.rb +13 -2
- data/spec/unit/parser/compiler_spec.rb +29 -0
- data/spec/unit/parser/templatewrapper_spec.rb +12 -2
- data/spec/unit/pops/loaders/dependency_loader_spec.rb +0 -9
- data/spec/unit/pops/parser/lexer2_spec.rb +0 -4
- data/spec/unit/provider/package/pip_spec.rb +37 -0
- data/spec/unit/provider/package/windows/exe_package_spec.rb +17 -0
- data/spec/unit/provider/parsedfile_spec.rb +10 -0
- data/spec/unit/resource/type_collection_spec.rb +16 -0
- data/spec/unit/resource/type_spec.rb +2 -2
- data/spec/unit/settings/config_file_spec.rb +1 -11
- data/spec/unit/settings/value_translator_spec.rb +4 -5
- data/spec/unit/settings_spec.rb +120 -79
- data/spec/unit/ssl/ssl_provider_spec.rb +18 -16
- data/spec/unit/type/exec_spec.rb +76 -29
- data/spec/unit/type/file/source_spec.rb +4 -4
- data/spec/unit/type/tidy_spec.rb +7 -0
- data/spec/unit/util/ldap/connection_spec.rb +10 -10
- data/spec/unit/util/ldap/manager_spec.rb +2 -2
- data/spec/unit/util/windows/sid_spec.rb +39 -4
- data/spec/unit/util_spec.rb +1 -3
- data/spec/unit/x509/cert_provider_spec.rb +9 -1
- data/tasks/generate_cert_fixtures.rake +10 -1
- metadata +16 -3
@@ -1,5 +1,6 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
require 'puppet/provider/package/windows/exe_package'
|
3
|
+
require 'puppet/provider/package/windows'
|
3
4
|
|
4
5
|
describe Puppet::Provider::Package::Windows::ExePackage do
|
5
6
|
let (:name) { 'Git version 1.7.11' }
|
@@ -71,10 +72,26 @@ describe Puppet::Provider::Package::Windows::ExePackage do
|
|
71
72
|
|
72
73
|
context '#install_command' do
|
73
74
|
it 'should install using the source' do
|
75
|
+
allow(Puppet::FileSystem).to receive(:exist?).with(source).and_return(true)
|
74
76
|
cmd = described_class.install_command({:source => source})
|
75
77
|
|
76
78
|
expect(cmd).to eq(source)
|
77
79
|
end
|
80
|
+
|
81
|
+
it 'should raise error when URI is invalid' do
|
82
|
+
web_source = 'https://www.t e s t.test/test.exe'
|
83
|
+
|
84
|
+
expect do
|
85
|
+
described_class.install_command({:source => web_source, :name => name})
|
86
|
+
end.to raise_error(Puppet::Error, /Error when installing #{name}:/)
|
87
|
+
end
|
88
|
+
|
89
|
+
it 'should download package from source file before installing', if: Puppet::Util::Platform.windows? do
|
90
|
+
web_source = 'https://www.test.test/test.exe'
|
91
|
+
stub_request(:get, web_source).to_return(status: 200, body: 'package binaries')
|
92
|
+
cmd = described_class.install_command({:source => web_source})
|
93
|
+
expect(File.read(cmd)).to eq('package binaries')
|
94
|
+
end
|
78
95
|
end
|
79
96
|
|
80
97
|
context '#uninstall_command' do
|
@@ -79,6 +79,16 @@ describe Puppet::Provider::ParsedFile do
|
|
79
79
|
|
80
80
|
provider.instances
|
81
81
|
end
|
82
|
+
|
83
|
+
it "should raise if parsing returns nil" do
|
84
|
+
expect(provider).to receive(:targets).and_return(%w{/one})
|
85
|
+
expect_any_instance_of(Puppet::Util::FileType::FileTypeFlat).to receive(:read).and_return('a=b')
|
86
|
+
expect(provider).to receive(:parse).and_return(nil)
|
87
|
+
|
88
|
+
expect {
|
89
|
+
provider.instances
|
90
|
+
}.to raise_error(Puppet::DevError, %r{Prefetching /one for provider parsedfile_provider returned nil})
|
91
|
+
end
|
82
92
|
end
|
83
93
|
|
84
94
|
describe "when matching resources to existing records" do
|
@@ -43,6 +43,14 @@ describe Puppet::Resource::TypeCollection do
|
|
43
43
|
end.to raise_error(Puppet::ParseError, /cannot redefine/)
|
44
44
|
end
|
45
45
|
|
46
|
+
it "should fail if a hostclass duplicates a node" do
|
47
|
+
@code.add(Puppet::Resource::Type.new(:node, "foo"))
|
48
|
+
|
49
|
+
expect do
|
50
|
+
@code.add(Puppet::Resource::Type.new(:hostclass, "foo"))
|
51
|
+
end.to raise_error(Puppet::ParseError, /Node 'foo' is already defined; cannot be redefined as a class/)
|
52
|
+
end
|
53
|
+
|
46
54
|
it "should store hostclasses as hostclasses" do
|
47
55
|
klass = Puppet::Resource::Type.new(:hostclass, "foo")
|
48
56
|
|
@@ -60,6 +68,14 @@ describe Puppet::Resource::TypeCollection do
|
|
60
68
|
}.to raise_error(/.*is already defined; cannot redefine/)
|
61
69
|
end
|
62
70
|
|
71
|
+
it "should fail if a node duplicates a hostclass" do
|
72
|
+
@code.add(Puppet::Resource::Type.new(:hostclass, "foo"))
|
73
|
+
|
74
|
+
expect do
|
75
|
+
@code.add(Puppet::Resource::Type.new(:node, "foo"))
|
76
|
+
end.to raise_error(Puppet::ParseError, /Class 'foo' is already defined; cannot be redefined as a node/)
|
77
|
+
end
|
78
|
+
|
63
79
|
it "should store definitions as definitions" do
|
64
80
|
define = Puppet::Resource::Type.new(:definition, "foo")
|
65
81
|
|
@@ -462,9 +462,9 @@ describe Puppet::Resource::Type do
|
|
462
462
|
end
|
463
463
|
|
464
464
|
it "should be able to find parent nodes" do
|
465
|
-
parent = Puppet::Resource::Type.new(:node, "
|
465
|
+
parent = Puppet::Resource::Type.new(:node, "node_bar")
|
466
466
|
@krt.add parent
|
467
|
-
child = Puppet::Resource::Type.new(:node, "
|
467
|
+
child = Puppet::Resource::Type.new(:node, "node_foo", :parent => "node_bar")
|
468
468
|
@krt.add child
|
469
469
|
|
470
470
|
expect(child.parent_type(@scope)).to equal(parent)
|
@@ -135,16 +135,6 @@ badline
|
|
135
135
|
with_setting(:var, "value changed", NO_META)))
|
136
136
|
end
|
137
137
|
|
138
|
-
it "does not try to transform an entry named 'mode'" do
|
139
|
-
config = Puppet::Settings::ConfigFile.new(Proc.new { raise "Should not transform" })
|
140
|
-
|
141
|
-
result = config.parse_file(filename, "mode = value")
|
142
|
-
|
143
|
-
expect(result).to eq(Conf.new.
|
144
|
-
with_section(Section.new(:main).
|
145
|
-
with_setting(:mode, "value", NO_META)))
|
146
|
-
end
|
147
|
-
|
148
138
|
it "accepts non-UTF8 encoded text" do
|
149
139
|
result = the_parse_of("var = value".encode("UTF-16LE"))
|
150
140
|
|
@@ -152,6 +142,6 @@ badline
|
|
152
142
|
with_section(Section.new(:main).
|
153
143
|
with_setting(:var, "value", NO_META)))
|
154
144
|
|
155
|
-
|
145
|
+
end
|
156
146
|
end
|
157
147
|
|
@@ -25,13 +25,12 @@ describe Puppet::Settings::ValueTranslator do
|
|
25
25
|
end
|
26
26
|
|
27
27
|
context "numbers" do
|
28
|
-
it "
|
29
|
-
expect(translator["1"]).to eq(1)
|
30
|
-
expect(translator["2"]).to eq(2)
|
28
|
+
it "leaves integer strings" do
|
29
|
+
expect(translator["1"]).to eq("1")
|
31
30
|
end
|
32
31
|
|
33
|
-
it "
|
34
|
-
expect(translator["011"]).to eq(
|
32
|
+
it "leaves octal numbers as strings" do
|
33
|
+
expect(translator["011"]).to eq("011")
|
35
34
|
end
|
36
35
|
|
37
36
|
it "leaves hex numbers as strings" do
|
data/spec/unit/settings_spec.rb
CHANGED
@@ -29,6 +29,17 @@ describe Puppet::Settings do
|
|
29
29
|
end
|
30
30
|
end
|
31
31
|
|
32
|
+
def stub_config_with(content)
|
33
|
+
allow(Puppet.features).to receive(:root?).and_return(false)
|
34
|
+
expect(Puppet::FileSystem).to receive(:exist?).
|
35
|
+
with(user_config_file_default_location).
|
36
|
+
and_return(true).ordered
|
37
|
+
expect(@settings).to receive(:read_file).
|
38
|
+
with(user_config_file_default_location).
|
39
|
+
and_return(content).ordered
|
40
|
+
@settings.send(:parse_config_files)
|
41
|
+
end
|
42
|
+
|
32
43
|
describe "when specifying defaults" do
|
33
44
|
before do
|
34
45
|
@settings = Puppet::Settings.new
|
@@ -264,23 +275,31 @@ describe Puppet::Settings do
|
|
264
275
|
expect(@settings[:myval]).to eq("")
|
265
276
|
end
|
266
277
|
|
267
|
-
it "should
|
278
|
+
it "should retrieve numeric settings from the CLI" do
|
268
279
|
@settings.handlearg("--myval", "12")
|
269
|
-
expect(@settings.set_by_cli
|
280
|
+
expect(@settings.set_by_cli(:myval)).to eq("12")
|
281
|
+
expect(@settings.set_by_cli?(:myval)).to be true
|
270
282
|
end
|
271
283
|
|
272
|
-
it "should
|
284
|
+
it "should retrieve string settings from the CLI" do
|
285
|
+
@settings.handlearg("--myval", "something")
|
286
|
+
expect(@settings.set_by_cli(:myval)).to eq("something")
|
287
|
+
expect(@settings.set_by_cli?(:myval)).to be true
|
288
|
+
end
|
289
|
+
|
290
|
+
it "should retrieve bool settings from the CLI" do
|
273
291
|
@settings.handlearg("--bool")
|
274
|
-
expect(@settings.set_by_cli
|
292
|
+
expect(@settings.set_by_cli(:bool)).to be true
|
293
|
+
expect(@settings.set_by_cli?(:bool)).to be true
|
275
294
|
end
|
276
295
|
|
277
|
-
it "should not
|
296
|
+
it "should not retrieve settings set in memory as from CLI" do
|
278
297
|
@settings[:myval] = "12"
|
279
|
-
expect(@settings.set_by_cli?(:myval)).to
|
298
|
+
expect(@settings.set_by_cli?(:myval)).to be false
|
280
299
|
end
|
281
300
|
|
282
301
|
it "should find no configured settings by default" do
|
283
|
-
expect(@settings.set_by_config?(:myval)).to
|
302
|
+
expect(@settings.set_by_config?(:myval)).to be false
|
284
303
|
end
|
285
304
|
|
286
305
|
it "should identify configured settings in memory" do
|
@@ -304,64 +323,66 @@ describe Puppet::Settings do
|
|
304
323
|
expect(@settings.set_by_config?(:manifest, Puppet[:environment])).to be_truthy
|
305
324
|
end
|
306
325
|
|
307
|
-
|
308
|
-
|
326
|
+
context "when handling puppet.conf" do
|
327
|
+
describe "#set_by_config?" do
|
328
|
+
it "should identify configured settings from the preferred run mode" do
|
329
|
+
stub_config_with(<<~CONFIG)
|
330
|
+
[#{@settings.preferred_run_mode}]
|
331
|
+
myval = foo
|
332
|
+
CONFIG
|
309
333
|
|
310
|
-
|
311
|
-
|
312
|
-
with(user_config_file_default_location).
|
313
|
-
and_return(true).ordered
|
314
|
-
expect(@settings).to receive(:read_file).
|
315
|
-
with(user_config_file_default_location).
|
316
|
-
and_return(user_config_text).ordered
|
334
|
+
expect(@settings.set_by_config?(:myval)).to be_truthy
|
335
|
+
end
|
317
336
|
|
318
|
-
|
319
|
-
|
320
|
-
|
337
|
+
it "should identify configured settings from the specified run mode" do
|
338
|
+
stub_config_with(<<~CONFIG)
|
339
|
+
[server]
|
340
|
+
myval = foo
|
341
|
+
CONFIG
|
321
342
|
|
322
|
-
|
323
|
-
|
343
|
+
expect(@settings.set_by_config?(:myval, nil, :server)).to be_truthy
|
344
|
+
end
|
324
345
|
|
325
|
-
|
326
|
-
|
327
|
-
|
328
|
-
|
329
|
-
|
330
|
-
with(user_config_file_default_location).
|
331
|
-
and_return(user_config_text).ordered
|
346
|
+
it "should not identify configured settings from an unspecified run mode" do
|
347
|
+
stub_config_with(<<~CONFIG)
|
348
|
+
[zaz]
|
349
|
+
myval = foo
|
350
|
+
CONFIG
|
332
351
|
|
333
|
-
|
334
|
-
|
335
|
-
end
|
352
|
+
expect(@settings.set_by_config?(:myval)).to be_falsey
|
353
|
+
end
|
336
354
|
|
337
|
-
|
338
|
-
|
355
|
+
it "should identify configured settings from the main section" do
|
356
|
+
stub_config_with(<<~CONFIG)
|
357
|
+
[main]
|
358
|
+
myval = foo
|
359
|
+
CONFIG
|
339
360
|
|
340
|
-
|
341
|
-
|
342
|
-
|
343
|
-
and_return(true).ordered
|
344
|
-
expect(@settings).to receive(:read_file).
|
345
|
-
with(user_config_file_default_location).
|
346
|
-
and_return(user_config_text).ordered
|
361
|
+
expect(@settings.set_by_config?(:myval)).to be_truthy
|
362
|
+
end
|
363
|
+
end
|
347
364
|
|
348
|
-
|
349
|
-
|
350
|
-
|
365
|
+
describe "#set_in_section" do
|
366
|
+
it "should retrieve configured settings from the specified section" do
|
367
|
+
stub_config_with(<<~CONFIG)
|
368
|
+
[agent]
|
369
|
+
myval = foo
|
370
|
+
CONFIG
|
351
371
|
|
352
|
-
|
353
|
-
|
372
|
+
expect(@settings.set_in_section(:myval, :agent)).to eq("foo")
|
373
|
+
expect(@settings.set_in_section?(:myval, :agent)).to be true
|
374
|
+
end
|
354
375
|
|
355
|
-
|
356
|
-
|
357
|
-
|
358
|
-
|
359
|
-
|
360
|
-
with(user_config_file_default_location).
|
361
|
-
and_return(user_config_text).ordered
|
376
|
+
it "should not retrieve configured settings from a different section" do
|
377
|
+
stub_config_with(<<~CONFIG)
|
378
|
+
[main]
|
379
|
+
myval = foo
|
380
|
+
CONFIG
|
362
381
|
|
363
|
-
|
364
|
-
|
382
|
+
expect(@settings.set_in_section(:myval, :agent)).to be nil
|
383
|
+
expect(@settings.set_in_section?(:myval, :agent)).to be false
|
384
|
+
end
|
385
|
+
end
|
365
386
|
end
|
366
387
|
|
367
388
|
it "should clear the cache when setting getopt-specific values" do
|
@@ -1024,7 +1045,7 @@ describe Puppet::Settings do
|
|
1024
1045
|
expect(@settings[:two]).to eq(false)
|
1025
1046
|
end
|
1026
1047
|
|
1027
|
-
it "
|
1048
|
+
it "doesn't convert integers in the configuration file" do
|
1028
1049
|
File.write(@file, <<~CONF)
|
1029
1050
|
[main]
|
1030
1051
|
one = 65
|
@@ -1032,7 +1053,7 @@ describe Puppet::Settings do
|
|
1032
1053
|
|
1033
1054
|
@settings.initialize_global_settings
|
1034
1055
|
|
1035
|
-
expect(@settings[:one]).to eq(65)
|
1056
|
+
expect(@settings[:one]).to eq('65')
|
1036
1057
|
end
|
1037
1058
|
|
1038
1059
|
it "should support specifying all metadata (owner, group, mode) in the configuration file" do
|
@@ -1087,10 +1108,10 @@ describe Puppet::Settings do
|
|
1087
1108
|
context "when setting serverport and masterport" do
|
1088
1109
|
before(:each) do
|
1089
1110
|
@settings.define_settings :main, PuppetSpec::Settings::TEST_APP_DEFAULT_DEFINITIONS
|
1090
|
-
@settings.define_settings :server, :masterport => { :desc => "a", :default => 1000 }
|
1111
|
+
@settings.define_settings :server, :masterport => { :desc => "a", :default => 1000, :type => :port }
|
1091
1112
|
@settings.define_settings :server, :serverport => { :type => :alias, :alias_for => :masterport }
|
1092
|
-
@settings.define_settings :server, :ca_port => { :desc => "a", :default => "$serverport" }
|
1093
|
-
@settings.define_settings :server, :report_port => { :desc => "a", :default => "$serverport" }
|
1113
|
+
@settings.define_settings :server, :ca_port => { :desc => "a", :default => "$serverport", :type => :port }
|
1114
|
+
@settings.define_settings :server, :report_port => { :desc => "a", :default => "$serverport", :type => :port }
|
1094
1115
|
|
1095
1116
|
config_file = tmpfile('config')
|
1096
1117
|
@settings[:config] = config_file
|
@@ -1111,8 +1132,8 @@ describe Puppet::Settings do
|
|
1111
1132
|
end
|
1112
1133
|
|
1113
1134
|
it { expect(@settings[:serverport]).to eq(444) }
|
1114
|
-
it { expect(@settings[:ca_port]).to eq(
|
1115
|
-
it { expect(@settings[:report_port]).to eq(
|
1135
|
+
it { expect(@settings[:ca_port]).to eq(444) }
|
1136
|
+
it { expect(@settings[:report_port]).to eq(444) }
|
1116
1137
|
it { expect(@settings[:masterport]).to eq(445) }
|
1117
1138
|
end
|
1118
1139
|
|
@@ -1125,8 +1146,8 @@ describe Puppet::Settings do
|
|
1125
1146
|
end
|
1126
1147
|
|
1127
1148
|
it { expect(@settings[:serverport]).to eq(445) }
|
1128
|
-
it { expect(@settings[:ca_port]).to eq(
|
1129
|
-
it { expect(@settings[:report_port]).to eq(
|
1149
|
+
it { expect(@settings[:ca_port]).to eq(445) }
|
1150
|
+
it { expect(@settings[:report_port]).to eq(445) }
|
1130
1151
|
it { expect(@settings[:masterport]).to eq(444) }
|
1131
1152
|
end
|
1132
1153
|
|
@@ -1139,8 +1160,8 @@ describe Puppet::Settings do
|
|
1139
1160
|
end
|
1140
1161
|
|
1141
1162
|
it { expect(@settings[:serverport]).to eq(445) }
|
1142
|
-
it { expect(@settings[:ca_port]).to eq(
|
1143
|
-
it { expect(@settings[:report_port]).to eq(
|
1163
|
+
it { expect(@settings[:ca_port]).to eq(445) }
|
1164
|
+
it { expect(@settings[:report_port]).to eq(445) }
|
1144
1165
|
it { expect(@settings[:masterport]).to eq(444) }
|
1145
1166
|
end
|
1146
1167
|
|
@@ -1156,8 +1177,8 @@ describe Puppet::Settings do
|
|
1156
1177
|
end
|
1157
1178
|
|
1158
1179
|
it { expect(@settings[:serverport]).to eq(445) }
|
1159
|
-
it { expect(@settings[:ca_port]).to eq(
|
1160
|
-
it { expect(@settings[:report_port]).to eq(
|
1180
|
+
it { expect(@settings[:ca_port]).to eq(445) }
|
1181
|
+
it { expect(@settings[:report_port]).to eq(445) }
|
1161
1182
|
it { expect(@settings[:masterport]).to eq(444) }
|
1162
1183
|
end
|
1163
1184
|
|
@@ -1171,8 +1192,8 @@ describe Puppet::Settings do
|
|
1171
1192
|
end
|
1172
1193
|
|
1173
1194
|
it { expect(@settings[:serverport]).to eq(444) }
|
1174
|
-
it { expect(@settings[:ca_port]).to eq(
|
1175
|
-
it { expect(@settings[:report_port]).to eq(
|
1195
|
+
it { expect(@settings[:ca_port]).to eq(444) }
|
1196
|
+
it { expect(@settings[:report_port]).to eq(444) }
|
1176
1197
|
it { expect(@settings[:masterport]).to eq(445) }
|
1177
1198
|
end
|
1178
1199
|
|
@@ -1184,8 +1205,8 @@ describe Puppet::Settings do
|
|
1184
1205
|
end
|
1185
1206
|
|
1186
1207
|
it { expect(@settings[:serverport]).to eq(445) }
|
1187
|
-
it { expect(@settings[:ca_port]).to eq(
|
1188
|
-
it { expect(@settings[:report_port]).to eq(
|
1208
|
+
it { expect(@settings[:ca_port]).to eq(445) }
|
1209
|
+
it { expect(@settings[:report_port]).to eq(445) }
|
1189
1210
|
it { expect(@settings[:masterport]).to eq(445) }
|
1190
1211
|
end
|
1191
1212
|
|
@@ -1197,8 +1218,8 @@ describe Puppet::Settings do
|
|
1197
1218
|
end
|
1198
1219
|
|
1199
1220
|
it { expect(@settings[:serverport]).to eq(445) }
|
1200
|
-
it { expect(@settings[:ca_port]).to eq(
|
1201
|
-
it { expect(@settings[:report_port]).to eq(
|
1221
|
+
it { expect(@settings[:ca_port]).to eq(445) }
|
1222
|
+
it { expect(@settings[:report_port]).to eq(445) }
|
1202
1223
|
it { expect(@settings[:masterport]).to eq(445) }
|
1203
1224
|
end
|
1204
1225
|
|
@@ -1211,8 +1232,8 @@ describe Puppet::Settings do
|
|
1211
1232
|
|
1212
1233
|
it { expect(@settings[:serverport]).to eq(445) }
|
1213
1234
|
it { expect(@settings[:masterport]).to eq(1000) }
|
1214
|
-
it { expect(@settings[:ca_port]).to eq(
|
1215
|
-
it { expect(@settings[:report_port]).to eq(
|
1235
|
+
it { expect(@settings[:ca_port]).to eq(445) }
|
1236
|
+
it { expect(@settings[:report_port]).to eq(445) }
|
1216
1237
|
end
|
1217
1238
|
|
1218
1239
|
context 'with serverport in main' do
|
@@ -1224,8 +1245,8 @@ describe Puppet::Settings do
|
|
1224
1245
|
|
1225
1246
|
it { expect(@settings[:serverport]).to eq(445) }
|
1226
1247
|
it { expect(@settings[:masterport]).to eq(1000) }
|
1227
|
-
it { expect(@settings[:ca_port]).to eq(
|
1228
|
-
it { expect(@settings[:report_port]).to eq(
|
1248
|
+
it { expect(@settings[:ca_port]).to eq(445) }
|
1249
|
+
it { expect(@settings[:report_port]).to eq(445) }
|
1229
1250
|
end
|
1230
1251
|
end
|
1231
1252
|
|
@@ -2137,7 +2158,7 @@ describe Puppet::Settings do
|
|
2137
2158
|
end
|
2138
2159
|
|
2139
2160
|
def a_user_type_for(username)
|
2140
|
-
user = double('user')
|
2161
|
+
user = double('user', 'suitable?': true, to_s: "User[#{username}]")
|
2141
2162
|
expect(Puppet::Type.type(:user)).to receive(:new).with(hash_including(name: username)).and_return(user)
|
2142
2163
|
user
|
2143
2164
|
end
|
@@ -2170,6 +2191,16 @@ describe Puppet::Settings do
|
|
2170
2191
|
|
2171
2192
|
expect(settings).to be_service_user_available
|
2172
2193
|
end
|
2194
|
+
|
2195
|
+
it "raises if the user is not suitable" do
|
2196
|
+
settings[:user] = "foo"
|
2197
|
+
|
2198
|
+
expect(a_user_type_for("foo")).to receive(:suitable?).and_return(false)
|
2199
|
+
|
2200
|
+
expect {
|
2201
|
+
settings.service_user_available?
|
2202
|
+
}.to raise_error(Puppet::Error, /Cannot manage owner permissions, because the provider for 'User\[foo\]' is not functional/)
|
2203
|
+
end
|
2173
2204
|
end
|
2174
2205
|
|
2175
2206
|
describe "when determining if the service group is available" do
|
@@ -2180,7 +2211,7 @@ describe Puppet::Settings do
|
|
2180
2211
|
end
|
2181
2212
|
|
2182
2213
|
def a_group_type_for(groupname)
|
2183
|
-
group = double('group')
|
2214
|
+
group = double('group', 'suitable?': true, to_s: "Group[#{groupname}]")
|
2184
2215
|
expect(Puppet::Type.type(:group)).to receive(:new).with(hash_including(name: groupname)).and_return(group)
|
2185
2216
|
group
|
2186
2217
|
end
|
@@ -2213,6 +2244,16 @@ describe Puppet::Settings do
|
|
2213
2244
|
|
2214
2245
|
expect(settings).to be_service_group_available
|
2215
2246
|
end
|
2247
|
+
|
2248
|
+
it "raises if the group is not suitable" do
|
2249
|
+
settings[:group] = "foo"
|
2250
|
+
|
2251
|
+
expect(a_group_type_for("foo")).to receive(:suitable?).and_return(false)
|
2252
|
+
|
2253
|
+
expect {
|
2254
|
+
settings.service_group_available?
|
2255
|
+
}.to raise_error(Puppet::Error, /Cannot manage group permissions, because the provider for 'Group\[foo\]' is not functional/)
|
2256
|
+
end
|
2216
2257
|
end
|
2217
2258
|
|
2218
2259
|
describe "when dealing with command-line options" do
|