onceover 3.3.1 → 3.3.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (27) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +1 -0
  3. data/features/cache.feature +33 -0
  4. data/features/step_definitions/cache.rb +38 -0
  5. data/features/step_definitions/common.rb +3 -3
  6. data/features/support/cache_helper.rb +55 -0
  7. data/lib/onceover/testconfig.rb +32 -13
  8. data/onceover.gemspec +1 -1
  9. data/spec/fixtures/controlrepos/caching/.gitignore +1 -0
  10. data/spec/fixtures/controlrepos/caching/.travis.yml +2 -0
  11. data/spec/fixtures/controlrepos/caching/Gemfile +5 -0
  12. data/spec/fixtures/controlrepos/caching/Puppetfile +17 -0
  13. data/spec/fixtures/controlrepos/caching/Rakefile +1 -0
  14. data/spec/fixtures/controlrepos/caching/deleteme.txt +0 -0
  15. data/spec/fixtures/controlrepos/caching/environment.conf +2 -0
  16. data/spec/fixtures/controlrepos/caching/hieradata/common.yaml +2 -0
  17. data/spec/fixtures/controlrepos/caching/hieradata/nodes/example-node.yaml +1 -0
  18. data/spec/fixtures/controlrepos/caching/manifests/site.pp +32 -0
  19. data/spec/fixtures/controlrepos/caching/site/profile/manifests/base.pp +5 -0
  20. data/spec/fixtures/controlrepos/caching/site/profile/manifests/example.pp +3 -0
  21. data/spec/fixtures/controlrepos/caching/site/role/manifests/database_server.pp +7 -0
  22. data/spec/fixtures/controlrepos/caching/site/role/manifests/example.pp +3 -0
  23. data/spec/fixtures/controlrepos/caching/site/role/manifests/webserver.pp +7 -0
  24. data/spec/fixtures/controlrepos/caching/spec/factsets/README.md +7 -0
  25. data/spec/fixtures/controlrepos/caching/spec/onceover.yaml +53 -0
  26. data/spec/fixtures/controlrepos/caching/spec/pre_conditions/README.md +24 -0
  27. metadata +24 -3
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 16b8e87dd7f42d97a987d5ba6ea7df4882f792ac
4
- data.tar.gz: 9654efc7739d62409e488b7f2651914b17e2831c
3
+ metadata.gz: 8516d34019e0c6c9d8f09fcd8e6f7249dec8b8dd
4
+ data.tar.gz: b569f4341e7681fe099d090f0f9b245346110145
5
5
  SHA512:
6
- metadata.gz: ccd6c5e3cd4f9749c6ef58ca8766cef9acfd93597283ab9bb2c67388ab43cd60d22c4bcd02ba45f2add5ba44153e3ffaad8dc8c94266521d3e6d02089bc151d9
7
- data.tar.gz: 01d040074b62b0fcd2971be9cfa7d84720fdc1f3028bf68b630e3bbd48cbd2fa5fc045e9d534cb013a8ffb366878b005db632a15b12b1cf7e85a8a025885e804
6
+ metadata.gz: b77f2b94c07a87304af205b19bb4cf6ad4c7d7c89b67067c47275b5e20dfcb064cb4bf4d1edca03dd337ffaada10dcecd434c086d90a0104e855e64a14c1175f
7
+ data.tar.gz: 171dcee3922127e988696645a68fc48286ed2a54316d0dbbb86249650b9cda947ab01a01fe12f18a71dab0c8784bcf3c9ce9f3b3530d29f7643fbc953da66ccc
data/.travis.yml CHANGED
@@ -17,3 +17,4 @@ rvm:
17
17
  - 2.3.4
18
18
  - 2.4.0
19
19
  - 2.4.1
