puppet 5.5.3-universal-darwin → 5.5.6-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.

Files changed (71) hide show
  1. checksums.yaml +5 -5
  2. data/CONTRIBUTING.md +1 -4
  3. data/Gemfile +5 -1
  4. data/Gemfile.lock +167 -0
  5. data/Rakefile +4 -34
  6. data/ext/build_defaults.yaml +0 -2
  7. data/lib/puppet/application/cert.rb +3 -1
  8. data/lib/puppet/defaults.rb +55 -26
  9. data/lib/puppet/face/certificate.rb +2 -0
  10. data/lib/puppet/indirector/ldap.rb +6 -0
  11. data/lib/puppet/node/environment.rb +4 -2
  12. data/lib/puppet/parser/functions/tagged.rb +1 -4
  13. data/lib/puppet/pops/issues.rb +4 -0
  14. data/lib/puppet/pops/validation/checker4_0.rb +100 -0
  15. data/lib/puppet/pops/validation/validator_factory_4_0.rb +4 -3
  16. data/lib/puppet/provider/augeas/augeas.rb +198 -4
  17. data/lib/puppet/provider/service/smf.rb +2 -3
  18. data/lib/puppet/provider/service/upstart.rb +10 -2
  19. data/lib/puppet/test/test_helper.rb +0 -3
  20. data/lib/puppet/type/file/source.rb +10 -1
  21. data/lib/puppet/version.rb +1 -1
  22. data/locales/puppet.pot +132 -118
  23. data/man/man5/puppet.conf.5 +23 -23
  24. data/man/man8/puppet-agent.8 +1 -1
  25. data/man/man8/puppet-apply.8 +1 -1
  26. data/man/man8/puppet-ca.8 +3 -3
  27. data/man/man8/puppet-catalog.8 +1 -1
  28. data/man/man8/puppet-cert.8 +2 -2
  29. data/man/man8/puppet-certificate.8 +3 -3
  30. data/man/man8/puppet-certificate_request.8 +1 -1
  31. data/man/man8/puppet-certificate_revocation_list.8 +1 -1
  32. data/man/man8/puppet-config.8 +1 -1
  33. data/man/man8/puppet-describe.8 +1 -1
  34. data/man/man8/puppet-device.8 +1 -1
  35. data/man/man8/puppet-doc.8 +1 -1
  36. data/man/man8/puppet-epp.8 +1 -1
  37. data/man/man8/puppet-facts.8 +1 -1
  38. data/man/man8/puppet-filebucket.8 +1 -1
  39. data/man/man8/puppet-generate.8 +1 -1
  40. data/man/man8/puppet-help.8 +1 -1
  41. data/man/man8/puppet-key.8 +1 -1
  42. data/man/man8/puppet-lookup.8 +1 -1
  43. data/man/man8/puppet-man.8 +1 -1
  44. data/man/man8/puppet-master.8 +1 -1
  45. data/man/man8/puppet-module.8 +1 -1
  46. data/man/man8/puppet-node.8 +1 -1
  47. data/man/man8/puppet-parser.8 +1 -1
  48. data/man/man8/puppet-plugin.8 +1 -1
  49. data/man/man8/puppet-report.8 +1 -1
  50. data/man/man8/puppet-resource.8 +1 -1
  51. data/man/man8/puppet-script.8 +1 -1
  52. data/man/man8/puppet-status.8 +1 -1
  53. data/man/man8/puppet.8 +3 -3
  54. data/spec/integration/type/file_spec.rb +18 -3
  55. data/spec/integration/util/settings_spec.rb +1 -0
  56. data/spec/integration/util/windows/security_spec.rb +78 -1
  57. data/spec/unit/application/master_spec.rb +2 -0
  58. data/spec/unit/configurer/downloader_spec.rb +5 -0
  59. data/spec/unit/defaults_spec.rb +13 -0
  60. data/spec/unit/face/help_spec.rb +2 -1
  61. data/spec/unit/indirector/ldap_spec.rb +22 -1
  62. data/spec/unit/node/environment_spec.rb +14 -0
  63. data/spec/unit/parser/functions/tagged_spec.rb +16 -0
  64. data/spec/unit/pops/validator/validator_spec.rb +139 -4
  65. data/spec/unit/provider/augeas/augeas_spec.rb +66 -1
  66. data/spec/unit/provider/service/smf_spec.rb +2 -6
  67. data/spec/unit/provider/service/upstart_spec.rb +37 -0
  68. data/spec/unit/settings/autosign_setting_spec.rb +2 -2
  69. data/spec/unit/settings/file_setting_spec.rb +6 -0
  70. data/spec/unit/ssl/certificate_authority_spec.rb +1 -0
  71. metadata +4 -3
@@ -1,4 +1,3 @@
1
- #! /usr/bin/env ruby
2
1
  require 'spec_helper'
