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.

Files changed (39) hide show
  1. data/CHANGELOG +13 -0
  2. data/conf/redhat/puppet.spec +4 -1
  3. data/lib/puppet.rb +1 -1
  4. data/lib/puppet/application/master.rb +26 -6
  5. data/lib/puppet/file_bucket/file.rb +5 -6
  6. data/lib/puppet/file_serving/configuration.rb +2 -1
  7. data/lib/puppet/file_serving/content.rb +1 -2
  8. data/lib/puppet/file_serving/metadata.rb +1 -2
  9. data/lib/puppet/file_serving/mount/modules.rb +4 -5
  10. data/lib/puppet/file_serving/{indirection_hooks.rb → terminus_selector.rb} +2 -3
  11. data/lib/puppet/indirector/file_bucket_file/selector.rb +49 -0
  12. data/lib/puppet/indirector/file_content/selector.rb +30 -0
  13. data/lib/puppet/indirector/file_metadata/selector.rb +30 -0
  14. data/lib/puppet/reports/store.rb +7 -3
  15. data/lib/puppet/ssl/base.rb +8 -0
  16. data/lib/puppet/ssl/certificate_authority.rb +10 -0
  17. data/lib/puppet/ssl/certificate_authority/interface.rb +4 -2
  18. data/lib/puppet/ssl/host.rb +1 -0
  19. data/spec/integration/file_bucket/file_spec.rb +44 -0
  20. data/spec/integration/file_serving/content_spec.rb +1 -8
  21. data/spec/integration/file_serving/metadata_spec.rb +1 -8
  22. data/spec/integration/indirector/file_content/file_server_spec.rb +2 -2
  23. data/spec/shared_behaviours/file_serving.rb +71 -62
  24. data/spec/shared_behaviours/file_serving_model.rb +73 -0
  25. data/spec/spec_helper.rb +29 -0
  26. data/spec/unit/file_serving/configuration_spec.rb +37 -29
  27. data/spec/unit/file_serving/content_spec.rb +0 -4
  28. data/spec/unit/file_serving/metadata_spec.rb +0 -4
  29. data/spec/unit/file_serving/mount/modules_spec.rb +8 -0
  30. data/spec/unit/file_serving/{indirection_hooks_spec.rb → terminus_selector_spec.rb} +11 -12
  31. data/spec/unit/indirector/file_bucket_file/selector_spec.rb +29 -0
  32. data/spec/unit/indirector/file_content/selector_spec.rb +10 -0
  33. data/spec/unit/indirector/file_metadata/selector_spec.rb +11 -0
  34. data/spec/unit/network/handler/ca_spec.rb +1 -0
  35. data/spec/unit/reports/store_spec.rb +14 -0
  36. data/spec/unit/ssl/certificate_authority/interface_spec.rb +17 -17
  37. data/spec/unit/ssl/certificate_authority_spec.rb +76 -11
  38. metadata +16 -9
  39. 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/indirection_hooks'
8
+ require 'puppet/file_serving/terminus_selector'
9
9
 
10
- describe Puppet::FileServing::IndirectionHooks do
10
+ describe Puppet::FileServing::TerminusSelector do
11
11
  before do
12
12
  @object = Object.new
13
- @object.extend(Puppet::FileServing::IndirectionHooks)
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 "#{File::SEPARATOR}foo"
21
- @object.select_terminus(@request).should == :file
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.select_terminus(@request).should == :file
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.select_terminus(@request) }.should raise_error(ArgumentError)
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.select_terminus(@request).should == :rest
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
- @request.stubs(:server).returns "foo"
48
+ # We have to stub this because we can't set name
49
49
  Puppet.settings.stubs(:value).with(:name).returns "foo"
50
- @object.select_terminus(@request).should == :rest
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
- Puppet.settings.expects(:value).with(:name).returns "puppet"
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
+
@@ -31,6 +31,7 @@ describe Puppet::Network::Handler::CA do
31
31
  Puppet::SSL::CertificateAuthority.stubs(:ca?).returns false
32
32
 
33
33
  csr = OpenSSL::X509::Request.new
34
+ csr.subject = OpenSSL::X509::Name.new([["CN", "anything"]])
34
35
  subject.getcert(csr.to_pem).should == ''
35
36
  end
36
37
 
@@ -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.sign(@name) }.to raise_error(
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.sign(@name) }.to raise_error(
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.sign(@name) }.to raise_error(
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.sign(@name, true) }.to raise_error(
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.sign(@name) }.to raise_error(
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.sign(@name, true) }.to raise_error(
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: 55
4
+ hash: 53
5
5
  prerelease:
6
6
  segments:
7
7
  - 2
8
8
  - 6
9
- - 16
10
- version: 2.6.16
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-04-11 00:00:00 Z
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.10
1412
+ rubygems_version: 1.8.24
1406
1413
  signing_key:
1407
1414
  specification_version: 3
1408
1415
  summary: Puppet, an automated configuration management tool