puppet_litmus 0.18.2 → 0.21.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +1 -1
- data/exe/matrix_from_metadata +99 -0
- data/lib/puppet_litmus/inventory_manipulation.rb +12 -8
- data/lib/puppet_litmus/puppet_helpers.rb +44 -8
- data/lib/puppet_litmus/rake_helper.rb +163 -55
- data/lib/puppet_litmus/rake_tasks.rb +170 -140
- data/lib/puppet_litmus/spec_helper_acceptance.rb +4 -1
- data/lib/puppet_litmus/version.rb +1 -1
- data/spec/lib/puppet_litmus/puppet_helpers_spec.rb +47 -9
- data/spec/lib/puppet_litmus/{version_spec.rb → puppet_litmus_version_spec.rb} +0 -0
- data/spec/lib/puppet_litmus/rake_helper_spec.rb +40 -4
- data/spec/lib/puppet_litmus/rake_tasks_spec.rb +17 -10
- metadata +36 -54
@@ -35,6 +35,7 @@ module PuppetLitmus
|
|
35
35
|
options[:port] = node_config.dig('ssh', 'port') unless node_config.dig('ssh', 'port').nil?
|
36
36
|
options[:keys] = node_config.dig('ssh', 'private-key') unless node_config.dig('ssh', 'private-key').nil?
|
37
37
|
options[:password] = node_config.dig('ssh', 'password') unless node_config.dig('ssh', 'password').nil?
|
38
|
+
run_as = node_config.dig('ssh', 'run-as') unless node_config.dig('ssh', 'run-as').nil?
|
38
39
|
# Support both net-ssh 4 and 5.
|
39
40
|
# rubocop:disable Metrics/BlockNesting
|
40
41
|
options[:verify_host_key] = if node_config.dig('ssh', 'host-key-check').nil?
|
@@ -66,7 +67,9 @@ module PuppetLitmus
|
|
66
67
|
end
|
67
68
|
set :host, options[:host_name] || host
|
68
69
|
set :ssh_options, options
|
69
|
-
set :request_pty,
|
70
|
+
set :request_pty, false
|
71
|
+
set :sudo_password, options[:password] if run_as
|
72
|
+
puts "Running tests as #{run_as}" if run_as
|
70
73
|
elsif target_in_group(inventory_hash, ENV['TARGET_HOST'], 'winrm_nodes')
|
71
74
|
require 'winrm'
|
72
75
|
|
@@ -113,10 +113,10 @@ RSpec.describe PuppetLitmus::PuppetHelpers do
|
|
113
113
|
let(:local) { '/tmp' }
|
114
114
|
let(:remote) { '/remote_tmp' }
|
115
115
|
# Ignore rubocop because these hashes are representative of output from an external method and editing them leads to test failures.
|
116
|
-
# rubocop:disable Layout/
|
117
|
-
let(:result_success) {[{'target'=>'some.host','action'=>'upload','object'=>'C:\foo\bar.ps1','status'=>'success','value'=>{'_output'=>'Uploaded \'C:\foo\bar.ps1\' to \'some.host:C:\bar\''}}]}
|
118
|
-
let(:result_failure) {[{'target'=>'some.host','action'=>nil,'object'=>nil,'status'=>'failure','value'=>{'_error'=>{'kind'=>'puppetlabs.tasks/task_file_error','msg'=>'No such file or directory @ rb_sysopen - /nonexistant/file/path','details'=>{},'issue_code'=>'WRITE_ERROR'}}}]}
|
119
|
-
# rubocop:enable
|
116
|
+
# rubocop:disable Layout/SpaceAroundOperators, Layout/LineLength, Layout/SpaceAfterComma
|
117
|
+
let(:result_success) { [{ 'target'=>'some.host','action'=>'upload','object'=>'C:\foo\bar.ps1','status'=>'success','value'=>{ '_output'=>'Uploaded \'C:\foo\bar.ps1\' to \'some.host:C:\bar\'' } }] }
|
118
|
+
let(:result_failure) { [{ 'target'=>'some.host','action'=>nil,'object'=>nil,'status'=>'failure','value'=>{ '_error'=>{ 'kind'=>'puppetlabs.tasks/task_file_error','msg'=>'No such file or directory @ rb_sysopen - /nonexistant/file/path','details'=>{},'issue_code'=>'WRITE_ERROR' } } }] }
|
119
|
+
# rubocop:enable, Layout/SpaceAroundOperators, Layout/LineLength, Layout/SpaceAfterComma
|
120
120
|
|
121
121
|
it 'responds to run_shell' do
|
122
122
|
expect(self).to respond_to(:bolt_upload_file).with(2..3).arguments
|
@@ -212,11 +212,11 @@ RSpec.describe PuppetLitmus::PuppetHelpers do
|
|
212
212
|
let(:params) { { 'action' => 'install', 'name' => 'foo' } }
|
213
213
|
let(:config_data) { { 'modulepath' => File.join(Dir.pwd, 'spec', 'fixtures', 'modules') } }
|
214
214
|
# Ignore rubocop because these hashes are representative of output from an external method and editing them leads to test failures.
|
215
|
-
# rubocop:disable Layout/
|
216
|
-
let(:result_unstructured_task_success){ [{'target'=>'some.host','action'=>'task','object'=>'testtask::unstructured','status'=>'success','value'=>{'_output'=>'SUCCESS!'}}]}
|
217
|
-
let(:result_structured_task_success){ [{'target'=>'some.host','action'=>'task','object'=>'testtask::structured','status'=>'success','value'=>{'key1'=>'foo','key2'=>'bar'}}]}
|
218
|
-
let(:result_failure) {[{'target'=>'some.host','action'=>'task','object'=>'testtask::unstructured','status'=>'failure','value'=>{'_error'=>{'msg'=>'FAILURE!','kind'=>'puppetlabs.tasks/task-error','details'=>{'exitcode'=>123}}}}]}
|
219
|
-
# rubocop:enable Layout/
|
215
|
+
# rubocop:disable Layout/SpaceBeforeBlockBraces
|
216
|
+
let(:result_unstructured_task_success){ [{ 'target'=>'some.host','action'=>'task','object'=>'testtask::unstructured','status'=>'success','value'=>{ '_output'=>'SUCCESS!' } }] }
|
217
|
+
let(:result_structured_task_success){ [{ 'target'=>'some.host','action'=>'task','object'=>'testtask::structured','status'=>'success','value'=>{ 'key1'=>'foo','key2'=>'bar' } }] }
|
218
|
+
let(:result_failure) { [{ 'target'=>'some.host','action'=>'task','object'=>'testtask::unstructured','status'=>'failure','value'=>{ '_error'=>{ 'msg'=>'FAILURE!','kind'=>'puppetlabs.tasks/task-error','details'=>{ 'exitcode'=>123 } } } }] }
|
219
|
+
# rubocop:enable Layout/SpaceBeforeBlockBraces, Layout/SpaceAroundOperators, Layout/LineLength, Layout/SpaceAfterComma
|
220
220
|
|
221
221
|
it 'responds to bolt_run_task' do
|
222
222
|
expect(self).to respond_to(:run_bolt_task).with(2..3).arguments
|
@@ -286,4 +286,42 @@ RSpec.describe PuppetLitmus::PuppetHelpers do
|
|
286
286
|
end
|
287
287
|
end
|
288
288
|
end
|
289
|
+
|
290
|
+
describe '.write_file' do
|
291
|
+
let(:content) { 'foo' }
|
292
|
+
let(:destination) { '/tmp/foo' }
|
293
|
+
let(:owner) { 'foo:foo' }
|
294
|
+
let(:local_path) { '/tmp/local_foo' }
|
295
|
+
|
296
|
+
before(:each) do
|
297
|
+
allow_any_instance_of(File).to receive(:path).and_return(local_path)
|
298
|
+
end
|
299
|
+
|
300
|
+
it 'responds to write_file' do
|
301
|
+
expect(self).to respond_to(:write_file).with(2).arguments
|
302
|
+
end
|
303
|
+
|
304
|
+
context 'without setting owner' do
|
305
|
+
it 'call upload file with the correct params' do
|
306
|
+
stub_const('ENV', ENV.to_hash.merge('TARGET_HOST' => 'some.host'))
|
307
|
+
expect(self).to receive(:inventory_hash_from_inventory_file).and_return(inventory_hash)
|
308
|
+
result = instance_double('result')
|
309
|
+
allow(result).to receive(:first).and_return({ 'status' => 'success' })
|
310
|
+
expect(self).to receive(:upload_file).with(local_path, destination, 'some.host', options: {}, config: nil, inventory: inventory_hash).and_return(result)
|
311
|
+
result = write_file(content, destination)
|
312
|
+
expect(result).to be true
|
313
|
+
end
|
314
|
+
end
|
315
|
+
|
316
|
+
context 'when upload encounters an error' do
|
317
|
+
it 'call upload file with the correct params' do
|
318
|
+
stub_const('ENV', ENV.to_hash.merge('TARGET_HOST' => 'some.host'))
|
319
|
+
expect(self).to receive(:inventory_hash_from_inventory_file).and_return(inventory_hash)
|
320
|
+
result = instance_double('result')
|
321
|
+
allow(result).to receive(:first).and_return({ 'status' => 'failure', 'value' => 'foo error' })
|
322
|
+
expect(self).to receive(:upload_file).with(local_path, destination, 'some.host', options: {}, config: nil, inventory: inventory_hash).and_return(result)
|
323
|
+
expect { write_file(content, destination) }.to raise_error 'foo error'
|
324
|
+
end
|
325
|
+
end
|
326
|
+
end
|
289
327
|
end
|
File without changes
|
@@ -77,6 +77,42 @@ RSpec.describe PuppetLitmus::RakeHelper do
|
|
77
77
|
end
|
78
78
|
end
|
79
79
|
|
80
|
+
context 'with bulk tear_down' do
|
81
|
+
let(:inventory_hash) do
|
82
|
+
{ 'groups' =>
|
83
|
+
[{ 'name' => 'ssh_nodes', 'targets' =>
|
84
|
+
[
|
85
|
+
{ 'uri' => 'one.host', 'facts' => { 'provisioner' => 'abs', 'platform' => 'ubuntu-1604-x86_64', 'job_id' => 'iac-task-pid-21648' } },
|
86
|
+
{ 'uri' => 'two.host', 'facts' => { 'provisioner' => 'abs', 'platform' => 'ubuntu-1804-x86_64', 'job_id' => 'iac-task-pid-21648' } },
|
87
|
+
{ 'uri' => 'three.host', 'facts' => { 'provisioner' => 'abs', 'platform' => 'ubuntu-2004-x86_64', 'job_id' => 'iac-task-pid-21648' } },
|
88
|
+
{ 'uri' => 'four.host', 'facts' => { 'provisioner' => 'abs', 'platform' => 'ubuntu-2004-x86_64', 'job_id' => 'iac-task-pid-21649' } },
|
89
|
+
] }] }
|
90
|
+
end
|
91
|
+
let(:targets) { ['one.host'] }
|
92
|
+
let(:params) { { 'action' => 'tear_down', 'node_name' => 'one.host', 'inventory' => Dir.pwd } }
|
93
|
+
|
94
|
+
it 'calls function' do
|
95
|
+
allow(File).to receive(:directory?).with(File.join(described_class::DEFAULT_CONFIG_DATA['modulepath'], 'provision')).and_return(true)
|
96
|
+
allow_any_instance_of(BoltSpec::Run).to receive(:run_task).with('provision::abs', 'localhost', params, config: described_class::DEFAULT_CONFIG_DATA, inventory: nil).and_return(
|
97
|
+
[{ 'target' => 'localhost',
|
98
|
+
'action' => 'task',
|
99
|
+
'object' => 'provision::abs',
|
100
|
+
'status' => 'success',
|
101
|
+
'value' =>
|
102
|
+
{ 'status' => 'ok',
|
103
|
+
'removed' =>
|
104
|
+
['one.host',
|
105
|
+
'two.host',
|
106
|
+
'three.host'] } }],
|
107
|
+
)
|
108
|
+
results = tear_down_nodes(targets, inventory_hash)
|
109
|
+
expect(results.keys).to eq(['one.host', 'two.host', 'three.host'])
|
110
|
+
results.each_value do |value|
|
111
|
+
expect(value[0]['value']).to eq({ 'status' => 'ok' })
|
112
|
+
end
|
113
|
+
end
|
114
|
+
end
|
115
|
+
|
80
116
|
context 'with install_agent' do
|
81
117
|
let(:inventory_hash) do
|
82
118
|
{ 'groups' =>
|
@@ -100,20 +136,20 @@ RSpec.describe PuppetLitmus::RakeHelper do
|
|
100
136
|
[{ 'name' => 'ssh_nodes', 'targets' =>
|
101
137
|
[{ 'uri' => 'some.host', 'facts' => { 'provisioner' => 'docker', 'container_name' => 'foo', 'platform' => 'some.host' } }] }] }
|
102
138
|
end
|
103
|
-
let(:module_tar) { '
|
139
|
+
let(:module_tar) { 'foo.tar.gz' }
|
104
140
|
let(:targets) { ['some.host'] }
|
105
141
|
let(:uninstall_module_command) { 'puppet module uninstall foo --force' }
|
106
|
-
let(:install_module_command) { "puppet module install --module_repository 'https://forgeapi.
|
142
|
+
let(:install_module_command) { "puppet module install --module_repository 'https://forgeapi.example.com' #{module_tar}" }
|
107
143
|
|
108
144
|
it 'calls function' do
|
109
145
|
allow_any_instance_of(BoltSpec::Run).to receive(:upload_file).with(module_tar, module_tar, targets, options: {}, config: nil, inventory: inventory_hash).and_return([])
|
110
146
|
allow(File).to receive(:exist?).with(File.join(Dir.pwd, 'metadata.json')).and_return(true)
|
111
147
|
allow(File).to receive(:read).with(File.join(Dir.pwd, 'metadata.json')).and_return(JSON.dump({ name: 'foo' }))
|
112
|
-
allow(Open3).to receive(:capture3).with("bundle exec bolt file upload \"#{module_tar}\"
|
148
|
+
allow(Open3).to receive(:capture3).with("bundle exec bolt file upload \"#{module_tar}\" #{File.basename(module_tar)} --targets all --inventoryfile inventory.yaml")
|
113
149
|
.and_return(['success', '', 0])
|
114
150
|
allow_any_instance_of(BoltSpec::Run).to receive(:run_command).with(uninstall_module_command, targets, config: nil, inventory: inventory_hash).and_return([])
|
115
151
|
allow_any_instance_of(BoltSpec::Run).to receive(:run_command).with(install_module_command, targets, config: nil, inventory: inventory_hash).and_return([])
|
116
|
-
install_module(inventory_hash, nil, module_tar)
|
152
|
+
install_module(inventory_hash, nil, module_tar, 'https://forgeapi.example.com')
|
117
153
|
end
|
118
154
|
end
|
119
155
|
|
@@ -19,17 +19,17 @@ describe 'litmus rake tasks' do
|
|
19
19
|
'template-ref' => 'heads/master-0-g7827fc2' }
|
20
20
|
expect(File).to receive(:read).with(any_args).once
|
21
21
|
expect(JSON).to receive(:parse).with(any_args).and_return(metadata)
|
22
|
-
expect(
|
23
|
-
expect(
|
24
|
-
expect(
|
22
|
+
expect($stdout).to receive(:puts).with('redhat-5-x86_64')
|
23
|
+
expect($stdout).to receive(:puts).with('ubuntu-1404-x86_64')
|
24
|
+
expect($stdout).to receive(:puts).with('ubuntu-1804-x86_64')
|
25
25
|
Rake::Task['litmus:metadata'].invoke
|
26
26
|
end
|
27
27
|
end
|
28
28
|
|
29
29
|
context 'with litmus:install_modules_from_directory' do
|
30
30
|
let(:inventory_hash) { { 'groups' => [{ 'name' => 'ssh_nodes', 'nodes' => [{ 'uri' => 'some.host' }] }] } }
|
31
|
-
let(:
|
32
|
-
let(:dummy_tar) {
|
31
|
+
let(:target_dir) { File.join(Dir.pwd, 'spec/fixtures/modules') }
|
32
|
+
let(:dummy_tar) { 'spec/data/doot.tar.gz' }
|
33
33
|
|
34
34
|
it 'happy path' do
|
35
35
|
allow(File).to receive(:exist?).with(File.join(Dir.pwd, 'metadata.json')).and_return(true)
|
@@ -37,12 +37,13 @@ describe 'litmus rake tasks' do
|
|
37
37
|
|
38
38
|
stub_const('ENV', ENV.to_hash.merge('TARGET_HOST' => 'some.host'))
|
39
39
|
expect_any_instance_of(PuppetLitmus::InventoryManipulation).to receive(:inventory_hash_from_inventory_file).and_return(inventory_hash)
|
40
|
-
expect(File).to receive(:directory?).with(
|
41
|
-
expect_any_instance_of(Object).to receive(:
|
42
|
-
expect(
|
40
|
+
expect(File).to receive(:directory?).with(target_dir).and_return(true)
|
41
|
+
expect_any_instance_of(Object).to receive(:build_modules_in_dir).with(target_dir).and_return([dummy_tar])
|
42
|
+
expect($stdout).to receive(:puts).with(start_with('Building all modules in'))
|
43
43
|
expect_any_instance_of(Object).to receive(:upload_file).once.and_return([])
|
44
|
-
expect(
|
44
|
+
expect($stdout).to receive(:puts).with(start_with('Installing \'spec/data/doot.tar.gz\''))
|
45
45
|
expect_any_instance_of(Object).to receive(:run_command).twice.and_return([])
|
46
|
+
expect($stdout).to receive(:puts).with(start_with('Installed \'spec/data/doot.tar.gz\''))
|
46
47
|
Rake::Task['litmus:install_modules_from_directory'].invoke('./spec/fixtures/modules')
|
47
48
|
end
|
48
49
|
end
|
@@ -67,7 +68,13 @@ describe 'litmus rake tasks' do
|
|
67
68
|
|
68
69
|
allow(File).to receive(:directory?).with(any_args).and_return(true)
|
69
70
|
allow_any_instance_of(BoltSpec::Run).to receive(:run_task).with(any_args).and_return(results)
|
70
|
-
|
71
|
+
allow_any_instance_of(PuppetLitmus::InventoryManipulation).to receive(:inventory_hash_from_inventory_file).with(any_args).and_return({})
|
72
|
+
allow_any_instance_of(PuppetLitmus::RakeHelper).to receive(:check_connectivity?).with(any_args).and_return(true)
|
73
|
+
|
74
|
+
expect($stdout).to receive(:puts).with('Provisioning centos:7 using docker provisioner.')
|
75
|
+
expect($stdout).to receive(:puts).with("Successfully provisioned centos:7 using docker\n")
|
76
|
+
expect($stdout).to receive(:puts).with('localhost:2222, centos:7')
|
77
|
+
|
71
78
|
Rake::Task['litmus:provision'].invoke('docker', 'centos:7')
|
72
79
|
end
|
73
80
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: puppet_litmus
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.21.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Puppet, Inc.
|
8
|
-
autorequire:
|
9
|
-
bindir:
|
8
|
+
autorequire:
|
9
|
+
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-01-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bolt
|
@@ -34,16 +34,22 @@ dependencies:
|
|
34
34
|
name: puppet-modulebuilder
|
35
35
|
requirement: !ruby/object:Gem::Requirement
|
36
36
|
requirements:
|
37
|
-
- - "
|
37
|
+
- - ">="
|
38
|
+
- !ruby/object:Gem::Version
|
39
|
+
version: 0.2.1
|
40
|
+
- - "<"
|
38
41
|
- !ruby/object:Gem::Version
|
39
|
-
version:
|
42
|
+
version: 1.0.0
|
40
43
|
type: :runtime
|
41
44
|
prerelease: false
|
42
45
|
version_requirements: !ruby/object:Gem::Requirement
|
43
46
|
requirements:
|
44
|
-
- - "
|
47
|
+
- - ">="
|
48
|
+
- !ruby/object:Gem::Version
|
49
|
+
version: 0.2.1
|
50
|
+
- - "<"
|
45
51
|
- !ruby/object:Gem::Version
|
46
|
-
version:
|
52
|
+
version: 1.0.0
|
47
53
|
- !ruby/object:Gem::Dependency
|
48
54
|
name: tty-spinner
|
49
55
|
requirement: !ruby/object:Gem::Requirement
|
@@ -73,7 +79,7 @@ dependencies:
|
|
73
79
|
version: '1.34'
|
74
80
|
- - "<"
|
75
81
|
- !ruby/object:Gem::Version
|
76
|
-
version:
|
82
|
+
version: 3.0.0
|
77
83
|
type: :runtime
|
78
84
|
prerelease: false
|
79
85
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -83,23 +89,23 @@ dependencies:
|
|
83
89
|
version: '1.34'
|
84
90
|
- - "<"
|
85
91
|
- !ruby/object:Gem::Version
|
86
|
-
version:
|
92
|
+
version: 3.0.0
|
87
93
|
- !ruby/object:Gem::Dependency
|
88
|
-
name:
|
94
|
+
name: retryable
|
89
95
|
requirement: !ruby/object:Gem::Requirement
|
90
96
|
requirements:
|
91
|
-
- - "
|
97
|
+
- - "~>"
|
92
98
|
- !ruby/object:Gem::Version
|
93
|
-
version: '0'
|
99
|
+
version: '3.0'
|
94
100
|
type: :runtime
|
95
101
|
prerelease: false
|
96
102
|
version_requirements: !ruby/object:Gem::Requirement
|
97
103
|
requirements:
|
98
|
-
- - "
|
104
|
+
- - "~>"
|
99
105
|
- !ruby/object:Gem::Version
|
100
|
-
version: '0'
|
106
|
+
version: '3.0'
|
101
107
|
- !ruby/object:Gem::Dependency
|
102
|
-
name:
|
108
|
+
name: parallel
|
103
109
|
requirement: !ruby/object:Gem::Requirement
|
104
110
|
requirements:
|
105
111
|
- - ">="
|
@@ -113,7 +119,7 @@ dependencies:
|
|
113
119
|
- !ruby/object:Gem::Version
|
114
120
|
version: '0'
|
115
121
|
- !ruby/object:Gem::Dependency
|
116
|
-
name:
|
122
|
+
name: rspec
|
117
123
|
requirement: !ruby/object:Gem::Requirement
|
118
124
|
requirements:
|
119
125
|
- - ">="
|
@@ -127,7 +133,7 @@ dependencies:
|
|
127
133
|
- !ruby/object:Gem::Version
|
128
134
|
version: '0'
|
129
135
|
- !ruby/object:Gem::Dependency
|
130
|
-
name:
|
136
|
+
name: honeycomb-beeline
|
131
137
|
requirement: !ruby/object:Gem::Requirement
|
132
138
|
requirements:
|
133
139
|
- - ">="
|
@@ -141,55 +147,31 @@ dependencies:
|
|
141
147
|
- !ruby/object:Gem::Version
|
142
148
|
version: '0'
|
143
149
|
- !ruby/object:Gem::Dependency
|
144
|
-
name:
|
145
|
-
requirement: !ruby/object:Gem::Requirement
|
146
|
-
requirements:
|
147
|
-
- - ">="
|
148
|
-
- !ruby/object:Gem::Version
|
149
|
-
version: '1.2'
|
150
|
-
- - "<"
|
151
|
-
- !ruby/object:Gem::Version
|
152
|
-
version: '2.0'
|
153
|
-
type: :runtime
|
154
|
-
prerelease: false
|
155
|
-
version_requirements: !ruby/object:Gem::Requirement
|
156
|
-
requirements:
|
157
|
-
- - ">="
|
158
|
-
- !ruby/object:Gem::Version
|
159
|
-
version: '1.2'
|
160
|
-
- - "<"
|
161
|
-
- !ruby/object:Gem::Version
|
162
|
-
version: '2.0'
|
163
|
-
- !ruby/object:Gem::Dependency
|
164
|
-
name: bcrypt_pbkdf
|
150
|
+
name: rspec_honeycomb_formatter
|
165
151
|
requirement: !ruby/object:Gem::Requirement
|
166
152
|
requirements:
|
167
153
|
- - ">="
|
168
154
|
- !ruby/object:Gem::Version
|
169
|
-
version: '
|
170
|
-
- - "<"
|
171
|
-
- !ruby/object:Gem::Version
|
172
|
-
version: '2.0'
|
155
|
+
version: '0'
|
173
156
|
type: :runtime
|
174
157
|
prerelease: false
|
175
158
|
version_requirements: !ruby/object:Gem::Requirement
|
176
159
|
requirements:
|
177
160
|
- - ">="
|
178
161
|
- !ruby/object:Gem::Version
|
179
|
-
version: '
|
180
|
-
- - "<"
|
181
|
-
- !ruby/object:Gem::Version
|
182
|
-
version: '2.0'
|
162
|
+
version: '0'
|
183
163
|
description: " Providing a simple command line tool for puppet content creators,
|
184
164
|
to enable simple and complex test deployments.\n"
|
185
165
|
email:
|
186
166
|
- info@puppet.com
|
187
|
-
executables:
|
167
|
+
executables:
|
168
|
+
- matrix_from_metadata
|
188
169
|
extensions: []
|
189
170
|
extra_rdoc_files: []
|
190
171
|
files:
|
191
172
|
- LICENSE
|
192
173
|
- README.md
|
174
|
+
- exe/matrix_from_metadata
|
193
175
|
- lib/puppet_litmus.rb
|
194
176
|
- lib/puppet_litmus/inventory_manipulation.rb
|
195
177
|
- lib/puppet_litmus/puppet_helpers.rb
|
@@ -203,16 +185,16 @@ files:
|
|
203
185
|
- spec/data/jim.yaml
|
204
186
|
- spec/lib/puppet_litmus/inventory_manipulation_spec.rb
|
205
187
|
- spec/lib/puppet_litmus/puppet_helpers_spec.rb
|
188
|
+
- spec/lib/puppet_litmus/puppet_litmus_version_spec.rb
|
206
189
|
- spec/lib/puppet_litmus/rake_helper_spec.rb
|
207
190
|
- spec/lib/puppet_litmus/rake_tasks_spec.rb
|
208
191
|
- spec/lib/puppet_litmus/util_spec.rb
|
209
|
-
- spec/lib/puppet_litmus/version_spec.rb
|
210
192
|
- spec/spec_helper.rb
|
211
193
|
homepage: https://github.com/puppetlabs/puppet_litmus
|
212
194
|
licenses:
|
213
195
|
- Apache-2.0
|
214
196
|
metadata: {}
|
215
|
-
post_install_message:
|
197
|
+
post_install_message:
|
216
198
|
rdoc_options: []
|
217
199
|
require_paths:
|
218
200
|
- lib
|
@@ -220,22 +202,22 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
220
202
|
requirements:
|
221
203
|
- - ">="
|
222
204
|
- !ruby/object:Gem::Version
|
223
|
-
version:
|
205
|
+
version: 2.5.0
|
224
206
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
225
207
|
requirements:
|
226
208
|
- - ">="
|
227
209
|
- !ruby/object:Gem::Version
|
228
210
|
version: '0'
|
229
211
|
requirements: []
|
230
|
-
rubygems_version: 3.1.
|
231
|
-
signing_key:
|
212
|
+
rubygems_version: 3.1.4
|
213
|
+
signing_key:
|
232
214
|
specification_version: 4
|
233
215
|
summary: Providing a simple command line tool for puppet content creators, to enable
|
234
216
|
simple and complex test deployments.
|
235
217
|
test_files:
|
236
218
|
- spec/spec_helper.rb
|
237
219
|
- spec/lib/puppet_litmus/rake_tasks_spec.rb
|
238
|
-
- spec/lib/puppet_litmus/
|
220
|
+
- spec/lib/puppet_litmus/puppet_litmus_version_spec.rb
|
239
221
|
- spec/lib/puppet_litmus/util_spec.rb
|
240
222
|
- spec/lib/puppet_litmus/inventory_manipulation_spec.rb
|
241
223
|
- spec/lib/puppet_litmus/rake_helper_spec.rb
|