beaker-vagrant 0.6.7 → 0.7.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/.github/workflows/release.yml +24 -0
- data/beaker-vagrant.gemspec +2 -6
- data/lib/beaker-vagrant/version.rb +1 -1
- data/lib/beaker/hypervisor/vagrant.rb +33 -66
- data/lib/beaker/hypervisor/vagrant_custom.rb +1 -0
- data/lib/beaker/hypervisor/vagrant_libvirt.rb +16 -26
- data/spec/beaker/hypervisor/vagrant_custom_spec.rb +3 -2
- data/spec/beaker/hypervisor/vagrant_desktop_spec.rb +33 -47
- data/spec/beaker/hypervisor/vagrant_fusion_spec.rb +14 -14
- data/spec/beaker/hypervisor/vagrant_libvirt_spec.rb +23 -26
- data/spec/beaker/hypervisor/vagrant_parallels_spec.rb +20 -23
- data/spec/beaker/hypervisor/vagrant_spec.rb +41 -118
- data/spec/beaker/hypervisor/vagrant_virtualbox_spec.rb +47 -69
- data/spec/beaker/hypervisor/vagrant_workstation_spec.rb +33 -47
- metadata +14 -21
@@ -6,56 +6,53 @@ describe Beaker::VagrantLibvirt do
|
|
6
6
|
'libvirt' => { 'uri' => 'qemu+ssh://root@host/system'},
|
7
7
|
'vagrant_cpus' => 2,
|
8
8
|
}) }
|
9
|
-
let( :vagrant ) {
|
10
|
-
|
11
|
-
|
12
|
-
|
9
|
+
let( :vagrant ) { described_class.new( hosts, options ) }
|
10
|
+
let( :hosts ) do
|
11
|
+
make_hosts().each do |host|
|
12
|
+
host.delete('ip')
|
13
|
+
end
|
13
14
|
end
|
14
15
|
|
15
16
|
it "uses the vagrant_libvirt provider for provisioning" do
|
16
|
-
|
17
|
+
hosts.each do |host|
|
17
18
|
host_prev_name = host['user']
|
18
19
|
expect( vagrant ).to receive( :set_ssh_config ).with( host, 'vagrant' ).once
|
19
20
|
expect( vagrant ).to receive( :copy_ssh_to_root ).with( host, options ).once
|
20
21
|
expect( vagrant ).to receive( :set_ssh_config ).with( host, host_prev_name ).once
|
21
22
|
end
|
22
|
-
expect( vagrant ).to receive( :hack_etc_hosts ).with(
|
23
|
-
FakeFS.activate!
|
23
|
+
expect( vagrant ).to receive( :hack_etc_hosts ).with( hosts, options ).once
|
24
24
|
expect( vagrant ).to receive( :vagrant_cmd ).with( "up --provider libvirt" ).once
|
25
|
-
|
25
|
+
FakeFS do
|
26
|
+
vagrant.provision
|
27
|
+
end
|
26
28
|
end
|
27
29
|
|
28
30
|
context 'Correct vagrant configuration' do
|
29
|
-
|
30
|
-
FakeFS
|
31
|
-
|
31
|
+
subject do
|
32
|
+
FakeFS do
|
33
|
+
vagrant.make_vfile( hosts, options )
|
34
|
+
File.read(vagrant.instance_variable_get(:@vagrant_file))
|
35
|
+
end
|
36
|
+
end
|
32
37
|
|
33
|
-
|
34
|
-
|
38
|
+
it 'has a provider section' do
|
39
|
+
is_expected.to include( %Q{ v.vm.provider :libvirt do |node|})
|
35
40
|
end
|
36
41
|
|
37
|
-
it "
|
38
|
-
|
42
|
+
it "has no private network" do
|
43
|
+
is_expected.not_to include('v.vm.network :private_network')
|
39
44
|
end
|
40
45
|
|
41
46
|
it "can specify the memory as an integer" do
|
42
|
-
|
43
|
-
.to include('node.memory = 1024')
|
47
|
+
is_expected.to include('node.memory = 1024')
|
44
48
|
end
|
45
49
|
|
46
50
|
it "can specify the number of cpus" do
|
47
|
-
|
48
|
-
.to include("node.cpus = 2")
|
51
|
+
is_expected.to include("node.cpus = 2")
|
49
52
|
end
|
50
53
|
|
51
54
|
it "can specify any libvirt option" do
|
52
|
-
|
53
|
-
.to include("node.uri = 'qemu+ssh://root@host/system'")
|
54
|
-
end
|
55
|
-
|
56
|
-
it "has a mac address in the proper format" do
|
57
|
-
expect( @vagrantfile.split("\n").map(&:strip) )
|
58
|
-
.to include(/:mac => "08:00:27:\h{2}:\h{2}:\h{2}"/)
|
55
|
+
is_expected.to include("node.uri = 'qemu+ssh://root@host/system'")
|
59
56
|
end
|
60
57
|
end
|
61
58
|
end
|
@@ -2,43 +2,40 @@ require 'spec_helper'
|
|
2
2
|
|
3
3
|
describe Beaker::VagrantParallels do
|
4
4
|
let( :options ) { make_opts.merge({ :hosts_file => 'sample.cfg', 'logger' => double().as_null_object }) }
|
5
|
-
let( :vagrant ) { Beaker::VagrantParallels.new(
|
6
|
-
|
7
|
-
before :each do
|
8
|
-
@hosts = make_hosts()
|
9
|
-
end
|
5
|
+
let( :vagrant ) { Beaker::VagrantParallels.new( hosts, options ) }
|
6
|
+
let( :hosts ) { make_hosts }
|
10
7
|
|
11
8
|
it "uses the parallels provider for provisioning" do
|
12
|
-
|
9
|
+
hosts.each do |host|
|
13
10
|
host_prev_name = host['user']
|
14
11
|
expect( vagrant ).to receive( :set_ssh_config ).with( host, 'vagrant' ).once
|
15
12
|
expect( vagrant ).to receive( :copy_ssh_to_root ).with( host, options ).once
|
16
13
|
expect( vagrant ).to receive( :set_ssh_config ).with( host, host_prev_name ).once
|
17
14
|
end
|
18
|
-
expect( vagrant ).to receive( :hack_etc_hosts ).with(
|
15
|
+
expect( vagrant ).to receive( :hack_etc_hosts ).with( hosts, options ).once
|
19
16
|
expect( vagrant ).to receive( :vagrant_cmd ).with( "up --provider parallels" ).once
|
20
17
|
vagrant.provision
|
21
18
|
end
|
22
19
|
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
20
|
+
context 'Correct vagrant configuration' do
|
21
|
+
subject do
|
22
|
+
FakeFS do
|
23
|
+
vagrant.make_vfile( hosts, options )
|
24
|
+
File.read(vagrant.instance_variable_get(:@vagrant_file))
|
25
|
+
end
|
26
|
+
end
|
28
27
|
|
29
|
-
|
30
|
-
|
28
|
+
it "can make a Vagrantfile for a set of hosts" do
|
29
|
+
is_expected.to include( %Q{ v.vm.provider :parallels do |prl|\n prl.optimize_power_consumption = false\n prl.memory = '1024'\n end})
|
30
|
+
end
|
31
31
|
end
|
32
32
|
|
33
|
-
|
34
|
-
options.merge
|
35
|
-
|
36
|
-
vfile_section = vagrant.class.provider_vfile_section( @hosts.first, options )
|
37
|
-
|
38
|
-
match = vfile_section.match(/prl.update_guest_tools = false/)
|
39
|
-
|
40
|
-
expect( match ).to_not be nil
|
33
|
+
context 'disabled guest tools' do
|
34
|
+
let(:options) { super().merge({ :prl_update_guest_tools => 'disable' }) }
|
35
|
+
subject { vagrant.class.provider_vfile_section( hosts.first, options ) }
|
41
36
|
|
37
|
+
it "can disable the auto-update functionality of the Parallels Guest Tools" do
|
38
|
+
is_expected.to match(/prl.update_guest_tools = false/)
|
39
|
+
end
|
42
40
|
end
|
43
|
-
|
44
41
|
end
|
@@ -30,7 +30,6 @@ module Beaker
|
|
30
30
|
end
|
31
31
|
|
32
32
|
it "stores the vagrant file in $WORKINGDIR/.vagrant/beaker_vagrant_files/beaker_sample.cfg" do
|
33
|
-
allow( vagrant ).to receive( :randmac ).and_return( "0123456789" )
|
34
33
|
path = vagrant.instance_variable_get( :@vagrant_path )
|
35
34
|
|
36
35
|
expect( path ).to be === File.join(Dir.pwd, '.vagrant', 'beaker_vagrant_files', 'beaker_sample.cfg')
|
@@ -39,7 +38,6 @@ module Beaker
|
|
39
38
|
|
40
39
|
it "can make a Vagrantfile for a set of hosts" do
|
41
40
|
path = vagrant.instance_variable_get( :@vagrant_path )
|
42
|
-
allow( vagrant ).to receive( :randmac ).and_return( "0123456789" )
|
43
41
|
|
44
42
|
vagrant.make_vfile( @hosts )
|
45
43
|
|
@@ -53,7 +51,7 @@ Vagrant.configure("2") do |c|
|
|
53
51
|
v.vm.box = 'vm2vm1_of_my_box'
|
54
52
|
v.vm.box_url = 'http://address.for.my.box.vm1'
|
55
53
|
v.vm.box_check_update = 'true'
|
56
|
-
v.vm.network :private_network, ip: "ip.address.for.vm1", :netmask => "255.255.0.0"
|
54
|
+
v.vm.network :private_network, ip: "ip.address.for.vm1", :netmask => "255.255.0.0"
|
57
55
|
v.vm.synced_folder './', '/temp', create: true
|
58
56
|
v.vm.synced_folder '../', '/tmp', create: true
|
59
57
|
v.vm.network :forwarded_port, guest: 80, host: 10080
|
@@ -68,7 +66,7 @@ Vagrant.configure("2") do |c|
|
|
68
66
|
v.vm.box = 'vm2vm2_of_my_box'
|
69
67
|
v.vm.box_url = 'http://address.for.my.box.vm2'
|
70
68
|
v.vm.box_check_update = 'true'
|
71
|
-
v.vm.network :private_network, ip: "ip.address.for.vm2", :netmask => "255.255.0.0"
|
69
|
+
v.vm.network :private_network, ip: "ip.address.for.vm2", :netmask => "255.255.0.0"
|
72
70
|
v.vm.synced_folder './', '/temp', create: true
|
73
71
|
v.vm.synced_folder '../', '/tmp', create: true
|
74
72
|
v.vm.network :forwarded_port, guest: 80, host: 10080
|
@@ -83,7 +81,7 @@ Vagrant.configure("2") do |c|
|
|
83
81
|
v.vm.box = 'vm2vm3_of_my_box'
|
84
82
|
v.vm.box_url = 'http://address.for.my.box.vm3'
|
85
83
|
v.vm.box_check_update = 'true'
|
86
|
-
v.vm.network :private_network, ip: "ip.address.for.vm3", :netmask => "255.255.0.0"
|
84
|
+
v.vm.network :private_network, ip: "ip.address.for.vm3", :netmask => "255.255.0.0"
|
87
85
|
v.vm.synced_folder './', '/temp', create: true
|
88
86
|
v.vm.synced_folder '../', '/tmp', create: true
|
89
87
|
v.vm.network :forwarded_port, guest: 80, host: 10080
|
@@ -99,7 +97,6 @@ EOF
|
|
99
97
|
|
100
98
|
it "can make a Vagrantfile with ssh agent forwarding enabled" do
|
101
99
|
path = vagrant.instance_variable_get( :@vagrant_path )
|
102
|
-
allow( vagrant ).to receive( :randmac ).and_return( "0123456789" )
|
103
100
|
|
104
101
|
hosts = make_hosts({},1)
|
105
102
|
vagrant.make_vfile( hosts, options )
|
@@ -110,7 +107,6 @@ EOF
|
|
110
107
|
|
111
108
|
it "can replace underscores in host.name with hypens" do
|
112
109
|
path = vagrant.instance_variable_get( :@vagrant_path )
|
113
|
-
allow( vagrant ).to receive( :randmac ).and_return( "0123456789" )
|
114
110
|
|
115
111
|
host = make_host( 'name-with_underscore', {} )
|
116
112
|
vagrant.make_vfile( [host,], options )
|
@@ -122,7 +118,6 @@ EOF
|
|
122
118
|
|
123
119
|
it "can make a Vagrantfile with synced_folder disabled" do
|
124
120
|
path = vagrant.instance_variable_get( :@vagrant_path )
|
125
|
-
allow( vagrant ).to receive( :randmac ).and_return( "0123456789" )
|
126
121
|
|
127
122
|
hosts = make_hosts({:synced_folder => 'disabled'},1)
|
128
123
|
vagrant.make_vfile( hosts, options )
|
@@ -131,16 +126,6 @@ EOF
|
|
131
126
|
expect( vagrantfile ).to match(/v.vm.synced_folder .* disabled: true/)
|
132
127
|
end
|
133
128
|
|
134
|
-
it "can make a Vagrantfile with network mac autogenerated" do
|
135
|
-
path = vagrant.instance_variable_get( :@vagrant_path )
|
136
|
-
|
137
|
-
hosts = make_hosts({},1)
|
138
|
-
vagrant.make_vfile( hosts, options )
|
139
|
-
|
140
|
-
vagrantfile = File.read( File.expand_path( File.join( path, "Vagrantfile")))
|
141
|
-
expect( vagrantfile ).to match(/v.vm.network :private_network, ip: "ip.address.for.vm1", :netmask => "255.255.0.0", :mac => ".+/)
|
142
|
-
end
|
143
|
-
|
144
129
|
it "can make a Vagrantfile with network mac specified" do
|
145
130
|
path = vagrant.instance_variable_get( :@vagrant_path )
|
146
131
|
|
@@ -151,16 +136,6 @@ EOF
|
|
151
136
|
expect( vagrantfile ).to match(/v.vm.network :private_network, ip: "ip.address.for.vm1", :netmask => "255.255.0.0", :mac => "b6:33:ae:19:48:f9/)
|
152
137
|
end
|
153
138
|
|
154
|
-
it "can make a Vagrantfile with network mac disabled" do
|
155
|
-
path = vagrant.instance_variable_get( :@vagrant_path )
|
156
|
-
|
157
|
-
hosts = make_hosts({:network_mac => 'false'},1)
|
158
|
-
vagrant.make_vfile( hosts, options )
|
159
|
-
|
160
|
-
vagrantfile = File.read( File.expand_path( File.join( path, "Vagrantfile")))
|
161
|
-
expect( vagrantfile ).to match(/v.vm.network :private_network, ip: "ip.address.for.vm1", :netmask => "255.255.0.0"/)
|
162
|
-
end
|
163
|
-
|
164
139
|
it "can make a Vagrantfile with improper keys for synced folders" do
|
165
140
|
path = vagrant.instance_variable_get( :@vagrant_path )
|
166
141
|
|
@@ -182,7 +157,6 @@ EOF
|
|
182
157
|
|
183
158
|
it "can make a Vagrantfile with optional shell provisioner" do
|
184
159
|
path = vagrant.instance_variable_get( :@vagrant_path )
|
185
|
-
allow( vagrant ).to receive( :randmac ).and_return( "0123456789" )
|
186
160
|
|
187
161
|
shell_path = '/path/to/shell/script'
|
188
162
|
hosts = make_hosts({
|
@@ -198,7 +172,6 @@ EOF
|
|
198
172
|
|
199
173
|
it "can make a Vagrantfile with optional shell provisioner with args" do
|
200
174
|
path = vagrant.instance_variable_get( :@vagrant_path )
|
201
|
-
allow( vagrant ).to receive( :randmac ).and_return( "0123456789" )
|
202
175
|
|
203
176
|
shell_path = '/path/to/shell/script.sh'
|
204
177
|
shell_args = 'arg1 arg2'
|
@@ -216,7 +189,6 @@ EOF
|
|
216
189
|
|
217
190
|
it "raises an error if path is not set on shell_provisioner" do
|
218
191
|
path = vagrant.instance_variable_get( :@vagrant_path )
|
219
|
-
allow( vagrant ).to receive( :randmac ).and_return( "0123456789" )
|
220
192
|
|
221
193
|
hosts = make_hosts({:shell_provisioner => {}}, 1)
|
222
194
|
expect{ vagrant.make_vfile( hosts, options ) }.to raise_error RuntimeError, /No path defined for shell_provisioner or path empty/
|
@@ -224,7 +196,6 @@ EOF
|
|
224
196
|
|
225
197
|
it "raises an error if path is EMPTY on shell_provisioner" do
|
226
198
|
path = vagrant.instance_variable_get( :@vagrant_path )
|
227
|
-
allow( vagrant ).to receive( :randmac ).and_return( "0123456789" )
|
228
199
|
|
229
200
|
empty_shell_path = ''
|
230
201
|
hosts = make_hosts({
|
@@ -238,7 +209,6 @@ EOF
|
|
238
209
|
context "when generating a windows config" do
|
239
210
|
before do
|
240
211
|
path = vagrant.instance_variable_get( :@vagrant_path )
|
241
|
-
allow( vagrant ).to receive( :randmac ).and_return( "0123456789" )
|
242
212
|
@hosts[0][:platform] = 'windows'
|
243
213
|
|
244
214
|
vagrant.make_vfile( @hosts )
|
@@ -270,7 +240,6 @@ EOF
|
|
270
240
|
context 'when generating a freebsd config' do
|
271
241
|
before do
|
272
242
|
path = vagrant.instance_variable_get( :@vagrant_path )
|
273
|
-
allow( vagrant ).to receive( :randmac ).and_return( "0123456789" )
|
274
243
|
@hosts[0][:platform] = 'freebsd'
|
275
244
|
|
276
245
|
vagrant.make_vfile( @hosts )
|
@@ -285,15 +254,10 @@ EOF
|
|
285
254
|
it 'has the proper guest setting' do
|
286
255
|
expect( @generated_file ).to match /v.vm.guest = :freebsd\n/
|
287
256
|
end
|
288
|
-
|
289
|
-
it 'sets the vm.base_mac setting' do
|
290
|
-
expect( @generated_file ).to match /v.vm.base_mac = '0123456789'\n/
|
291
|
-
end
|
292
257
|
end
|
293
258
|
|
294
259
|
it "uses the memsize defined per vagrant host" do
|
295
260
|
path = vagrant.instance_variable_get( :@vagrant_path )
|
296
|
-
allow( vagrant ).to receive( :randmac ).and_return( "0123456789" )
|
297
261
|
|
298
262
|
vagrant.make_vfile( @hosts, {'vagrant_memsize' => 'hello!'} )
|
299
263
|
|
@@ -307,7 +271,6 @@ EOF
|
|
307
271
|
|
308
272
|
it "uses the cpus defined per vagrant host" do
|
309
273
|
path = vagrant.instance_variable_get( :@vagrant_path )
|
310
|
-
allow( vagrant ).to receive( :randmac ).and_return( "0123456789" )
|
311
274
|
|
312
275
|
vagrant.make_vfile( @hosts, {'vagrant_cpus' => 'goodbye!'} )
|
313
276
|
|
@@ -322,7 +285,6 @@ EOF
|
|
322
285
|
context "port forwarding rules" do
|
323
286
|
it "supports all Vagrant parameters" do
|
324
287
|
path = vagrant.instance_variable_get( :@vagrant_path )
|
325
|
-
allow( vagrant ).to receive( :randmac ).and_return( "0123456789" )
|
326
288
|
|
327
289
|
hosts = make_hosts(
|
328
290
|
{
|
@@ -344,7 +306,6 @@ EOF
|
|
344
306
|
|
345
307
|
it "supports supports from_ip" do
|
346
308
|
path = vagrant.instance_variable_get( :@vagrant_path )
|
347
|
-
allow( vagrant ).to receive( :randmac ).and_return( "0123456789" )
|
348
309
|
|
349
310
|
hosts = make_hosts(
|
350
311
|
{
|
@@ -364,7 +325,6 @@ EOF
|
|
364
325
|
|
365
326
|
it "supports all to_ip" do
|
366
327
|
path = vagrant.instance_variable_get( :@vagrant_path )
|
367
|
-
allow( vagrant ).to receive( :randmac ).and_return( "0123456789" )
|
368
328
|
|
369
329
|
hosts = make_hosts(
|
370
330
|
{
|
@@ -384,7 +344,6 @@ EOF
|
|
384
344
|
|
385
345
|
it "supports all protocol" do
|
386
346
|
path = vagrant.instance_variable_get( :@vagrant_path )
|
387
|
-
allow( vagrant ).to receive( :randmac ).and_return( "0123456789" )
|
388
347
|
|
389
348
|
hosts = make_hosts(
|
390
349
|
{
|
@@ -451,57 +410,57 @@ EOF
|
|
451
410
|
end
|
452
411
|
|
453
412
|
describe "set_ssh_config" do
|
454
|
-
let( :out )
|
413
|
+
let( :out ) do
|
414
|
+
<<-CONFIG
|
415
|
+
Host #{name}
|
416
|
+
HostName 127.0.0.1
|
417
|
+
User vagrant
|
418
|
+
Port 2222
|
419
|
+
UserKnownHostsFile /dev/null
|
420
|
+
StrictHostKeyChecking no
|
421
|
+
PasswordAuthentication no
|
422
|
+
IdentityFile /home/root/.vagrant.d/insecure_private_key
|
423
|
+
IdentitiesOnly yes
|
424
|
+
CONFIG
|
425
|
+
end
|
455
426
|
let( :host ) { @hosts[0] }
|
456
427
|
let( :name ) { host.name }
|
457
|
-
let( :
|
428
|
+
let( :override_options ) { {} }
|
458
429
|
|
459
430
|
before :each do
|
460
|
-
|
461
|
-
|
462
|
-
|
463
|
-
|
464
|
-
|
465
|
-
|
466
|
-
|
431
|
+
# FakeFS is just broken with Tempfile
|
432
|
+
FakeFS.deactivate!
|
433
|
+
Dir.mktmpdir do |dir|
|
434
|
+
vagrant.instance_variable_get(:@options).merge!(override_options)
|
435
|
+
vagrant.instance_variable_set(:@vagrant_path, dir)
|
436
|
+
state = double( 'state' )
|
437
|
+
allow( state ).to receive( :success? ).and_return( true )
|
438
|
+
allow( Open3 ).to receive( :capture3 ).with( {"RUBYLIB"=>"", "RUBYOPT"=>""}, 'vagrant', 'ssh-config', name ).and_return( [ out, "", state ])
|
467
439
|
|
468
|
-
|
469
|
-
|
440
|
+
vagrant.set_ssh_config( host, 'root' )
|
441
|
+
end
|
442
|
+
end
|
470
443
|
|
471
|
-
|
472
|
-
|
473
|
-
User vagrant
|
474
|
-
Port 2222
|
475
|
-
UserKnownHostsFile /dev/null
|
476
|
-
StrictHostKeyChecking no
|
477
|
-
PasswordAuthentication no
|
478
|
-
IdentityFile /home/root/.vagrant.d/insecure_private_key
|
479
|
-
IdentitiesOnly yes")
|
444
|
+
it 'sets the user to root' do
|
445
|
+
expect(host['user']).to be === 'root'
|
480
446
|
end
|
481
447
|
|
482
|
-
it
|
483
|
-
|
484
|
-
|
448
|
+
it 'sets the ssh user to root' do
|
449
|
+
expect(host['ssh']['user']).to be === 'root'
|
450
|
+
end
|
485
451
|
|
486
|
-
|
487
|
-
|
488
|
-
expect(
|
489
|
-
expect( host['user']).to be === 'root'
|
452
|
+
# This is because forward_ssh_agent is true by default
|
453
|
+
it 'sets IdentitiesOnly to no' do
|
454
|
+
expect(host['ssh'][:keys_only]).to be === false
|
490
455
|
end
|
491
456
|
|
492
457
|
context "when :forward_ssh_agent is false" do
|
493
|
-
|
494
|
-
|
495
|
-
|
496
|
-
options = vagrant.instance_variable_set( :@options, options )
|
497
|
-
|
498
|
-
expect( Tempfile ).to receive( :new ).with( "#{host.name}").and_return( file )
|
499
|
-
expect( file ).to receive( :write ).with("Host ip.address.for.#{name}\n HostName 127.0.0.1\n User root\n Port 2222\n UserKnownHostsFile /dev/null\n StrictHostKeyChecking no\n PasswordAuthentication no\n IdentityFile /home/root/.vagrant.d/insecure_private_key\n IdentitiesOnly yes")
|
458
|
+
let(:override_options) do
|
459
|
+
{forward_ssh_agent: false}
|
460
|
+
end
|
500
461
|
|
501
|
-
|
502
|
-
expect( host[:
|
503
|
-
expect( host['ssh'][:config]).to be === false
|
504
|
-
expect( host['user']).to be === 'root'
|
462
|
+
it "should keep IdentitiesOnly to yes" do
|
463
|
+
expect( host['ssh'][:keys_only]).to be === true
|
505
464
|
end
|
506
465
|
end
|
507
466
|
end
|
@@ -515,17 +474,6 @@ EOF
|
|
515
474
|
end
|
516
475
|
end
|
517
476
|
|
518
|
-
it 'calls #get_ip_from_vagrant_file' do
|
519
|
-
vagrant.make_vfile(@hosts)
|
520
|
-
|
521
|
-
@hosts.each do |host|
|
522
|
-
allow(vagrant).to receive(:set_ssh_config).with(host, anything)
|
523
|
-
expect(vagrant).to receive(:get_ip_from_vagrant_file).with(host.name)
|
524
|
-
end
|
525
|
-
|
526
|
-
vagrant.configure
|
527
|
-
end
|
528
|
-
|
529
477
|
it 'calls #set_all_ssh_config' do
|
530
478
|
vagrant.make_vfile(@hosts)
|
531
479
|
expect(vagrant).to receive(:set_all_ssh_config)
|
@@ -569,31 +517,6 @@ EOF
|
|
569
517
|
end
|
570
518
|
end
|
571
519
|
|
572
|
-
describe "get_ip_from_vagrant_file" do
|
573
|
-
before :each do
|
574
|
-
allow( vagrant ).to receive( :randmac ).and_return( "0123456789" )
|
575
|
-
vagrant.make_vfile( @hosts )
|
576
|
-
end
|
577
|
-
|
578
|
-
it "can find the correct ip for the provided hostname" do
|
579
|
-
@hosts.each do |host|
|
580
|
-
expect( vagrant.get_ip_from_vagrant_file(host.name) ).to be === host[:ip]
|
581
|
-
end
|
582
|
-
|
583
|
-
end
|
584
|
-
|
585
|
-
it "returns nil if it is unable to find an ip" do
|
586
|
-
expect( vagrant.get_ip_from_vagrant_file("unknown") ).to be_nil
|
587
|
-
end
|
588
|
-
|
589
|
-
it "raises an error if no Vagrantfile is present" do
|
590
|
-
File.delete( vagrant.instance_variable_get( :@vagrant_file ) )
|
591
|
-
@hosts.each do |host|
|
592
|
-
expect{ vagrant.get_ip_from_vagrant_file(host.name) }.to raise_error RuntimeError, /No vagrant file found/
|
593
|
-
end
|
594
|
-
end
|
595
|
-
end
|
596
|
-
|
597
520
|
describe "provisioning and cleanup" do
|
598
521
|
|
599
522
|
before :each do
|