beaker 1.12.1 → 1.12.2

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.
@@ -198,6 +198,9 @@ module Beaker
198
198
  @cmd_options[:log_level] = bool ? 'debug' : 'info'
199
199
  end
200
200
 
201
+ opts.on '--package-proxy URL', 'Set proxy url for package managers (yum and apt)' do |value|
202
+ @cmd_options[:package_proxy] = value
203
+ end
201
204
  end
202
205
 
203
206
  end
@@ -119,6 +119,44 @@ module Beaker
119
119
  git_opts
120
120
  end
121
121
 
122
+ #Add the 'default' role to the host determined to be the default. If a host already has the role default then
123
+ #do nothing. If more than a single host has the role 'default', raise error.
124
+ #Default host determined to be 1) the only host in a single host configuration, 2) the host with the role 'master'
125
+ #defined.
126
+ #@param [Hash] hosts A hash of hosts, each identified by a String name. Each named host will have an Array of roles
127
+ def set_default_host!(hosts)
128
+ default = []
129
+ master = []
130
+ default_host_name = nil
131
+
132
+ #look through the hosts and find any hosts with role 'default' and any hosts with role 'master'
133
+ hosts.each_key do |name|
134
+ host = hosts[name]
135
+ if host[:roles].include?('default')
136
+ default << name
137
+ elsif host[:roles].include?('master')
138
+ master << name
139
+ end
140
+ end
141
+
142
+ if not default.empty?
143
+ #we already have a default set, do nothing
144
+ if default.length > 1
145
+ parser_error "Only one host may have the role 'default', default roles assigned to #{default}"
146
+ end
147
+ else
148
+ #no default set, let's make one
149
+ if not master.empty? and master.length == 1
150
+ default_host_name = master[0]
151
+ elsif hosts.length == 1
152
+ default_host_name = hosts[0].keys[0]
153
+ end
154
+ if default_host_name
155
+ hosts[default_host_name][:roles] << 'default'
156
+ end
157
+ end
158
+ end
159
+
122
160
  #Constructor for Parser
123
161
  #
124
162
  def initialize
@@ -205,6 +243,7 @@ module Beaker
205
243
  # - that one and only one master is defined per set of hosts
206
244
  # - that solaris/windows/aix hosts are agent only for PE tests OR
207
245
  # - that windows/aix host are agent only if type is not 'pe'
246
+ # - sets the default host based upon machine definitions
208
247
  #
209
248
  #@raise [ArgumentError] Raise if argument/options values are invalid
210
249
  def normalize_args
@@ -303,6 +342,9 @@ module Beaker
303
342
  end
304
343
  end
305
344
 
345
+ #set the default role
346
+ set_default_host!(@options[:HOSTS])
347
+
306
348
  end
307
349
 
308
350
  private
@@ -42,7 +42,8 @@ module Beaker
42
42
  ENV['q_verify_packages'] || 'y',
43
43
  :q_puppetdb_password =>
44
44
  ENV['q_puppetdb_password'] || '~!@#$%^*-/ aZ',
45
- }
45
+ },
46
+ :package_proxy => ENV['BEAKER_PACKAGE_PROXY']
46
47
  }.delete_if {|key, value| value.nil? or value.empty? })
47
48
  end
48
49
 
@@ -73,6 +74,7 @@ module Beaker
73
74
  :fail_mode => 'slow',
74
75
  :timesync => false,
75
76
  :repo_proxy => false,
77
+ :package_proxy => false,
76
78
  :add_el_extras => false,
77
79
  :add_master_entry => false,
78
80
  :consoleport => 443,
@@ -1,9 +1,5 @@
1
- [ 'repetition', 'error_handler', 'host_role_parser', 'timed' ].each do |file|
2
- begin
3
- require "beaker/shared/#{file}"
4
- rescue LoadError
5
- require File.expand_path(File.join(File.dirname(__FILE__), 'shared', file))
6
- end
1
+ [ 'repetition', 'error_handler', 'host_role_parser', 'timed' ].each do |lib|
2
+ require "beaker/shared/#{lib}"
7
3
  end
8
4
  module Beaker
9
5
  module Shared
@@ -1,9 +1,5 @@
1
- %w( host answers dsl ).each do |lib|
2
- begin
3
- require "beaker/#{lib}"
4
- rescue LoadError
5
- require File.expand_path(File.join(File.dirname(__FILE__), lib))
6
- end
1
+ [ 'host', 'answers', 'dsl' ].each do |lib|
2
+ require "beaker/#{lib}"
7
3
  end
8
4
 
9
5
  require 'tempfile'
@@ -1,12 +1,8 @@
1
1
  # -*- coding: utf-8 -*-
2
2
  require 'rexml/document'
3
3
  require 'fileutils'
4
- %w(test_case logger).each do |lib|
5
- begin
6
- require "beaker/#{lib}"
7
- rescue LoadError
8
- require File.expand_path(File.join(File.dirname(__FILE__), lib))
9
- end
4
+ [ 'test_case', 'logger' ].each do |lib|
5
+ require "beaker/#{lib}"
10
6
  end
11
7
 
12
8
  module Beaker
@@ -1,5 +1,5 @@
1
1
  module Beaker
2
2
  module Version
3
- STRING = '1.12.1'
3
+ STRING = '1.12.2'
4
4
  end
