puppet 4.10.4 → 4.10.5
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 +7 -0
- data/lib/puppet/application/lookup.rb +2 -2
- data/lib/puppet/configurer/fact_handler.rb +1 -1
- data/lib/puppet/face/epp.rb +26 -24
- data/lib/puppet/file_serving/metadata.rb +2 -2
- data/lib/puppet/forge.rb +5 -3
- data/lib/puppet/forge/cache.rb +1 -0
- data/lib/puppet/forge/repository.rb +2 -1
- data/lib/puppet/indirector/catalog/compiler.rb +4 -3
- data/lib/puppet/indirector/request.rb +9 -8
- data/lib/puppet/module.rb +30 -0
- data/lib/puppet/network/http/rack/rest.rb +2 -1
- data/lib/puppet/parser/compiler.rb +4 -0
- data/lib/puppet/parser/functions/assert_type.rb +1 -1
- data/lib/puppet/parser/functions/binary_file.rb +1 -1
- data/lib/puppet/parser/functions/break.rb +1 -1
- data/lib/puppet/parser/functions/defined.rb +1 -1
- data/lib/puppet/parser/functions/dig.rb +1 -1
- data/lib/puppet/parser/functions/each.rb +1 -1
- data/lib/puppet/parser/functions/epp.rb +1 -1
- data/lib/puppet/parser/functions/filter.rb +1 -1
- data/lib/puppet/parser/functions/find_file.rb +1 -1
- data/lib/puppet/parser/functions/inline_epp.rb +1 -1
- data/lib/puppet/parser/functions/lest.rb +1 -1
- data/lib/puppet/parser/functions/map.rb +1 -1
- data/lib/puppet/parser/functions/match.rb +1 -1
- data/lib/puppet/parser/functions/new.rb +1 -1
- data/lib/puppet/parser/functions/next.rb +1 -1
- data/lib/puppet/parser/functions/reduce.rb +1 -1
- data/lib/puppet/parser/functions/return.rb +1 -1
- data/lib/puppet/parser/functions/reverse_each.rb +1 -1
- data/lib/puppet/parser/functions/slice.rb +1 -1
- data/lib/puppet/parser/functions/step.rb +1 -1
- data/lib/puppet/parser/functions/strftime.rb +1 -1
- data/lib/puppet/parser/functions/then.rb +1 -1
- data/lib/puppet/parser/functions/type.rb +1 -1
- data/lib/puppet/parser/functions/with.rb +1 -1
- data/lib/puppet/pops/evaluator/collector_transformer.rb +2 -2
- data/lib/puppet/pops/evaluator/collectors/catalog_collector.rb +2 -2
- data/lib/puppet/pops/evaluator/collectors/exported_collector.rb +2 -2
- data/lib/puppet/pops/merge_strategy.rb +1 -1
- data/lib/puppet/provider/nameservice.rb +4 -2
- data/lib/puppet/reports/http.rb +4 -2
- data/lib/puppet/resource/capability_finder.rb +1 -1
- data/lib/puppet/type/file/source.rb +9 -3
- data/lib/puppet/util.rb +122 -2
- data/lib/puppet/util/execution.rb +1 -1
- data/lib/puppet/util/rdoc/generators/puppet_generator.rb +1 -1
- data/lib/puppet/version.rb +1 -1
- data/locales/puppet.pot +12 -4
- data/spec/integration/application/apply_spec.rb +10 -0
- data/spec/integration/type/file_spec.rb +29 -0
- data/spec/integration/util/execution_spec.rb +8 -0
- data/spec/unit/application/lookup_spec.rb +1 -1
- data/spec/unit/configurer/fact_handler_spec.rb +30 -8
- data/spec/unit/face/epp_face_spec.rb +9 -0
- data/spec/unit/file_serving/metadata_spec.rb +21 -0
- data/spec/unit/forge/forge_spec.rb +112 -0
- data/spec/unit/forge/repository_spec.rb +4 -4
- data/spec/unit/functions/lookup_spec.rb +26 -0
- data/spec/unit/indirector/catalog/compiler_spec.rb +1 -1
- data/spec/unit/indirector/file_bucket_file/file_spec.rb +3 -3
- data/spec/unit/indirector/request_spec.rb +16 -1
- data/spec/unit/module_spec.rb +29 -0
- data/spec/unit/network/http/api/indirected_routes_spec.rb +3 -3
- data/spec/unit/network/http/rack/rest_spec.rb +3 -3
- data/spec/unit/type/file_spec.rb +46 -0
- data/spec/unit/util_spec.rb +230 -1
- data/tasks/parallel.rake +12 -7
- metadata +184 -194
data/spec/unit/type/file_spec.rb
CHANGED
@@ -1415,6 +1415,52 @@ describe Puppet::Type.type(:file) do
|
|
1415
1415
|
end
|
1416
1416
|
end
|
1417
1417
|
|
1418
|
+
describe 'when using source' do
|
1419
|
+
# different UTF-8 widths
|
1420
|
+
# 1-byte A
|
1421
|
+
# 2-byte ۿ - http://www.fileformat.info/info/unicode/char/06ff/index.htm - 0xDB 0xBF / 219 191
|
1422
|
+
# 3-byte ᚠ - http://www.fileformat.info/info/unicode/char/16A0/index.htm - 0xE1 0x9A 0xA0 / 225 154 160
|
1423
|
+
# 4-byte <U+070E> - http://www.fileformat.info/info/unicode/char/2070E/index.htm - 0xF0 0xA0 0x9C 0x8E / 240 160 156 142
|
1424
|
+
let (:mixed_utf8) { "A\u06FF\u16A0\u{2070E}" } # Aۿᚠ<U+070E>
|
1425
|
+
|
1426
|
+
it 'should allow UTF-8 characters and return a UTF-8 uri' do
|
1427
|
+
filename = "/bar #{mixed_utf8}"
|
1428
|
+
source = "puppet://foo#{filename}"
|
1429
|
+
file[:source] = source
|
1430
|
+
|
1431
|
+
# intercept the indirector call to provide back mocked metadata for the given URI
|
1432
|
+
metadata = stub 'metadata', :source => source
|
1433
|
+
metadata.expects(:source=)
|
1434
|
+
Puppet::FileServing::Metadata.indirection.expects(:find).with do |path, opts|
|
1435
|
+
path == source
|
1436
|
+
end.returns metadata
|
1437
|
+
|
1438
|
+
uri = file.parameters[:source].uri
|
1439
|
+
expect(URI.unescape(uri.path)).to eq(filename)
|
1440
|
+
expect(uri.path.encoding).to eq(Encoding::UTF_8)
|
1441
|
+
end
|
1442
|
+
|
1443
|
+
it 'should allow UTF-8 characters inside the indirector / terminus code' do
|
1444
|
+
filename = "/bar #{mixed_utf8}"
|
1445
|
+
source = "puppet://foo#{filename}"
|
1446
|
+
file[:source] = source
|
1447
|
+
|
1448
|
+
# for this test to properly trigger previously errant behavior, the code for
|
1449
|
+
# Puppet::FileServing::Metadata.indirection.find must run and produce an
|
1450
|
+
# instance of Puppet::Indirector::FileMetadata::Rest that can be amended
|
1451
|
+
metadata = stub 'metadata', :source => source
|
1452
|
+
metadata.expects(:source=)
|
1453
|
+
require 'puppet/indirector/file_metadata/rest'
|
1454
|
+
Puppet::Indirector::FileMetadata::Rest.any_instance.expects(:find).with do |req|
|
1455
|
+
req.key == filename[1..-1]
|
1456
|
+
end.returns(metadata)
|
1457
|
+
|
1458
|
+
uri = file.parameters[:source].uri
|
1459
|
+
expect(URI.unescape(uri.path)).to eq(filename)
|
1460
|
+
expect(uri.path.encoding).to eq(Encoding::UTF_8)
|
1461
|
+
end
|
1462
|
+
end
|
1463
|
+
|
1418
1464
|
describe "when using source" do
|
1419
1465
|
before do
|
1420
1466
|
file[:source] = File.expand_path('/one')
|
data/spec/unit/util_spec.rb
CHANGED
@@ -297,6 +297,14 @@ describe Puppet::Util do
|
|
297
297
|
end
|
298
298
|
|
299
299
|
describe "#path_to_uri" do
|
300
|
+
# different UTF-8 widths
|
301
|
+
# 1-byte A
|
302
|
+
# 2-byte ۿ - http://www.fileformat.info/info/unicode/char/06ff/index.htm - 0xDB 0xBF / 219 191
|
303
|
+
# 3-byte ᚠ - http://www.fileformat.info/info/unicode/char/16A0/index.htm - 0xE1 0x9A 0xA0 / 225 154 160
|
304
|
+
# 4-byte - http://www.fileformat.info/info/unicode/char/2070E/index.htm - 0xF0 0xA0 0x9C 0x8E / 240 160 156 142
|
305
|
+
let (:mixed_utf8) { "A\u06FF\u16A0\u{2070E}" } # Aۿᚠ
|
306
|
+
let (:mixed_utf8_urlencoded) { "A%DB%BF%E1%9A%A0%F0%A0%9C%8E" }
|
307
|
+
|
300
308
|
%w[. .. foo foo/bar foo/../bar].each do |path|
|
301
309
|
it "should reject relative path: #{path}" do
|
302
310
|
expect { Puppet::Util.path_to_uri(path) }.to raise_error(Puppet::Error)
|
@@ -307,6 +315,42 @@ describe Puppet::Util do
|
|
307
315
|
expect(Puppet::Util.path_to_uri("/foo bar").path).to eq("/foo%20bar")
|
308
316
|
end
|
309
317
|
|
318
|
+
it "should properly URI encode + and space in path" do
|
319
|
+
expect(Puppet::Util.path_to_uri("/foo+foo bar").path).to eq("/foo+foo%20bar")
|
320
|
+
end
|
321
|
+
|
322
|
+
# reserved characters are different for each part
|
323
|
+
# https://web.archive.org/web/20151229061347/http://blog.lunatech.com/2009/02/03/what-every-web-developer-must-know-about-url-encoding#Thereservedcharactersaredifferentforeachpart
|
324
|
+
# "?" is allowed unescaped anywhere within a query part,
|
325
|
+
# "/" is allowed unescaped anywhere within a query part,
|
326
|
+
# "=" is allowed unescaped anywhere within a path parameter or query parameter value, and within a path segment,
|
327
|
+
# ":@-._~!$&'()*+,;=" are allowed unescaped anywhere within a path segment part,
|
328
|
+
# "/?:@-._~!$&'()*+,;=" are allowed unescaped anywhere within a fragment part.
|
329
|
+
it "should properly URI encode + and space in path and query" do
|
330
|
+
path = "/foo+foo bar?foo+foo bar"
|
331
|
+
uri = Puppet::Util.path_to_uri(path)
|
332
|
+
|
333
|
+
# Ruby 1.9.3 URI#to_s has a bug that returns ASCII always
|
334
|
+
# despite parts being UTF-8 strings
|
335
|
+
expected_encoding = RUBY_VERSION == '1.9.3' ? Encoding::ASCII : Encoding::UTF_8
|
336
|
+
|
337
|
+
expect(uri.to_s.encoding).to eq(expected_encoding)
|
338
|
+
expect(uri.path).to eq("/foo+foo%20bar")
|
339
|
+
# either + or %20 is correct for an encoded space in query
|
340
|
+
# + is usually used for backward compatibility, but %20 is preferred for compat with Uri.unescape
|
341
|
+
expect(uri.query).to eq("foo%2Bfoo%20bar")
|
342
|
+
# complete roundtrip
|
343
|
+
expect(URI.unescape(uri.to_s)).to eq("file:#{path}")
|
344
|
+
expect(URI.unescape(uri.to_s).encoding).to eq(expected_encoding)
|
345
|
+
end
|
346
|
+
|
347
|
+
it "should perform UTF-8 URI escaping" do
|
348
|
+
uri = Puppet::Util.path_to_uri("/#{mixed_utf8}")
|
349
|
+
|
350
|
+
expect(uri.path.encoding).to eq(Encoding::UTF_8)
|
351
|
+
expect(uri.path).to eq("/#{mixed_utf8_urlencoded}")
|
352
|
+
end
|
353
|
+
|
310
354
|
describe "when using platform :posix" do
|
311
355
|
before :each do
|
312
356
|
Puppet.features.stubs(:posix).returns true
|
@@ -340,7 +384,172 @@ describe Puppet::Util do
|
|
340
384
|
it "should convert UNC #{path} to absolute URI" do
|
341
385
|
uri = Puppet::Util.path_to_uri("\\\\server\\#{path}")
|
342
386
|
expect(uri.host).to eq('server')
|
343
|
-
expect(uri.path).to eq('/' + path)
|
387
|
+
expect(uri.path).to eq('/' + Puppet::Util.uri_encode(path))
|
388
|
+
end
|
389
|
+
end
|
390
|
+
end
|
391
|
+
end
|
392
|
+
|
393
|
+
describe "#uri_query_encode" do
|
394
|
+
# different UTF-8 widths
|
395
|
+
# 1-byte A
|
396
|
+
# 2-byte ۿ - http://www.fileformat.info/info/unicode/char/06ff/index.htm - 0xDB 0xBF / 219 191
|
397
|
+
# 3-byte ᚠ - http://www.fileformat.info/info/unicode/char/16A0/index.htm - 0xE1 0x9A 0xA0 / 225 154 160
|
398
|
+
# 4-byte 𠜎 - http://www.fileformat.info/info/unicode/char/2070E/index.htm - 0xF0 0xA0 0x9C 0x8E / 240 160 156 142
|
399
|
+
let (:mixed_utf8) { "A\u06FF\u16A0\u{2070E}" } # Aۿᚠ𠜎
|
400
|
+
let (:mixed_utf8_urlencoded) { "A%DB%BF%E1%9A%A0%F0%A0%9C%8E" }
|
401
|
+
|
402
|
+
it "should perform basic URI escaping that includes space and +" do
|
403
|
+
expect(Puppet::Util.uri_query_encode("foo bar+foo")).to eq("foo%20bar%2Bfoo")
|
404
|
+
end
|
405
|
+
|
406
|
+
it "should URI encode any special characters: = + <space> & * and #" do
|
407
|
+
expect(Puppet::Util.uri_query_encode("foo=bar+foo baz&bar=baz qux&special= *&qux=not fragment#")).to eq("foo%3Dbar%2Bfoo%20baz%26bar%3Dbaz%20qux%26special%3D%20%2A%26qux%3Dnot%20fragment%23")
|
408
|
+
end
|
409
|
+
|
410
|
+
[
|
411
|
+
"A\u06FF\u16A0\u{2070E}",
|
412
|
+
"A\u06FF\u16A0\u{2070E}".force_encoding(Encoding::BINARY)
|
413
|
+
].each do |uri_string|
|
414
|
+
it "should perform UTF-8 URI escaping, even when input strings are not UTF-8" do
|
415
|
+
uri = Puppet::Util.uri_query_encode(mixed_utf8)
|
416
|
+
|
417
|
+
expect(uri.encoding).to eq(Encoding::UTF_8)
|
418
|
+
expect(uri).to eq(mixed_utf8_urlencoded)
|
419
|
+
end
|
420
|
+
end
|
421
|
+
|
422
|
+
it "should be usable by URI::parse" do
|
423
|
+
uri = URI::parse("puppet://server/path?" + Puppet::Util.uri_query_encode(mixed_utf8))
|
424
|
+
|
425
|
+
expect(uri.scheme).to eq('puppet')
|
426
|
+
expect(uri.host).to eq('server')
|
427
|
+
expect(uri.path).to eq('/path')
|
428
|
+
expect(uri.query).to eq(mixed_utf8_urlencoded)
|
429
|
+
end
|
430
|
+
|
431
|
+
it "should be usable by URI::Generic.build" do
|
432
|
+
params = {
|
433
|
+
:scheme => 'file',
|
434
|
+
:host => 'foobar',
|
435
|
+
:path => '/path/to',
|
436
|
+
:query => Puppet::Util.uri_query_encode(mixed_utf8)
|
437
|
+
}
|
438
|
+
|
439
|
+
uri = URI::Generic.build(params)
|
440
|
+
|
441
|
+
expect(uri.scheme).to eq('file')
|
442
|
+
expect(uri.host).to eq('foobar')
|
443
|
+
expect(uri.path).to eq("/path/to")
|
444
|
+
expect(uri.query).to eq(mixed_utf8_urlencoded)
|
445
|
+
end
|
446
|
+
end
|
447
|
+
|
448
|
+
describe "#uri_encode" do
|
449
|
+
# different UTF-8 widths
|
450
|
+
# 1-byte A
|
451
|
+
# 2-byte ۿ - http://www.fileformat.info/info/unicode/char/06ff/index.htm - 0xDB 0xBF / 219 191
|
452
|
+
# 3-byte ᚠ - http://www.fileformat.info/info/unicode/char/16A0/index.htm - 0xE1 0x9A 0xA0 / 225 154 160
|
453
|
+
# 4-byte - http://www.fileformat.info/info/unicode/char/2070E/index.htm - 0xF0 0xA0 0x9C 0x8E / 240 160 156 142
|
454
|
+
let (:mixed_utf8) { "A\u06FF\u16A0\u{2070E}" } # Aۿᚠ
|
455
|
+
let (:mixed_utf8_urlencoded) { "A%DB%BF%E1%9A%A0%F0%A0%9C%8E" }
|
456
|
+
|
457
|
+
it "should perform URI escaping" do
|
458
|
+
expect(Puppet::Util.uri_encode("/foo bar")).to eq("/foo%20bar")
|
459
|
+
end
|
460
|
+
|
461
|
+
[
|
462
|
+
"A\u06FF\u16A0\u{2070E}",
|
463
|
+
"A\u06FF\u16A0\u{2070E}".force_encoding(Encoding::BINARY)
|
464
|
+
].each do |uri_string|
|
465
|
+
it "should perform UTF-8 URI escaping, even when input strings are not UTF-8" do
|
466
|
+
uri = Puppet::Util.uri_encode(mixed_utf8)
|
467
|
+
|
468
|
+
expect(uri.encoding).to eq(Encoding::UTF_8)
|
469
|
+
expect(uri).to eq(mixed_utf8_urlencoded)
|
470
|
+
end
|
471
|
+
end
|
472
|
+
|
473
|
+
it "should treat & and = as delimiters in a query string, but URI encode other special characters: + <space> * and #" do
|
474
|
+
input = "http://foo.bar.com/path?foo=bar+foo baz&bar=baz qux&special= *&qux=not fragment#"
|
475
|
+
expected_output = "http://foo.bar.com/path?foo=bar%2Bfoo%20baz&bar=baz%20qux&special=%20%2A&qux=not%20fragment%23"
|
476
|
+
expect(Puppet::Util.uri_encode(input)).to eq(expected_output)
|
477
|
+
end
|
478
|
+
|
479
|
+
it "should be usable by URI::parse" do
|
480
|
+
uri = URI::parse(Puppet::Util.uri_encode("puppet://server/path/to/#{mixed_utf8}"))
|
481
|
+
|
482
|
+
expect(uri.scheme).to eq('puppet')
|
483
|
+
expect(uri.host).to eq('server')
|
484
|
+
expect(uri.path).to eq("/path/to/#{mixed_utf8_urlencoded}")
|
485
|
+
end
|
486
|
+
|
487
|
+
it "should be usable by URI::Generic.build" do
|
488
|
+
params = {
|
489
|
+
:scheme => 'file',
|
490
|
+
:host => 'foobar',
|
491
|
+
:path => Puppet::Util.uri_encode("/path/to/#{mixed_utf8}")
|
492
|
+
}
|
493
|
+
|
494
|
+
uri = URI::Generic.build(params)
|
495
|
+
|
496
|
+
expect(uri.scheme).to eq('file')
|
497
|
+
expect(uri.host).to eq('foobar')
|
498
|
+
expect(uri.path).to eq("/path/to/#{mixed_utf8_urlencoded}")
|
499
|
+
end
|
500
|
+
|
501
|
+
describe "when using platform :posix" do
|
502
|
+
before :each do
|
503
|
+
Puppet.features.stubs(:posix).returns true
|
504
|
+
Puppet.features.stubs(:microsoft_windows?).returns false
|
505
|
+
end
|
506
|
+
|
507
|
+
%w[/ /foo /foo/../bar].each do |path|
|
508
|
+
it "should not replace / in #{path} with %2F" do
|
509
|
+
expect(Puppet::Util.uri_encode(path)).to eq(path)
|
510
|
+
end
|
511
|
+
end
|
512
|
+
end
|
513
|
+
|
514
|
+
describe "with fragment support" do
|
515
|
+
context "disabled by default" do
|
516
|
+
it "should encode # as %23 in path" do
|
517
|
+
encoded = Puppet::Util.uri_encode("/foo bar#fragment")
|
518
|
+
expect(encoded).to eq("/foo%20bar%23fragment")
|
519
|
+
end
|
520
|
+
|
521
|
+
it "should encode # as %23 in query" do
|
522
|
+
encoded = Puppet::Util.uri_encode("/foo bar?baz+qux#fragment")
|
523
|
+
expect(encoded).to eq("/foo%20bar?baz%2Bqux%23fragment")
|
524
|
+
end
|
525
|
+
end
|
526
|
+
|
527
|
+
context "optionally enabled" do
|
528
|
+
it "should leave fragment delimiter # after encoded paths" do
|
529
|
+
encoded = Puppet::Util.uri_encode("/foo bar#fragment", { :allow_fragment => true })
|
530
|
+
expect(encoded).to eq("/foo%20bar#fragment")
|
531
|
+
end
|
532
|
+
|
533
|
+
it "should leave fragment delimiter # after encoded query" do
|
534
|
+
encoded = Puppet::Util.uri_encode("/foo bar?baz+qux#fragment", { :allow_fragment => true })
|
535
|
+
expect(encoded).to eq("/foo%20bar?baz%2Bqux#fragment")
|
536
|
+
end
|
537
|
+
end
|
538
|
+
end
|
539
|
+
|
540
|
+
describe "when using platform :windows" do
|
541
|
+
before :each do
|
542
|
+
Puppet.features.stubs(:posix).returns false
|
543
|
+
Puppet.features.stubs(:microsoft_windows?).returns true
|
544
|
+
end
|
545
|
+
|
546
|
+
it "should url encode \\ as %5C, but not replace : as %3F" do
|
547
|
+
expect(Puppet::Util.uri_encode('c:\\foo\\bar\\baz')).to eq('c:%5Cfoo%5Cbar%5Cbaz')
|
548
|
+
end
|
549
|
+
|
550
|
+
%w[C:/ C:/foo/bar].each do |path|
|
551
|
+
it "should not replace / in #{path} with %2F" do
|
552
|
+
expect(Puppet::Util.uri_encode(path)).to eq(path)
|
344
553
|
end
|
345
554
|
end
|
346
555
|
end
|
@@ -349,6 +558,13 @@ describe Puppet::Util do
|
|
349
558
|
describe ".uri_to_path" do
|
350
559
|
require 'uri'
|
351
560
|
|
561
|
+
# different UTF-8 widths
|
562
|
+
# 1-byte A
|
563
|
+
# 2-byte ۿ - http://www.fileformat.info/info/unicode/char/06ff/index.htm - 0xDB 0xBF / 219 191
|
564
|
+
# 3-byte ᚠ - http://www.fileformat.info/info/unicode/char/16A0/index.htm - 0xE1 0x9A 0xA0 / 225 154 160
|
565
|
+
# 4-byte 𠜎 - http://www.fileformat.info/info/unicode/char/2070E/index.htm - 0xF0 0xA0 0x9C 0x8E / 240 160 156 142
|
566
|
+
let (:mixed_utf8) { "A\u06FF\u16A0\u{2070E}" } # Aۿᚠ𠜎
|
567
|
+
|
352
568
|
it "should strip host component" do
|
353
569
|
expect(Puppet::Util.uri_to_path(URI.parse('http://foo/bar'))).to eq('/bar')
|
354
570
|
end
|
@@ -361,6 +577,19 @@ describe Puppet::Util do
|
|
361
577
|
expect(Puppet::Util.uri_to_path(URI.parse('http://foo/bar%20baz'))).to eq('/bar baz')
|
362
578
|
end
|
363
579
|
|
580
|
+
|
581
|
+
[
|
582
|
+
"http://foo/A%DB%BF%E1%9A%A0%F0%A0%9C%8E",
|
583
|
+
"http://foo/A%DB%BF%E1%9A%A0%F0%A0%9C%8E".force_encoding(Encoding::ASCII)
|
584
|
+
].each do |uri_string|
|
585
|
+
it "should return paths as UTF-8" do
|
586
|
+
path = Puppet::Util.uri_to_path(URI.parse(uri_string))
|
587
|
+
|
588
|
+
expect(path).to eq("/#{mixed_utf8}")
|
589
|
+
expect(path.encoding).to eq(Encoding::UTF_8)
|
590
|
+
end
|
591
|
+
end
|
592
|
+
|
364
593
|
it "should be nil-safe" do
|
365
594
|
expect(Puppet::Util.uri_to_path(nil)).to be_nil
|
366
595
|
end
|
data/tasks/parallel.rake
CHANGED
@@ -156,17 +156,21 @@ else
|
|
156
156
|
|
157
157
|
#
|
158
158
|
# Responsible for parallelizing spec testing.
|
159
|
+
# Optional options list will be passed to rspec.
|
159
160
|
#
|
160
161
|
class Parallelizer
|
161
162
|
# Number of processes to use
|
162
163
|
attr_reader :process_count
|
163
164
|
# Approximate size of each group of tests
|
164
165
|
attr_reader :group_size
|
166
|
+
# Options list for rspec
|
167
|
+
attr_reader :options
|
165
168
|
|
166
|
-
def initialize(process_count, group_size, color)
|
169
|
+
def initialize(process_count, group_size, color, options = [])
|
167
170
|
@process_count = process_count
|
168
171
|
@group_size = group_size
|
169
172
|
@color = color
|
173
|
+
@options = options
|
170
174
|
end
|
171
175
|
|
172
176
|
def color?
|
@@ -180,7 +184,7 @@ else
|
|
180
184
|
fail red('error: no specs were found') if groups.length == 0
|
181
185
|
|
182
186
|
begin
|
183
|
-
run_specs
|
187
|
+
run_specs(groups, options)
|
184
188
|
ensure
|
185
189
|
groups.each do |file|
|
186
190
|
File.unlink(file)
|
@@ -211,7 +215,7 @@ else
|
|
211
215
|
spec_group_files
|
212
216
|
end
|
213
217
|
|
214
|
-
def run_specs(groups)
|
218
|
+
def run_specs(groups, options)
|
215
219
|
puts "Processing #{groups.length} spec group(s) with #{@process_count} worker(s)"
|
216
220
|
|
217
221
|
interrupted = false
|
@@ -246,7 +250,8 @@ else
|
|
246
250
|
break unless group && !interrupted
|
247
251
|
|
248
252
|
# Spawn the worker process with redirected output
|
249
|
-
|
253
|
+
options_string = options ? options.join(' ') : ''
|
254
|
+
io = IO.popen("ruby util/rspec_runner #{group} #{options_string}")
|
250
255
|
pids[thread_id] = io.pid
|
251
256
|
|
252
257
|
# TODO: make the buffer pluggable to handle other output formats like documentation
|
@@ -391,15 +396,15 @@ else
|
|
391
396
|
config.color
|
392
397
|
end
|
393
398
|
|
394
|
-
desc 'Runs specs in parallel.'
|
395
|
-
task 'spec', :process_count, :group_size do |_, args|
|
399
|
+
desc 'Runs specs in parallel. Extra args are passed to rspec.'
|
400
|
+
task 'spec', [:process_count, :group_size] do |_, args|
|
396
401
|
# Default group size in rspec examples
|
397
402
|
DEFAULT_GROUP_SIZE = 1000
|
398
403
|
|
399
404
|
process_count = [(args[:process_count] || Facter.value("processorcount")).to_i, 1].max
|
400
405
|
group_size = [(args[:group_size] || DEFAULT_GROUP_SIZE).to_i, 1].max
|
401
406
|
|
402
|
-
abort unless Parallel::RSpec::Parallelizer.new(process_count, group_size, color_output
|
407
|
+
abort unless Parallel::RSpec::Parallelizer.new(process_count, group_size, color_output?, args.extras).run
|
403
408
|
end
|
404
409
|
end
|
405
410
|
end
|
metadata
CHANGED
@@ -1,112 +1,101 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: puppet
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 4.10.
|
5
|
-
prerelease:
|
4
|
+
version: 4.10.5
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Puppet Labs
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date: 2017-
|
11
|
+
date: 2017-07-26 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: facter
|
16
15
|
requirement: !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
18
16
|
requirements:
|
19
|
-
- -
|
17
|
+
- - ">"
|
20
18
|
- !ruby/object:Gem::Version
|
21
19
|
version: '2.0'
|
22
|
-
- - <
|
20
|
+
- - "<"
|
23
21
|
- !ruby/object:Gem::Version
|
24
22
|
version: '4'
|
25
23
|
type: :runtime
|
26
24
|
prerelease: false
|
27
25
|
version_requirements: !ruby/object:Gem::Requirement
|
28
|
-
none: false
|
29
26
|
requirements:
|
30
|
-
- -
|
27
|
+
- - ">"
|
31
28
|
- !ruby/object:Gem::Version
|
32
29
|
version: '2.0'
|
33
|
-
- - <
|
30
|
+
- - "<"
|
34
31
|
- !ruby/object:Gem::Version
|
35
32
|
version: '4'
|
36
33
|
- !ruby/object:Gem::Dependency
|
37
34
|
name: hiera
|
38
35
|
requirement: !ruby/object:Gem::Requirement
|
39
|
-
none: false
|
40
36
|
requirements:
|
41
|
-
- -
|
37
|
+
- - ">="
|
42
38
|
- !ruby/object:Gem::Version
|
43
39
|
version: '2.0'
|
44
|
-
- - <
|
40
|
+
- - "<"
|
45
41
|
- !ruby/object:Gem::Version
|
46
42
|
version: '4'
|
47
43
|
type: :runtime
|
48
44
|
prerelease: false
|
49
45
|
version_requirements: !ruby/object:Gem::Requirement
|
50
|
-
none: false
|
51
46
|
requirements:
|
52
|
-
- -
|
47
|
+
- - ">="
|
53
48
|
- !ruby/object:Gem::Version
|
54
49
|
version: '2.0'
|
55
|
-
- - <
|
50
|
+
- - "<"
|
56
51
|
- !ruby/object:Gem::Version
|
57
52
|
version: '4'
|
58
53
|
- !ruby/object:Gem::Dependency
|
59
54
|
name: json_pure
|
60
55
|
requirement: !ruby/object:Gem::Requirement
|
61
|
-
none: false
|
62
56
|
requirements:
|
63
|
-
- - ~>
|
57
|
+
- - "~>"
|
64
58
|
- !ruby/object:Gem::Version
|
65
59
|
version: '1.8'
|
66
60
|
type: :runtime
|
67
61
|
prerelease: false
|
68
62
|
version_requirements: !ruby/object:Gem::Requirement
|
69
|
-
none: false
|
70
63
|
requirements:
|
71
|
-
- - ~>
|
64
|
+
- - "~>"
|
72
65
|
- !ruby/object:Gem::Version
|
73
66
|
version: '1.8'
|
74
67
|
- !ruby/object:Gem::Dependency
|
75
68
|
name: gettext-setup
|
76
69
|
requirement: !ruby/object:Gem::Requirement
|
77
|
-
none: false
|
78
70
|
requirements:
|
79
|
-
- -
|
71
|
+
- - ">="
|
80
72
|
- !ruby/object:Gem::Version
|
81
73
|
version: '0.10'
|
82
|
-
- - <
|
74
|
+
- - "<"
|
83
75
|
- !ruby/object:Gem::Version
|
84
76
|
version: '1'
|
85
77
|
type: :runtime
|
86
78
|
prerelease: false
|
87
79
|
version_requirements: !ruby/object:Gem::Requirement
|
88
|
-
none: false
|
89
80
|
requirements:
|
90
|
-
- -
|
81
|
+
- - ">="
|
91
82
|
- !ruby/object:Gem::Version
|
92
83
|
version: '0.10'
|
93
|
-
- - <
|
84
|
+
- - "<"
|
94
85
|
- !ruby/object:Gem::Version
|
95
86
|
version: '1'
|
96
87
|
- !ruby/object:Gem::Dependency
|
97
88
|
name: locale
|
98
89
|
requirement: !ruby/object:Gem::Requirement
|
99
|
-
none: false
|
100
90
|
requirements:
|
101
|
-
- - ~>
|
91
|
+
- - "~>"
|
102
92
|
- !ruby/object:Gem::Version
|
103
93
|
version: '2.1'
|
104
94
|
type: :runtime
|
105
95
|
prerelease: false
|
106
96
|
version_requirements: !ruby/object:Gem::Requirement
|
107
|
-
none: false
|
108
97
|
requirements:
|
109
|
-
- - ~>
|
98
|
+
- - "~>"
|
110
99
|
- !ruby/object:Gem::Version
|
111
100
|
version: '2.1'
|
112
101
|
description: Puppet, an automated configuration management tool
|
@@ -123,9 +112,154 @@ files:
|
|
123
112
|
- MAINTAINERS
|
124
113
|
- README.md
|
125
114
|
- Rakefile
|
126
|
-
- install.rb
|
127
115
|
- bin/extlookup2hiera
|
128
116
|
- bin/puppet
|
117
|
+
- conf/auth.conf
|
118
|
+
- conf/environment.conf
|
119
|
+
- conf/fileserver.conf
|
120
|
+
- conf/puppet.conf
|
121
|
+
- examples/hiera/README.md
|
122
|
+
- examples/hiera/etc/hiera.yaml
|
123
|
+
- examples/hiera/etc/hieradb/common.yaml
|
124
|
+
- examples/hiera/etc/hieradb/dc1.yaml
|
125
|
+
- examples/hiera/etc/hieradb/development.yaml
|
126
|
+
- examples/hiera/etc/puppet.conf
|
127
|
+
- examples/hiera/modules/data/manifests/common.pp
|
128
|
+
- examples/hiera/modules/ntp/manifests/config.pp
|
129
|
+
- examples/hiera/modules/ntp/manifests/data.pp
|
130
|
+
- examples/hiera/modules/ntp/templates/ntp.conf.erb
|
131
|
+
- examples/hiera/modules/users/manifests/common.pp
|
132
|
+
- examples/hiera/modules/users/manifests/dc1.pp
|
133
|
+
- examples/hiera/modules/users/manifests/development.pp
|
134
|
+
- examples/hiera/site.pp
|
135
|
+
- ext/README.environment
|
136
|
+
- ext/autotest/Rakefile
|
137
|
+
- ext/autotest/config
|
138
|
+
- ext/autotest/readme.rst
|
139
|
+
- ext/build_defaults.yaml
|
140
|
+
- ext/cert_inspector
|
141
|
+
- ext/dbfix.sql
|
142
|
+
- ext/debian/README.Debian
|
143
|
+
- ext/debian/README.source
|
144
|
+
- ext/debian/TODO.Debian
|
145
|
+
- ext/debian/changelog.erb
|
146
|
+
- ext/debian/compat
|
147
|
+
- ext/debian/control
|
148
|
+
- ext/debian/copyright
|
149
|
+
- ext/debian/docs
|
150
|
+
- ext/debian/fileserver.conf
|
151
|
+
- ext/debian/puppet-common.dirs
|
152
|
+
- ext/debian/puppet-common.install
|
153
|
+
- ext/debian/puppet-common.lintian-overrides
|
154
|
+
- ext/debian/puppet-common.manpages
|
155
|
+
- ext/debian/puppet-common.postinst
|
156
|
+
- ext/debian/puppet-common.postrm
|
157
|
+
- ext/debian/puppet-el.dirs
|
158
|
+
- ext/debian/puppet-el.emacsen-install
|
159
|
+
- ext/debian/puppet-el.emacsen-remove
|
160
|
+
- ext/debian/puppet-el.emacsen-startup
|
161
|
+
- ext/debian/puppet-el.install
|
162
|
+
- ext/debian/puppet-testsuite.install
|
163
|
+
- ext/debian/puppet-testsuite.lintian-overrides
|
164
|
+
- ext/debian/puppet.default
|
165
|
+
- ext/debian/puppet.init
|
166
|
+
- ext/debian/puppet.lintian-overrides
|
167
|
+
- ext/debian/puppet.logrotate
|
168
|
+
- ext/debian/puppet.postinst
|
169
|
+
- ext/debian/puppet.postrm
|
170
|
+
- ext/debian/puppet.preinst
|
171
|
+
- ext/debian/puppetmaster-common.install
|
172
|
+
- ext/debian/puppetmaster-common.manpages
|
173
|
+
- ext/debian/puppetmaster-common.postinst
|
174
|
+
- ext/debian/puppetmaster-passenger.dirs
|
175
|
+
- ext/debian/puppetmaster-passenger.postinst
|
176
|
+
- ext/debian/puppetmaster-passenger.postrm
|
177
|
+
- ext/debian/puppetmaster.README.debian
|
178
|
+
- ext/debian/puppetmaster.default
|
179
|
+
- ext/debian/puppetmaster.init
|
180
|
+
- ext/debian/puppetmaster.lintian-overrides
|
181
|
+
- ext/debian/puppetmaster.postinst
|
182
|
+
- ext/debian/puppetmaster.postrm
|
183
|
+
- ext/debian/puppetmaster.preinst
|
184
|
+
- ext/debian/rules
|
185
|
+
- ext/debian/source/format
|
186
|
+
- ext/debian/source/options
|
187
|
+
- ext/debian/vim-puppet.README.Debian
|
188
|
+
- ext/debian/vim-puppet.dirs
|
189
|
+
- ext/debian/vim-puppet.yaml
|
190
|
+
- ext/debian/watch
|
191
|
+
- ext/emacs/puppet-mode-init.el
|
192
|
+
- ext/emacs/puppet-mode.el
|
193
|
+
- ext/envpuppet
|
194
|
+
- ext/envpuppet.bat
|
195
|
+
- ext/freebsd/puppetd
|
196
|
+
- ext/freebsd/puppetmasterd
|
197
|
+
- ext/gentoo/conf.d/puppet
|
198
|
+
- ext/gentoo/conf.d/puppetmaster
|
199
|
+
- ext/gentoo/init.d/puppet
|
200
|
+
- ext/gentoo/init.d/puppetmaster
|
201
|
+
- ext/gentoo/puppet/fileserver.conf
|
202
|
+
- ext/ips/puppet-agent
|
203
|
+
- ext/ips/puppet-master
|
204
|
+
- ext/ips/puppet.p5m.erb
|
205
|
+
- ext/ips/puppetagent.xml
|
206
|
+
- ext/ips/puppetmaster.xml
|
207
|
+
- ext/ips/rules
|
208
|
+
- ext/ips/transforms
|
209
|
+
- ext/ldap/puppet.schema
|
210
|
+
- ext/logcheck/puppet
|
211
|
+
- ext/nagios/check_puppet.rb
|
212
|
+
- ext/osx/file_mapping.yaml
|
213
|
+
- ext/osx/postflight.erb
|
214
|
+
- ext/osx/preflight.erb
|
215
|
+
- ext/osx/prototype.plist.erb
|
216
|
+
- ext/osx/puppet.plist
|
217
|
+
- ext/project_data.yaml
|
218
|
+
- ext/puppet-test
|
219
|
+
- ext/pure_ruby_dsl/dsl_test.rb
|
220
|
+
- ext/rack/config.ru
|
221
|
+
- ext/rack/example-passenger-vhost.conf
|
222
|
+
- ext/redhat/client.init
|
223
|
+
- ext/redhat/client.sysconfig
|
224
|
+
- ext/redhat/fileserver.conf
|
225
|
+
- ext/redhat/logrotate
|
226
|
+
- ext/redhat/puppet.spec.erb
|
227
|
+
- ext/redhat/server.init
|
228
|
+
- ext/redhat/server.sysconfig
|
229
|
+
- ext/regexp_nodes/classes/databases
|
230
|
+
- ext/regexp_nodes/classes/webservers
|
231
|
+
- ext/regexp_nodes/environment/development
|
232
|
+
- ext/regexp_nodes/parameters/service/prod
|
233
|
+
- ext/regexp_nodes/parameters/service/qa
|
234
|
+
- ext/regexp_nodes/parameters/service/sandbox
|
235
|
+
- ext/regexp_nodes/regexp_nodes.rb
|
236
|
+
- ext/solaris/pkginfo
|
237
|
+
- ext/solaris/smf/puppet
|
238
|
+
- ext/solaris/smf/puppet.xml
|
239
|
+
- ext/solaris/smf/puppetd.xml
|
240
|
+
- ext/solaris/smf/puppetmasterd.xml
|
241
|
+
- ext/solaris/smf/svc-puppetd
|
242
|
+
- ext/solaris/smf/svc-puppetmasterd
|
243
|
+
- ext/suse/client.init
|
244
|
+
- ext/suse/puppet.spec
|
245
|
+
- ext/suse/server.init
|
246
|
+
- ext/systemd/puppet.service
|
247
|
+
- ext/upload_facts.rb
|
248
|
+
- ext/vim/README
|
249
|
+
- ext/vim/ftdetect/puppet.vim
|
250
|
+
- ext/vim/ftplugin/puppet.vim
|
251
|
+
- ext/vim/indent/puppet.vim
|
252
|
+
- ext/vim/syntax/puppet.vim
|
253
|
+
- ext/windows/eventlog/Rakefile
|
254
|
+
- ext/windows/eventlog/puppetres.dll
|
255
|
+
- ext/windows/eventlog/puppetres.mc
|
256
|
+
- ext/windows/puppet_interactive.bat
|
257
|
+
- ext/windows/puppet_shell.bat
|
258
|
+
- ext/windows/run_puppet_interactive.bat
|
259
|
+
- ext/windows/service/daemon.bat
|
260
|
+
- ext/windows/service/daemon.rb
|
261
|
+
- ext/yaml_nodes.rb
|
262
|
+
- install.rb
|
129
263
|
- lib/hiera/puppet_function.rb
|
130
264
|
- lib/hiera/scope.rb
|
131
265
|
- lib/hiera_puppet.rb
|
@@ -1397,10 +1531,8 @@ files:
|
|
1397
1531
|
- lib/puppet/version.rb
|
1398
1532
|
- lib/puppet_x.rb
|
1399
1533
|
- lib/semver.rb
|
1400
|
-
-
|
1401
|
-
-
|
1402
|
-
- conf/fileserver.conf
|
1403
|
-
- conf/puppet.conf
|
1534
|
+
- locales/config.yaml
|
1535
|
+
- locales/puppet.pot
|
1404
1536
|
- man/man5/puppet.conf.5
|
1405
1537
|
- man/man8/extlookup2hiera.8
|
1406
1538
|
- man/man8/puppet-agent.8
|
@@ -1433,155 +1565,6 @@ files:
|
|
1433
1565
|
- man/man8/puppet-resource_type.8
|
1434
1566
|
- man/man8/puppet-status.8
|
1435
1567
|
- man/man8/puppet.8
|
1436
|
-
- examples/hiera/README.md
|
1437
|
-
- examples/hiera/etc/hiera.yaml
|
1438
|
-
- examples/hiera/etc/hieradb/common.yaml
|
1439
|
-
- examples/hiera/etc/hieradb/dc1.yaml
|
1440
|
-
- examples/hiera/etc/hieradb/development.yaml
|
1441
|
-
- examples/hiera/etc/puppet.conf
|
1442
|
-
- examples/hiera/modules/data/manifests/common.pp
|
1443
|
-
- examples/hiera/modules/ntp/manifests/config.pp
|
1444
|
-
- examples/hiera/modules/ntp/manifests/data.pp
|
1445
|
-
- examples/hiera/modules/ntp/templates/ntp.conf.erb
|
1446
|
-
- examples/hiera/modules/users/manifests/common.pp
|
1447
|
-
- examples/hiera/modules/users/manifests/dc1.pp
|
1448
|
-
- examples/hiera/modules/users/manifests/development.pp
|
1449
|
-
- examples/hiera/site.pp
|
1450
|
-
- ext/README.environment
|
1451
|
-
- ext/autotest/Rakefile
|
1452
|
-
- ext/autotest/config
|
1453
|
-
- ext/autotest/readme.rst
|
1454
|
-
- ext/build_defaults.yaml
|
1455
|
-
- ext/cert_inspector
|
1456
|
-
- ext/dbfix.sql
|
1457
|
-
- ext/debian/README.Debian
|
1458
|
-
- ext/debian/README.source
|
1459
|
-
- ext/debian/TODO.Debian
|
1460
|
-
- ext/debian/changelog.erb
|
1461
|
-
- ext/debian/compat
|
1462
|
-
- ext/debian/control
|
1463
|
-
- ext/debian/copyright
|
1464
|
-
- ext/debian/docs
|
1465
|
-
- ext/debian/fileserver.conf
|
1466
|
-
- ext/debian/puppet-common.dirs
|
1467
|
-
- ext/debian/puppet-common.install
|
1468
|
-
- ext/debian/puppet-common.lintian-overrides
|
1469
|
-
- ext/debian/puppet-common.manpages
|
1470
|
-
- ext/debian/puppet-common.postinst
|
1471
|
-
- ext/debian/puppet-common.postrm
|
1472
|
-
- ext/debian/puppet-el.dirs
|
1473
|
-
- ext/debian/puppet-el.emacsen-install
|
1474
|
-
- ext/debian/puppet-el.emacsen-remove
|
1475
|
-
- ext/debian/puppet-el.emacsen-startup
|
1476
|
-
- ext/debian/puppet-el.install
|
1477
|
-
- ext/debian/puppet-testsuite.install
|
1478
|
-
- ext/debian/puppet-testsuite.lintian-overrides
|
1479
|
-
- ext/debian/puppet.default
|
1480
|
-
- ext/debian/puppet.init
|
1481
|
-
- ext/debian/puppet.lintian-overrides
|
1482
|
-
- ext/debian/puppet.logrotate
|
1483
|
-
- ext/debian/puppet.postinst
|
1484
|
-
- ext/debian/puppet.postrm
|
1485
|
-
- ext/debian/puppet.preinst
|
1486
|
-
- ext/debian/puppetmaster-common.install
|
1487
|
-
- ext/debian/puppetmaster-common.manpages
|
1488
|
-
- ext/debian/puppetmaster-common.postinst
|
1489
|
-
- ext/debian/puppetmaster-passenger.dirs
|
1490
|
-
- ext/debian/puppetmaster-passenger.postinst
|
1491
|
-
- ext/debian/puppetmaster-passenger.postrm
|
1492
|
-
- ext/debian/puppetmaster.README.debian
|
1493
|
-
- ext/debian/puppetmaster.default
|
1494
|
-
- ext/debian/puppetmaster.init
|
1495
|
-
- ext/debian/puppetmaster.lintian-overrides
|
1496
|
-
- ext/debian/puppetmaster.postinst
|
1497
|
-
- ext/debian/puppetmaster.postrm
|
1498
|
-
- ext/debian/puppetmaster.preinst
|
1499
|
-
- ext/debian/rules
|
1500
|
-
- ext/debian/source/format
|
1501
|
-
- ext/debian/source/options
|
1502
|
-
- ext/debian/vim-puppet.README.Debian
|
1503
|
-
- ext/debian/vim-puppet.dirs
|
1504
|
-
- ext/debian/vim-puppet.yaml
|
1505
|
-
- ext/debian/watch
|
1506
|
-
- ext/emacs/puppet-mode-init.el
|
1507
|
-
- ext/emacs/puppet-mode.el
|
1508
|
-
- ext/envpuppet
|
1509
|
-
- ext/envpuppet.bat
|
1510
|
-
- ext/freebsd/puppetd
|
1511
|
-
- ext/freebsd/puppetmasterd
|
1512
|
-
- ext/gentoo/conf.d/puppet
|
1513
|
-
- ext/gentoo/conf.d/puppetmaster
|
1514
|
-
- ext/gentoo/init.d/puppet
|
1515
|
-
- ext/gentoo/init.d/puppetmaster
|
1516
|
-
- ext/gentoo/puppet/fileserver.conf
|
1517
|
-
- ext/ips/puppet-agent
|
1518
|
-
- ext/ips/puppet-master
|
1519
|
-
- ext/ips/puppet.p5m.erb
|
1520
|
-
- ext/ips/puppetagent.xml
|
1521
|
-
- ext/ips/puppetmaster.xml
|
1522
|
-
- ext/ips/rules
|
1523
|
-
- ext/ips/transforms
|
1524
|
-
- ext/ldap/puppet.schema
|
1525
|
-
- ext/logcheck/puppet
|
1526
|
-
- ext/nagios/check_puppet.rb
|
1527
|
-
- ext/osx/file_mapping.yaml
|
1528
|
-
- ext/osx/postflight.erb
|
1529
|
-
- ext/osx/preflight.erb
|
1530
|
-
- ext/osx/prototype.plist.erb
|
1531
|
-
- ext/osx/puppet.plist
|
1532
|
-
- ext/project_data.yaml
|
1533
|
-
- ext/puppet-test
|
1534
|
-
- ext/pure_ruby_dsl/dsl_test.rb
|
1535
|
-
- ext/rack/config.ru
|
1536
|
-
- ext/rack/example-passenger-vhost.conf
|
1537
|
-
- ext/redhat/client.init
|
1538
|
-
- ext/redhat/client.sysconfig
|
1539
|
-
- ext/redhat/fileserver.conf
|
1540
|
-
- ext/redhat/logrotate
|
1541
|
-
- ext/redhat/puppet.spec.erb
|
1542
|
-
- ext/redhat/server.init
|
1543
|
-
- ext/redhat/server.sysconfig
|
1544
|
-
- ext/regexp_nodes/classes/databases
|
1545
|
-
- ext/regexp_nodes/classes/webservers
|
1546
|
-
- ext/regexp_nodes/environment/development
|
1547
|
-
- ext/regexp_nodes/parameters/service/prod
|
1548
|
-
- ext/regexp_nodes/parameters/service/qa
|
1549
|
-
- ext/regexp_nodes/parameters/service/sandbox
|
1550
|
-
- ext/regexp_nodes/regexp_nodes.rb
|
1551
|
-
- ext/solaris/pkginfo
|
1552
|
-
- ext/solaris/smf/puppet
|
1553
|
-
- ext/solaris/smf/puppet.xml
|
1554
|
-
- ext/solaris/smf/puppetd.xml
|
1555
|
-
- ext/solaris/smf/puppetmasterd.xml
|
1556
|
-
- ext/solaris/smf/svc-puppetd
|
1557
|
-
- ext/solaris/smf/svc-puppetmasterd
|
1558
|
-
- ext/suse/client.init
|
1559
|
-
- ext/suse/puppet.spec
|
1560
|
-
- ext/suse/server.init
|
1561
|
-
- ext/systemd/puppet.service
|
1562
|
-
- ext/upload_facts.rb
|
1563
|
-
- ext/vim/README
|
1564
|
-
- ext/vim/ftdetect/puppet.vim
|
1565
|
-
- ext/vim/ftplugin/puppet.vim
|
1566
|
-
- ext/vim/indent/puppet.vim
|
1567
|
-
- ext/vim/syntax/puppet.vim
|
1568
|
-
- ext/windows/eventlog/Rakefile
|
1569
|
-
- ext/windows/eventlog/puppetres.dll
|
1570
|
-
- ext/windows/eventlog/puppetres.mc
|
1571
|
-
- ext/windows/puppet_interactive.bat
|
1572
|
-
- ext/windows/puppet_shell.bat
|
1573
|
-
- ext/windows/run_puppet_interactive.bat
|
1574
|
-
- ext/windows/service/daemon.bat
|
1575
|
-
- ext/windows/service/daemon.rb
|
1576
|
-
- ext/yaml_nodes.rb
|
1577
|
-
- tasks/benchmark.rake
|
1578
|
-
- tasks/cfpropertylist.rake
|
1579
|
-
- tasks/ci.rake
|
1580
|
-
- tasks/manpages.rake
|
1581
|
-
- tasks/memwalk.rake
|
1582
|
-
- tasks/parallel.rake
|
1583
|
-
- tasks/parser.rake
|
1584
|
-
- tasks/yard.rake
|
1585
1568
|
- spec/fixtures/faulty_face/puppet/face/syntax.rb
|
1586
1569
|
- spec/fixtures/hiera.yaml
|
1587
1570
|
- spec/fixtures/integration/node/environment/sitedir/00_a.pp
|
@@ -2213,6 +2196,7 @@ files:
|
|
2213
2196
|
- spec/unit/file_system/uniquefile_spec.rb
|
2214
2197
|
- spec/unit/file_system_spec.rb
|
2215
2198
|
- spec/unit/forge/errors_spec.rb
|
2199
|
+
- spec/unit/forge/forge_spec.rb
|
2216
2200
|
- spec/unit/forge/module_release_spec.rb
|
2217
2201
|
- spec/unit/forge/repository_spec.rb
|
2218
2202
|
- spec/unit/forge_spec.rb
|
@@ -2832,36 +2816,41 @@ files:
|
|
2832
2816
|
- spec/unit/util_spec.rb
|
2833
2817
|
- spec/unit/version_spec.rb
|
2834
2818
|
- spec/watchr.rb
|
2835
|
-
-
|
2836
|
-
-
|
2819
|
+
- tasks/benchmark.rake
|
2820
|
+
- tasks/cfpropertylist.rake
|
2821
|
+
- tasks/ci.rake
|
2822
|
+
- tasks/manpages.rake
|
2823
|
+
- tasks/memwalk.rake
|
2824
|
+
- tasks/parallel.rake
|
2825
|
+
- tasks/parser.rake
|
2826
|
+
- tasks/yard.rake
|
2837
2827
|
homepage: https://github.com/puppetlabs/puppet
|
2838
2828
|
licenses: []
|
2829
|
+
metadata: {}
|
2839
2830
|
post_install_message:
|
2840
2831
|
rdoc_options:
|
2841
|
-
- --title
|
2832
|
+
- "--title"
|
2842
2833
|
- Puppet - Configuration Management
|
2843
|
-
- --main
|
2834
|
+
- "--main"
|
2844
2835
|
- README.md
|
2845
|
-
- --line-numbers
|
2836
|
+
- "--line-numbers"
|
2846
2837
|
require_paths:
|
2847
2838
|
- lib
|
2848
2839
|
required_ruby_version: !ruby/object:Gem::Requirement
|
2849
|
-
none: false
|
2850
2840
|
requirements:
|
2851
|
-
- -
|
2841
|
+
- - ">="
|
2852
2842
|
- !ruby/object:Gem::Version
|
2853
2843
|
version: 1.9.3
|
2854
2844
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
2855
|
-
none: false
|
2856
2845
|
requirements:
|
2857
|
-
- -
|
2846
|
+
- - ">"
|
2858
2847
|
- !ruby/object:Gem::Version
|
2859
2848
|
version: 1.3.1
|
2860
2849
|
requirements: []
|
2861
2850
|
rubyforge_project: puppet
|
2862
|
-
rubygems_version:
|
2851
|
+
rubygems_version: 2.4.8
|
2863
2852
|
signing_key:
|
2864
|
-
specification_version:
|
2853
|
+
specification_version: 4
|
2865
2854
|
summary: Puppet, an automated configuration management tool
|
2866
2855
|
test_files:
|
2867
2856
|
- spec/fixtures/faulty_face/puppet/face/syntax.rb
|
@@ -3495,6 +3484,7 @@ test_files:
|
|
3495
3484
|
- spec/unit/file_system/uniquefile_spec.rb
|
3496
3485
|
- spec/unit/file_system_spec.rb
|
3497
3486
|
- spec/unit/forge/errors_spec.rb
|
3487
|
+
- spec/unit/forge/forge_spec.rb
|
3498
3488
|
- spec/unit/forge/module_release_spec.rb
|
3499
3489
|
- spec/unit/forge/repository_spec.rb
|
3500
3490
|
- spec/unit/forge_spec.rb
|