vagrant-openstack-provider 0.6.1 → 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/.rubocop.yml +12 -5
- data/CHANGELOG.md +18 -0
- data/Gemfile +3 -2
- data/{LICENSE.txt → LICENSE} +2 -1
- data/lib/vagrant-openstack-provider/action.rb +3 -2
- data/lib/vagrant-openstack-provider/action/provision.rb +60 -0
- data/lib/vagrant-openstack-provider/action/read_ssh_info.rb +4 -0
- data/lib/vagrant-openstack-provider/client/domain.rb +2 -2
- data/lib/vagrant-openstack-provider/client/keystone.rb +17 -6
- data/lib/vagrant-openstack-provider/client/nova.rb +14 -3
- data/lib/vagrant-openstack-provider/command/abstract_command.rb +1 -0
- data/lib/vagrant-openstack-provider/command/main.rb +1 -3
- data/lib/vagrant-openstack-provider/config.rb +3 -3
- data/lib/vagrant-openstack-provider/config_resolver.rb +46 -16
- data/lib/vagrant-openstack-provider/errors.rb +15 -0
- data/lib/vagrant-openstack-provider/plugin.rb +7 -1
- data/lib/vagrant-openstack-provider/version.rb +11 -1
- data/lib/vagrant-openstack-provider/version_checker.rb +76 -0
- data/locales/en.yml +21 -4
- data/spec/vagrant-openstack-provider/action/connect_openstack_spec.rb +17 -19
- data/spec/vagrant-openstack-provider/action/create_server_spec.rb +19 -18
- data/spec/vagrant-openstack-provider/action/create_stack_spec.rb +4 -6
- data/spec/vagrant-openstack-provider/action/delete_server_spec.rb +4 -6
- data/spec/vagrant-openstack-provider/action/delete_stack_spec.rb +1 -2
- data/spec/vagrant-openstack-provider/action/message_spec.rb +1 -2
- data/spec/vagrant-openstack-provider/action/provision_spec.rb +104 -0
- data/spec/vagrant-openstack-provider/action/read_ssh_info_spec.rb +1 -3
- data/spec/vagrant-openstack-provider/action/read_state_spec.rb +1 -2
- data/spec/vagrant-openstack-provider/action/resume_server_spec.rb +1 -2
- data/spec/vagrant-openstack-provider/action/start_server_spec.rb +1 -2
- data/spec/vagrant-openstack-provider/action/stop_server_spec.rb +1 -2
- data/spec/vagrant-openstack-provider/action/suspend_server_spec.rb +1 -2
- data/spec/vagrant-openstack-provider/action/sync_folders_spec.rb +1 -2
- data/spec/vagrant-openstack-provider/action/wait_accessible_spec.rb +1 -2
- data/spec/vagrant-openstack-provider/action/wait_active_spec.rb +3 -4
- data/spec/vagrant-openstack-provider/action/wait_stop_spec.rb +3 -4
- data/spec/vagrant-openstack-provider/action_spec.rb +0 -1
- data/spec/vagrant-openstack-provider/client/cinder_spec.rb +5 -8
- data/spec/vagrant-openstack-provider/client/glance_spec.rb +69 -70
- data/spec/vagrant-openstack-provider/client/heat_spec.rb +24 -28
- data/spec/vagrant-openstack-provider/client/keystone_spec.rb +34 -16
- data/spec/vagrant-openstack-provider/client/neutron_spec.rb +76 -80
- data/spec/vagrant-openstack-provider/client/nova_spec.rb +198 -168
- data/spec/vagrant-openstack-provider/client/utils_spec.rb +1 -3
- data/spec/vagrant-openstack-provider/command/flavor_list_spec.rb +1 -2
- data/spec/vagrant-openstack-provider/command/floatingip_list_spec.rb +1 -2
- data/spec/vagrant-openstack-provider/command/image_list_spec.rb +1 -6
- data/spec/vagrant-openstack-provider/command/network_list_spec.rb +1 -3
- data/spec/vagrant-openstack-provider/command/reset_spec.rb +1 -2
- data/spec/vagrant-openstack-provider/command/subnet_list_spec.rb +1 -2
- data/spec/vagrant-openstack-provider/command/volume_list_spec.rb +1 -2
- data/spec/vagrant-openstack-provider/config_resolver_spec.rb +100 -6
- data/spec/vagrant-openstack-provider/config_spec.rb +2 -6
- data/spec/vagrant-openstack-provider/e2e_spec.rb.save +27 -0
- data/spec/vagrant-openstack-provider/spec_helper.rb +1 -0
- data/spec/vagrant-openstack-provider/utils_spec.rb +1 -2
- data/spec/vagrant-openstack-provider/version_checker_spec.rb +39 -0
- data/vagrant-openstack-provider.gemspec +4 -2
- metadata +29 -9
- data/gemfiles/latest_stable.gemfile +0 -10
- data/gemfiles/minimal_release.gemfile +0 -10
- data/gemfiles/previous_release.gemfile +0 -10
@@ -3,7 +3,6 @@ require 'vagrant-openstack-provider/spec_helper'
|
|
3
3
|
include VagrantPlugins::Openstack
|
4
4
|
|
5
5
|
describe VagrantPlugins::Openstack::HttpUtils do
|
6
|
-
|
7
6
|
let(:keystone) do
|
8
7
|
double('keystone').tap do |keystone|
|
9
8
|
keystone.stub(:authenticate).with(anything)
|
@@ -11,7 +10,7 @@ describe VagrantPlugins::Openstack::HttpUtils do
|
|
11
10
|
end
|
12
11
|
|
13
12
|
let(:env) do
|
14
|
-
|
13
|
+
{}.tap do |env|
|
15
14
|
env[:ui] = double('ui')
|
16
15
|
env[:ui].stub(:warn).with(anything)
|
17
16
|
env[:openstack_client] = double('openstack_client')
|
@@ -37,7 +36,6 @@ describe VagrantPlugins::Openstack::HttpUtils do
|
|
37
36
|
end
|
38
37
|
|
39
38
|
describe 'authenticated' do
|
40
|
-
|
41
39
|
before :each do
|
42
40
|
TestUtils.send(:public, *TestUtils.private_instance_methods)
|
43
41
|
@utils = TestUtils.new
|
@@ -2,7 +2,6 @@ require 'vagrant-openstack-provider/spec_helper'
|
|
2
2
|
|
3
3
|
describe VagrantPlugins::Openstack::Command::FlavorList do
|
4
4
|
describe 'cmd' do
|
5
|
-
|
6
5
|
let(:nova) do
|
7
6
|
double('nova').tap do |nova|
|
8
7
|
nova.stub(:get_all_flavors) do
|
@@ -15,7 +14,7 @@ describe VagrantPlugins::Openstack::Command::FlavorList do
|
|
15
14
|
end
|
16
15
|
|
17
16
|
let(:env) do
|
18
|
-
|
17
|
+
{}.tap do |env|
|
19
18
|
env[:ui] = double('ui')
|
20
19
|
env[:ui].stub(:info).with(anything)
|
21
20
|
env[:openstack_client] = double
|
@@ -2,7 +2,6 @@ require 'vagrant-openstack-provider/spec_helper'
|
|
2
2
|
|
3
3
|
describe VagrantPlugins::Openstack::Command::FloatingIpList do
|
4
4
|
describe 'cmd' do
|
5
|
-
|
6
5
|
let(:nova) do
|
7
6
|
double('nova').tap do |nova|
|
8
7
|
nova.stub(:get_floating_ip_pools) do
|
@@ -37,7 +36,7 @@ describe VagrantPlugins::Openstack::Command::FloatingIpList do
|
|
37
36
|
end
|
38
37
|
|
39
38
|
let(:env) do
|
40
|
-
|
39
|
+
{}.tap do |env|
|
41
40
|
env[:ui] = double('ui')
|
42
41
|
env[:ui].stub(:info).with(anything)
|
43
42
|
env[:openstack_client] = double
|
@@ -1,7 +1,6 @@
|
|
1
1
|
require 'vagrant-openstack-provider/spec_helper'
|
2
2
|
|
3
3
|
describe VagrantPlugins::Openstack::Command::ImageList do
|
4
|
-
|
5
4
|
let(:nova) do
|
6
5
|
double('nova').tap do |nova|
|
7
6
|
nova.stub(:get_all_images) do
|
@@ -27,7 +26,7 @@ describe VagrantPlugins::Openstack::Command::ImageList do
|
|
27
26
|
end
|
28
27
|
|
29
28
|
let(:env) do
|
30
|
-
|
29
|
+
{}.tap do |env|
|
31
30
|
env[:ui] = double('ui')
|
32
31
|
env[:ui].stub(:info).with(anything)
|
33
32
|
env[:openstack_client] = double
|
@@ -42,7 +41,6 @@ describe VagrantPlugins::Openstack::Command::ImageList do
|
|
42
41
|
|
43
42
|
describe 'cmd' do
|
44
43
|
context 'when glance is not available' do
|
45
|
-
|
46
44
|
let(:session) do
|
47
45
|
double('session').tap do |s|
|
48
46
|
s.stub(:endpoints) { {} }
|
@@ -50,7 +48,6 @@ describe VagrantPlugins::Openstack::Command::ImageList do
|
|
50
48
|
end
|
51
49
|
|
52
50
|
it 'prints image list with only the id and the name' do
|
53
|
-
|
54
51
|
env[:openstack_client].stub(:session) { session }
|
55
52
|
allow(@image_list_cmd).to receive(:with_target_vms).and_return(nil)
|
56
53
|
nova.should_receive(:get_all_images).with(env)
|
@@ -68,7 +65,6 @@ describe VagrantPlugins::Openstack::Command::ImageList do
|
|
68
65
|
end
|
69
66
|
|
70
67
|
context 'when glance is available' do
|
71
|
-
|
72
68
|
let(:session) do
|
73
69
|
double('session').tap do |s|
|
74
70
|
s.stub(:endpoints) do
|
@@ -80,7 +76,6 @@ describe VagrantPlugins::Openstack::Command::ImageList do
|
|
80
76
|
end
|
81
77
|
|
82
78
|
it 'prints image list with id, name and details' do
|
83
|
-
|
84
79
|
env[:openstack_client].stub(:session) { session }
|
85
80
|
allow(@image_list_cmd).to receive(:with_target_vms).and_return(nil)
|
86
81
|
glance.should_receive(:get_all_images).with(env)
|
@@ -2,7 +2,6 @@ require 'vagrant-openstack-provider/spec_helper'
|
|
2
2
|
|
3
3
|
describe VagrantPlugins::Openstack::Command::NetworkList do
|
4
4
|
describe 'cmd' do
|
5
|
-
|
6
5
|
let(:neutron) do
|
7
6
|
double('neutron').tap do |neutron|
|
8
7
|
neutron.stub(:get_private_networks) do
|
@@ -22,7 +21,7 @@ describe VagrantPlugins::Openstack::Command::NetworkList do
|
|
22
21
|
end
|
23
22
|
|
24
23
|
let(:env) do
|
25
|
-
|
24
|
+
{}.tap do |env|
|
26
25
|
env[:ui] = double('ui')
|
27
26
|
env[:ui].stub(:info).with(anything)
|
28
27
|
env[:openstack_client] = double
|
@@ -62,6 +61,5 @@ describe VagrantPlugins::Openstack::Command::NetworkList do
|
|
62
61
|
|
63
62
|
@network_list_cmd.cmd('network-list', ['all'], env)
|
64
63
|
end
|
65
|
-
|
66
64
|
end
|
67
65
|
end
|
@@ -2,9 +2,8 @@ require 'vagrant-openstack-provider/spec_helper'
|
|
2
2
|
|
3
3
|
describe VagrantPlugins::Openstack::Command::Reset do
|
4
4
|
describe 'cmd' do
|
5
|
-
|
6
5
|
let(:env) do
|
7
|
-
|
6
|
+
{}.tap do |env|
|
8
7
|
env[:ui] = double('ui')
|
9
8
|
env[:ui].stub(:info).with(anything)
|
10
9
|
env[:machine] = double('machine')
|
@@ -2,7 +2,6 @@ require 'vagrant-openstack-provider/spec_helper'
|
|
2
2
|
|
3
3
|
describe VagrantPlugins::Openstack::Command::SubnetList do
|
4
4
|
describe 'cmd' do
|
5
|
-
|
6
5
|
let(:neutron) do
|
7
6
|
double('neutron').tap do |neutron|
|
8
7
|
neutron.stub(:get_subnets) do
|
@@ -16,7 +15,7 @@ describe VagrantPlugins::Openstack::Command::SubnetList do
|
|
16
15
|
end
|
17
16
|
|
18
17
|
let(:env) do
|
19
|
-
|
18
|
+
{}.tap do |env|
|
20
19
|
env[:ui] = double('ui')
|
21
20
|
env[:ui].stub(:info).with(anything)
|
22
21
|
env[:openstack_client] = double
|
@@ -2,7 +2,6 @@ require 'vagrant-openstack-provider/spec_helper'
|
|
2
2
|
|
3
3
|
describe VagrantPlugins::Openstack::Command::VolumeList do
|
4
4
|
describe 'cmd' do
|
5
|
-
|
6
5
|
let(:cinder) do
|
7
6
|
double('cinder').tap do |cinder|
|
8
7
|
cinder.stub(:get_all_volumes) do
|
@@ -13,7 +12,7 @@ describe VagrantPlugins::Openstack::Command::VolumeList do
|
|
13
12
|
end
|
14
13
|
|
15
14
|
let(:env) do
|
16
|
-
|
15
|
+
{}.tap do |env|
|
17
16
|
env[:ui] = double('ui')
|
18
17
|
env[:ui].stub(:info).with(anything)
|
19
18
|
env[:openstack_client] = double
|
@@ -1,7 +1,6 @@
|
|
1
1
|
require 'vagrant-openstack-provider/spec_helper'
|
2
2
|
|
3
3
|
describe VagrantPlugins::Openstack::ConfigResolver do
|
4
|
-
|
5
4
|
let(:config) do
|
6
5
|
double('config').tap do |config|
|
7
6
|
config.stub(:tenant_name) { 'testTenant' }
|
@@ -75,7 +74,7 @@ describe VagrantPlugins::Openstack::ConfigResolver do
|
|
75
74
|
end
|
76
75
|
|
77
76
|
let(:env) do
|
78
|
-
|
77
|
+
{}.tap do |env|
|
79
78
|
env[:ui] = double('ui')
|
80
79
|
env[:ui].stub(:info).with(anything)
|
81
80
|
env[:machine] = double('machine')
|
@@ -186,6 +185,7 @@ describe VagrantPlugins::Openstack::ConfigResolver do
|
|
186
185
|
context 'with id' do
|
187
186
|
it 'returns the specified flavor' do
|
188
187
|
config.stub(:image) { 'img-001' }
|
188
|
+
config.stub(:volume_boot) { nil }
|
189
189
|
nova.stub(:get_all_images).with(anything) do
|
190
190
|
[Item.new('img-001', 'image-01'),
|
191
191
|
Item.new('img-002', 'image-02')]
|
@@ -196,6 +196,7 @@ describe VagrantPlugins::Openstack::ConfigResolver do
|
|
196
196
|
context 'with name' do
|
197
197
|
it 'returns the specified flavor' do
|
198
198
|
config.stub(:image) { 'image-02' }
|
199
|
+
config.stub(:volume_boot) { nil }
|
199
200
|
nova.stub(:get_all_images).with(anything) do
|
200
201
|
[Item.new('img-001', 'image-01'),
|
201
202
|
Item.new('img-002', 'image-02')]
|
@@ -206,6 +207,7 @@ describe VagrantPlugins::Openstack::ConfigResolver do
|
|
206
207
|
context 'with invalid identifier' do
|
207
208
|
it 'raise an error' do
|
208
209
|
config.stub(:image) { 'not-existing' }
|
210
|
+
config.stub(:volume_boot) { nil }
|
209
211
|
nova.stub(:get_all_images).with(anything) do
|
210
212
|
[Item.new('img-001', 'image-01'),
|
211
213
|
Item.new('img-002', 'image-02')]
|
@@ -213,6 +215,17 @@ describe VagrantPlugins::Openstack::ConfigResolver do
|
|
213
215
|
expect { @action.resolve_image(env) }.to raise_error(Errors::NoMatchingImage)
|
214
216
|
end
|
215
217
|
end
|
218
|
+
context 'with no images in config' do
|
219
|
+
it 'return nil' do
|
220
|
+
config.stub(:image) { nil }
|
221
|
+
config.stub(:volume_boot) { nil }
|
222
|
+
nova.stub(:get_all_images).with(anything) do
|
223
|
+
[Item.new('img-001', 'image-01'),
|
224
|
+
Item.new('img-002', 'image-02')]
|
225
|
+
end
|
226
|
+
@action.resolve_image(env).should eq(nil)
|
227
|
+
end
|
228
|
+
end
|
216
229
|
end
|
217
230
|
|
218
231
|
describe 'resolve_floating_ip' do
|
@@ -400,7 +413,6 @@ describe VagrantPlugins::Openstack::ConfigResolver do
|
|
400
413
|
context 'neutron service is available' do
|
401
414
|
context 'with network configured in all possible ways' do
|
402
415
|
it 'returns normalized network list' do
|
403
|
-
|
404
416
|
config.stub(:networks) do
|
405
417
|
['001',
|
406
418
|
'net-02',
|
@@ -515,6 +527,10 @@ describe VagrantPlugins::Openstack::ConfigResolver do
|
|
515
527
|
context 'with string volume name' do
|
516
528
|
it 'returns normalized volume' do
|
517
529
|
config.stub(:volume_boot) { 'vol-01' }
|
530
|
+
nova.stub(:get_all_images).with(anything) do
|
531
|
+
[Item.new('img-001', 'image-01'),
|
532
|
+
Item.new('img-002', 'image-02')]
|
533
|
+
end
|
518
534
|
expect(@action.resolve_volume_boot(env)).to eq id: '001', device: 'vda'
|
519
535
|
end
|
520
536
|
end
|
@@ -529,6 +545,10 @@ describe VagrantPlugins::Openstack::ConfigResolver do
|
|
529
545
|
context 'with hash volume name' do
|
530
546
|
it 'returns normalized volume' do
|
531
547
|
config.stub(:volume_boot) { { name: 'vol-01' } }
|
548
|
+
nova.stub(:get_all_images).with(anything) do
|
549
|
+
[Item.new('img-001', 'image-01'),
|
550
|
+
Item.new('img-002', 'image-02')]
|
551
|
+
end
|
532
552
|
expect(@action.resolve_volume_boot(env)).to eq id: '001', device: 'vda'
|
533
553
|
end
|
534
554
|
end
|
@@ -543,6 +563,10 @@ describe VagrantPlugins::Openstack::ConfigResolver do
|
|
543
563
|
context 'with hash volume name and device' do
|
544
564
|
it 'returns normalized volume' do
|
545
565
|
config.stub(:volume_boot) { { name: 'vol-01', device: 'vdb' } }
|
566
|
+
nova.stub(:get_all_images).with(anything) do
|
567
|
+
[Item.new('img-001', 'image-01'),
|
568
|
+
Item.new('img-002', 'image-02')]
|
569
|
+
end
|
546
570
|
expect(@action.resolve_volume_boot(env)).to eq id: '001', device: 'vdb'
|
547
571
|
end
|
548
572
|
end
|
@@ -550,7 +574,7 @@ describe VagrantPlugins::Openstack::ConfigResolver do
|
|
550
574
|
context 'with empty hash' do
|
551
575
|
it 'raises an error' do
|
552
576
|
config.stub(:volume_boot) { {} }
|
553
|
-
expect { @action.resolve_volume_boot(env) }.to raise_error(Errors::
|
577
|
+
expect { @action.resolve_volume_boot(env) }.to raise_error(Errors::ConflictBootVolume)
|
554
578
|
end
|
555
579
|
end
|
556
580
|
|
@@ -588,6 +612,77 @@ describe VagrantPlugins::Openstack::ConfigResolver do
|
|
588
612
|
expect { @action.resolve_volume_boot(env) }.to raise_error(Errors::MultipleVolumeName)
|
589
613
|
end
|
590
614
|
end
|
615
|
+
|
616
|
+
context 'with hash containing a name and an image_name' do
|
617
|
+
it 'raises an error' do
|
618
|
+
config.stub(:volume_boot) { { name: 'vol-01', image: 'img_001' } }
|
619
|
+
expect { @action.resolve_volume_boot(env) }.to raise_error(Errors::ConflictBootVolume)
|
620
|
+
end
|
621
|
+
end
|
622
|
+
|
623
|
+
context 'with hash containing a name and a size' do
|
624
|
+
it 'raises an error' do
|
625
|
+
config.stub(:volume_boot) { { name: 'vol-01', size: '10' } }
|
626
|
+
expect { @action.resolve_volume_boot(env) }.to raise_error(Errors::ConflictBootVolume)
|
627
|
+
end
|
628
|
+
end
|
629
|
+
|
630
|
+
context 'with hash containing a name and a delete_on_destroy indication' do
|
631
|
+
it 'raises an error' do
|
632
|
+
config.stub(:volume_boot) { { name: 'vol-01', delete_on_destroy: 'true' } }
|
633
|
+
expect { @action.resolve_volume_boot(env) }.to raise_error(Errors::ConflictBootVolume)
|
634
|
+
end
|
635
|
+
end
|
636
|
+
|
637
|
+
context 'with hash containing a volume_id and an image_name' do
|
638
|
+
it 'raises an error' do
|
639
|
+
config.stub(:volume_boot) { { id: 'id', image: 'img_001' } }
|
640
|
+
expect { @action.resolve_volume_boot(env) }.to raise_error(Errors::ConflictBootVolume)
|
641
|
+
end
|
642
|
+
end
|
643
|
+
|
644
|
+
context 'with hash containing a volume_id and a size' do
|
645
|
+
it 'raises an error' do
|
646
|
+
config.stub(:volume_boot) { { id: 'id', size: '10' } }
|
647
|
+
expect { @action.resolve_volume_boot(env) }.to raise_error(Errors::ConflictBootVolume)
|
648
|
+
end
|
649
|
+
end
|
650
|
+
|
651
|
+
context 'with hash containing a volume_id and a delete_on_destroy indication' do
|
652
|
+
it 'raises an error' do
|
653
|
+
config.stub(:volume_boot) { { id: 'id', delete_on_destroy: 'true' } }
|
654
|
+
expect { @action.resolve_volume_boot(env) }.to raise_error(Errors::ConflictBootVolume)
|
655
|
+
end
|
656
|
+
end
|
657
|
+
|
658
|
+
context 'with hash containing an image_name without size' do
|
659
|
+
it 'raises an error' do
|
660
|
+
config.stub(:volume_boot) { { image: 'img-001' } }
|
661
|
+
expect { @action.resolve_volume_boot(env) }.to raise_error(Errors::UnresolvedVolume)
|
662
|
+
end
|
663
|
+
end
|
664
|
+
|
665
|
+
context 'with hash containing an image_name with a size' do
|
666
|
+
it 'return normalized volume' do
|
667
|
+
config.stub(:volume_boot) { { image: 'image-01', size: '10' } }
|
668
|
+
nova.stub(:get_all_images).with(anything) do
|
669
|
+
[Item.new('img-001', 'image-01'),
|
670
|
+
Item.new('img-002', 'image-02')]
|
671
|
+
end
|
672
|
+
expect(@action.resolve_volume_boot(env)).to eq image: 'img-001', device: 'vda', size: '10', delete_on_destroy: 'true'
|
673
|
+
end
|
674
|
+
end
|
675
|
+
|
676
|
+
context 'with hash containing an image_name, size, device and delete_on_destroy' do
|
677
|
+
it 'return normalized volume' do
|
678
|
+
config.stub(:volume_boot) { { image: 'image-01', size: '10', device: 'vdb', delete_on_destroy: 'false' } }
|
679
|
+
nova.stub(:get_all_images).with(anything) do
|
680
|
+
[Item.new('img-001', 'image-01'),
|
681
|
+
Item.new('img-002', 'image-02')]
|
682
|
+
end
|
683
|
+
expect(@action.resolve_volume_boot(env)).to eq image: 'img-001', device: 'vdb', size: '10', delete_on_destroy: 'false'
|
684
|
+
end
|
685
|
+
end
|
591
686
|
end
|
592
687
|
|
593
688
|
context 'cinder service is not available' do
|
@@ -653,7 +748,6 @@ describe VagrantPlugins::Openstack::ConfigResolver do
|
|
653
748
|
context 'cinder service is available' do
|
654
749
|
context 'with volume attached in all possible ways' do
|
655
750
|
it 'returns normalized volume list' do
|
656
|
-
|
657
751
|
config.stub(:volumes) do
|
658
752
|
['001',
|
659
753
|
'vol-02',
|
@@ -703,7 +797,7 @@ describe VagrantPlugins::Openstack::ConfigResolver do
|
|
703
797
|
context 'with empty hash' do
|
704
798
|
it 'raises an error' do
|
705
799
|
config.stub(:volumes) { [{}] }
|
706
|
-
expect { @action.resolve_volumes(env) }.to raise_error(Errors::
|
800
|
+
expect { @action.resolve_volumes(env) }.to raise_error(Errors::ConflictBootVolume)
|
707
801
|
end
|
708
802
|
end
|
709
803
|
|
@@ -5,9 +5,7 @@ describe VagrantPlugins::Openstack::Config do
|
|
5
5
|
let(:vagrant_public_key) { Vagrant.source_root.join('keys/vagrant.pub') }
|
6
6
|
|
7
7
|
subject do
|
8
|
-
super().tap
|
9
|
-
o.finalize!
|
10
|
-
end
|
8
|
+
super().tap(&:finalize!)
|
11
9
|
end
|
12
10
|
|
13
11
|
its(:password) { should be_nil }
|
@@ -253,9 +251,7 @@ describe VagrantPlugins::Openstack::Config do
|
|
253
251
|
end
|
254
252
|
|
255
253
|
subject do
|
256
|
-
super().tap
|
257
|
-
o.finalize!
|
258
|
-
end
|
254
|
+
super().tap(&:finalize!)
|
259
255
|
end
|
260
256
|
|
261
257
|
context 'with invalid stack' do
|
@@ -0,0 +1,27 @@
|
|
1
|
+
require 'vagrant-openstack-provider/spec_helper'
|
2
|
+
|
3
|
+
require 'aruba'
|
4
|
+
require 'aruba/api'
|
5
|
+
|
6
|
+
include Aruba::Api
|
7
|
+
|
8
|
+
# spec/template_spec.rb
|
9
|
+
require 'pathname'
|
10
|
+
|
11
|
+
root = Pathname.new(__FILE__).parent.parent
|
12
|
+
|
13
|
+
# Allows us to run commands directly, without worrying about the CWD
|
14
|
+
ENV['PATH'] = "#{root.join('bin').to_s}#{File::PATH_SEPARATOR}#{ENV['PATH']}"
|
15
|
+
|
16
|
+
describe "genud" do
|
17
|
+
context "YAML templates" do
|
18
|
+
it "should emit valid YAML to STDOUT", :focus do
|
19
|
+
|
20
|
+
puts '#####################'
|
21
|
+
# Run the command with Aruba's run_simple helper
|
22
|
+
run_simple "bundle exec vagrant openstack", false, 10
|
23
|
+
|
24
|
+
# assert_exit_status(0)
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
@@ -1,7 +1,6 @@
|
|
1
1
|
require 'vagrant-openstack-provider/spec_helper'
|
2
2
|
|
3
3
|
describe VagrantPlugins::Openstack::Utils do
|
4
|
-
|
5
4
|
let(:config) do
|
6
5
|
double('config').tap do |config|
|
7
6
|
config.stub(:tenant_name) { 'testTenant' }
|
@@ -19,7 +18,7 @@ describe VagrantPlugins::Openstack::Utils do
|
|
19
18
|
end
|
20
19
|
|
21
20
|
let(:env) do
|
22
|
-
|
21
|
+
{}.tap do |env|
|
23
22
|
env[:machine] = double('machine')
|
24
23
|
env[:machine].stub(:provider_config) { config }
|
25
24
|
env[:machine].stub(:id) { '1234id' }
|