puppet 2.6.16 → 2.6.17
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.
- data/CHANGELOG +13 -0
- data/conf/redhat/puppet.spec +4 -1
- data/lib/puppet.rb +1 -1
- data/lib/puppet/application/master.rb +26 -6
- data/lib/puppet/file_bucket/file.rb +5 -6
- data/lib/puppet/file_serving/configuration.rb +2 -1
- data/lib/puppet/file_serving/content.rb +1 -2
- data/lib/puppet/file_serving/metadata.rb +1 -2
- data/lib/puppet/file_serving/mount/modules.rb +4 -5
- data/lib/puppet/file_serving/{indirection_hooks.rb → terminus_selector.rb} +2 -3
- data/lib/puppet/indirector/file_bucket_file/selector.rb +49 -0
- data/lib/puppet/indirector/file_content/selector.rb +30 -0
- data/lib/puppet/indirector/file_metadata/selector.rb +30 -0
- data/lib/puppet/reports/store.rb +7 -3
- data/lib/puppet/ssl/base.rb +8 -0
- data/lib/puppet/ssl/certificate_authority.rb +10 -0
- data/lib/puppet/ssl/certificate_authority/interface.rb +4 -2
- data/lib/puppet/ssl/host.rb +1 -0
- data/spec/integration/file_bucket/file_spec.rb +44 -0
- data/spec/integration/file_serving/content_spec.rb +1 -8
- data/spec/integration/file_serving/metadata_spec.rb +1 -8
- data/spec/integration/indirector/file_content/file_server_spec.rb +2 -2
- data/spec/shared_behaviours/file_serving.rb +71 -62
- data/spec/shared_behaviours/file_serving_model.rb +73 -0
- data/spec/spec_helper.rb +29 -0
- data/spec/unit/file_serving/configuration_spec.rb +37 -29
- data/spec/unit/file_serving/content_spec.rb +0 -4
- data/spec/unit/file_serving/metadata_spec.rb +0 -4
- data/spec/unit/file_serving/mount/modules_spec.rb +8 -0
- data/spec/unit/file_serving/{indirection_hooks_spec.rb → terminus_selector_spec.rb} +11 -12
- data/spec/unit/indirector/file_bucket_file/selector_spec.rb +29 -0
- data/spec/unit/indirector/file_content/selector_spec.rb +10 -0
- data/spec/unit/indirector/file_metadata/selector_spec.rb +11 -0
- data/spec/unit/network/handler/ca_spec.rb +1 -0
- data/spec/unit/reports/store_spec.rb +14 -0
- data/spec/unit/ssl/certificate_authority/interface_spec.rb +17 -17
- data/spec/unit/ssl/certificate_authority_spec.rb +76 -11
- metadata +16 -9
- data/lib/puppet/file_bucket/file/indirection_hooks.rb +0 -9
@@ -5,30 +5,30 @@
|
|
5
5
|
|
6
6
|
require File.dirname(__FILE__) + '/../../spec_helper'
|
7
7
|
|
8
|
-
require 'puppet/file_serving/
|
8
|
+
require 'puppet/file_serving/terminus_selector'
|
9
9
|
|
10
|
-
describe Puppet::FileServing::
|
10
|
+
describe Puppet::FileServing::TerminusSelector do
|
11
11
|
before do
|
12
12
|
@object = Object.new
|
13
|
-
@object.extend(Puppet::FileServing::
|
13
|
+
@object.extend(Puppet::FileServing::TerminusSelector)
|
14
14
|
|
15
15
|
@request = stub 'request', :key => "mymod/myfile", :options => {:node => "whatever"}, :server => nil, :protocol => nil
|
16
16
|
end
|
17
17
|
|
18
18
|
describe "when being used to select termini" do
|
19
19
|
it "should return :file if the request key is fully qualified" do
|
20
|
-
@request.expects(:key).returns
|
21
|
-
@object.
|
20
|
+
@request.expects(:key).returns File.expand_path('/foo')
|
21
|
+
@object.select(@request).should == :file
|
22
22
|
end
|
23
23
|
|
24
24
|
it "should return :file if the URI protocol is set to 'file'" do
|
25
25
|
@request.expects(:protocol).returns "file"
|
26
|
-
@object.
|
26
|
+
@object.select(@request).should == :file
|
27
27
|
end
|
28
28
|
|
29
29
|
it "should fail when a protocol other than :puppet or :file is used" do
|
30
30
|
@request.stubs(:protocol).returns "http"
|
31
|
-
proc { @object.
|
31
|
+
proc { @object.select(@request) }.should raise_error(ArgumentError)
|
32
32
|
end
|
33
33
|
|
34
34
|
describe "and the protocol is 'puppet'" do
|
@@ -39,15 +39,15 @@ describe Puppet::FileServing::IndirectionHooks do
|
|
39
39
|
it "should choose :rest when a server is specified" do
|
40
40
|
@request.stubs(:protocol).returns "puppet"
|
41
41
|
@request.expects(:server).returns "foo"
|
42
|
-
@object.
|
42
|
+
@object.select(@request).should == :rest
|
43
43
|
end
|
44
44
|
|
45
45
|
# This is so a given file location works when bootstrapping with no server.
|
46
46
|
it "should choose :rest when the Settings name isn't 'puppet'" do
|
47
47
|
@request.stubs(:protocol).returns "puppet"
|
48
|
-
|
48
|
+
# We have to stub this because we can't set name
|
49
49
|
Puppet.settings.stubs(:value).with(:name).returns "foo"
|
50
|
-
@object.
|
50
|
+
@object.select(@request).should == :rest
|
51
51
|
end
|
52
52
|
|
53
53
|
it "should choose :file_server when the settings name is 'puppet' and no server is specified" do
|
@@ -55,8 +55,7 @@ describe Puppet::FileServing::IndirectionHooks do
|
|
55
55
|
|
56
56
|
@request.expects(:protocol).returns "puppet"
|
57
57
|
@request.expects(:server).returns nil
|
58
|
-
|
59
|
-
@object.select_terminus(@request).should == :file_server
|
58
|
+
@object.select(@request).should == :file_server
|
60
59
|
end
|
61
60
|
end
|
62
61
|
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
#!/usr/bin/env rspec
|
2
|
+
require 'spec_helper'
|
3
|
+
|
4
|
+
require 'puppet/indirector/file_bucket_file/selector'
|
5
|
+
require 'puppet/indirector/file_bucket_file/file'
|
6
|
+
require 'puppet/indirector/file_bucket_file/rest'
|
7
|
+
|
8
|
+
describe Puppet::FileBucketFile::Selector do
|
9
|
+
%w[head find save search destroy].each do |method|
|
10
|
+
describe "##{method}" do
|
11
|
+
it "should proxy to rest terminus for https requests" do
|
12
|
+
request = stub 'request', :protocol => 'https'
|
13
|
+
|
14
|
+
Puppet::FileBucketFile::Rest.any_instance.expects(method).with(request)
|
15
|
+
|
16
|
+
subject.send(method, request)
|
17
|
+
end
|
18
|
+
|
19
|
+
it "should proxy to file terminus for other requests" do
|
20
|
+
request = stub 'request', :protocol => 'file'
|
21
|
+
|
22
|
+
Puppet::FileBucketFile::File.any_instance.expects(method).with(request)
|
23
|
+
|
24
|
+
subject.send(method, request)
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
@@ -0,0 +1,10 @@
|
|
1
|
+
#!/usr/bin/env rspec
|
2
|
+
require 'spec_helper'
|
3
|
+
|
4
|
+
require 'puppet/indirector/file_content/selector'
|
5
|
+
|
6
|
+
describe Puppet::Indirector::FileContent::Selector do
|
7
|
+
include PuppetSpec::Files
|
8
|
+
|
9
|
+
it_should_behave_like "Puppet::FileServing::Files", :file_content
|
10
|
+
end
|
@@ -0,0 +1,11 @@
|
|
1
|
+
#!/usr/bin/env rspec
|
2
|
+
require 'spec_helper'
|
3
|
+
|
4
|
+
require 'puppet/indirector/file_metadata/selector'
|
5
|
+
|
6
|
+
describe Puppet::Indirector::FileMetadata::Selector do
|
7
|
+
include PuppetSpec::Files
|
8
|
+
|
9
|
+
it_should_behave_like "Puppet::FileServing::Files", :file_metadata
|
10
|
+
end
|
11
|
+
|
@@ -27,5 +27,19 @@ describe processor do
|
|
27
27
|
|
28
28
|
File.read(File.join(Puppet[:reportdir], @report.host, "201101061200.yaml")).should == @report.to_yaml
|
29
29
|
end
|
30
|
+
|
31
|
+
['..', 'hello/', '/hello', 'he/llo', 'hello/..', '.'].each do |node|
|
32
|
+
it "rejects #{node.inspect}" do
|
33
|
+
@report.host = node
|
34
|
+
expect { @report.process }.to raise_error(ArgumentError, /Invalid node/)
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
['.hello', 'hello.', '..hi', 'hi..'].each do |node|
|
39
|
+
it "accepts #{node.inspect}" do
|
40
|
+
@report.host = node
|
41
|
+
@report.process
|
42
|
+
end
|
43
|
+
end
|
30
44
|
end
|
31
45
|
end
|
@@ -212,9 +212,9 @@ describe Puppet::SSL::CertificateAuthority::Interface do
|
|
212
212
|
applier = @class.new(:list, :to => [])
|
213
213
|
|
214
214
|
applier.expects(:puts).with(<<-OUTPUT.chomp)
|
215
|
-
host1 (fingerprint)
|
216
|
-
host2 (fingerprint)
|
217
|
-
host3 (fingerprint)
|
215
|
+
"host1" (fingerprint)
|
216
|
+
"host2" (fingerprint)
|
217
|
+
"host3" (fingerprint)
|
218
218
|
OUTPUT
|
219
219
|
|
220
220
|
applier.apply(@ca)
|
@@ -228,12 +228,12 @@ describe Puppet::SSL::CertificateAuthority::Interface do
|
|
228
228
|
applier = @class.new(:list, :to => :all)
|
229
229
|
|
230
230
|
applier.expects(:puts).with(<<-OUTPUT.chomp)
|
231
|
-
host1 (fingerprint)
|
232
|
-
host2 (fingerprint)
|
233
|
-
host3 (fingerprint)
|
234
|
-
+ host5 (fingerprint)
|
235
|
-
+ host6 (fingerprint)
|
236
|
-
- host4 (fingerprint) (certificate revoked)
|
231
|
+
"host1" (fingerprint)
|
232
|
+
"host2" (fingerprint)
|
233
|
+
"host3" (fingerprint)
|
234
|
+
+ "host5" (fingerprint)
|
235
|
+
+ "host6" (fingerprint)
|
236
|
+
- "host4" (fingerprint) (certificate revoked)
|
237
237
|
OUTPUT
|
238
238
|
|
239
239
|
applier.apply(@ca)
|
@@ -245,9 +245,9 @@ describe Puppet::SSL::CertificateAuthority::Interface do
|
|
245
245
|
applier = @class.new(:list, :to => :signed)
|
246
246
|
|
247
247
|
applier.expects(:puts).with(<<-OUTPUT.chomp)
|
248
|
-
+ host4 (fingerprint)
|
249
|
-
+ host5 (fingerprint)
|
250
|
-
+ host6 (fingerprint)
|
248
|
+
+ "host4" (fingerprint)
|
249
|
+
+ "host5" (fingerprint)
|
250
|
+
+ "host6" (fingerprint)
|
251
251
|
OUTPUT
|
252
252
|
|
253
253
|
applier.apply(@ca)
|
@@ -260,7 +260,7 @@ describe Puppet::SSL::CertificateAuthority::Interface do
|
|
260
260
|
applier = @class.new(:list, :to => ['host1'])
|
261
261
|
|
262
262
|
applier.expects(:puts).with(<<-OUTPUT.chomp)
|
263
|
-
host1 (fingerprint) (alt names: DNS:foo, DNS:bar)
|
263
|
+
"host1" (fingerprint) (alt names: "DNS:foo", "DNS:bar")
|
264
264
|
OUTPUT
|
265
265
|
|
266
266
|
applier.apply(@ca)
|
@@ -272,10 +272,10 @@ describe Puppet::SSL::CertificateAuthority::Interface do
|
|
272
272
|
applier = @class.new(:list, :to => %w{host1 host2 host4 host5})
|
273
273
|
|
274
274
|
applier.expects(:puts).with(<<-OUTPUT.chomp)
|
275
|
-
host1 (fingerprint)
|
276
|
-
host2 (fingerprint)
|
277
|
-
+ host4 (fingerprint)
|
278
|
-
+ host5 (fingerprint)
|
275
|
+
"host1" (fingerprint)
|
276
|
+
"host2" (fingerprint)
|
277
|
+
+ "host4" (fingerprint)
|
278
|
+
+ "host5" (fingerprint)
|
279
279
|
OUTPUT
|
280
280
|
|
281
281
|
applier.apply(@ca)
|
@@ -246,7 +246,7 @@ describe Puppet::SSL::CertificateAuthority do
|
|
246
246
|
# Stub out the factory
|
247
247
|
Puppet::SSL::CertificateFactory.stubs(:build).returns "my real cert"
|
248
248
|
|
249
|
-
@request_content = stub "request content stub", :subject => @name
|
249
|
+
@request_content = stub "request content stub", :subject => OpenSSL::X509::Name.new([['CN', @name]])
|
250
250
|
@request = stub 'request', :name => @name, :request_extensions => [], :subject_alt_names => [], :content => @request_content
|
251
251
|
|
252
252
|
# And the inventory
|
@@ -303,28 +303,28 @@ describe Puppet::SSL::CertificateAuthority do
|
|
303
303
|
|
304
304
|
it "should use a certificate type of :ca" do
|
305
305
|
Puppet::SSL::CertificateFactory.expects(:build).with do |*args|
|
306
|
-
args[0] == :ca
|
306
|
+
args[0].should == :ca
|
307
307
|
end.returns "my real cert"
|
308
308
|
@ca.sign(@name, :ca, @request)
|
309
309
|
end
|
310
310
|
|
311
311
|
it "should pass the provided CSR as the CSR" do
|
312
312
|
Puppet::SSL::CertificateFactory.expects(:build).with do |*args|
|
313
|
-
args[1] == @request
|
313
|
+
args[1].should == @request
|
314
314
|
end.returns "my real cert"
|
315
315
|
@ca.sign(@name, :ca, @request)
|
316
316
|
end
|
317
317
|
|
318
318
|
it "should use the provided CSR's content as the issuer" do
|
319
319
|
Puppet::SSL::CertificateFactory.expects(:build).with do |*args|
|
320
|
-
args[2].subject == "myhost"
|
320
|
+
args[2].subject.to_s.should == "/CN=myhost"
|
321
321
|
end.returns "my real cert"
|
322
322
|
@ca.sign(@name, :ca, @request)
|
323
323
|
end
|
324
324
|
|
325
325
|
it "should pass the next serial as the serial number" do
|
326
326
|
Puppet::SSL::CertificateFactory.expects(:build).with do |*args|
|
327
|
-
args[3] == @serial
|
327
|
+
args[3].should == @serial
|
328
328
|
end.returns "my real cert"
|
329
329
|
@ca.sign(@name, :ca, @request)
|
330
330
|
end
|
@@ -452,11 +452,76 @@ describe Puppet::SSL::CertificateAuthority do
|
|
452
452
|
@cert.stubs :save
|
453
453
|
end
|
454
454
|
|
455
|
+
it "should reject CSRs whose CN doesn't match the name for which we're signing them" do
|
456
|
+
# Shorten this so the test doesn't take too long
|
457
|
+
Puppet[:keylength] = 1024
|
458
|
+
key = Puppet::SSL::Key.new('the_certname')
|
459
|
+
key.generate
|
460
|
+
|
461
|
+
csr = Puppet::SSL::CertificateRequest.new('the_certname')
|
462
|
+
csr.generate(key)
|
463
|
+
|
464
|
+
expect do
|
465
|
+
@ca.check_internal_signing_policies('not_the_certname', csr, false)
|
466
|
+
end.to raise_error(
|
467
|
+
Puppet::SSL::CertificateAuthority::CertificateSigningError,
|
468
|
+
/common name "the_certname" does not match expected certname "not_the_certname"/
|
469
|
+
)
|
470
|
+
end
|
471
|
+
|
472
|
+
describe "when validating the CN" do
|
473
|
+
before :all do
|
474
|
+
Puppet[:keylength] = 1024
|
475
|
+
@signing_key = Puppet::SSL::Key.new('my_signing_key')
|
476
|
+
@signing_key.generate
|
477
|
+
end
|
478
|
+
|
479
|
+
[
|
480
|
+
'completely_okay',
|
481
|
+
'sure, why not? :)',
|
482
|
+
'so+many(things)-are=allowed.',
|
483
|
+
'this"is#just&madness%you[see]',
|
484
|
+
'and even a (an?) \\!',
|
485
|
+
'waltz, nymph, for quick jigs vex bud.',
|
486
|
+
'{552c04ca-bb1b-11e1-874b-60334b04494e}'
|
487
|
+
].each do |name|
|
488
|
+
it "should accept #{name.inspect}" do
|
489
|
+
csr = Puppet::SSL::CertificateRequest.new(name)
|
490
|
+
csr.generate(@signing_key)
|
491
|
+
|
492
|
+
@ca.check_internal_signing_policies(name, csr, false)
|
493
|
+
end
|
494
|
+
end
|
495
|
+
|
496
|
+
[
|
497
|
+
'super/bad',
|
498
|
+
"not\neven\tkind\rof",
|
499
|
+
"ding\adong\a",
|
500
|
+
"hidden\b\b\b\b\b\bmessage",
|
501
|
+
"☃ :("
|
502
|
+
].each do |name|
|
503
|
+
it "should reject #{name.inspect}" do
|
504
|
+
# We aren't even allowed to make objects with these names, so let's
|
505
|
+
# stub that to simulate an invalid one coming from outside Puppet
|
506
|
+
Puppet::SSL::CertificateRequest.stubs(:validate_certname)
|
507
|
+
csr = Puppet::SSL::CertificateRequest.new(name)
|
508
|
+
csr.generate(@signing_key)
|
509
|
+
|
510
|
+
expect do
|
511
|
+
@ca.check_internal_signing_policies(name, csr, false)
|
512
|
+
end.to raise_error(
|
513
|
+
Puppet::SSL::CertificateAuthority::CertificateSigningError,
|
514
|
+
/subject contains unprintable or non-ASCII characters/
|
515
|
+
)
|
516
|
+
end
|
517
|
+
end
|
518
|
+
end
|
519
|
+
|
455
520
|
it "should reject a critical extension that isn't on the whitelist" do
|
456
521
|
@request.stubs(:request_extensions).returns [{ "oid" => "banana",
|
457
522
|
"value" => "yumm",
|
458
523
|
"critical" => true }]
|
459
|
-
expect { @ca.
|
524
|
+
expect { @ca.check_internal_signing_policies(@name, @request, false) }.to raise_error(
|
460
525
|
Puppet::SSL::CertificateAuthority::CertificateSigningError,
|
461
526
|
/request extensions that are not permitted/
|
462
527
|
)
|
@@ -466,7 +531,7 @@ describe Puppet::SSL::CertificateAuthority do
|
|
466
531
|
@request.stubs(:request_extensions).returns [{ "oid" => "peach",
|
467
532
|
"value" => "meh",
|
468
533
|
"critical" => false }]
|
469
|
-
expect { @ca.
|
534
|
+
expect { @ca.check_internal_signing_policies(@name, @request, false) }.to raise_error(
|
470
535
|
Puppet::SSL::CertificateAuthority::CertificateSigningError,
|
471
536
|
/request extensions that are not permitted/
|
472
537
|
)
|
@@ -479,7 +544,7 @@ describe Puppet::SSL::CertificateAuthority do
|
|
479
544
|
{ "oid" => "subjectAltName",
|
480
545
|
"value" => "DNS:foo",
|
481
546
|
"critical" => true }]
|
482
|
-
expect { @ca.
|
547
|
+
expect { @ca.check_internal_signing_policies(@name, @request, false) }.to raise_error(
|
483
548
|
Puppet::SSL::CertificateAuthority::CertificateSigningError,
|
484
549
|
/request extensions that are not permitted/
|
485
550
|
)
|
@@ -487,7 +552,7 @@ describe Puppet::SSL::CertificateAuthority do
|
|
487
552
|
|
488
553
|
it "should reject a subjectAltName for a non-DNS value" do
|
489
554
|
@request.stubs(:subject_alt_names).returns ['DNS:foo', 'email:bar@example.com']
|
490
|
-
expect { @ca.
|
555
|
+
expect { @ca.check_internal_signing_policies(@name, @request, true) }.to raise_error(
|
491
556
|
Puppet::SSL::CertificateAuthority::CertificateSigningError,
|
492
557
|
/subjectAltName outside the DNS label space/
|
493
558
|
)
|
@@ -497,7 +562,7 @@ describe Puppet::SSL::CertificateAuthority do
|
|
497
562
|
@request.content.stubs(:subject).
|
498
563
|
returns(OpenSSL::X509::Name.new([["CN", "*.local"]]))
|
499
564
|
|
500
|
-
expect { @ca.
|
565
|
+
expect { @ca.check_internal_signing_policies('*.local', @request, false) }.to raise_error(
|
501
566
|
Puppet::SSL::CertificateAuthority::CertificateSigningError,
|
502
567
|
/subject contains a wildcard/
|
503
568
|
)
|
@@ -505,7 +570,7 @@ describe Puppet::SSL::CertificateAuthority do
|
|
505
570
|
|
506
571
|
it "should reject a wildcard subjectAltName" do
|
507
572
|
@request.stubs(:subject_alt_names).returns ['DNS:foo', 'DNS:*.bar']
|
508
|
-
expect { @ca.
|
573
|
+
expect { @ca.check_internal_signing_policies(@name, @request, true) }.to raise_error(
|
509
574
|
Puppet::SSL::CertificateAuthority::CertificateSigningError,
|
510
575
|
/subjectAltName contains a wildcard/
|
511
576
|
)
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: puppet
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 53
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 2
|
8
8
|
- 6
|
9
|
-
-
|
10
|
-
version: 2.6.
|
9
|
+
- 17
|
10
|
+
version: 2.6.17
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Puppet Labs
|
@@ -15,10 +15,9 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2012-
|
18
|
+
date: 2012-07-10 00:00:00 Z
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|
21
|
-
name: facter
|
22
21
|
prerelease: false
|
23
22
|
requirement: &id001 !ruby/object:Gem::Requirement
|
24
23
|
none: false
|
@@ -32,6 +31,7 @@ dependencies:
|
|
32
31
|
- 1
|
33
32
|
version: 1.5.1
|
34
33
|
type: :runtime
|
34
|
+
name: facter
|
35
35
|
version_requirements: *id001
|
36
36
|
description: Puppet, an automated configuration management tool
|
37
37
|
email: puppet@puppetlabs.com
|
@@ -115,7 +115,6 @@ files:
|
|
115
115
|
- lib/puppet/feature/stomp.rb
|
116
116
|
- lib/puppet/feature/zlib.rb
|
117
117
|
- lib/puppet/file_bucket/dipper.rb
|
118
|
-
- lib/puppet/file_bucket/file/indirection_hooks.rb
|
119
118
|
- lib/puppet/file_bucket/file.rb
|
120
119
|
- lib/puppet/file_bucket.rb
|
121
120
|
- lib/puppet/file_collection/lookup.rb
|
@@ -125,13 +124,13 @@ files:
|
|
125
124
|
- lib/puppet/file_serving/configuration.rb
|
126
125
|
- lib/puppet/file_serving/content.rb
|
127
126
|
- lib/puppet/file_serving/fileset.rb
|
128
|
-
- lib/puppet/file_serving/indirection_hooks.rb
|
129
127
|
- lib/puppet/file_serving/metadata.rb
|
130
128
|
- lib/puppet/file_serving/mount/file.rb
|
131
129
|
- lib/puppet/file_serving/mount/modules.rb
|
132
130
|
- lib/puppet/file_serving/mount/plugins.rb
|
133
131
|
- lib/puppet/file_serving/mount.rb
|
134
132
|
- lib/puppet/file_serving/terminus_helper.rb
|
133
|
+
- lib/puppet/file_serving/terminus_selector.rb
|
135
134
|
- lib/puppet/file_serving.rb
|
136
135
|
- lib/puppet/indirector/active_record.rb
|
137
136
|
- lib/puppet/indirector/catalog/active_record.rb
|
@@ -163,13 +162,16 @@ files:
|
|
163
162
|
- lib/puppet/indirector/facts/yaml.rb
|
164
163
|
- lib/puppet/indirector/file_bucket_file/file.rb
|
165
164
|
- lib/puppet/indirector/file_bucket_file/rest.rb
|
165
|
+
- lib/puppet/indirector/file_bucket_file/selector.rb
|
166
166
|
- lib/puppet/indirector/file_content/file.rb
|
167
167
|
- lib/puppet/indirector/file_content/file_server.rb
|
168
168
|
- lib/puppet/indirector/file_content/rest.rb
|
169
|
+
- lib/puppet/indirector/file_content/selector.rb
|
169
170
|
- lib/puppet/indirector/file_content.rb
|
170
171
|
- lib/puppet/indirector/file_metadata/file.rb
|
171
172
|
- lib/puppet/indirector/file_metadata/file_server.rb
|
172
173
|
- lib/puppet/indirector/file_metadata/rest.rb
|
174
|
+
- lib/puppet/indirector/file_metadata/selector.rb
|
173
175
|
- lib/puppet/indirector/file_metadata.rb
|
174
176
|
- lib/puppet/indirector/file_server.rb
|
175
177
|
- lib/puppet/indirector/indirection.rb
|
@@ -935,6 +937,7 @@ files:
|
|
935
937
|
- spec/integration/application/doc_spec.rb
|
936
938
|
- spec/integration/configurer_spec.rb
|
937
939
|
- spec/integration/defaults_spec.rb
|
940
|
+
- spec/integration/file_bucket/file_spec.rb
|
938
941
|
- spec/integration/file_serving/content_spec.rb
|
939
942
|
- spec/integration/file_serving/fileset_spec.rb
|
940
943
|
- spec/integration/file_serving/metadata_spec.rb
|
@@ -992,6 +995,7 @@ files:
|
|
992
995
|
- spec/monkey_patches/publicize_methods.rb
|
993
996
|
- spec/shared_behaviours/file_server_terminus.rb
|
994
997
|
- spec/shared_behaviours/file_serving.rb
|
998
|
+
- spec/shared_behaviours/file_serving_model.rb
|
995
999
|
- spec/shared_behaviours/memory_terminus.rb
|
996
1000
|
- spec/shared_behaviours/path_parameters.rb
|
997
1001
|
- spec/spec.opts
|
@@ -1026,13 +1030,13 @@ files:
|
|
1026
1030
|
- spec/unit/file_serving/configuration_spec.rb
|
1027
1031
|
- spec/unit/file_serving/content_spec.rb
|
1028
1032
|
- spec/unit/file_serving/fileset_spec.rb
|
1029
|
-
- spec/unit/file_serving/indirection_hooks_spec.rb
|
1030
1033
|
- spec/unit/file_serving/metadata_spec.rb
|
1031
1034
|
- spec/unit/file_serving/mount/file_spec.rb
|
1032
1035
|
- spec/unit/file_serving/mount/modules_spec.rb
|
1033
1036
|
- spec/unit/file_serving/mount/plugins_spec.rb
|
1034
1037
|
- spec/unit/file_serving/mount_spec.rb
|
1035
1038
|
- spec/unit/file_serving/terminus_helper_spec.rb
|
1039
|
+
- spec/unit/file_serving/terminus_selector_spec.rb
|
1036
1040
|
- spec/unit/indirector/active_record_spec.rb
|
1037
1041
|
- spec/unit/indirector/catalog/active_record_spec.rb
|
1038
1042
|
- spec/unit/indirector/catalog/compiler_spec.rb
|
@@ -1061,12 +1065,15 @@ files:
|
|
1061
1065
|
- spec/unit/indirector/facts/yaml_spec.rb
|
1062
1066
|
- spec/unit/indirector/file_bucket_file/file_spec.rb
|
1063
1067
|
- spec/unit/indirector/file_bucket_file/rest_spec.rb
|
1068
|
+
- spec/unit/indirector/file_bucket_file/selector_spec.rb
|
1064
1069
|
- spec/unit/indirector/file_content/file_server_spec.rb
|
1065
1070
|
- spec/unit/indirector/file_content/file_spec.rb
|
1066
1071
|
- spec/unit/indirector/file_content/rest_spec.rb
|
1072
|
+
- spec/unit/indirector/file_content/selector_spec.rb
|
1067
1073
|
- spec/unit/indirector/file_metadata/file_server_spec.rb
|
1068
1074
|
- spec/unit/indirector/file_metadata/file_spec.rb
|
1069
1075
|
- spec/unit/indirector/file_metadata/rest_spec.rb
|
1076
|
+
- spec/unit/indirector/file_metadata/selector_spec.rb
|
1070
1077
|
- spec/unit/indirector/file_server_spec.rb
|
1071
1078
|
- spec/unit/indirector/indirection_spec.rb
|
1072
1079
|
- spec/unit/indirector/key/ca_spec.rb
|
@@ -1402,7 +1409,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
1402
1409
|
requirements: []
|
1403
1410
|
|
1404
1411
|
rubyforge_project: puppet
|
1405
|
-
rubygems_version: 1.8.
|
1412
|
+
rubygems_version: 1.8.24
|
1406
1413
|
signing_key:
|
1407
1414
|
specification_version: 3
|
1408
1415
|
summary: Puppet, an automated configuration management tool
|