3
2
  require 'puppet/util/package'
4
3
 
@@ -235,6 +234,50 @@ describe provider_class do
235
234
  expect(@provider.process_values(command)).to eq(true)
236
235
  end
237
236
 
237
+ it "should return true for an array match with double quotes and spaces" do
238
+ command = ["values", "fake value", "== [ \"set\" , \"of\" , \"values\" ] "]
239
+ expect(@provider.process_values(command)).to eq(true)
240
+ end
241
+
242
+ it "should return true for an array match with internally escaped single quotes" do
243
+ @provider.aug.stubs(:match).returns(["set", "o'values", "here"])
244
+ @provider.aug.stubs(:get).returns('set').then.returns("o'values").then.returns('here')
245
+ command = ["values", "fake value", "== [ 'set', 'o\\'values', 'here']"]
246
+ expect(@provider.process_values(command)).to eq(true)
247
+ end
248
+
249
+ it "should return true for an array match with octal character sequences" do
250
+ command = ["values", "fake value", "== [\"\\x73et\", \"of\", \"values\"]"]
251
+ expect(@provider.process_values(command)).to eq(true)
252
+ end
253
+
254
+ it "should return true for an array match with hex character sequences" do
255
+ command = ["values", "fake value", "== [\"\\163et\", \"of\", \"values\"]"]
256
+ expect(@provider.process_values(command)).to eq(true)
257
+ end
258
+
259
+ it "should return true for an array match with short unicode escape sequences" do
260
+ command = ["values", "fake value", "== [\"\\u0073et\", \"of\", \"values\"]"]
261
+ expect(@provider.process_values(command)).to eq(true)
262
+ end
263
+
264
+ it "should return true for an array match with single character long unicode escape sequences" do
265
+ command = ["values", "fake value", "== [\"\\u{0073}et\", \"of\", \"values\"]"]
266
+ expect(@provider.process_values(command)).to eq(true)
267
+ end
268
+
269
+ it "should return true for an array match with multi-character long unicode escape sequences" do
270
+ command = ["values", "fake value", "== [\"\\u{0073 0065 0074}\", \"of\", \"values\"]"]
271
+ expect(@provider.process_values(command)).to eq(true)
272
+ end
273
+
274
+ it "should return true for an array match with literal backslashes" do
275
+ @provider.aug.stubs(:match).returns(["set", "o\\values", "here"])
276
+ @provider.aug.stubs(:get).returns('set').then.returns("o\\values").then.returns('here')
277
+ command = ["values", "fake value", "== [ 'set', 'o\\\\values', 'here']"]
278
+ expect(@provider.process_values(command)).to eq(true)
279
+ end
280
+
238
281
  it "should return false for an array non match" do
239
282
  command = ["values", "fake value", "== ['this', 'should', 'not', 'match']"]
240
283
  expect(@provider.process_values(command)).to eq(false)
@@ -249,6 +292,18 @@ describe provider_class do
249
292
  command = ["values", "fake value", "!= ['this', 'should', 'not', 'match']"]
250
293
  expect(@provider.process_values(command)).to eq(true)
251
294
  end
295
+
296
+ it "should return true for an array non match with double quotes and spaces" do
297
+ command = ["values", "fake value", "!= [ \"this\" , \"should\" ,\"not\", \"match\" ] "]
298
+ expect(@provider.process_values(command)).to eq(true)
299
+ end
300
+
301
+ it "should return true for an empty array match" do
302
+ @provider.aug.stubs(:match).returns([])
303
+ @provider.aug.stubs(:get)
304
+ command = ["values", "fake value", "== []"]
305
+ expect(@provider.process_values(command)).to eq(true)
306
+ end
252
307
  end
253
308
 
254
309
  describe "match filters" do
@@ -294,6 +349,11 @@ describe provider_class do
294
349
  expect(@provider.process_match(command)).to eq(true)
295
350
  end
296
351
 
352
+ it "should return true for an array match with double quotes and spaces" do
353
+ command = ["match", "fake value", "== [ \"set\" , \"of\" , \"values\" ] "]
354
+ expect(@provider.process_match(command)).to eq(true)
355
+ end
356
+
297
357
  it "should return false for an array non match" do
298
358
  command = ["match", "fake value", "== ['this', 'should', 'not', 'match']"]
299
359
  expect(@provider.process_match(command)).to eq(false)
@@ -308,6 +368,11 @@ describe provider_class do
308
368
  command = ["match", "fake value", "!= ['this', 'should', 'not', 'match']"]
309
369
  expect(@provider.process_match(command)).to eq(true)
310
370
  end
371
+
372
+ it "should return true for an array non match with double quotes and spaces" do
373
+ command = ["match", "fake value", "!= [ \"this\" , \"should\" ,\"not\", \"match\" ] "]
374
+ expect(@provider.process_match(command)).to eq(true)
375
+ end
311
376
  end