20
+ - 2.4.2
@@ -0,0 +1,33 @@
1
+ @cache
2
+ Feature: Create and maintain a .onceover cache
3
+ Onceover should be able to cache things in the .onceover directory for speed
4
+ increases and debugging of external modules. This cache should remain
5
+ up-to-date and should exactly mirror what would be created on the Puppet
6
+ master.
7
+
8
+ Background:
9
+ Given onceover executable
10
+
11
+ Scenario: Creating a cache
12
+ Given control repo "caching"
13
+ When I run onceover command "run spec"
14
+ Then the cache should exist
15
+ And the cache should contain all controlrepo files
16
+
17
+ Scenario: Creating a new file
18
+ Given control repo "caching"
19
+ When I create a file "example.txt"
20
+ And I run onceover command "run spec"
21
+ Then "example.txt" should be cached correctly
22
+
23
+ Scenario: Deleting a file
24
+ Given control repo "caching"
25
+ When I delete a file "deleteme.txt"
26
+ And I run onceover command "run spec"
27
+ Then "deleteme.txt" should be deleted from the cache
28
+
29
+ Scenario: Caching hidden files
30
+ Given control repo "caching"
31
+ When I create a file ".hidden/.hiddenfile"
32
+ And I run onceover command "run spec"
33
+ Then ".hidden/.hiddenfile" should be cached correctly
@@ -0,0 +1,38 @@
1
+ Then(/^the cache should exist$/) do
2
+ cache_dir = File.join(@repo.root_folder,'.onceover')
3
+ expect(File.directory?(cache_dir)).to be true
4
+ end
5
+
6
+ Then(/^the cache should contain all controlrepo files/) do
7
+ # Get all root files
8
+ puts "Calculating MD5 hashes in repo"
9
+ repo_digest = Cache_Helper.digest(@repo.root_folder)
10
+ puts "#{repo_digest.count} MD5 hashes calculated"
11
+ puts "Calculating MD5 hashes in cache"
12
+ cache_digest = Cache_Helper.digest(File.join(@repo.root_folder,'.onceover/etc/puppetlabs/code/environments/production/'))
13
+ puts "#{cache_digest.count} MD5 hashes calculated"
14
+ expect(cache_digest).to include(repo_digest)
15
+ end
16
+
17
+ When(/^I (\w+) a file "(.*)"$/) do |action,file|
18
+ require 'securerandom'
19
+ actual_file = Pathname.new(File.join(@repo.root_folder,file))
20
+ case action
21
+ when "create"
22
+ FileUtils.mkdir_p(actual_file.dirname)
23
+ File.write(actual_file,SecureRandom.hex)
24
+ when "delete"
25
+ FileUtils.rm(actual_file)
26
+ end
27
+ end
28
+
29
+ Then(/^"(.*)" should be cached correctly$/) do |file|
30
+ original_digest = Cache_Helper.digest(File.join(@repo.root_folder,file))
31
+ cache_digest = Cache_Helper.digest(File.join(@repo.root_folder,'.onceover/etc/puppetlabs/code/environments/production/',file))
32
+ expect(original_digest).to include(cache_digest)
33
+ end
34
+
35
+ Then(/^"([^"]*)" should be deleted from the cache$/) do |file|
36
+ deleted_file = Pathname.new(File.join(@repo.root_folder,'.onceover/etc/puppetlabs/code/environments/production/',file))
37
+ expect(deleted_file.exist?).to be false
38
+ end
@@ -1,4 +1,4 @@
1
- Given /^onceover executable$/ do
1
+ Given(/^onceover executable$/) do
2
2
  @cmd = Command_Helper.new
3
3
  end
4
4
 
@@ -20,13 +20,13 @@ Given(/^control repo "([^"]*)" without "([^"]*)"$/) do |controlrepo_name, filena
20
20
  FileUtils.rm_rf "#{@repo.root_folder}/#{filename}"
21
21
  end
22
22
 
23
- When /^I run onceover command "([^"]*)"$/ do |command|
23
+ When(/^I run onceover command "([^"]*)"$/) do |command|
24
24
  @cmd.command = command
25
25
  puts @cmd
26
26
  @cmd.run
27
27
  end
28
28
 
29
- Then /^I see help for commands: "([^"]*)"$/ do |commands|
29
+ Then(/^I see help for commands: "([^"]*)"$/) do |commands|
30
30
  # Get chunk of output between COMMANDS and OPTION, there should be help section
31
31
  commands_help = @cmd.output[/COMMANDS(.*)OPTIONS/m, 1]
32
32
  commands.split(',').each do |command|