5
5
  end
@@ -16,7 +16,7 @@ describe ClassMixedWithDSLHelpers do
16
16
  let( :host ) { double.as_null_object }
17
17
  let( :result ) { Beaker::Result.new( host, command ) }
18
18
 
19
- let( :master ) { make_host( 'master', :roles => %w( master agent ) ) }
19
+ let( :master ) { make_host( 'master', :roles => %w( master agent default) ) }
20
20
  let( :agent ) { make_host( 'agent', :roles => %w( agent ) ) }
21
21
  let( :custom ) { make_host( 'custom', :roles => %w( custom agent ) ) }
22
22
  let( :dash ) { make_host( 'console', :roles => %w( dashboard agent ) ) }
@@ -557,6 +557,33 @@ describe ClassMixedWithDSLHelpers do
557
557
  end
558
558
  end
559
559
 
560
+ describe 'version_is_less' do
561
+
562
+ it 'reports 3.0.0-160-gac44cfb is not less than 3.0.0' do
563
+ expect( subject.version_is_less( '3.0.0-160-gac44cfb', '3.0.0' ) ).to be === false
564
+ end
565
+
566
+ it 'reports 3.0.0-160-gac44cfb is not less than 2.8.2' do
567
+ expect( subject.version_is_less( '3.0.0-160-gac44cfb', '2.8.2' ) ).to be === false
568
+ end
569
+
570
+ it 'reports 3.0.0 is less than 3.0.0-160-gac44cfb' do
571
+ expect( subject.version_is_less( '3.0.0', '3.0.0-160-gac44cfb' ) ).to be === true
572
+ end
573
+
574
+ it 'reports 2.8.2 is less than 3.0.0-160-gac44cfb' do
575
+ expect( subject.version_is_less( '2.8.2', '3.0.0-160-gac44cfb' ) ).to be === true
576
+ end
577
+
578
+ it 'reports 2.8 is less than 3.0.0-160-gac44cfb' do
579
+ expect( subject.version_is_less( '2.8', '3.0.0-160-gac44cfb' ) ).to be === true
580
+ end
581
+
582
+ it 'reports 2.8 is less than 2.9' do
583
+ expect( subject.version_is_less( '2.8', '2.9' ) ).to be === true
584
+ end
585
+ end
586
+
560
587
  describe "#stop_agent_on" do
561
588
  let( :result_fail ) { Beaker::Result.new( [], "" ) }
562
589
  let( :result_pass ) { Beaker::Result.new( [], "" ) }
@@ -101,33 +101,6 @@ describe ClassMixedWithDSLInstallUtils do
101
101
  end
102
102
  end
103
103
 
104
- describe 'version_is_less' do
105
-
106
- it 'reports 3.0.0-160-gac44cfb is not less than 3.0.0' do
107
- expect( subject.version_is_less( '3.0.0-160-gac44cfb', '3.0.0' ) ).to be === false
108
- end
109
-
110
- it 'reports 3.0.0-160-gac44cfb is not less than 2.8.2' do
111
- expect( subject.version_is_less( '3.0.0-160-gac44cfb', '2.8.2' ) ).to be === false
112
- end
113
-
114
- it 'reports 3.0.0 is less than 3.0.0-160-gac44cfb' do
115
- expect( subject.version_is_less( '3.0.0', '3.0.0-160-gac44cfb' ) ).to be === true
116
- end
117
-
118
- it 'reports 2.8.2 is less than 3.0.0-160-gac44cfb' do
119
- expect( subject.version_is_less( '2.8.2', '3.0.0-160-gac44cfb' ) ).to be === true
120
- end
121
-
122
- it 'reports 2.8 is less than 3.0.0-160-gac44cfb' do
123
- expect( subject.version_is_less( '2.8', '3.0.0-160-gac44cfb' ) ).to be === true
124
- end
125
-
126
- it 'reports 2.8 is less than 2.9' do
127
- expect( subject.version_is_less( '2.8', '2.9' ) ).to be === true
128
- end
129
- end
130
-
131
104
  describe 'installer_cmd' do
132
105
 
133
106
  it 'generates a windows PE install command for a windows host' do
@@ -243,18 +216,20 @@ describe ClassMixedWithDSLInstallUtils do
243
216
 
244
217
  subject.should_not_receive(:scp_to)
245
218
  subject.should_not_receive(:on)
219
+ subject.stub(:version_is_less).with('3.2.0', '3.2.0').and_return(false)
246
220
  subject.fetch_puppet( [unixhost], {} )
247
221
  end
248
222
  end
249
223
 
250
224
  describe 'do_install' do
251
- it 'can preform a simple installation' do
225
+ it 'can perform a simple installation' do
252
226
  subject.stub( :on ).and_return( Beaker::Result.new( {}, '' ) )
253
227
  subject.stub( :fetch_puppet ).and_return( true )
254
228
  subject.stub( :create_remote_file ).and_return( true )
255
229
  subject.stub( :sign_certificate_for ).and_return( true )
256
230
  subject.stub( :stop_agent_on ).and_return( true )
257
231
  subject.stub( :sleep_until_puppetdb_started ).and_return( true )
232
+ subject.stub( :version_is_less ).with('3.0', '3.0').and_return( false )
258
233
  subject.stub( :wait_for_host_in_dashboard ).and_return( true )