312
377
 
313
378
  describe "need to run" do
@@ -18,8 +18,6 @@ describe provider_class, :if => Puppet.features.posix? do
18
18
 
19
19
  FileTest.stubs(:file?).with('/usr/sbin/svcadm').returns true
20
20
  FileTest.stubs(:executable?).with('/usr/sbin/svcadm').returns true
21
- FileTest.stubs(:file?).with('/usr/sbin/svccfg').returns true
22
- FileTest.stubs(:executable?).with('/usr/sbin/svccfg').returns true
23
21
  FileTest.stubs(:file?).with('/usr/bin/svcs').returns true
24
22
  FileTest.stubs(:executable?).with('/usr/bin/svcs').returns true
25
23
  Facter.stubs(:value).with(:operatingsystem).returns('Solaris')
@@ -76,9 +74,9 @@ describe provider_class, :if => Puppet.features.posix? do
76
74
  @provider.expects(:svcs).with('-H', '-o', 'state,nstate', "/system/myservice").returns("online\t-")
77
75
  @provider.status
78
76
  end
79
- it "should return absent if svcs can't find the service" do
77
+ it "should return stopped if svcs can't find the service" do
80
78
  @provider.stubs(:svcs).raises(Puppet::ExecutionFailure.new("no svc found"))
81
- expect(@provider.status).to eq(:absent)
79
+ expect(@provider.status).to eq(:stopped)
82
80
  end
83
81
  it "should return running if online in svcs output" do
84
82
  @provider.stubs(:svcs).returns("online\t-")
@@ -168,14 +166,12 @@ describe provider_class, :if => Puppet.features.posix? do
168
166
 
169
167
  describe "when stopping" do
170
168
  it "should execute external command 'svcadm disable /system/myservice'" do
171
- @provider.stubs(:status).returns :running
172
169
  @provider.expects(:texecute).with(:stop, ["/usr/sbin/svcadm", :disable, '-s', "/system/myservice"], true)
173
170
  @provider.expects(:wait).with('offline', 'disabled', 'uninitialized')
174
171
  @provider.stop
175
172
  end
176
173
 
177
174
  it "should error if timeout occurs while stopping the service" do
178
- @provider.stubs(:status).returns :running
179
175
  @provider.expects(:texecute).with(:stop, ["/usr/sbin/svcadm", :disable, '-s', "/system/myservice"], true)
180
176
  Timeout.expects(:timeout).with(60).raises(Timeout::Error)
181
177
  expect { @provider.stop }.to raise_error Puppet::Error, ('Timed out waiting for /system/myservice to transition states')
@@ -34,6 +34,43 @@ describe Puppet::Type.type(:service).provider(:upstart) do
34
34
  expect(described_class.default?).to be_truthy
35
35
  end
36
36
 
37
+ context "upstart daemon existence confine" do
38
+ # We have a separate method here because our search for the upstart daemon
39
+ # confine expects it to be the last confine declared in the upstart provider.
40
+ # If in the future we add other confines below it or change its order, these
41
+ # unit tests will fail. Placing knowledge of where this confine is located
42
+ # in one place makes updating it less painful in case we ever need to do this.
43
+ def assert_upstart_daemon_existence_confine_is(expected_value)
44
+ upstart_daemon_existence_confine = provider_class.confine_collection.instance_variable_get(:@confines)[-1]
45
+ expect(upstart_daemon_existence_confine.valid?).to be(expected_value)
46
+ end
47
+
48
+ let(:initctl_version) { ['/sbin/initctl', 'version', '--quiet'] }
49
+ before(:each) do
50
+ # Stub out /sbin/initctl
51
+ Puppet::Util.stubs(:which).with('/sbin/initctl').returns('/sbin/initctl')
52
+
53
+ # Both of our tests are asserting the confine :true block that shells out to
54
+ # `initctl version --quiet`. Its expression is evaluated at provider load-time.
55
+ # Hence before each test, we want to reload the upstart provider so that the
56
+ # confine is re-evaluated.
57
+ Puppet::Type.type(:service).unprovide(:upstart)
58
+ end
59
+
60
+ it "should return true when the daemon is running" do
61
+ Puppet::Util::Execution.expects(:execute).with(initctl_version, instance_of(Hash))
62
+ assert_upstart_daemon_existence_confine_is(true)
63
+ end
64
+
65
+ it "should return false when the daemon is not running" do
66
+ Puppet::Util::Execution.expects(:execute)
67
+ .with(initctl_version, instance_of(Hash))
68
+ .raises(Puppet::ExecutionFailure, "initctl failed!")
69
+
70
+ assert_upstart_daemon_existence_confine_is(false)
71
+ end
72
+ end
73
+
37
74
  describe "excluding services" do