@@ -0,0 +1,55 @@
1
+ require 'pathname'
2
+
3
+ class Cache_Helper
4
+
5
+ def cache_exists?
6
+ File.directory?(dir + '/.onceover')
7
+ end
8
+
9
+ def self.digest(path, opts = {
10
+ exceptions: ['.','..','.onceover']
11
+ })
12
+ if File.directory?(path)
13
+ # Get the list of files
14
+ children = Cache_Helper.get_children(path, opts[:exceptions])
15
+ else
16
+ children = [File.expand_path(path)]
17
+ end
18
+
19
+ # Calculate hashes
20
+ hashes = children.map do |child_path|
21
+ if File.directory? child_path
22
+ :directory
23
+ else
24
+ Digest::MD5.file(child_path)
25
+ end
26
+ end
27
+
28
+ root = Pathname.new(File.expand_path(path))
29
+ # Move pathnames back to relative
30
+ children.map! do |child_path|
31
+ Pathname.new(child_path).relative_path_from root
32
+ end
33
+ Hash[children.zip(hashes)]
34
+ end
35
+
36
+ def self.get_children(dir, exclusions)
37
+ root_files = []
38
+ files = []
39
+ Dir.chdir(dir) do
40
+ # Get all root files
41
+ root_files = Dir.glob('*',File::FNM_DOTMATCH)
42
+ root_files = root_files - exclusions
43
+ root_files.each do |file|
44
+ files << file
45
+ files << Dir.glob("#{file}/**/*",File::FNM_DOTMATCH)
46
+ end
47
+ files.flatten!
48
+ # Calculate absolue paths
49
+ files.map! do |file|
50
+ File.expand_path(file)
51
+ end
52
+ end
53
+ files
54
+ end
55
+ end
@@ -181,27 +181,33 @@ class Onceover
181
181
  #
182
182
  # If there are more situations like this we can add them to this array as
183
183
  # full paths
184
- excluded_files = []
185
- if ENV['GEM_HOME']
186
- logger.debug "Excluding #{ENV['GEM_HOME']} from controlrepo copy"
187
- excluded_files << Dir.glob("#{ENV['GEM_HOME']}/**/*")
188
- excluded_files.flatten!
184
+ excluded_dirs = []
185
+ excluded_dirs << Pathname.new("#{repo.root}/.onceover")
186
+ excluded_dirs << Pathname.new(ENV['GEM_HOME']) if ENV['GEM_HOME']
187
+
188
+ controlrepo_files = get_children_recursive(Pathname.new(repo.root))
189
+
190
+ # Exclude the files that should be skipped
191
+ controlrepo_files.delete_if do |path|
192
+ parents = [path]
193
+ path.ascend do |parent|
194
+ parents << parent
195
+ end
196
+ parents.any? { |x| excluded_dirs.include?(x) }
189
197
  end
190
198
 
191
- # Exclude the files we need to
192
- controlrepo_files = Dir.glob("#{repo.root}/**/*")
193
- files_to_copy = (controlrepo_files - excluded_files).delete_if { |path| Pathname(path).directory? }
194
- folders_to_copy = (controlrepo_files - excluded_files).keep_if { |path| Pathname(path).directory? }
199
+ folders_to_copy = controlrepo_files.select { |x| x.directory? }
200
+ files_to_copy = controlrepo_files.select { |x| x.file? }
195
201
 
196
202
  logger.debug "Creating temp dir as a staging directory for copying the controlrepo to #{repo.tempdir}"
197
203
  temp_controlrepo = Dir.mktmpdir('controlrepo')
198
204
 
199
205
  logger.debug "Creating directories under #{temp_controlrepo}"
200
- FileUtils.mkdir_p(folders_to_copy.map { |folder| "#{temp_controlrepo}/#{(Pathname(folder).relative_path_from(Pathname(repo.root))).to_s}"})
206
+ FileUtils.mkdir_p(folders_to_copy.map { |folder| "#{temp_controlrepo}/#{(folder.relative_path_from(Pathname(repo.root))).to_s}"})
201
207
 
202
208
  logger.debug "Copying files to #{temp_controlrepo}"
203
209
  files_to_copy.each do |file|
204
- FileUtils.cp(file,"#{temp_controlrepo}/#{(Pathname(file).relative_path_from(Pathname(repo.root))).to_s}")
210
+ FileUtils.cp(file,"#{temp_controlrepo}/#{(file.relative_path_from(Pathname(repo.root))).to_s}")
205
211
  end
206
212
 
207
213
  # When using puppetfile vs deploy with r10k, we want to respect the :control_branch
@@ -219,10 +225,10 @@ class Onceover
219
225
  File.write("#{temp_controlrepo}/Puppetfile", new_puppetfile_contents)