259
234
  subject.stub( :puppet_agent ).and_return do |arg|
260
235
  "puppet agent #{arg}"
@@ -402,6 +377,7 @@ describe ClassMixedWithDSLInstallUtils do
402
377
  the_hosts = [ hosts[0].dup, hosts[1].dup, hosts[2].dup ]
403
378
  subject.stub( :hosts ).and_return( the_hosts )
404
379
  subject.stub( :options ).and_return( {} )
380
+ subject.stub( :version_is_less ).with('2.8', '3.0').and_return( true )
405
381
  version = version_win = '2.8'
406
382
  path = "/path/to/upgradepkg"
407
383
  subject.should_receive( :do_install ).with( the_hosts, { :type => :upgrade } )
@@ -417,6 +393,7 @@ describe ClassMixedWithDSLInstallUtils do
417
393
  the_hosts = [ hosts[0].dup, hosts[1].dup, hosts[2].dup ]
418
394
  subject.stub( :hosts ).and_return( the_hosts )
419
395
  subject.stub( :options ).and_return( {} )
396
+ subject.stub( :version_is_less ).with('3.1', '3.0').and_return( false )
420
397
  version = version_win = '3.1'
421
398
  path = "/path/to/upgradepkg"
422
399
  subject.should_receive( :do_install ).with( the_hosts, { :type => :upgrade } )
@@ -432,6 +409,7 @@ describe ClassMixedWithDSLInstallUtils do
432
409
  the_hosts = [ hosts[0].dup, hosts[1].dup, hosts[2].dup ]
433
410
  subject.stub( :hosts ).and_return( the_hosts )
434
411
  subject.stub( :options ).and_return( {} )
412
+ subject.stub( :version_is_less ).with('2.8', '3.0').and_return( true )
435
413
  version = version_win = '2.8'
436
414
  path = "/path/to/upgradepkg"
437
415
  subject.should_receive( :do_install ).with( the_hosts, { :type => :upgrade } )
@@ -39,19 +39,9 @@ describe ClassMixedWithDSLRoles do
39
39
  end
40
40
  it 'raises an error if there is more than one master' do
41
41
  @hosts = [ master, monolith ]
42
- subject.should_receive( :hosts ).exactly( 5 ).times.and_return( hosts )
42
+ subject.should_receive( :hosts ).exactly( 1 ).times.and_return( hosts )
43
43
  expect { subject.master }.to raise_error Beaker::DSL::FailTest
44
44
  end
45
- it 'and raises an error if there is no master and no default' do
46
- @hosts = [ agent1, agent2, custom ]
47
- subject.should_receive( :hosts ).exactly( 4 ).times.and_return( hosts )
48
- expect { subject.master }.to raise_error Beaker::DSL::FailTest
49
- end
50
- it 'returns the default when there is no master' do
51
- @hosts = [ agent1 ]
52
- subject.should_receive( :hosts ).exactly( 3 ).times.and_return( hosts )
53
- expect( subject.master ).to be == agent1
54
- end
55
45
  end
56
46
  describe '#dashboard' do
57
47
  it 'returns the dashboard if there is one' do
@@ -90,23 +80,18 @@ describe ClassMixedWithDSLRoles do
90
80
  describe '#default' do
91
81
  it 'returns the default host when one is specified' do
92
82
  @hosts = [ db, agent1, agent2, default, master]
93
- subject.should_receive( :hosts ).exactly( 3 ).times.and_return( hosts )
83
+ subject.should_receive( :hosts ).exactly( 1 ).times.and_return( hosts )
94
84
  expect( subject.default ).to be == default
95
85
  end
96
- it 'returns the master if no default host is set' do
97
- @hosts = [ db, agent1, agent2, master]
98
- subject.should_receive( :hosts ).exactly( 4 ).times.and_return( hosts )
99
- expect( subject.default ).to be == master
100
- end
101
- it 'returns the only host when only a single host is defined' do
102
- @hosts = [ agent1 ]
103
- subject.should_receive( :hosts ).exactly( 2 ).times.and_return( hosts )
104
- expect( subject.default ).to be == agent1
86
+ it 'raises an error if there is more than one default' do
87
+ @hosts = [ db, monolith, default, default ]
88
+ subject.should_receive( :hosts ).and_return( hosts )
89
+ expect { subject.database }.to raise_error Beaker::DSL::FailTest
105
90
  end
106
- it 'raises an error when there is no default (no default, no master, no single host)' do
107
- @hosts = [ agent1, agent2 ]
108
- subject.should_receive( :hosts ).exactly( 3 ).times.and_return( hosts )
109
- expect{ subject.default }.to raise_error Beaker::DSL::FailTest
91
+ it 'and raises an error if there is no default' do
92
+ @hosts = [ agent1, agent2, custom ]
93
+ subject.should_receive( :hosts ).and_return( hosts )
94
+ expect { subject.database }.to raise_error Beaker::DSL::FailTest
110
95
  end
111
96
  end
112
97
  end
@@ -23,14 +23,6 @@ describe ClassMixedWithDSLWrappers do
23
23
  end
24
24
  end
25
25
 