38
75
  it "ignores tty and serial on Redhat systems" do
39
76
  Facter.stubs(:value).with(:osfamily).returns('RedHat')
@@ -72,11 +72,11 @@ describe Puppet::Settings::AutosignSetting do
72
72
  end
73
73
 
74
74
  describe "converting the setting to a resource" do
75
- it "converts the file path to a file resource" do
75
+ it "converts the file path to a file resource", :if => !Puppet::Util::Platform.windows? do
76
76
  path = File.expand_path('/path/to/autosign.conf')
77
77
  settings.stubs(:value).with('autosign', nil, false).returns(path)
78
78
  Puppet::FileSystem.stubs(:exist?).with(path).returns true
79
- Puppet.stubs(:features).returns(stub(:root? => true, :microsoft_windows? => false))
79
+ Puppet.features.expects(:root?).returns(true)
80
80
 
81
81
  setting.mode = '0664'
82
82
  setting.owner = 'service'
@@ -182,12 +182,14 @@ describe Puppet::Settings::FileSetting do
182
182
  end
183
183
 
184
184
  it "should set the mode on the file if a mode is provided as an octal number" do
185
+ Puppet[:manage_internal_file_permissions] = true
185
186
  @file.mode = 0755
186
187
 
187
188
  expect(@file.to_resource[:mode]).to eq('755')
188
189
  end
189
190
 
190
191
  it "should set the mode on the file if a mode is provided as a string" do
192
+ Puppet[:manage_internal_file_permissions] = true
191
193
  @file.mode = '0755'
192
194
 
193
195
  expect(@file.to_resource[:mode]).to eq('755')
@@ -202,6 +204,7 @@ describe Puppet::Settings::FileSetting do
202
204
  end
203
205
 
204
206
  it "should set the owner if running as root and the owner is provided" do
207
+ Puppet[:manage_internal_file_permissions] = true
205
208
  Puppet.features.expects(:root?).returns true
206
209
  Puppet.features.stubs(:microsoft_windows?).returns false
207
210
 
@@ -218,6 +221,7 @@ describe Puppet::Settings::FileSetting do
218
221
  end
219
222
 
220
223
  it "should set the group if running as root and the group is provided" do
224
+ Puppet[:manage_internal_file_permissions] = true
221
225
  Puppet.features.expects(:root?).returns true
222
226
  Puppet.features.stubs(:microsoft_windows?).returns false
223
227
 
@@ -235,6 +239,7 @@ describe Puppet::Settings::FileSetting do
235
239
 
236
240
 
237
241
  it "should not set owner if not running as root" do
242
+ Puppet[:manage_internal_file_permissions] = true
238
243
  Puppet.features.expects(:root?).returns false
239
244
  Puppet.features.stubs(:microsoft_windows?).returns false
240
245
  @file.stubs(:owner).returns "foo"
@@ -242,6 +247,7 @@ describe Puppet::Settings::FileSetting do
242
247
  end
243
248
 
244
249
  it "should not set group if not running as root" do
250
+ Puppet[:manage_internal_file_permissions] = true
245
251
  Puppet.features.expects(:root?).returns false
246
252
  Puppet.features.stubs(:microsoft_windows?).returns false
247
253
  @file.stubs(:group).returns "foo"
@@ -943,6 +943,7 @@ describe Puppet::SSL::CertificateAuthority do
943
943
  end
944
944
 
945
945
  it "should be deprecated" do
946
+ Puppet.expects(:deprecation_warning).with(regexp_matches(/Accessing 'cacert' as a setting is deprecated/))
946
947
  Puppet.expects(:deprecation_warning).with(regexp_matches(/certificate_is_alive\? is deprecated/))
947
948
  @ca.certificate_is_alive?(@cert)
948
949
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: puppet
3
3
  version: !ruby/object:Gem::Version
4
- version: 5.5.3
4
+ version: 5.5.6
5
5
  platform: universal-darwin
6
6
  authors:
7
7
  - Puppet Labs
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-07-16 00:00:00.000000000 Z
11
+ date: 2018-08-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: facter
@@ -116,6 +116,7 @@ files:
116
116
  - COMMITTERS.md
117
117
  - CONTRIBUTING.md
118
118
  - Gemfile
119
+ - Gemfile.lock
119
120
  - LICENSE
120
121
  - MAINTAINERS
121
122
  - README.md
@@ -2704,7 +2705,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
2704
2705
  version: 1.3.1
2705
2706
  requirements: []
2706
2707
  rubyforge_project: puppet
2707
- rubygems_version: 2.5.2.1
2708
+ rubygems_version: 2.7.7
2708
2709
  signing_key:
2709
2710
  specification_version: 4
2710
2711
  summary: Puppet, an automated configuration management tool