220
226
 
221
227
 
222
- FileUtils.mkdir_p("#{repo.tempdir}/#{repo.environmentpath}/production")
228
+ FileUtils.mkdir_p("#{repo.tempdir}/#{repo.environmentpath}")
223
229
 
224
230
  logger.debug "Copying #{temp_controlrepo} to #{repo.tempdir}/#{repo.environmentpath}/production"
225
- FileUtils.cp_r(Dir["#{temp_controlrepo}/*"], "#{repo.tempdir}/#{repo.environmentpath}/production")
231
+ FileUtils.cp_r(temp_controlrepo, "#{repo.tempdir}/#{repo.environmentpath}/production")
226
232
  FileUtils.rm_rf(temp_controlrepo)
227
233
 
228
234
  # Pull the trigger! If it's not already been pulled
@@ -331,5 +337,18 @@ class Onceover
331
337
  tests
332
338
  end
333
339
 
340
+ private
341
+
342
+ def get_children_recursive(pathname)
343
+ results = []
344
+ results << pathname
345
+ pathname.each_child do |child|
346
+ results << child
347
+ if child.directory?
348
+ results << get_children_recursive(child)
349
+ end
350
+ end
351
+ results.flatten
352
+ end
334
353
  end
335
354
  end
data/onceover.gemspec CHANGED
@@ -4,7 +4,7 @@ $LOAD_PATH.unshift File.expand_path("../lib", __FILE__)
4
4
 
5
5
  Gem::Specification.new do |s|
6
6
  s.name = "onceover"
7
- s.version = "3.3.1"
7
+ s.version = "3.3.2"
8
8
  s.authors = ["Dylan Ratcliffe"]
9
9
  s.email = ["dylan.ratcliffe@puppet.com"]
10
10
  s.homepage = "https://github.com/dylanratcliffe/onceover"