26
- describe '#razor' do
27
- it 'should split out the options and pass "razor" as first arg to Command' do
28
- Beaker::Command.should_receive( :new ).
29
- with('razor', [ '-p' ], opts)
30
- subject.razor( '-p' )
31
- end
32
- end
33
-
34
26
  describe '#puppet' do
35
27
  it 'should split out the options and pass "puppet <blank>" to Command' do
36
28
  merged_opts = {}
@@ -418,4 +418,30 @@ describe Beaker do
418
418
 
419
419
  end
420
420
 
421
+ context "package_proxy" do
422
+
423
+ subject { dummy_class.new }
424
+ proxyurl = "http://192.168.2.100:3128"
425
+
426
+ it "can set proxy config on a debian/ubuntu host" do
427
+ host = make_host('name', { :platform => 'ubuntu' } )
428
+
429
+ Beaker::Command.should_receive( :new ).with( "echo 'Acquire::http::Proxy \"#{proxyurl}/\";' >> /etc/apt/apt.conf.d/10proxy" ).once
430
+ host.should_receive( :exec ).once
431
+
432
+ subject.package_proxy(host, options.merge( {'package_proxy' => proxyurl}) )
433
+ end
434
+
435
+ it "can set proxy config on a redhat/centos host" do
436
+ host = make_host('name', { :platform => 'centos' } )
437
+
438
+ Beaker::Command.should_receive( :new ).with( "echo 'proxy=#{proxyurl}/' >> /etc/yum.conf" ).once
439
+ host.should_receive( :exec ).once
440
+
441
+ subject.package_proxy(host, options.merge( {'package_proxy' => proxyurl}) )
442
+
443
+ end
444
+
445
+ end
446
+
421
447
  end
@@ -6,14 +6,14 @@ module Beaker
6
6
 
7
7
  let(:parser) {Beaker::Options::CommandLineParser.new}
8
8
  let(:test_opts) {["-h", "vcloud.cfg", "--debug", "--tests", "test.rb", "--help"]}
9
- let(:full_opts) {["--hosts", "host.cfg", "--options", "opts_file", "--type", "pe", "--helper", "path_to_helper", "--load-path", "load_path", "--tests", "test1.rb,test2.rb,test3.rb", "--pre-suite", "pre_suite.rb", "--post-suite", "post_suite.rb", "--no-provision", "--preserve-hosts", "always", "--root-keys", "--keyfile", "../.ssh/id_rsa", "--install", "gitrepopath", "-m", "module", "-q", "--no-xml", "--dry-run", "--no-ntp", "--repo-proxy", "--add-el-extras", "--config", "anotherfile.cfg", "--fail-mode", "fast", "--no-color", "--version", "--log-level", "info"]}
9
+ let(:full_opts) {["--hosts", "host.cfg", "--options", "opts_file", "--type", "pe", "--helper", "path_to_helper", "--load-path", "load_path", "--tests", "test1.rb,test2.rb,test3.rb", "--pre-suite", "pre_suite.rb", "--post-suite", "post_suite.rb", "--no-provision", "--preserve-hosts", "always", "--root-keys", "--keyfile", "../.ssh/id_rsa", "--install", "gitrepopath", "-m", "module", "-q", "--no-xml", "--dry-run", "--no-ntp", "--repo-proxy", "--add-el-extras", "--config", "anotherfile.cfg", "--fail-mode", "fast", "--no-color", "--version", "--log-level", "info", "--package-proxy", "http://192.168.100.1:3128"]}
10
10
 
11
11
  it "can correctly read command line input" do
12
12
  expect(parser.parse(test_opts)).to be === {:hosts_file=>"vcloud.cfg", :log_level=>"debug", :tests=>"test.rb", :help=>true}
13
13
  end
14
14
 
15
15
  it "supports all our command line options" do
16
- expect(parser.parse(full_opts)).to be === {:hosts_file=>"anotherfile.cfg", :options_file=>"opts_file", :type=>"pe", :helper=>"path_to_helper", :load_path=>"load_path", :tests=>"test1.rb,test2.rb,test3.rb", :pre_suite=>"pre_suite.rb", :post_suite=>"post_suite.rb", :provision=>false, :preserve_hosts=>"always", :root_keys=>true, :keyfile=>"../.ssh/id_rsa", :install=>"gitrepopath", :modules=>"module", :quiet=>true, :xml=>false, :dry_run=>true, :timesync=>false, :repo_proxy=>true, :add_el_extras=>true, :fail_mode=>"fast", :color=>false, :version=>true, :log_level=>"info"}
16
+ expect(parser.parse(full_opts)).to be === {:hosts_file=>"anotherfile.cfg", :options_file=>"opts_file", :type=>"pe", :helper=>"path_to_helper", :load_path=>"load_path", :tests=>"test1.rb,test2.rb,test3.rb", :pre_suite=>"pre_suite.rb", :post_suite=>"post_suite.rb", :provision=>false, :preserve_hosts=>"always", :root_keys=>true, :keyfile=>"../.ssh/id_rsa", :install=>"gitrepopath", :modules=>"module", :quiet=>true, :xml=>false, :dry_run=>true, :timesync=>false, :repo_proxy=>true, :add_el_extras=>true, :fail_mode=>"fast", :color=>false, :version=>true, :log_level=>"info", :package_proxy => "http://192.168.100.1:3128"}
17
17
  end
18
18
 
