beaker 1.12.1 → 1.12.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -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