@@ -0,0 +1 @@
1
+ .onceover
@@ -0,0 +1,2 @@
1
+ ---
2
+ some: stuff
@@ -0,0 +1,5 @@
1
+ source 'https://rubygems.org'
2
+
3
+ gem 'onceover'
4
+ gem 'beaker', '~> 2.0'
5
+
@@ -0,0 +1,17 @@
1
+ forge "http://forge.puppetlabs.com"
2
+ #
3
+ # I want to download some modules to check if r10k feature in Onceover works correctly.
4
+ #
5
+
6
+ # Versions should be updated to be the latest at the time you start
7
+ mod "puppetlabs/stdlib", '4.11.0'
8
+
9
+ # Modules from Git
10
+ # Examples: https://github.com/puppetlabs/r10k/blob/master/doc/puppetfile.mkd#examples
11
+ mod 'apache',
12
+ :git => 'https://github.com/puppetlabs/puppetlabs-apache',
13
+ :commit => '83401079053dca11d61945bd9beef9ecf7576cbf'
14
+
15
+ #mod 'apache',
16
+ # :git => 'https://github.com/puppetlabs/puppetlabs-apache',
17
+ # :branch => 'docs_experiment'
@@ -0,0 +1 @@
1
+ require 'onceover/rake_tasks'
File without changes
@@ -0,0 +1,2 @@
1
+ modulepath = site:modules:$basemodulepath
2
+ config_version = 'scripts/config_version.sh $environmentpath $environment'
@@ -0,0 +1,2 @@
1
+ ---
2
+ message: "This node is using common data"
@@ -0,0 +1,32 @@
1
+ ## site.pp ##
2
+
3
+ # This file (/etc/puppetlabs/puppet/manifests/site.pp) is the main entry point
4
+ # used when an agent connects to a master and asks for an updated configuration.
5
+ #
6
+ # Global objects like filebuckets and resource defaults should go in this file,
7
+ # as should the default node definition. (The default node can be omitted
8
+ # if you use the console and don't define any other nodes in site.pp. See
9
+ # http://docs.puppetlabs.com/guides/language_guide.html#nodes for more on
10
+ # node definitions.)
11
+
12
+ ## Active Configurations ##
13
+
14
+ # Disable filebucket by default for all File resources:
15
+ #https://docs.puppet.com/pe/2015.3/release_notes.html#filebucket-resource-no-longer-created-by-default
16
+ File { backup => false }
17
+
18
+ # DEFAULT NODE
19
+ # Node definitions in this file are merged with node data from the console. See
20
+ # http://docs.puppetlabs.com/guides/language_guide.html#nodes for more on
21
+ # node definitions.
22
+
23
+ # The default node definition matches any node lacking a more specific node
24
+ # definition. If there are no other nodes in this file, classes declared here
25
+ # will be included in every node's catalog, *in addition* to any classes
26
+ # specified in the console for that node.
27
+
28
+ node default {
29
+ # This is where you can declare classes for all nodes.
30
+ # Example:
31
+ # class { 'my_class': }
32
+ }
@@ -0,0 +1,5 @@
1
+ class profile::base {
2
+
3
+ #the base profile should include component modules that will be on all nodes
4
+
5
+ }
@@ -0,0 +1,3 @@
1
+ class profile::example {
2
+
3
+ }
@@ -0,0 +1,7 @@
1
+ class role::database_server {
2
+
3
+ #This role would be made of all the profiles that need to be included to make a database server work
4
+ #All roles should include the base profile
5
+ include profile::base
6
+
7
+ }
@@ -0,0 +1,3 @@
1
+ class role::example {
2
+
3
+ }
@@ -0,0 +1,7 @@
1
+ class role::webserver {
2
+
3
+ #This role would be made of all the profiles that need to be included to make a webserver work
4
+ #All roles should include the base profile
5
+ include profile::base
6
+
7
+ }
@@ -0,0 +1,7 @@
1
+ # Factsets
2
+
3
+ This directory is where we put any custom factsets that we want to use. They can be generated by running `puppet facts` on the target system.
4
+
5
+ **Hot tip:** If you already have factsets in here when you run `onceover init` they will be picked up and added to the config file Automatically
6
+
7
+ More info: https://github.com/dylanratcliffe/onceover#factsets
@@ -0,0 +1,53 @@
1
+ # Classes to be tested
2
+ classes:
3
+ - role::database_server
4
+ - role::webserver
5
+ - role::example
6
+
7
+ # Nodes to tests classes on, this refers to a 'factset' or 'nodeset'
8
+ # depending on weather you are running 'spec' or 'acceptance' tests
9
+ nodes:
10
+ - AIX-7.1-powerpc
11
+ - SLES-12.1-64
12
+ - Debian-6.0.10-32
13
+ - CentOS-6.6-64
14
+ - Ubuntu-12.04-32
15
+ - Ubuntu-12.04-64
16
+ - CentOS-6.6-32
17
+ - Debian-6.0.10-64
18
+ - AIX-6.1-powerpc
19
+ - Windows_Server-2012r2-64
20
+ - Debian-7.8-32
21
+ - Windows_Server-2008r2-64
22
+ - SLES-11.3-64
23
+ - Debian-7.8-64
24
+ - solaris-10_u9-sparc-64
25
+ - solaris-11.2-sparc-64
26
+ - Ubuntu-14.04-32
27
+ - CentOS-5.11-64
28
+ - CentOS-5.11-32
29
+ - CentOS-7.0-64
30
+ - Ubuntu-14.04-64
31
+
32
+ # You can group classes here to save typing
33
+ class_groups:
34
+
35
+ # You can group nodes here to save typing
36
+ # We have created a 'non_windows_nodes' group because we can't
37
+ # give you Windows vagrant boxes to test with because licensing,
38
+ # we can give you fact sets though so go crazy with spec testing!
39
+ node_groups:
40
+ windows_nodes:
41
+ - Windows_Server-2012r2-64
42
+ - Windows_Server-2008r2-64
43
+ non_windows_nodes:
44
+ include: 'all_nodes'
45
+ exclude: 'windows_nodes'
46
+
47
+ test_matrix:
48
+ - all_nodes:
49
+ classes: 'all_classes'
50
+ tests: 'spec'
51
+ - non_windows_nodes:
52
+ classes: 'all_classes'
53
+ tests: 'acceptance'
@@ -0,0 +1,24 @@
1
+ # Pre Conditions
2
+
3
+ This folder should contain any \*.pp files that you want to be included in every test.
4
+
5
+ A common use of this is defining resources that may not exist in the catalog when you are running tests. For example, if we are using a resource that tries to restart the `pe-puppetserver` service, unless it is compiled on a Puppet Maser the `pe-puppetserver` service will not exist and the catalog will fail to compile. To get around this we can create a .pp file and define the resource like so:
6
+
7
+ ``` puppet
8
+ # We are not going to actually have this service anywhere on our servers but
9
+ # our code needs to refresh it. This is to trick puppet into doing nothing
10
+ service { 'pe-puppetserver':
11
+ ensure => 'running',
12
+ enable => false,
13
+ hasrestart => false, # Force Puppet to use start and stop to restart
14
+ start => 'echo "Start"', # This will always exit 0
15
+ stop => 'echo "Stop"', # This will also always exit 0
16
+ hasstatus => false, # Force puppet to use our command for status
17
+ status => 'echo "Status"', # This will always exit 0 and therefore Puppet will think the service is running
18
+ provider => 'base',
19
+ }
20
+ ```
21
+
22
+ This will mean that the `pe-puppetserver` service is in the catalog for spec testing and will even allow you to try to restart it during acceptance tests without the service actually being present.
23
+
24
+ More info: https://github.com/dylanratcliffe/onceover#using-workarounds
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: onceover
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.3.1
4
+ version: 3.3.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dylan Ratcliffe
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-01-05 00:00:00.000000000 Z
11
+ date: 2018-01-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
@@ -341,13 +341,16 @@ files:
341
341
  - factsets/Windows_Server-2012r2-64.json