19
19
  it "can produce a usage description" do
@@ -163,7 +163,7 @@ module Beaker
163
163
  end
164
164
 
165
165
  it "ensures that fail-mode is one of fast/slow" do
166
- args = ["-h", hosts_path, "--log-level", "debug", "--fail-mode", "nope"]
166
+ args = ["-h", hosts_path, "--log-level", "debug", "--fail-mode", "nope"]
167
167
  expect{parser.parse_args(args)}.to raise_error(ArgumentError)
168
168
  end
169
169
 
@@ -173,6 +173,40 @@ module Beaker
173
173
  end
174
174
  end
175
175
 
176
+ context "set_default_host!" do
177
+
178
+ let(:roles) { @roles || [ [ "master", "agent", "database"], ["agent"]] }
179
+ let(:node1) { { :node1 => { :roles => roles[0]}} }
180
+ let(:node2) { { :node2 => { :roles => roles[1]}} }
181
+ let(:hosts) { node1.merge(node2) }
182
+
183
+ it "does nothing if the default host is already set" do
184
+ @roles = [ ["master"], ["agent", "default"] ]
185
+ parser.set_default_host!(hosts)
186
+ expect( hosts[:node1][:roles].include?('default') ).to be === false
187
+ expect( hosts[:node2][:roles].include?('default') ).to be === true
188
+ end
189
+
190
+ it "makes the master default" do
191
+ @roles = [ ["master"], ["agent"] ]
192
+ parser.set_default_host!(hosts)
193
+ expect( hosts[:node1][:roles].include?('default') ).to be === true
194
+ expect( hosts[:node2][:roles].include?('default') ).to be === false
195
+ end
196
+
197
+ it "makes a single node default" do
198
+ @roles = [ ["master", "database", "dashboard", "agent"] ]
199
+ parser.set_default_host!(node1)
200
+ expect( hosts[:node1][:roles].include?('default') ).to be === true
201
+ end
202
+
203
+ it "raises an error if two nodes are defined as default" do
204
+ @roles = [ ["master", "default"], ["default"] ]
205
+ expect{ parser.set_default_host!(hosts) }.to raise_error(ArgumentError)
206
+ end
207
+
208
+ end
209
+
176
210
  describe "normalize_args" do
177
211
  let(:hosts) do
