fog 1.35.0 → 1.36.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.travis.yml +2 -0
- data/CHANGELOG.md +50 -0
- data/fog.gemspec +6 -6
- data/lib/fog/digitalocean/models/compute/server.rb +0 -1
- data/lib/fog/digitalocean/requests/compute_v2/create_ssh_key.rb +10 -8
- data/lib/fog/digitalocean/requests/compute_v2/delete_ssh_key.rb +5 -1
- data/lib/fog/digitalocean/requests/compute_v2/list_ssh_keys.rb +6 -1
- data/lib/fog/glesys/models/compute/server.rb +0 -1
- data/lib/fog/joyent/compute.rb +6 -1
- data/lib/fog/linode/compute.rb +3 -0
- data/lib/fog/linode/models/compute/data_center.rb +1 -0
- data/lib/fog/linode/models/compute/flavor.rb +3 -0
- data/lib/fog/linode/models/compute/flavors.rb +8 -1
- data/lib/fog/linode/models/compute/image.rb +2 -0
- data/lib/fog/linode/models/compute/images.rb +2 -1
- data/lib/fog/linode/models/compute/kernel.rb +3 -0
- data/lib/fog/linode/models/compute/kernels.rb +14 -8
- data/lib/fog/linode/models/compute/node_balancer_flavor.rb +13 -0
- data/lib/fog/linode/models/compute/node_balancer_flavors.rb +27 -0
- data/lib/fog/linode/requests/compute/avail_kernels.rb +17 -18
- data/lib/fog/linode/requests/compute/avail_linodeplans.rb +4 -2
- data/lib/fog/linode/requests/compute/avail_nodebalancers.rb +42 -0
- data/lib/fog/linode/requests/compute/avail_stackscripts.rb +6 -11
- data/lib/fog/openstack/core.rb +22 -21
- data/lib/fog/openstack/models/baremetal/nodes.rb +1 -1
- data/lib/fog/openstack/models/identity_v3/domain.rb +6 -0
- data/lib/fog/openstack/models/identity_v3/domains.rb +19 -4
- data/lib/fog/openstack/models/identity_v3/project.rb +10 -0
- data/lib/fog/openstack/models/identity_v3/projects.rb +16 -3
- data/lib/fog/openstack/models/identity_v3/tokens.rb +1 -0
- data/lib/fog/openstack/models/storage/file.rb +9 -0
- data/lib/fog/openstack/requests/baremetal/delete_node.rb +1 -1
- data/lib/fog/rackspace/requests/load_balancers/create_node.rb +1 -1
- data/lib/fog/version.rb +1 -1
- data/lib/fog/vsphere/compute.rb +8 -0
- data/lib/fog/vsphere/models/compute/network.rb +1 -0
- data/lib/fog/vsphere/models/compute/process.rb +18 -0
- data/lib/fog/vsphere/models/compute/server.rb +29 -0
- data/lib/fog/vsphere/models/compute/snapshot.rb +35 -0
- data/lib/fog/vsphere/models/compute/snapshots.rb +27 -0
- data/lib/fog/vsphere/requests/compute/create_vm.rb +65 -2
- data/lib/fog/vsphere/requests/compute/list_child_snapshots.rb +71 -0
- data/lib/fog/vsphere/requests/compute/list_networks.rb +5 -4
- data/lib/fog/vsphere/requests/compute/list_processes.rb +41 -0
- data/lib/fog/vsphere/requests/compute/list_vm_snapshots.rb +66 -0
- data/lib/fog/vsphere/requests/compute/revert_to_snapshot.rb +30 -0
- data/lib/fog/vsphere/requests/compute/vm_clone.rb +2 -5
- data/lib/fog/vsphere/requests/compute/vm_take_snapshot.rb +37 -0
- data/lib/tasks/changelog_task.rb +1 -0
- data/spec/fog/openstack/identity_v3/authv3_a.yml +18 -18
- data/spec/fog/openstack/identity_v3/authv3_b.yml +18 -18
- data/spec/fog/openstack/identity_v3/authv3_c.yml +293 -55
- data/spec/fog/openstack/identity_v3/authv3_token.yml +89 -89
- data/spec/fog/openstack/identity_v3/authv3_unscoped.yml +325 -222
- data/spec/fog/openstack/identity_v3/authv3_unscoped_reauth.yml +587 -111
- data/spec/fog/openstack/identity_v3/common_setup.yml +30 -30
- data/spec/fog/openstack/identity_v3/idv3_credential.yml +17 -17
- data/spec/fog/openstack/identity_v3/idv3_credential_crud.yml +343 -106
- data/spec/fog/openstack/identity_v3/idv3_domain.yml +27 -122
- data/spec/fog/openstack/identity_v3/idv3_domain_crud.yml +75 -128
- data/spec/fog/openstack/identity_v3/idv3_domain_group_roles_mutation.yml +141 -141
- data/spec/fog/openstack/identity_v3/idv3_domain_roles_mutation.yml +326 -86
- data/spec/fog/openstack/identity_v3/idv3_endpoint.yml +221 -221
- data/spec/fog/openstack/identity_v3/idv3_endpoints_crud.yml +314 -314
- data/spec/fog/openstack/identity_v3/idv3_group_crud_mutation.yml +191 -188
- data/spec/fog/openstack/identity_v3/idv3_policy.yml +23 -23
- data/spec/fog/openstack/identity_v3/idv3_policy_crud.yml +67 -67
- data/spec/fog/openstack/identity_v3/idv3_project.yml +267 -161
- data/spec/fog/openstack/identity_v3/idv3_project_crud.yml +70 -145
- data/spec/fog/openstack/identity_v3/idv3_project_group_user_roles_mutation.yml +195 -243
- data/spec/fog/openstack/identity_v3/idv3_project_hier_crud_list.yml +203 -553
- data/spec/fog/openstack/identity_v3/idv3_role.yml +49 -49
- data/spec/fog/openstack/identity_v3/idv3_role_crud.yml +92 -92
- data/spec/fog/openstack/identity_v3/idv3_service.yml +61 -61
- data/spec/fog/openstack/identity_v3/idv3_services_crud.yml +111 -111
- data/spec/fog/openstack/identity_v3/idv3_token.yml +84 -84
- data/spec/fog/openstack/identity_v3/idv3_user_crud.yml +140 -125
- data/spec/fog/openstack/identity_v3/idv3_users.yml +98 -78
- data/spec/fog/openstack/network/common_setup.yml +84 -75
- data/spec/fog/openstack/network/subnets_crud.yml +75 -35
- data/spec/fog/openstack/shared_context.rb +5 -1
- data/tests/helper.rb +1 -0
- data/tests/linode/requests/compute/datacenter_tests.rb +2 -1
- data/tests/linode/requests/compute/kernel_tests.rb +2 -10
- data/tests/linode/requests/compute/linodeplans_tests.rb +10 -7
- data/tests/linode/requests/compute/nodebalancers_tests.rb +20 -0
- data/tests/openstack/models/storage/file_tests.rb +29 -0
- data/tests/rackspace/requests/load_balancers/node_tests.rb +7 -0
- data/tests/vsphere/models/compute/server_tests.rb +27 -1
- data/tests/vsphere/requests/compute/list_child_snapshots_tests.rb +10 -0
- data/tests/vsphere/requests/compute/list_vm_snapshots_tests.rb +10 -0
- data/tests/vsphere/requests/compute/revert_to_snapshot_tests.rb +15 -0
- data/tests/vsphere/requests/compute/vm_take_snapshot_tests.rb +19 -0
- metadata +41 -16
- data/spec/fog/openstack/identity_v3/authv3_project.yml +0 -98
@@ -5,16 +5,18 @@ http_interactions:
|
|
5
5
|
uri: http://devstack.openstack.stack:9696/v2.0/networks
|
6
6
|
body:
|
7
7
|
encoding: UTF-8
|
8
|
-
string:
|
8
|
+
string: '{"network":{"name":"foo-net12","shared":false}}'
|
9
9
|
headers:
|
10
10
|
User-Agent:
|
11
|
-
- fog-core/1.32.
|
11
|
+
- fog-core/1.32.1
|
12
|
+
Proxy-Connection:
|
13
|
+
- Keep-Alive
|
12
14
|
Content-Type:
|
13
15
|
- application/json
|
14
16
|
Accept:
|
15
17
|
- application/json
|
16
18
|
X-Auth-Token:
|
17
|
-
-
|
19
|
+
- 3b58d1663a9a49b2af240e68bfb08081
|
18
20
|
response:
|
19
21
|
status:
|
20
22
|
code: 201
|
@@ -25,33 +27,43 @@ http_interactions:
|
|
25
27
|
Content-Length:
|
26
28
|
- '344'
|
27
29
|
X-Openstack-Request-Id:
|
28
|
-
- req-
|
30
|
+
- req-fdcd2d80-b5c1-4c2f-854b-b4723a66b777
|
29
31
|
Date:
|
30
|
-
- Thu,
|
32
|
+
- Thu, 29 Oct 2015 10:19:42 GMT
|
33
|
+
X-Cache:
|
34
|
+
- MISS from i056593-vagrant
|
35
|
+
X-Cache-Lookup:
|
36
|
+
- MISS from i056593-vagrant:3128
|
37
|
+
Via:
|
38
|
+
- 1.1 i056593-vagrant (squid/3.3.8)
|
39
|
+
Connection:
|
40
|
+
- keep-alive
|
31
41
|
body:
|
32
|
-
encoding:
|
33
|
-
string:
|
42
|
+
encoding: UTF-8
|
43
|
+
string: '{"network": {"status": "ACTIVE", "subnets": [], "name": "foo-net12",
|
34
44
|
"provider:physical_network": null, "router:external": false, "tenant_id":
|
35
|
-
"
|
36
|
-
false, "provider:network_type": "vxlan", "id": "
|
37
|
-
"provider:segmentation_id":
|
45
|
+
"ded5a6e0922c4be59e7c15517cfb89ee", "admin_state_up": true, "mtu": 0, "shared":
|
46
|
+
false, "provider:network_type": "vxlan", "id": "212190ec-9075-45d6-b31e-e0649a79b356",
|
47
|
+
"provider:segmentation_id": 1045}}'
|
38
48
|
http_version:
|
39
|
-
recorded_at: Thu,
|
49
|
+
recorded_at: Thu, 29 Oct 2015 10:19:38 GMT
|
40
50
|
- request:
|
41
51
|
method: post
|
42
52
|
uri: http://devstack.openstack.stack:9696/v2.0/subnets
|
43
53
|
body:
|
44
54
|
encoding: UTF-8
|
45
|
-
string:
|
55
|
+
string: '{"subnet":{"network_id":"212190ec-9075-45d6-b31e-e0649a79b356","cidr":"172.16.0.0/16","ip_version":4,"name":"my-network","gateway_ip":null}}'
|
46
56
|
headers:
|
47
57
|
User-Agent:
|
48
|
-
- fog-core/1.32.
|
58
|
+
- fog-core/1.32.1
|
59
|
+
Proxy-Connection:
|
60
|
+
- Keep-Alive
|
49
61
|
Content-Type:
|
50
62
|
- application/json
|
51
63
|
Accept:
|
52
64
|
- application/json
|
53
65
|
X-Auth-Token:
|
54
|
-
-
|
66
|
+
- 3b58d1663a9a49b2af240e68bfb08081
|
55
67
|
response:
|
56
68
|
status:
|
57
69
|
code: 201
|
@@ -62,34 +74,44 @@ http_interactions:
|
|
62
74
|
Content-Length:
|
63
75
|
- '452'
|
64
76
|
X-Openstack-Request-Id:
|
65
|
-
- req-
|
77
|
+
- req-6d6a0167-3c48-49e5-8bf4-10e6aa7f4873
|
66
78
|
Date:
|
67
|
-
- Thu,
|
79
|
+
- Thu, 29 Oct 2015 10:19:42 GMT
|
80
|
+
X-Cache:
|
81
|
+
- MISS from i056593-vagrant
|
82
|
+
X-Cache-Lookup:
|
83
|
+
- MISS from i056593-vagrant:3128
|
84
|
+
Via:
|
85
|
+
- 1.1 i056593-vagrant (squid/3.3.8)
|
86
|
+
Connection:
|
87
|
+
- keep-alive
|
68
88
|
body:
|
69
|
-
encoding:
|
70
|
-
string:
|
71
|
-
"
|
89
|
+
encoding: UTF-8
|
90
|
+
string: '{"subnet": {"name": "my-network", "enable_dhcp": true, "network_id":
|
91
|
+
"212190ec-9075-45d6-b31e-e0649a79b356", "tenant_id": "ded5a6e0922c4be59e7c15517cfb89ee",
|
72
92
|
"dns_nameservers": [], "gateway_ip": null, "ipv6_ra_mode": null, "allocation_pools":
|
73
93
|
[{"start": "172.16.0.1", "end": "172.16.255.254"}], "host_routes": [], "ip_version":
|
74
|
-
4, "ipv6_address_mode": null, "cidr": "172.16.0.0/16", "id": "
|
94
|
+
4, "ipv6_address_mode": null, "cidr": "172.16.0.0/16", "id": "3d936331-954b-4d47-9531-f27cea2921da",
|
75
95
|
"subnetpool_id": null}}'
|
76
96
|
http_version:
|
77
|
-
recorded_at: Thu,
|
97
|
+
recorded_at: Thu, 29 Oct 2015 10:19:38 GMT
|
78
98
|
- request:
|
79
99
|
method: delete
|
80
|
-
uri: http://devstack.openstack.stack:9696/v2.0/subnets/
|
100
|
+
uri: http://devstack.openstack.stack:9696/v2.0/subnets/3d936331-954b-4d47-9531-f27cea2921da
|
81
101
|
body:
|
82
102
|
encoding: US-ASCII
|
83
103
|
string: ''
|
84
104
|
headers:
|
85
105
|
User-Agent:
|
86
|
-
- fog-core/1.32.
|
106
|
+
- fog-core/1.32.1
|
107
|
+
Proxy-Connection:
|
108
|
+
- Keep-Alive
|
87
109
|
Content-Type:
|
88
110
|
- application/json
|
89
111
|
Accept:
|
90
112
|
- application/json
|
91
113
|
X-Auth-Token:
|
92
|
-
-
|
114
|
+
- 3b58d1663a9a49b2af240e68bfb08081
|
93
115
|
response:
|
94
116
|
status:
|
95
117
|
code: 204
|
@@ -98,29 +120,39 @@ http_interactions:
|
|
98
120
|
Content-Length:
|
99
121
|
- '0'
|
100
122
|
X-Openstack-Request-Id:
|
101
|
-
- req-
|
123
|
+
- req-e44101b5-1474-4796-85e5-2c451aec45b1
|
102
124
|
Date:
|
103
|
-
- Thu,
|
125
|
+
- Thu, 29 Oct 2015 10:19:43 GMT
|
126
|
+
X-Cache:
|
127
|
+
- MISS from i056593-vagrant
|
128
|
+
X-Cache-Lookup:
|
129
|
+
- MISS from i056593-vagrant:3128
|
130
|
+
Via:
|
131
|
+
- 1.1 i056593-vagrant (squid/3.3.8)
|
132
|
+
Connection:
|
133
|
+
- keep-alive
|
104
134
|
body:
|
105
|
-
encoding:
|
135
|
+
encoding: UTF-8
|
106
136
|
string: ''
|
107
137
|
http_version:
|
108
|
-
recorded_at: Thu,
|
138
|
+
recorded_at: Thu, 29 Oct 2015 10:19:38 GMT
|
109
139
|
- request:
|
110
140
|
method: delete
|
111
|
-
uri: http://devstack.openstack.stack:9696/v2.0/networks/
|
141
|
+
uri: http://devstack.openstack.stack:9696/v2.0/networks/212190ec-9075-45d6-b31e-e0649a79b356
|
112
142
|
body:
|
113
143
|
encoding: US-ASCII
|
114
144
|
string: ''
|
115
145
|
headers:
|
116
146
|
User-Agent:
|
117
|
-
- fog-core/1.32.
|
147
|
+
- fog-core/1.32.1
|
148
|
+
Proxy-Connection:
|
149
|
+
- Keep-Alive
|
118
150
|
Content-Type:
|
119
151
|
- application/json
|
120
152
|
Accept:
|
121
153
|
- application/json
|
122
154
|
X-Auth-Token:
|
123
|
-
-
|
155
|
+
- 3b58d1663a9a49b2af240e68bfb08081
|
124
156
|
response:
|
125
157
|
status:
|
126
158
|
code: 204
|
@@ -129,12 +161,20 @@ http_interactions:
|
|
129
161
|
Content-Length:
|
130
162
|
- '0'
|
131
163
|
X-Openstack-Request-Id:
|
132
|
-
- req-
|
164
|
+
- req-c8c52a10-08ea-4e1f-8915-b5fd33e4d874
|
133
165
|
Date:
|
134
|
-
- Thu,
|
166
|
+
- Thu, 29 Oct 2015 10:19:43 GMT
|
167
|
+
X-Cache:
|
168
|
+
- MISS from i056593-vagrant
|
169
|
+
X-Cache-Lookup:
|
170
|
+
- MISS from i056593-vagrant:3128
|
171
|
+
Via:
|
172
|
+
- 1.1 i056593-vagrant (squid/3.3.8)
|
173
|
+
Connection:
|
174
|
+
- keep-alive
|
135
175
|
body:
|
136
|
-
encoding:
|
176
|
+
encoding: UTF-8
|
137
177
|
string: ''
|
138
178
|
http_version:
|
139
|
-
recorded_at: Thu,
|
179
|
+
recorded_at: Thu, 29 Oct 2015 10:19:38 GMT
|
140
180
|
recorded_with: VCR 2.9.3
|
@@ -1,6 +1,7 @@
|
|
1
1
|
require 'rspec/core'
|
2
2
|
require 'rspec/expectations'
|
3
3
|
require 'vcr'
|
4
|
+
require 'fog/openstack/core'
|
4
5
|
require 'fog/openstack/identity'
|
5
6
|
require 'fog/openstack/identity_v3'
|
6
7
|
require 'fog/openstack/image'
|
@@ -73,6 +74,8 @@ RSpec.shared_context 'OpenStack specs with VCR' do
|
|
73
74
|
|
74
75
|
# setup the service object
|
75
76
|
VCR.use_cassette('common_setup') do
|
77
|
+
Fog::OpenStack.clear_token_cache
|
78
|
+
|
76
79
|
if @service_class == Fog::Identity::OpenStack::V3 || @os_auth_url.end_with?('/v3')
|
77
80
|
options = {
|
78
81
|
:openstack_auth_url => "#{@os_auth_url}/auth/tokens",
|
@@ -95,7 +98,8 @@ RSpec.shared_context 'OpenStack specs with VCR' do
|
|
95
98
|
# :openstack_project_domain => ENV['OS_PROJECT_DOMAIN_NAME'] || 'Default',
|
96
99
|
}
|
97
100
|
end
|
98
|
-
@service = @service_class.new(options)
|
101
|
+
@service = @service_class.new(options)
|
102
|
+
|
99
103
|
end
|
100
104
|
end
|
101
105
|
|
data/tests/helper.rb
CHANGED
@@ -4,24 +4,16 @@ Shindo.tests('Fog::Compute[:linode] | kernel requests', ['linode']) do
|
|
4
4
|
'DATA' => [{
|
5
5
|
'LABEL' => String,
|
6
6
|
'ISXEN' => Integer,
|
7
|
+
'ISKVM' => Integer,
|
7
8
|
'ISPVOPS' => Integer,
|
8
9
|
'KERNELID' => Integer
|
9
10
|
}]
|
10
11
|
})
|
11
12
|
|
12
13
|
tests('success') do
|
13
|
-
@kernel_id = nil
|
14
|
-
|
15
14
|
tests('#avail_kernels').formats(@kernels_format) do
|
16
15
|
pending if Fog.mocking?
|
17
|
-
|
18
|
-
@kernel_id = data['DATA'].first['KERNELID']
|
19
|
-
data
|
20
|
-
end
|
21
|
-
|
22
|
-
tests("@avail_kernels(#{@kernel_id})").formats(@kernels_format) do
|
23
|
-
pending if Fog.mocking?
|
24
|
-
Fog::Compute[:linode].avail_kernels(@kernel_id).body
|
16
|
+
Fog::Compute[:linode].avail_kernels.body
|
25
17
|
end
|
26
18
|
end
|
27
19
|
end
|
@@ -3,12 +3,14 @@ Shindo.tests('Fog::Compute[:linode] | linodeplans requests', ['linode']) do
|
|
3
3
|
@linodeplans_format = Linode::Compute::Formats::BASIC.merge({
|
4
4
|
'DATA' => [{
|
5
5
|
'AVAIL' => {
|
6
|
-
'2'
|
7
|
-
'3'
|
8
|
-
'4'
|
9
|
-
'6'
|
10
|
-
'7'
|
11
|
-
'8'
|
6
|
+
'2' => Integer,
|
7
|
+
'3' => Integer,
|
8
|
+
'4' => Integer,
|
9
|
+
'6' => Integer,
|
10
|
+
'7' => Integer,
|
11
|
+
'8' => Integer,
|
12
|
+
'9' => Integer,
|
13
|
+
'10' => Integer
|
12
14
|
},
|
13
15
|
'DISK' => Integer,
|
14
16
|
'PLANID' => Integer,
|
@@ -16,7 +18,8 @@ Shindo.tests('Fog::Compute[:linode] | linodeplans requests', ['linode']) do
|
|
16
18
|
'RAM' => Integer,
|
17
19
|
'LABEL' => String,
|
18
20
|
'XFER' => Integer,
|
19
|
-
'CORES' => Integer
|
21
|
+
'CORES' => Integer,
|
22
|
+
'HOURLY' => Float
|
20
23
|
}]
|
21
24
|
})
|
22
25
|
|
@@ -0,0 +1,20 @@
|
|
1
|
+
Shindo.tests('Fog::Compute[:linode] | linodenodebalancers requests', ['linode']) do
|
2
|
+
|
3
|
+
@linodenodebalancers_format = Linode::Compute::Formats::BASIC.merge({
|
4
|
+
'DATA' => [{
|
5
|
+
'MONTHLY' => Float,
|
6
|
+
'HOURLY' => Float,
|
7
|
+
'CONNECTIONS' => Integer
|
8
|
+
}]
|
9
|
+
})
|
10
|
+
|
11
|
+
tests('success') do
|
12
|
+
|
13
|
+
tests('#avail_nodebalancers').formats(@linodenodebalancers_format) do
|
14
|
+
pending if Fog.mocking?
|
15
|
+
Fog::Compute[:linode].avail_nodebalancers.body
|
16
|
+
end
|
17
|
+
|
18
|
+
end
|
19
|
+
|
20
|
+
end
|
@@ -215,6 +215,35 @@ Shindo.tests('Fog::OpenStack::Storage | file', ['openstack']) do
|
|
215
215
|
|
216
216
|
end
|
217
217
|
|
218
|
+
tests("#content_encoding") do
|
219
|
+
|
220
|
+
tests("#content_encoding should default to nil").returns(nil) do
|
221
|
+
@instance.save
|
222
|
+
@instance.content_encoding
|
223
|
+
end
|
224
|
+
|
225
|
+
@instance.content_encoding = 'gzip'
|
226
|
+
@instance.save
|
227
|
+
tests("#content_encoding should return the content encoding").returns('gzip') do
|
228
|
+
@instance.content_encoding
|
229
|
+
end
|
230
|
+
@instance.attributes.delete('content_encoding')
|
231
|
+
|
232
|
+
@instance.content_encoding = 'foo'
|
233
|
+
@instance.save
|
234
|
+
tests("#content_encoding= should update content_encoding").returns('bar') do
|
235
|
+
@instance.content_encoding = 'bar'
|
236
|
+
@instance.save
|
237
|
+
@instance.content_encoding
|
238
|
+
end
|
239
|
+
|
240
|
+
tests("#content_encoding= should not blow up on nil") do
|
241
|
+
@instance.content_encoding = nil
|
242
|
+
@instance.save
|
243
|
+
end
|
244
|
+
|
245
|
+
end
|
246
|
+
|
218
247
|
end
|
219
248
|
|
220
249
|
@directory.destroy
|
@@ -22,6 +22,13 @@ Shindo.tests('Fog::Rackspace::LoadBalancers | node_tests', ['rackspace']) do
|
|
22
22
|
data
|
23
23
|
end
|
24
24
|
|
25
|
+
@lb.wait_for { ready? }
|
26
|
+
tests('#create_node with type').formats(NODES_FORMAT) do
|
27
|
+
data = @service.create_node(@lb.id, '1.1.1.4', 80, 'ENABLED', { :type => 'PRIMARY' }).body
|
28
|
+
@nodes_created << data['nodes'][0]['id']
|
29
|
+
data
|
30
|
+
end
|
31
|
+
|
25
32
|
@lb.wait_for { ready? }
|
26
33
|
tests("#list_nodes(#{@lb.id})").formats(NODES_FORMAT) do
|
27
34
|
@service.list_nodes(@lb.id).body
|
@@ -1,5 +1,4 @@
|
|
1
1
|
Shindo.tests('Fog::Compute[:vsphere] | server model', ['vsphere']) do
|
2
|
-
|
3
2
|
servers = Fog::Compute[:vsphere].servers
|
4
3
|
server = servers.last
|
5
4
|
|
@@ -10,6 +9,33 @@ Shindo.tests('Fog::Compute[:vsphere] | server model', ['vsphere']) do
|
|
10
9
|
test(action) { server.respond_to? action }
|
11
10
|
test("#{action} returns successfully") { server.send(action.to_sym) ? true : false }
|
12
11
|
end
|
12
|
+
test('guest_processes') { server.respond_to? 'guest_processes' }
|
13
|
+
test('take_snapshot') do
|
14
|
+
test('responds') { server.respond_to? 'take_snapshot'}
|
15
|
+
test('returns successfully') { server.take_snapshot('name' => 'foobar').kind_of? Hash }
|
16
|
+
end
|
17
|
+
test('snapshots') do
|
18
|
+
test('responds') { server.respond_to? 'snapshots'}
|
19
|
+
test('returns successfully') { server.snapshots.kind_of? Fog::Compute::Vsphere::Snapshots }
|
20
|
+
end
|
21
|
+
test('find_snapshot') do
|
22
|
+
test('responds') { server.respond_to? 'find_snapshot'}
|
23
|
+
test('returns successfully') do
|
24
|
+
server.find_snapshot('snapshot-0101').kind_of? Fog::Compute::Vsphere::Snapshot
|
25
|
+
end
|
26
|
+
test('returns correct snapshot') do
|
27
|
+
server.find_snapshot('snapshot-0101').ref == 'snapshot-0101'
|
28
|
+
end
|
29
|
+
end
|
30
|
+
tests('revert_snapshot') do
|
31
|
+
test('responds') { server.respond_to? 'revert_snapshot'}
|
32
|
+
tests('returns correctly') do
|
33
|
+
test('when correct input given') { server.revert_snapshot('snapshot-0101').kind_of? Hash }
|
34
|
+
test('when incorrect input given') do
|
35
|
+
raises(ArgumentError) { server.revert_snapshot(1) }
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
13
39
|
end
|
14
40
|
tests('have attributes') do
|
15
41
|
model_attribute_hash = server.attributes
|
@@ -0,0 +1,10 @@
|
|
1
|
+
Shindo.tests('Fog::Compute[:vsphere] | list_child_snapshots request', ['vsphere']) do
|
2
|
+
|
3
|
+
compute = Fog::Compute[:vsphere]
|
4
|
+
|
5
|
+
tests('The response should') do
|
6
|
+
response = compute.list_child_snapshots('snapshot-0101')
|
7
|
+
test('be a kind of Array') { response.kind_of? Array }
|
8
|
+
test('it should contains Hashes') { response.all? { |i| Hash === i } }
|
9
|
+
end
|
10
|
+
end
|
@@ -0,0 +1,10 @@
|
|
1
|
+
Shindo.tests('Fog::Compute[:vsphere] | list_vm_snapshots request', ['vsphere']) do
|
2
|
+
|
3
|
+
compute = Fog::Compute[:vsphere]
|
4
|
+
|
5
|
+
tests('The response should') do
|
6
|
+
response = compute.list_vm_snapshots('5032c8a5-9c5e-ba7a-3804-832a03e16381')
|
7
|
+
test('be a kind of Array') { response.kind_of? Array }
|
8
|
+
test('it should contains Hashes') { response.all? { |i| Hash === i } }
|
9
|
+
end
|
10
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
Shindo.tests('Fog::Compute[:vsphere] | revert_to_snapshot request', ['vsphere']) do
|
2
|
+
|
3
|
+
compute = Fog::Compute[:vsphere]
|
4
|
+
|
5
|
+
tests('The response should') do
|
6
|
+
response = compute.revert_to_snapshot(Fog::Compute::Vsphere::Snapshot.new(service: 1))
|
7
|
+
test('be a kind of Hash') { response.kind_of? Hash }
|
8
|
+
test('should have a task_state key') { response.key? 'state' }
|
9
|
+
end
|
10
|
+
|
11
|
+
tests('The expected options') do
|
12
|
+
raises(ArgumentError, 'raises ArgumentError when input param is missing') { compute.revert_to_snapshot(nil) }
|
13
|
+
end
|
14
|
+
|
15
|
+
end
|