342
342
  - factsets/solaris-10_u9-sparc-64.json
343
343
  - factsets/solaris-11.2-sparc-64.json
344
+ - features/cache.feature
344
345
  - features/help.feature
345
346
  - features/init.feature
346
347
  - features/run.feature
347
348
  - features/show.feature
349
+ - features/step_definitions/cache.rb
348
350
  - features/step_definitions/common.rb
349
351
  - features/step_definitions/init.rb
350
352
  - features/step_definitions/run.rb
353
+ - features/support/cache_helper.rb
351
354
  - features/support/command_helper.rb
352
355
  - features/support/controlrepo_helper.rb
353
356
  - features/support/env.rb
@@ -379,6 +382,24 @@ files:
379
382
  - spec/fixtures/controlrepos/basic/site/role/manifests/database_server.pp
380
383
  - spec/fixtures/controlrepos/basic/site/role/manifests/example.pp
381
384
  - spec/fixtures/controlrepos/basic/site/role/manifests/webserver.pp
385
+ - spec/fixtures/controlrepos/caching/.gitignore
386
+ - spec/fixtures/controlrepos/caching/.travis.yml
387
+ - spec/fixtures/controlrepos/caching/Gemfile
388
+ - spec/fixtures/controlrepos/caching/Puppetfile
389
+ - spec/fixtures/controlrepos/caching/Rakefile
390
+ - spec/fixtures/controlrepos/caching/deleteme.txt
391
+ - spec/fixtures/controlrepos/caching/environment.conf
392
+ - spec/fixtures/controlrepos/caching/hieradata/common.yaml
393
+ - spec/fixtures/controlrepos/caching/hieradata/nodes/example-node.yaml
394
+ - spec/fixtures/controlrepos/caching/manifests/site.pp
395
+ - spec/fixtures/controlrepos/caching/site/profile/manifests/base.pp
396
+ - spec/fixtures/controlrepos/caching/site/profile/manifests/example.pp
397
+ - spec/fixtures/controlrepos/caching/site/role/manifests/database_server.pp
398
+ - spec/fixtures/controlrepos/caching/site/role/manifests/example.pp
399
+ - spec/fixtures/controlrepos/caching/site/role/manifests/webserver.pp
400
+ - spec/fixtures/controlrepos/caching/spec/factsets/README.md
401
+ - spec/fixtures/controlrepos/caching/spec/onceover.yaml
402
+ - spec/fixtures/controlrepos/caching/spec/pre_conditions/README.md
382
403
  - spec/fixtures/controlrepos/control_branch/Puppetfile
383
404
  - spec/fixtures/controlrepos/control_branch/environment.conf
384
405
  - spec/fixtures/controlrepos/minimal/environment.conf
@@ -416,7 +437,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
416
437
  version: '0'
417
438
  requirements: []
418
439
  rubyforge_project:
419
- rubygems_version: 2.5.2
440
+ rubygems_version: 2.6.14
420
441
  signing_key:
421
442
  specification_version: 4
422
443
  summary: Testing tools for Puppet controlrepos