178
212
  {
metadata CHANGED
@@ -1,317 +1,215 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: beaker
3
- version: !ruby/object:Gem::Version
4
- version: 1.12.1
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.12.2
5
5
  platform: ruby
6
- authors:
6
+ authors:
7
7
  - Puppetlabs
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-05-30 00:00:00.000000000 Z
12
- dependencies:
13
- - !ruby/object:Gem::Dependency
11
+
12
+ date: 2014-06-12 00:00:00 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
14
15
  name: minitest
15
- requirement: !ruby/object:Gem::Requirement
16
- requirements:
17
- - - ~>
18
- - !ruby/object:Gem::Version
19
- version: '4.0'
20
- type: :development
21
16
  prerelease: false
22
- version_requirements: !ruby/object:Gem::Requirement
23
- requirements:
24
- - - ~>
25
- - !ruby/object:Gem::Version
26
- version: '4.0'
27
- - !ruby/object:Gem::Dependency
28
- name: rspec
29
- requirement: !ruby/object:Gem::Requirement
30
- requirements:
17
+ requirement: &id001 !ruby/object:Gem::Requirement
18
+ requirements:
31
19
  - - ~>
32
- - !ruby/object:Gem::Version
33
- version: 2.14.0
20
+ - !ruby/object:Gem::Version
21
+ version: "4.0"
34
22
  type: :development
23
+ version_requirements: *id001
24
+ - !ruby/object:Gem::Dependency
25
+ name: rspec
35
26
  prerelease: false
36
- version_requirements: !ruby/object:Gem::Requirement
37
- requirements:
27
+ requirement: &id002 !ruby/object:Gem::Requirement
28
+ requirements:
38
29
  - - ~>
39
- - !ruby/object:Gem::Version
30
+ - !ruby/object:Gem::Version
40
31
  version: 2.14.0
41
- - !ruby/object:Gem::Dependency
42
- name: fakefs
43
- requirement: !ruby/object:Gem::Requirement
44
- requirements:
45
- - - '='
46
- - !ruby/object:Gem::Version
47
- version: '0.4'
48
32
  type: :development
33
+ version_requirements: *id002
34
+ - !ruby/object:Gem::Dependency
35
+ name: fakefs
49
36
  prerelease: false
50
- version_requirements: !ruby/object:Gem::Requirement
51
- requirements:
52
- - - '='
53
- - !ruby/object:Gem::Version
54
- version: '0.4'
55
- - !ruby/object:Gem::Dependency
37
+ requirement: &id003 !ruby/object:Gem::Requirement
38
+ requirements:
39
+ - - "="
40
+ - !ruby/object:Gem::Version
41
+ version: "0.4"
42
+ type: :development
43
+ version_requirements: *id003
44
+ - !ruby/object:Gem::Dependency
56
45
  name: rake
57
- requirement: !ruby/object:Gem::Requirement
58
- requirements:
46
+ prerelease: false
47
+ requirement: &id004 !ruby/object:Gem::Requirement
48
+ requirements:
59
49
  - - ~>
60
- - !ruby/object:Gem::Version
50
+ - !ruby/object:Gem::Version
61
51
  version: 10.1.0
62
52
  type: :development
53
+ version_requirements: *id004
54
+ - !ruby/object:Gem::Dependency
55
+ name: pry
63
56
  prerelease: false
64
- version_requirements: !ruby/object:Gem::Requirement
65
- requirements:
57
+ requirement: &id005 !ruby/object:Gem::Requirement
58
+ requirements:
66
59
  - - ~>
67
- - !ruby/object:Gem::Version
68
- version: 10.1.0
69
- - !ruby/object:Gem::Dependency
70
- name: simplecov
71
- requirement: !ruby/object:Gem::Requirement
72
- requirements:
73
- - - ! '>='
74
- - !ruby/object:Gem::Version
75
- version: '0'
60
+ - !ruby/object:Gem::Version
61
+ version: 0.9.12.6
76
62
  type: :development
77
- prerelease: false
78
- version_requirements: !ruby/object:Gem::Requirement
79
- requirements:
80
- - - ! '>='
81
- - !ruby/object:Gem::Version
82
- version: '0'
83
- - !ruby/object:Gem::Dependency
63
+ version_requirements: *id005
64
+ - !ruby/object:Gem::Dependency
84
65
  name: yard
85
- requirement: !ruby/object:Gem::Requirement
86
- requirements:
87
- - - ! '>='
88
- - !ruby/object:Gem::Version
89
- version: '0'
90
- type: :development
91
66
  prerelease: false
92
- version_requirements: !ruby/object:Gem::Requirement
93
- requirements:
94
- - - ! '>='
95
- - !ruby/object:Gem::Version
96
- version: '0'
97
- - !ruby/object:Gem::Dependency
98
- name: markdown
99
- requirement: !ruby/object:Gem::Requirement
100
- requirements:
101
- - - ! '>='
102
- - !ruby/object:Gem::Version
103
- version: '0'
67
+ requirement: &id006 !ruby/object:Gem::Requirement
68
+ requirements:
69
+ - &id007
70
+ - ">="
71
+ - !ruby/object:Gem::Version
72
+ version: "0"
104
73
  type: :development
105
- prerelease: false
106
- version_requirements: !ruby/object:Gem::Requirement
107
- requirements:
108
- - - ! '>='
109
- - !ruby/object:Gem::Version
110
- version: '0'
111
- - !ruby/object:Gem::Dependency
74
+ version_requirements: *id006
75
+ - !ruby/object:Gem::Dependency
112
76
  name: thin
113
- requirement: !ruby/object:Gem::Requirement
114
- requirements:
115
- - - ! '>='
116
- - !ruby/object:Gem::Version
117
- version: '0'
118
- type: :development
119
77
  prerelease: false
120
- version_requirements: !ruby/object:Gem::Requirement
121
- requirements:
122
- - - ! '>='
123
- - !ruby/object:Gem::Version
124
- version: '0'
125
- - !ruby/object:Gem::Dependency
78
+ requirement: &id008 !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - *id007
81
+ type: :development
82
+ version_requirements: *id008
83
+ - !ruby/object:Gem::Dependency
126
84
  name: json
127
- requirement: !ruby/object:Gem::Requirement
128
- requirements:
129
- - - ~>
130
- - !ruby/object:Gem::Version
131
- version: '1.8'
132
- type: :runtime
133
85
  prerelease: false
134
- version_requirements: !ruby/object:Gem::Requirement
135
- requirements:
86
+ requirement: &id009 !ruby/object:Gem::Requirement
87
+ requirements:
136
88
  - - ~>
137
- - !ruby/object:Gem::Version
138
- version: '1.8'
139
- - !ruby/object:Gem::Dependency
140
- name: net-ssh
141
- requirement: !ruby/object:Gem::Requirement
142
- requirements:
143
- - - ~>
144
- - !ruby/object:Gem::Version
145
- version: '2.6'
89
+ - !ruby/object:Gem::Version
90
+ version: "1.8"
146
91
  type: :runtime
92
+ version_requirements: *id009
93
+ - !ruby/object:Gem::Dependency
94
+ name: net-ssh
147
95
  prerelease: false
148
- version_requirements: !ruby/object:Gem::Requirement
149
- requirements:
96
+ requirement: &id010 !ruby/object:Gem::Requirement
97
+ requirements:
150
98
  - - ~>
151
- - !ruby/object:Gem::Version
152
- version: '2.6'
153
- - !ruby/object:Gem::Dependency
154
- name: net-scp
155
- requirement: !ruby/object:Gem::Requirement
156
- requirements:
157
- - - ~>
158
- - !ruby/object:Gem::Version
159
- version: '1.1'
99
+ - !ruby/object:Gem::Version
100
+ version: "2.6"
160
101
  type: :runtime
102
+ version_requirements: *id010
103
+ - !ruby/object:Gem::Dependency
104
+ name: net-scp
161
105
  prerelease: false
162
- version_requirements: !ruby/object:Gem::Requirement
163
- requirements:
106
+ requirement: &id011 !ruby/object:Gem::Requirement
107
+ requirements:
164
108
  - - ~>
165
- - !ruby/object:Gem::Version
166
- version: '1.1'
167
- - !ruby/object:Gem::Dependency
168
- name: inifile
169
- requirement: !ruby/object:Gem::Requirement
170
- requirements:
171
- - - ~>
172
- - !ruby/object:Gem::Version
173
- version: '2.0'
109
+ - !ruby/object:Gem::Version
110
+ version: "1.1"
174
111
  type: :runtime
112
+ version_requirements: *id011
113
+ - !ruby/object:Gem::Dependency
114
+ name: inifile
175
115
  prerelease: false
176
- version_requirements: !ruby/object:Gem::Requirement
177
- requirements:
116
+ requirement: &id012 !ruby/object:Gem::Requirement
117
+ requirements:
178
118
  - - ~>
179
- - !ruby/object:Gem::Version
180
- version: '2.0'
181
- - !ruby/object:Gem::Dependency
182
- name: rbvmomi
183
- requirement: !ruby/object:Gem::Requirement
184
- requirements:
185
- - - '='
186
- - !ruby/object:Gem::Version
187
- version: 1.8.1
119
+ - !ruby/object:Gem::Version
120
+ version: "2.0"
188
121
  type: :runtime
122
+ version_requirements: *id012
123
+ - !ruby/object:Gem::Dependency
124
+ name: rbvmomi
189
125
  prerelease: false
190
- version_requirements: !ruby/object:Gem::Requirement
191
- requirements:
192
- - - '='
193
- - !ruby/object:Gem::Version
126
+ requirement: &id013 !ruby/object:Gem::Requirement
127
+ requirements:
128
+ - - "="
129
+ - !ruby/object:Gem::Version
194
130
  version: 1.8.1
195
- - !ruby/object:Gem::Dependency
196
- name: blimpy
197
- requirement: !ruby/object:Gem::Requirement
198
- requirements:
199
- - - ~>
200
- - !ruby/object:Gem::Version
201
- version: '0.6'
202
131
  type: :runtime
132
+ version_requirements: *id013
133
+ - !ruby/object:Gem::Dependency
134
+ name: blimpy
203
135
  prerelease: false
204
- version_requirements: !ruby/object:Gem::Requirement
205
- requirements:
206
- - - ~>
207
- - !ruby/object:Gem::Version
208
- version: '0.6'
209
- - !ruby/object:Gem::Dependency
210
- name: fission
211
- requirement: !ruby/object:Gem::Requirement
212
- requirements:
136
+ requirement: &id014 !ruby/object:Gem::Requirement
137
+ requirements:
213
138
  - - ~>
214
- - !ruby/object:Gem::Version
215
- version: '0.4'
139
+ - !ruby/object:Gem::Version
140
+ version: "0.6"
216
141
  type: :runtime
142
+ version_requirements: *id014
143
+ - !ruby/object:Gem::Dependency
144
+ name: fission
217
145
  prerelease: false
218
- version_requirements: !ruby/object:Gem::Requirement
219
- requirements:
220
- - - ~>
221
- - !ruby/object:Gem::Version
222
- version: '0.4'
223
- - !ruby/object:Gem::Dependency
224
- name: google-api-client
225
- requirement: !ruby/object:Gem::Requirement
226
- requirements:
146
+ requirement: &id015 !ruby/object:Gem::Requirement
147
+ requirements:
227
148
  - - ~>
228
- - !ruby/object:Gem::Version
229
- version: 0.7.1
149
+ - !ruby/object:Gem::Version
150
+ version: "0.4"
230
151
  type: :runtime
152
+ version_requirements: *id015
153
+ - !ruby/object:Gem::Dependency
154
+ name: google-api-client
231
155
  prerelease: false
232
- version_requirements: !ruby/object:Gem::Requirement
233
- requirements:
156
+ requirement: &id016 !ruby/object:Gem::Requirement
157
+ requirements:
234
158
  - - ~>
235
- - !ruby/object:Gem::Version
159
+ - !ruby/object:Gem::Version
236
160
  version: 0.7.1
237
- - !ruby/object:Gem::Dependency
238
- name: aws-sdk
239
- requirement: !ruby/object:Gem::Requirement
240
- requirements:
241
- - - ~>
242
- - !ruby/object:Gem::Version
243
- version: '1.38'
244
161
  type: :runtime
162
+ version_requirements: *id016
163
+ - !ruby/object:Gem::Dependency
164
+ name: aws-sdk
245
165
  prerelease: false
246
- version_requirements: !ruby/object:Gem::Requirement
247
- requirements:
166
+ requirement: &id017 !ruby/object:Gem::Requirement
167
+ requirements:
248
168
  - - ~>
249
- - !ruby/object:Gem::Version
250
- version: '1.38'
251
- - !ruby/object:Gem::Dependency
252
- name: docker-api
253
- requirement: !ruby/object:Gem::Requirement
254
- requirements:
255
- - - ! '>='
256
- - !ruby/object:Gem::Version
257
- version: '0'
169
+ - !ruby/object:Gem::Version
170
+ version: "1.38"
258
171
  type: :runtime
259
- prerelease: false
260
- version_requirements: !ruby/object:Gem::Requirement
261
- requirements:
262
- - - ! '>='
263
- - !ruby/object:Gem::Version
264
- version: '0'
265
- - !ruby/object:Gem::Dependency
172
+ version_requirements: *id017
173
+ - !ruby/object:Gem::Dependency
266
174
  name: nokogiri
267
- requirement: !ruby/object:Gem::Requirement
268
- requirements:
269
- - - '='
270
- - !ruby/object:Gem::Version
271
- version: 1.5.10
272
- type: :runtime
273
175
  prerelease: false
274
- version_requirements: !ruby/object:Gem::Requirement
275
- requirements:
276
- - - '='
277
- - !ruby/object:Gem::Version
278
- version: 1.5.10
279
- - !ruby/object:Gem::Dependency
280
- name: mime-types
281
- requirement: !ruby/object:Gem::Requirement
282
- requirements:
176
+ requirement: &id018 !ruby/object:Gem::Requirement
177
+ requirements:
283
178
  - - ~>
284
- - !ruby/object:Gem::Version
285
- version: '1.25'
179
+ - !ruby/object:Gem::Version
180
+ version: 1.5.10
286
181
  type: :runtime
182
+ version_requirements: *id018
183
+ - !ruby/object:Gem::Dependency
184
+ name: mime-types
287
185
  prerelease: false
288
- version_requirements: !ruby/object:Gem::Requirement
289
- requirements:
290
- - - ~>
291
- - !ruby/object:Gem::Version
292
- version: '1.25'
293
- - !ruby/object:Gem::Dependency
294
- name: unf
295
- requirement: !ruby/object:Gem::Requirement
296
- requirements:
186
+ requirement: &id019 !ruby/object:Gem::Requirement
187
+ requirements:
297
188
  - - ~>
298
- - !ruby/object:Gem::Version
299
- version: '0.1'
189
+ - !ruby/object:Gem::Version
190
+ version: "1.25"
300
191
  type: :runtime
192
+ version_requirements: *id019
193
+ - !ruby/object:Gem::Dependency
194
+ name: unf
301
195
  prerelease: false
302
- version_requirements: !ruby/object:Gem::Requirement
303
- requirements:
196
+ requirement: &id020 !ruby/object:Gem::Requirement
197
+ requirements:
304
198
  - - ~>
305
- - !ruby/object:Gem::Version
306
- version: '0.1'
199
+ - !ruby/object:Gem::Version
200
+ version: "0.1"
201
+ type: :runtime
202
+ version_requirements: *id020
307
203
  description: Puppetlabs accceptance testing harness
308
- email:
204
+ email:
309
205
  - delivery@puppetlabs.com
310
- executables:
206
+ executables:
311
207
  - beaker
312
208
  extensions: []
209
+
313
210
  extra_rdoc_files: []
314
- files:
211
+
212
+ files:
315
213
  - .gitignore
316
214
  - .rspec
317
215
  - .simplecov
@@ -414,7 +312,6 @@ files:
414
312
  - spec/beaker/hypervisor/docker_spec.rb
415
313
  - spec/beaker/hypervisor/ec2_helper_spec.rb
416
314
  - spec/beaker/hypervisor/fusion_spec.rb
417
- - spec/beaker/hypervisor/google_compute.rb
418
315
  - spec/beaker/hypervisor/hypervisor_spec.rb
419
316
  - spec/beaker/hypervisor/solaris_spec.rb
420
317
  - spec/beaker/hypervisor/vagrant_spec.rb
@@ -451,30 +348,29 @@ files:
451
348
  - spec/mocks.rb
452
349
  - spec/spec_helper.rb
453
350
  homepage: https://github.com/puppetlabs/beaker
454
- licenses:
351
+ licenses:
455
352
  - Apache2
456
353
  metadata: {}
354
+
457
355
  post_install_message:
458
356
  rdoc_options: []
459
- require_paths:
357
+
358
+ require_paths:
460
359
  - lib
461
- required_ruby_version: !ruby/object:Gem::Requirement
462
- requirements:
463
- - - ! '>='
464
- - !ruby/object:Gem::Version
465
- version: '0'
466
- required_rubygems_version: !ruby/object:Gem::Requirement
467
- requirements:
468
- - - ! '>='
469
- - !ruby/object:Gem::Version
470
- version: '0'
360
+ required_ruby_version: !ruby/object:Gem::Requirement
361
+ requirements:
362
+ - *id007
363
+ required_rubygems_version: !ruby/object:Gem::Requirement
364
+ requirements:
365
+ - *id007
471
366
  requirements: []
367
+
472
368
  rubyforge_project:
473
369
  rubygems_version: 2.2.2
474
370
  signing_key:
475
371
  specification_version: 4
476
372
  summary: Let's test Puppet!
477
- test_files:
373
+ test_files:
478
374
  - spec/beaker/answers_spec.rb
479
375
  - spec/beaker/cli_spec.rb
480
376
  - spec/beaker/command_spec.rb
@@ -494,7 +390,6 @@ test_files:
494
390
  - spec/beaker/hypervisor/docker_spec.rb
495
391
  - spec/beaker/hypervisor/ec2_helper_spec.rb
496
392
  - spec/beaker/hypervisor/fusion_spec.rb
497
- - spec/beaker/hypervisor/google_compute.rb
498
393
  - spec/beaker/hypervisor/hypervisor_spec.rb
499
394
  - spec/beaker/hypervisor/solaris_spec.rb
500
395
  - spec/beaker/hypervisor/vagrant_spec.rb