vagrant-openstack-provider 0.3.4.pre → 0.4.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.
- data/CHANGELOG.md +25 -0
- data/Gemfile +3 -0
- data/Vagrantfile +1 -1
- data/lib/vagrant-openstack-provider/action/connect_openstack.rb +1 -0
- data/lib/vagrant-openstack-provider/action/create_server.rb +135 -19
- data/lib/vagrant-openstack-provider/action/read_ssh_info.rb +16 -2
- data/lib/vagrant-openstack-provider/client/cinder.rb +40 -0
- data/lib/vagrant-openstack-provider/client/domain.rb +64 -4
- data/lib/vagrant-openstack-provider/client/nova.rb +22 -2
- data/lib/vagrant-openstack-provider/client/openstack.rb +5 -0
- data/lib/vagrant-openstack-provider/command/main.rb +2 -1
- data/lib/vagrant-openstack-provider/command/volume_list.rb +27 -0
- data/lib/vagrant-openstack-provider/config.rb +64 -1
- data/lib/vagrant-openstack-provider/errors.rb +36 -0
- data/lib/vagrant-openstack-provider/version.rb +1 -1
- data/locales/en.yml +28 -0
- data/spec/vagrant-openstack-provider/action/connect_openstack_spec.rb +1 -0
- data/spec/vagrant-openstack-provider/action/create_server_spec.rb +250 -9
- data/spec/vagrant-openstack-provider/action/read_ssh_info_spec.rb +48 -3
- data/spec/vagrant-openstack-provider/client/cinder_spec.rb +114 -0
- data/spec/vagrant-openstack-provider/client/nova_spec.rb +50 -0
- data/spec/vagrant-openstack-provider/command/floatingip_list_spec.rb +2 -11
- data/spec/vagrant-openstack-provider/command/volume_list_spec.rb +33 -0
- data/spec/vagrant-openstack-provider/config_spec.rb +20 -0
- metadata +42 -12
- checksums.yaml +0 -7
@@ -14,9 +14,11 @@ describe VagrantPlugins::Openstack::Action::ReadSSHInfo do
|
|
14
14
|
config.stub(:tenant_name) { 'testTenant' }
|
15
15
|
config.stub(:username) { 'username' }
|
16
16
|
config.stub(:password) { 'password' }
|
17
|
-
config.stub(:ssh_username) { '
|
17
|
+
config.stub(:ssh_username) { 'test_username' }
|
18
18
|
config.stub(:floating_ip) { nil }
|
19
19
|
config.stub(:floating_ip_pool) { nil }
|
20
|
+
config.stub(:keypair_name) { nil }
|
21
|
+
config.stub(:public_key_path) { nil }
|
20
22
|
end
|
21
23
|
end
|
22
24
|
|
@@ -36,12 +38,26 @@ describe VagrantPlugins::Openstack::Action::ReadSSHInfo do
|
|
36
38
|
end
|
37
39
|
end
|
38
40
|
|
41
|
+
let(:ssh_config) do
|
42
|
+
double('ssh_config').tap do |config|
|
43
|
+
config.stub(:username) { 'sshuser' }
|
44
|
+
config.stub(:port) { nil }
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
let(:machine_config) do
|
49
|
+
double('machine_config').tap do |config|
|
50
|
+
config.stub(:ssh) { ssh_config }
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
39
54
|
let(:env) do
|
40
55
|
Hash.new.tap do |env|
|
41
56
|
env[:ui] = double('ui')
|
42
57
|
env[:ui].stub(:info).with(anything)
|
43
58
|
env[:machine] = double('machine')
|
44
59
|
env[:machine].stub(:provider_config) { config }
|
60
|
+
env[:machine].stub(:config) { machine_config }
|
45
61
|
env[:machine].stub(:id) { '1234' }
|
46
62
|
env[:machine].stub(:data_dir) { '/data/dir' }
|
47
63
|
env[:openstack_client] = double('openstack_client')
|
@@ -56,6 +72,36 @@ describe VagrantPlugins::Openstack::Action::ReadSSHInfo do
|
|
56
72
|
end
|
57
73
|
|
58
74
|
describe 'read_ssh_info' do
|
75
|
+
context 'with deprecated ssh_username specified' do
|
76
|
+
context 'with ssh.username specified' do
|
77
|
+
it 'returns ssh.username' do
|
78
|
+
ssh_config.stub(:username) { 'sshuser' }
|
79
|
+
config.stub(:ssh_username) { 'test_username' }
|
80
|
+
config.stub(:floating_ip) { '80.80.80.80' }
|
81
|
+
config.stub(:keypair_name) { 'my_keypair' }
|
82
|
+
@action.read_ssh_info(env).should eq(host: '80.80.80.80', port: 22, username: 'sshuser')
|
83
|
+
end
|
84
|
+
end
|
85
|
+
context 'without ssh.username specified' do
|
86
|
+
it 'returns ssh.username' do
|
87
|
+
ssh_config.stub(:username) { nil }
|
88
|
+
config.stub(:ssh_username) { 'test_username' }
|
89
|
+
config.stub(:floating_ip) { '80.80.80.80' }
|
90
|
+
config.stub(:keypair_name) { 'my_keypair' }
|
91
|
+
@action.read_ssh_info(env).should eq(host: '80.80.80.80', port: 22, username: 'test_username')
|
92
|
+
end
|
93
|
+
end
|
94
|
+
end
|
95
|
+
|
96
|
+
context 'with ssh.port overriden' do
|
97
|
+
it 'returns ssh.port' do
|
98
|
+
ssh_config.stub(:port) { 33 }
|
99
|
+
config.stub(:floating_ip) { '80.80.80.80' }
|
100
|
+
config.stub(:keypair_name) { 'my_keypair' }
|
101
|
+
@action.read_ssh_info(env).should eq(host: '80.80.80.80', port: 33, username: 'sshuser')
|
102
|
+
end
|
103
|
+
end
|
104
|
+
|
59
105
|
context 'with config.floating_ip specified' do
|
60
106
|
context 'with keypair_name specified' do
|
61
107
|
it 'returns the specified floating ip' do
|
@@ -84,9 +130,7 @@ describe VagrantPlugins::Openstack::Action::ReadSSHInfo do
|
|
84
130
|
end
|
85
131
|
end
|
86
132
|
end
|
87
|
-
end
|
88
133
|
|
89
|
-
describe 'read_ssh_info' do
|
90
134
|
context 'without config.floating_ip specified' do
|
91
135
|
it 'return the a floating_ip found by querying server details' do
|
92
136
|
nova.stub(:get_server_details).with(env, '1234') do
|
@@ -106,4 +150,5 @@ describe VagrantPlugins::Openstack::Action::ReadSSHInfo do
|
|
106
150
|
end
|
107
151
|
end
|
108
152
|
end
|
153
|
+
|
109
154
|
end
|
@@ -0,0 +1,114 @@
|
|
1
|
+
require 'vagrant-openstack-provider/spec_helper'
|
2
|
+
|
3
|
+
describe VagrantPlugins::Openstack::CinderClient do
|
4
|
+
|
5
|
+
let(:env) do
|
6
|
+
Hash.new
|
7
|
+
end
|
8
|
+
|
9
|
+
let(:session) do
|
10
|
+
VagrantPlugins::Openstack.session
|
11
|
+
end
|
12
|
+
|
13
|
+
before :each do
|
14
|
+
session.token = '123456'
|
15
|
+
session.project_id = 'a1b2c3'
|
16
|
+
session.endpoints = { volume: 'http://cinder' }
|
17
|
+
@cinder_client = VagrantPlugins::Openstack::CinderClient.instance
|
18
|
+
end
|
19
|
+
|
20
|
+
describe 'get_all_volumes' do
|
21
|
+
context 'on api v1' do
|
22
|
+
it 'returns volumes with details' do
|
23
|
+
|
24
|
+
stub_request(:get, 'http://cinder/volumes/detail')
|
25
|
+
.with(
|
26
|
+
headers:
|
27
|
+
{
|
28
|
+
'Accept' => 'application/json',
|
29
|
+
'X-Auth-Token' => '123456'
|
30
|
+
})
|
31
|
+
.to_return(
|
32
|
+
status: 200,
|
33
|
+
body: '
|
34
|
+
{
|
35
|
+
"volumes": [
|
36
|
+
{
|
37
|
+
"id": "987",
|
38
|
+
"display_name": "vol-01",
|
39
|
+
"size": "2",
|
40
|
+
"status": "available",
|
41
|
+
"bootable": "true",
|
42
|
+
"attachments": []
|
43
|
+
},
|
44
|
+
{
|
45
|
+
"id": "654",
|
46
|
+
"display_name": "vol-02",
|
47
|
+
"size": "4",
|
48
|
+
"status": "in-use",
|
49
|
+
"bootable": "false",
|
50
|
+
"attachments": [
|
51
|
+
{
|
52
|
+
"server_id": "inst-01",
|
53
|
+
"device": "/dev/vdc"
|
54
|
+
}
|
55
|
+
]
|
56
|
+
}
|
57
|
+
]
|
58
|
+
}
|
59
|
+
')
|
60
|
+
|
61
|
+
volumes = @cinder_client.get_all_volumes(env)
|
62
|
+
|
63
|
+
expect(volumes).to eq [Volume.new('987', 'vol-01', '2', 'available', 'true', nil, nil),
|
64
|
+
Volume.new('654', 'vol-02', '4', 'in-use', 'false', 'inst-01', '/dev/vdc')]
|
65
|
+
end
|
66
|
+
end
|
67
|
+
|
68
|
+
context 'on api v2' do
|
69
|
+
it 'returns volumes with details' do
|
70
|
+
|
71
|
+
stub_request(:get, 'http://cinder/volumes/detail')
|
72
|
+
.with(
|
73
|
+
headers:
|
74
|
+
{
|
75
|
+
'Accept' => 'application/json',
|
76
|
+
'X-Auth-Token' => '123456'
|
77
|
+
})
|
78
|
+
.to_return(
|
79
|
+
status: 200,
|
80
|
+
body: '
|
81
|
+
{
|
82
|
+
"volumes": [
|
83
|
+
{
|
84
|
+
"id": "987",
|
85
|
+
"name": "vol-01",
|
86
|
+
"size": "2",
|
87
|
+
"status": "available",
|
88
|
+
"bootable": "true",
|
89
|
+
"attachments": []
|
90
|
+
},
|
91
|
+
{
|
92
|
+
"id": "654",
|
93
|
+
"name": "vol-02",
|
94
|
+
"size": "4",
|
95
|
+
"status": "in-use",
|
96
|
+
"bootable": "false",
|
97
|
+
"attachments": [
|
98
|
+
{
|
99
|
+
"server_id": "inst-01",
|
100
|
+
"device": "/dev/vdc"
|
101
|
+
}
|
102
|
+
]
|
103
|
+
}
|
104
|
+
]
|
105
|
+
}')
|
106
|
+
|
107
|
+
volumes = @cinder_client.get_all_volumes(env)
|
108
|
+
|
109
|
+
expect(volumes).to eq [Volume.new('987', 'vol-01', '2', 'available', 'true', nil, nil),
|
110
|
+
Volume.new('654', 'vol-02', '4', 'in-use', 'false', 'inst-01', '/dev/vdc')]
|
111
|
+
end
|
112
|
+
end
|
113
|
+
end
|
114
|
+
end
|
@@ -114,6 +114,37 @@ describe VagrantPlugins::Openstack::NovaClient do
|
|
114
114
|
expect(instance_id).to eq('o1o2o3')
|
115
115
|
end
|
116
116
|
|
117
|
+
context 'with all options specified' do
|
118
|
+
it 'returns new instance id' do
|
119
|
+
stub_request(:post, 'http://nova/a1b2c3/servers')
|
120
|
+
.with(
|
121
|
+
body: '{"server":{"name":"inst","imageRef":"img","flavorRef":"flav","key_name":"key",'\
|
122
|
+
'"security_groups":["default"],"user_data":"user_data_test","metadata":"metadata_test"},'\
|
123
|
+
'"scheduler_hints":"sched_hints_test"}',
|
124
|
+
headers:
|
125
|
+
{
|
126
|
+
'Accept' => 'application/json',
|
127
|
+
'Content-Type' => 'application/json',
|
128
|
+
'X-Auth-Token' => '123456'
|
129
|
+
})
|
130
|
+
.to_return(status: 202, body: '{ "server": { "id": "o1o2o3" } }')
|
131
|
+
|
132
|
+
instance_id = @nova_client.create_server(
|
133
|
+
env,
|
134
|
+
name: 'inst',
|
135
|
+
image_ref: 'img',
|
136
|
+
flavor_ref: 'flav',
|
137
|
+
networks: nil,
|
138
|
+
keypair: 'key',
|
139
|
+
security_groups: ['default'],
|
140
|
+
user_data: 'user_data_test',
|
141
|
+
metadata: 'metadata_test',
|
142
|
+
scheduler_hints: 'sched_hints_test')
|
143
|
+
|
144
|
+
expect(instance_id).to eq('o1o2o3')
|
145
|
+
end
|
146
|
+
end
|
147
|
+
|
117
148
|
context 'with one two networks' do
|
118
149
|
it 'returns new instance id' do
|
119
150
|
|
@@ -154,6 +185,25 @@ describe VagrantPlugins::Openstack::NovaClient do
|
|
154
185
|
end
|
155
186
|
end
|
156
187
|
|
188
|
+
context 'with volume_boot' do
|
189
|
+
it 'returns new instance id' do
|
190
|
+
|
191
|
+
stub_request(:post, 'http://nova/a1b2c3/servers')
|
192
|
+
.with(
|
193
|
+
body: '{"server":{"name":"inst","block_device_mapping":[{"volume_id":"vol","device_name":"vda"}],"flavorRef":"flav","key_name":"key"}}',
|
194
|
+
headers:
|
195
|
+
{
|
196
|
+
'Accept' => 'application/json',
|
197
|
+
'Content-Type' => 'application/json',
|
198
|
+
'X-Auth-Token' => '123456'
|
199
|
+
})
|
200
|
+
.to_return(status: 202, body: '{ "server": { "id": "o1o2o3" } }')
|
201
|
+
|
202
|
+
instance_id = @nova_client.create_server(env, name: 'inst', volume_boot: { id: 'vol', device: 'vda' }, flavor_ref: 'flav', keypair: 'key')
|
203
|
+
|
204
|
+
expect(instance_id).to eq('o1o2o3')
|
205
|
+
end
|
206
|
+
end
|
157
207
|
end
|
158
208
|
end
|
159
209
|
|
@@ -3,17 +3,6 @@ require 'vagrant-openstack-provider/spec_helper'
|
|
3
3
|
describe VagrantPlugins::Openstack::Command::FloatingIpList do
|
4
4
|
describe 'cmd' do
|
5
5
|
|
6
|
-
let(:config) do
|
7
|
-
double('config').tap do |config|
|
8
|
-
config.stub(:openstack_auth_url) { 'http://keystoneAuthV2' }
|
9
|
-
config.stub(:openstack_compute_url) { nil }
|
10
|
-
config.stub(:openstack_network_url) { nil }
|
11
|
-
config.stub(:tenant_name) { 'testTenant' }
|
12
|
-
config.stub(:username) { 'username' }
|
13
|
-
config.stub(:password) { 'password' }
|
14
|
-
end
|
15
|
-
end
|
16
|
-
|
17
6
|
let(:nova) do
|
18
7
|
double('nova').tap do |nova|
|
19
8
|
nova.stub(:get_floating_ip_pools) do
|
@@ -61,6 +50,8 @@ describe VagrantPlugins::Openstack::Command::FloatingIpList do
|
|
61
50
|
end
|
62
51
|
|
63
52
|
it 'should get floating ip and floating ip pool from server' do
|
53
|
+
nova.should_receive(:get_floating_ip_pools).with(env)
|
54
|
+
nova.should_receive(:get_floating_ips).with(env)
|
64
55
|
@floating_ip_list_cmd.cmd('floatingip-list', ['--'], env)
|
65
56
|
end
|
66
57
|
end
|
@@ -0,0 +1,33 @@
|
|
1
|
+
require 'vagrant-openstack-provider/spec_helper'
|
2
|
+
|
3
|
+
describe VagrantPlugins::Openstack::Command::FloatingIpList do
|
4
|
+
describe 'cmd' do
|
5
|
+
|
6
|
+
let(:cinder) do
|
7
|
+
double('cinder').tap do |cinder|
|
8
|
+
cinder.stub(:get_all_volumes) do
|
9
|
+
[Volume.new('987', 'vol-01', '2', 'available', 'true', nil, nil),
|
10
|
+
Volume.new('654', 'vol-02', '4', 'in-use', 'false', 'inst-01', '/dev/vdc')]
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
let(:env) do
|
16
|
+
Hash.new.tap do |env|
|
17
|
+
env[:ui] = double('ui')
|
18
|
+
env[:ui].stub(:info).with(anything)
|
19
|
+
env[:openstack_client] = double
|
20
|
+
env[:openstack_client].stub(:cinder) { cinder }
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
before :each do
|
25
|
+
@volume_list_cmd = VagrantPlugins::Openstack::Command::VolumeList.new(nil, env)
|
26
|
+
end
|
27
|
+
|
28
|
+
it 'should get volumes list from server' do
|
29
|
+
cinder.should_receive(:get_all_volumes).with(env)
|
30
|
+
@volume_list_cmd.cmd('volume-list', [], env)
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
@@ -22,6 +22,11 @@ describe VagrantPlugins::Openstack::Config do
|
|
22
22
|
its(:public_key_path) { should be_nil }
|
23
23
|
its(:availability_zone) { should be_nil }
|
24
24
|
its(:ssh_username) { should be_nil }
|
25
|
+
its(:floating_ip_pool_always_allocate) { should be_false }
|
26
|
+
its(:scheduler_hints) { should be_nil }
|
27
|
+
its(:security_groups) { should be_nil }
|
28
|
+
its(:user_data) { should be_nil }
|
29
|
+
its(:metadata) { should be_nil }
|
25
30
|
end
|
26
31
|
|
27
32
|
describe 'overriding defaults' do
|
@@ -35,6 +40,11 @@ describe VagrantPlugins::Openstack::Config do
|
|
35
40
|
:username,
|
36
41
|
:keypair_name,
|
37
42
|
:ssh_username,
|
43
|
+
:floating_ip_pool_always_allocate,
|
44
|
+
:scheduler_hints,
|
45
|
+
:security_groups,
|
46
|
+
:user_data,
|
47
|
+
:metadata,
|
38
48
|
:availability_zone,
|
39
49
|
:public_key_path].each do |attribute|
|
40
50
|
it "should not default #{attribute} if overridden" do
|
@@ -64,6 +74,7 @@ describe VagrantPlugins::Openstack::Config do
|
|
64
74
|
error_message.stub(:yellow) { 'Yellowed Error message ' }
|
65
75
|
machine.stub_chain(:env, :root_path).and_return '/'
|
66
76
|
ssh.stub(:private_key_path) { 'private key path' }
|
77
|
+
ssh.stub(:username) { 'ssh username' }
|
67
78
|
config.stub(:ssh) { ssh }
|
68
79
|
machine.stub(:config) { config }
|
69
80
|
subject.username = 'foo'
|
@@ -86,6 +97,15 @@ describe VagrantPlugins::Openstack::Config do
|
|
86
97
|
end
|
87
98
|
end
|
88
99
|
|
100
|
+
context 'with no ssh username provider' do
|
101
|
+
it 'should raise an error' do
|
102
|
+
ssh.stub(:username) { nil }
|
103
|
+
subject.ssh_username = nil
|
104
|
+
I18n.should_receive(:t).with('vagrant_openstack.config.ssh_username_required').and_return error_message
|
105
|
+
validation_errors.first.should == error_message
|
106
|
+
end
|
107
|
+
end
|
108
|
+
|
89
109
|
context 'with good values' do
|
90
110
|
it 'should validate' do
|
91
111
|
validation_errors.should be_empty
|
metadata
CHANGED
@@ -1,7 +1,8 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: vagrant-openstack-provider
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.0
|
5
|
+
prerelease:
|
5
6
|
platform: ruby
|
6
7
|
authors:
|
7
8
|
- Guillaume Giamarchi
|
@@ -9,11 +10,12 @@ authors:
|
|
9
10
|
autorequire:
|
10
11
|
bindir: bin
|
11
12
|
cert_chain: []
|
12
|
-
date: 2014-09-
|
13
|
+
date: 2014-09-22 00:00:00.000000000 Z
|
13
14
|
dependencies:
|
14
15
|
- !ruby/object:Gem::Dependency
|
15
16
|
name: json
|
16
17
|
requirement: !ruby/object:Gem::Requirement
|
18
|
+
none: false
|
17
19
|
requirements:
|
18
20
|
- - '='
|
19
21
|
- !ruby/object:Gem::Version
|
@@ -21,6 +23,7 @@ dependencies:
|
|
21
23
|
type: :runtime
|
22
24
|
prerelease: false
|
23
25
|
version_requirements: !ruby/object:Gem::Requirement
|
26
|
+
none: false
|
24
27
|
requirements:
|
25
28
|
- - '='
|
26
29
|
- !ruby/object:Gem::Version
|
@@ -28,6 +31,7 @@ dependencies:
|
|
28
31
|
- !ruby/object:Gem::Dependency
|
29
32
|
name: rest-client
|
30
33
|
requirement: !ruby/object:Gem::Requirement
|
34
|
+
none: false
|
31
35
|
requirements:
|
32
36
|
- - ~>
|
33
37
|
- !ruby/object:Gem::Version
|
@@ -35,6 +39,7 @@ dependencies:
|
|
35
39
|
type: :runtime
|
36
40
|
prerelease: false
|
37
41
|
version_requirements: !ruby/object:Gem::Requirement
|
42
|
+
none: false
|
38
43
|
requirements:
|
39
44
|
- - ~>
|
40
45
|
- !ruby/object:Gem::Version
|
@@ -42,6 +47,7 @@ dependencies:
|
|
42
47
|
- !ruby/object:Gem::Dependency
|
43
48
|
name: terminal-table
|
44
49
|
requirement: !ruby/object:Gem::Requirement
|
50
|
+
none: false
|
45
51
|
requirements:
|
46
52
|
- - '='
|
47
53
|
- !ruby/object:Gem::Version
|
@@ -49,6 +55,7 @@ dependencies:
|
|
49
55
|
type: :runtime
|
50
56
|
prerelease: false
|
51
57
|
version_requirements: !ruby/object:Gem::Requirement
|
58
|
+
none: false
|
52
59
|
requirements:
|
53
60
|
- - '='
|
54
61
|
- !ruby/object:Gem::Version
|
@@ -56,6 +63,7 @@ dependencies:
|
|
56
63
|
- !ruby/object:Gem::Dependency
|
57
64
|
name: sshkey
|
58
65
|
requirement: !ruby/object:Gem::Requirement
|
66
|
+
none: false
|
59
67
|
requirements:
|
60
68
|
- - '='
|
61
69
|
- !ruby/object:Gem::Version
|
@@ -63,6 +71,7 @@ dependencies:
|
|
63
71
|
type: :runtime
|
64
72
|
prerelease: false
|
65
73
|
version_requirements: !ruby/object:Gem::Requirement
|
74
|
+
none: false
|
66
75
|
requirements:
|
67
76
|
- - '='
|
68
77
|
- !ruby/object:Gem::Version
|
@@ -70,6 +79,7 @@ dependencies:
|
|
70
79
|
- !ruby/object:Gem::Dependency
|
71
80
|
name: colorize
|
72
81
|
requirement: !ruby/object:Gem::Requirement
|
82
|
+
none: false
|
73
83
|
requirements:
|
74
84
|
- - '='
|
75
85
|
- !ruby/object:Gem::Version
|
@@ -77,6 +87,7 @@ dependencies:
|
|
77
87
|
type: :runtime
|
78
88
|
prerelease: false
|
79
89
|
version_requirements: !ruby/object:Gem::Requirement
|
90
|
+
none: false
|
80
91
|
requirements:
|
81
92
|
- - '='
|
82
93
|
- !ruby/object:Gem::Version
|
@@ -84,20 +95,23 @@ dependencies:
|
|
84
95
|
- !ruby/object:Gem::Dependency
|
85
96
|
name: rake
|
86
97
|
requirement: !ruby/object:Gem::Requirement
|
98
|
+
none: false
|
87
99
|
requirements:
|
88
|
-
- - '>='
|
100
|
+
- - ! '>='
|
89
101
|
- !ruby/object:Gem::Version
|
90
102
|
version: '0'
|
91
103
|
type: :development
|
92
104
|
prerelease: false
|
93
105
|
version_requirements: !ruby/object:Gem::Requirement
|
106
|
+
none: false
|
94
107
|
requirements:
|
95
|
-
- - '>='
|
108
|
+
- - ! '>='
|
96
109
|
- !ruby/object:Gem::Version
|
97
110
|
version: '0'
|
98
111
|
- !ruby/object:Gem::Dependency
|
99
112
|
name: rspec
|
100
113
|
requirement: !ruby/object:Gem::Requirement
|
114
|
+
none: false
|
101
115
|
requirements:
|
102
116
|
- - ~>
|
103
117
|
- !ruby/object:Gem::Version
|
@@ -105,6 +119,7 @@ dependencies:
|
|
105
119
|
type: :development
|
106
120
|
prerelease: false
|
107
121
|
version_requirements: !ruby/object:Gem::Requirement
|
122
|
+
none: false
|
108
123
|
requirements:
|
109
124
|
- - ~>
|
110
125
|
- !ruby/object:Gem::Version
|
@@ -112,15 +127,17 @@ dependencies:
|
|
112
127
|
- !ruby/object:Gem::Dependency
|
113
128
|
name: aruba
|
114
129
|
requirement: !ruby/object:Gem::Requirement
|
130
|
+
none: false
|
115
131
|
requirements:
|
116
|
-
- - '>='
|
132
|
+
- - ! '>='
|
117
133
|
- !ruby/object:Gem::Version
|
118
134
|
version: '0'
|
119
135
|
type: :development
|
120
136
|
prerelease: false
|
121
137
|
version_requirements: !ruby/object:Gem::Requirement
|
138
|
+
none: false
|
122
139
|
requirements:
|
123
|
-
- - '>='
|
140
|
+
- - ! '>='
|
124
141
|
- !ruby/object:Gem::Version
|
125
142
|
version: '0'
|
126
143
|
description: Enables Vagrant to manage machines in Openstack Cloud.
|
@@ -165,6 +182,7 @@ files:
|
|
165
182
|
- lib/vagrant-openstack-provider/action/sync_folders.rb
|
166
183
|
- lib/vagrant-openstack-provider/action/wait_active.rb
|
167
184
|
- lib/vagrant-openstack-provider/action/wait_stop.rb
|
185
|
+
- lib/vagrant-openstack-provider/client/cinder.rb
|
168
186
|
- lib/vagrant-openstack-provider/client/domain.rb
|
169
187
|
- lib/vagrant-openstack-provider/client/http_utils.rb
|
170
188
|
- lib/vagrant-openstack-provider/client/keystone.rb
|
@@ -179,6 +197,7 @@ files:
|
|
179
197
|
- lib/vagrant-openstack-provider/command/main.rb
|
180
198
|
- lib/vagrant-openstack-provider/command/network_list.rb
|
181
199
|
- lib/vagrant-openstack-provider/command/utils.rb
|
200
|
+
- lib/vagrant-openstack-provider/command/volume_list.rb
|
182
201
|
- lib/vagrant-openstack-provider/config.rb
|
183
202
|
- lib/vagrant-openstack-provider/errors.rb
|
184
203
|
- lib/vagrant-openstack-provider/plugin.rb
|
@@ -188,11 +207,13 @@ files:
|
|
188
207
|
- spec/vagrant-openstack-provider/action/connect_openstack_spec.rb
|
189
208
|
- spec/vagrant-openstack-provider/action/create_server_spec.rb
|
190
209
|
- spec/vagrant-openstack-provider/action/read_ssh_info_spec.rb
|
210
|
+
- spec/vagrant-openstack-provider/client/cinder_spec.rb
|
191
211
|
- spec/vagrant-openstack-provider/client/keystone_spec.rb
|
192
212
|
- spec/vagrant-openstack-provider/client/neutron_spec.rb
|
193
213
|
- spec/vagrant-openstack-provider/client/nova_spec.rb
|
194
214
|
- spec/vagrant-openstack-provider/client/utils_spec.rb
|
195
215
|
- spec/vagrant-openstack-provider/command/floatingip_list_spec.rb
|
216
|
+
- spec/vagrant-openstack-provider/command/volume_list_spec.rb
|
196
217
|
- spec/vagrant-openstack-provider/config_spec.rb
|
197
218
|
- spec/vagrant-openstack-provider/provider_spec.rb
|
198
219
|
- spec/vagrant-openstack-provider/spec_helper.rb
|
@@ -200,36 +221,45 @@ files:
|
|
200
221
|
- vagrant-openstack-provider.gemspec
|
201
222
|
homepage: https://github.com/ggiamarchi/vagrant-openstack-provider
|
202
223
|
licenses: []
|
203
|
-
metadata: {}
|
204
224
|
post_install_message:
|
205
225
|
rdoc_options: []
|
206
226
|
require_paths:
|
207
227
|
- lib
|
208
228
|
required_ruby_version: !ruby/object:Gem::Requirement
|
229
|
+
none: false
|
209
230
|
requirements:
|
210
|
-
- - '>='
|
231
|
+
- - ! '>='
|
211
232
|
- !ruby/object:Gem::Version
|
212
233
|
version: '0'
|
234
|
+
segments:
|
235
|
+
- 0
|
236
|
+
hash: -4437050053646903495
|
213
237
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
238
|
+
none: false
|
214
239
|
requirements:
|
215
|
-
- - '
|
240
|
+
- - ! '>='
|
216
241
|
- !ruby/object:Gem::Version
|
217
|
-
version:
|
242
|
+
version: '0'
|
243
|
+
segments:
|
244
|
+
- 0
|
245
|
+
hash: -4437050053646903495
|
218
246
|
requirements: []
|
219
247
|
rubyforge_project:
|
220
|
-
rubygems_version:
|
248
|
+
rubygems_version: 1.8.23.2
|
221
249
|
signing_key:
|
222
|
-
specification_version:
|
250
|
+
specification_version: 3
|
223
251
|
summary: Enables Vagrant to manage machines in Openstack Cloud.
|
224
252
|
test_files:
|
225
253
|
- spec/vagrant-openstack-provider/action/connect_openstack_spec.rb
|
226
254
|
- spec/vagrant-openstack-provider/action/create_server_spec.rb
|
227
255
|
- spec/vagrant-openstack-provider/action/read_ssh_info_spec.rb
|
256
|
+
- spec/vagrant-openstack-provider/client/cinder_spec.rb
|
228
257
|
- spec/vagrant-openstack-provider/client/keystone_spec.rb
|
229
258
|
- spec/vagrant-openstack-provider/client/neutron_spec.rb
|
230
259
|
- spec/vagrant-openstack-provider/client/nova_spec.rb
|
231
260
|
- spec/vagrant-openstack-provider/client/utils_spec.rb
|
232
261
|
- spec/vagrant-openstack-provider/command/floatingip_list_spec.rb
|
262
|
+
- spec/vagrant-openstack-provider/command/volume_list_spec.rb
|
233
263
|
- spec/vagrant-openstack-provider/config_spec.rb
|
234
264
|
- spec/vagrant-openstack-provider/provider_spec.rb
|
235
265
|
- spec/vagrant-openstack-provider/spec_helper.rb
|