fog 1.32.0 → 1.33.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +59 -0
- data/Gemfile +1 -0
- data/Rakefile +4 -4
- data/fog.gemspec +3 -2
- data/lib/fog/linode/requests/compute/avail_datacenters.rb +8 -7
- data/lib/fog/openstack.rb +1 -0
- data/lib/fog/openstack/compute.rb +7 -1
- data/lib/fog/openstack/core.rb +28 -54
- data/lib/fog/openstack/identity.rb +1 -0
- data/lib/fog/openstack/identity_v3.rb +10 -9
- data/lib/fog/openstack/models/baremetal/chassis.rb +3 -14
- data/lib/fog/openstack/models/baremetal/chassis_collection.rb +5 -5
- data/lib/fog/openstack/models/baremetal/driver.rb +2 -8
- data/lib/fog/openstack/models/baremetal/drivers.rb +3 -5
- data/lib/fog/openstack/models/baremetal/node.rb +3 -14
- data/lib/fog/openstack/models/baremetal/nodes.rb +4 -4
- data/lib/fog/openstack/models/baremetal/port.rb +3 -14
- data/lib/fog/openstack/models/baremetal/ports.rb +4 -4
- data/lib/fog/openstack/models/collection.rb +45 -0
- data/lib/fog/openstack/models/compute/address.rb +2 -2
- data/lib/fog/openstack/models/compute/addresses.rb +3 -5
- data/lib/fog/openstack/models/compute/aggregate.rb +2 -8
- data/lib/fog/openstack/models/compute/aggregates.rb +3 -5
- data/lib/fog/openstack/models/compute/availability_zone.rb +14 -0
- data/lib/fog/openstack/models/compute/availability_zones.rb +22 -0
- data/lib/fog/openstack/models/compute/flavor.rb +2 -8
- data/lib/fog/openstack/models/compute/flavors.rb +6 -6
- data/lib/fog/openstack/models/compute/host.rb +1 -1
- data/lib/fog/openstack/models/compute/hosts.rb +4 -6
- data/lib/fog/openstack/models/compute/image.rb +2 -8
- data/lib/fog/openstack/models/compute/images.rb +4 -6
- data/lib/fog/openstack/models/compute/key_pair.rb +2 -2
- data/lib/fog/openstack/models/compute/key_pairs.rb +3 -4
- data/lib/fog/openstack/models/compute/metadata.rb +3 -2
- data/lib/fog/openstack/models/compute/metadatum.rb +2 -2
- data/lib/fog/openstack/models/compute/network.rb +2 -2
- data/lib/fog/openstack/models/compute/networks.rb +3 -2
- data/lib/fog/openstack/models/compute/security_group.rb +2 -2
- data/lib/fog/openstack/models/compute/security_group_rule.rb +2 -2
- data/lib/fog/openstack/models/compute/security_group_rules.rb +2 -2
- data/lib/fog/openstack/models/compute/security_groups.rb +3 -5
- data/lib/fog/openstack/models/compute/server.rb +20 -1
- data/lib/fog/openstack/models/compute/servers.rb +9 -5
- data/lib/fog/openstack/models/compute/service.rb +2 -8
- data/lib/fog/openstack/models/compute/services.rb +4 -4
- data/lib/fog/openstack/models/compute/snapshot.rb +2 -8
- data/lib/fog/openstack/models/compute/snapshots.rb +5 -5
- data/lib/fog/openstack/models/compute/tenant.rb +2 -2
- data/lib/fog/openstack/models/compute/tenants.rb +3 -4
- data/lib/fog/openstack/models/compute/volume.rb +2 -8
- data/lib/fog/openstack/models/compute/volumes.rb +5 -5
- data/lib/fog/openstack/models/identity_v2/ec2_credential.rb +3 -9
- data/lib/fog/openstack/models/identity_v2/ec2_credentials.rb +3 -5
- data/lib/fog/openstack/models/identity_v2/role.rb +3 -3
- data/lib/fog/openstack/models/identity_v2/roles.rb +3 -5
- data/lib/fog/openstack/models/identity_v2/tenant.rb +5 -9
- data/lib/fog/openstack/models/identity_v2/tenants.rb +3 -5
- data/lib/fog/openstack/models/identity_v2/user.rb +2 -8
- data/lib/fog/openstack/models/identity_v2/users.rb +3 -5
- data/lib/fog/openstack/models/identity_v3/domain.rb +5 -9
- data/lib/fog/openstack/models/identity_v3/domains.rb +3 -5
- data/lib/fog/openstack/models/identity_v3/endpoint.rb +5 -9
- data/lib/fog/openstack/models/identity_v3/endpoints.rb +3 -5
- data/lib/fog/openstack/models/identity_v3/group.rb +5 -9
- data/lib/fog/openstack/models/identity_v3/groups.rb +3 -5
- data/lib/fog/openstack/models/identity_v3/os_credential.rb +3 -3
- data/lib/fog/openstack/models/identity_v3/os_credentials.rb +3 -5
- data/lib/fog/openstack/models/identity_v3/policies.rb +3 -5
- data/lib/fog/openstack/models/identity_v3/policy.rb +5 -9
- data/lib/fog/openstack/models/identity_v3/project.rb +5 -8
- data/lib/fog/openstack/models/identity_v3/projects.rb +21 -10
- data/lib/fog/openstack/models/identity_v3/role.rb +3 -8
- data/lib/fog/openstack/models/identity_v3/role_assignment.rb +3 -3
- data/lib/fog/openstack/models/identity_v3/role_assignments.rb +3 -5
- data/lib/fog/openstack/models/identity_v3/roles.rb +3 -5
- data/lib/fog/openstack/models/identity_v3/service.rb +3 -3
- data/lib/fog/openstack/models/identity_v3/services.rb +3 -5
- data/lib/fog/openstack/models/identity_v3/token.rb +3 -3
- data/lib/fog/openstack/models/identity_v3/tokens.rb +3 -3
- data/lib/fog/openstack/models/identity_v3/user.rb +3 -9
- data/lib/fog/openstack/models/identity_v3/users.rb +3 -5
- data/lib/fog/openstack/models/image/image.rb +2 -13
- data/lib/fog/openstack/models/image/images.rb +5 -5
- data/lib/fog/openstack/models/metering/resource.rb +2 -7
- data/lib/fog/openstack/models/metering/resources.rb +3 -3
- data/lib/fog/openstack/models/model.rb +44 -0
- data/lib/fog/openstack/models/network/floating_ip.rb +2 -7
- data/lib/fog/openstack/models/network/floating_ips.rb +3 -5
- data/lib/fog/openstack/models/network/lb_health_monitor.rb +2 -12
- data/lib/fog/openstack/models/network/lb_health_monitors.rb +3 -5
- data/lib/fog/openstack/models/network/lb_member.rb +2 -12
- data/lib/fog/openstack/models/network/lb_members.rb +3 -5
- data/lib/fog/openstack/models/network/lb_pool.rb +2 -12
- data/lib/fog/openstack/models/network/lb_pools.rb +3 -5
- data/lib/fog/openstack/models/network/lb_vip.rb +2 -12
- data/lib/fog/openstack/models/network/lb_vips.rb +3 -5
- data/lib/fog/openstack/models/network/network.rb +2 -12
- data/lib/fog/openstack/models/network/networks.rb +3 -5
- data/lib/fog/openstack/models/network/port.rb +2 -13
- data/lib/fog/openstack/models/network/ports.rb +3 -5
- data/lib/fog/openstack/models/network/router.rb +2 -13
- data/lib/fog/openstack/models/network/routers.rb +3 -5
- data/lib/fog/openstack/models/network/security_group.rb +2 -2
- data/lib/fog/openstack/models/network/security_group_rule.rb +2 -2
- data/lib/fog/openstack/models/network/security_group_rules.rb +3 -5
- data/lib/fog/openstack/models/network/security_groups.rb +3 -5
- data/lib/fog/openstack/models/network/subnet.rb +3 -14
- data/lib/fog/openstack/models/network/subnets.rb +3 -5
- data/lib/fog/openstack/models/orchestration/event.rb +2 -2
- data/lib/fog/openstack/models/orchestration/events.rb +5 -7
- data/lib/fog/openstack/models/orchestration/resource.rb +2 -2
- data/lib/fog/openstack/models/orchestration/resource_schemas.rb +2 -2
- data/lib/fog/openstack/models/orchestration/resources.rb +3 -5
- data/lib/fog/openstack/models/orchestration/stack.rb +3 -7
- data/lib/fog/openstack/models/orchestration/stacks.rb +5 -5
- data/lib/fog/openstack/models/orchestration/template.rb +2 -2
- data/lib/fog/openstack/models/orchestration/templates.rb +1 -1
- data/lib/fog/openstack/models/planning/plan.rb +2 -13
- data/lib/fog/openstack/models/planning/plans.rb +3 -5
- data/lib/fog/openstack/models/planning/role.rb +2 -8
- data/lib/fog/openstack/models/planning/roles.rb +3 -6
- data/lib/fog/openstack/models/storage/directories.rb +4 -6
- data/lib/fog/openstack/models/storage/directory.rb +2 -2
- data/lib/fog/openstack/models/storage/file.rb +15 -2
- data/lib/fog/openstack/models/storage/files.rb +7 -8
- data/lib/fog/openstack/models/volume/availability_zone.rb +13 -0
- data/lib/fog/openstack/models/volume/availability_zones.rb +17 -0
- data/lib/fog/openstack/models/volume/transfer.rb +36 -0
- data/lib/fog/openstack/models/volume/transfers.rb +38 -0
- data/lib/fog/openstack/models/volume/volume.rb +9 -8
- data/lib/fog/openstack/models/volume/volume_type.rb +2 -8
- data/lib/fog/openstack/models/volume/volume_types.rb +3 -6
- data/lib/fog/openstack/models/volume/volumes.rb +5 -6
- data/lib/fog/openstack/requests/compute/list_servers.rb +8 -5
- data/lib/fog/openstack/requests/compute/list_servers_detail.rb +9 -6
- data/lib/fog/openstack/requests/compute/list_zones.rb +6 -5
- data/lib/fog/openstack/requests/compute/list_zones_detailed.rb +55 -0
- data/lib/fog/openstack/requests/compute/shelve_offload_server.rb +24 -0
- data/lib/fog/openstack/requests/compute/shelve_server.rb +24 -0
- data/lib/fog/openstack/requests/compute/unshelve_server.rb +24 -0
- data/lib/fog/openstack/requests/identity_v3/get_project.rb +2 -2
- data/lib/fog/openstack/requests/network/create_subnet.rb +1 -1
- data/lib/fog/openstack/requests/network/update_subnet.rb +8 -7
- data/lib/fog/openstack/requests/volume/accept_transfer.rb +24 -0
- data/lib/fog/openstack/requests/volume/create_transfer.rb +27 -0
- data/lib/fog/openstack/requests/volume/delete_transfer.rb +17 -0
- data/lib/fog/openstack/requests/volume/extend_volume.rb +25 -0
- data/lib/fog/openstack/requests/volume/get_transfer_details.rb +17 -0
- data/lib/fog/openstack/requests/volume/list_transfers.rb +18 -0
- data/lib/fog/openstack/requests/volume/list_transfers_detailed.rb +18 -0
- data/lib/fog/openstack/requests/volume/list_zones.rb +32 -0
- data/lib/fog/openstack/storage.rb +3 -1
- data/lib/fog/openstack/volume.rb +16 -0
- data/lib/fog/rackspace/examples/compute_v2/create_network.rb +1 -1
- data/lib/fog/vcloud_director/generators/compute/edge_gateway_service_configuration.rb +31 -30
- data/lib/fog/vcloud_director/models/compute/task.rb +2 -2
- data/lib/fog/version.rb +1 -1
- data/lib/fog/vsphere/compute.rb +1 -0
- data/lib/fog/vsphere/requests/compute/get_resource_pool.rb +1 -1
- data/lib/fog/vsphere/requests/compute/get_virtual_machine.rb +4 -3
- data/lib/fog/vsphere/requests/compute/list_clusters.rb +1 -1
- data/lib/fog/vsphere/requests/compute/list_vm_interfaces.rb +2 -2
- data/lib/fog/vsphere/requests/compute/vm_clone.rb +101 -30
- data/lib/fog/vsphere/requests/compute/vm_execute.rb +47 -0
- data/lib/tasks/changelog_task.rb +1 -0
- data/spec/fog/openstack/identity_v3/{idv3.yml → common_setup.yml} +0 -0
- data/spec/fog/openstack/identity_v3/idv3_project_hier_crud_list.yml +1394 -0
- data/spec/fog/openstack/identity_v3_spec.rb +255 -196
- data/spec/fog/openstack/network/common_setup.yml +131 -0
- data/spec/fog/openstack/network/subnets_crud.yml +140 -0
- data/spec/fog/openstack/network_spec.rb +43 -0
- data/spec/fog/openstack/shared_context.rb +98 -0
- data/spec/fog/openstack/volume/{volume_common_setup.yml → common_setup.yml} +0 -0
- data/spec/fog/openstack/volume/volume_extend.yml +762 -0
- data/spec/fog/openstack/volume/volume_transfer_and_accept.yml +1078 -0
- data/spec/fog/openstack/volume/volume_transfer_and_delete.yml +695 -0
- data/spec/fog/openstack/volume_spec.rb +232 -67
- data/tests/openstack/models/storage/file_tests.rb +26 -0
- data/tests/openstack/requests/compute/availability_zone_tests.rb +18 -0
- data/tests/openstack/requests/compute/server_tests.rb +12 -0
- data/tests/openstack/requests/network/subnet_tests.rb +2 -2
- data/tests/openstack/requests/volume/availability_zone_tests.rb +13 -0
- data/tests/vcloud_director/requests/compute/edge_gateway_tests.rb +2 -2
- metadata +61 -26
- data/lib/fog/dynect.rb +0 -1
- data/lib/fog/dynect/core.rb +0 -26
- data/lib/fog/dynect/dns.rb +0 -157
- data/lib/fog/dynect/models/dns/record.rb +0 -67
- data/lib/fog/dynect/models/dns/records.rb +0 -48
- data/lib/fog/dynect/models/dns/zone.rb +0 -56
- data/lib/fog/dynect/models/dns/zones.rb +0 -25
- data/lib/fog/dynect/requests/dns/delete_record.rb +0 -55
- data/lib/fog/dynect/requests/dns/delete_zone.rb +0 -41
- data/lib/fog/dynect/requests/dns/get_all_records.rb +0 -56
- data/lib/fog/dynect/requests/dns/get_node_list.rb +0 -55
- data/lib/fog/dynect/requests/dns/get_record.rb +0 -83
- data/lib/fog/dynect/requests/dns/get_zone.rb +0 -57
- data/lib/fog/dynect/requests/dns/post_record.rb +0 -71
- data/lib/fog/dynect/requests/dns/post_session.rb +0 -43
- data/lib/fog/dynect/requests/dns/post_zone.rb +0 -70
- data/lib/fog/dynect/requests/dns/put_record.rb +0 -76
- data/lib/fog/dynect/requests/dns/put_zone.rb +0 -76
- data/tests/dynect/requests/dns/dns_tests.rb +0 -258
@@ -2,17 +2,18 @@ module Fog
|
|
2
2
|
module Compute
|
3
3
|
class OpenStack
|
4
4
|
class Real
|
5
|
-
def list_zones(
|
5
|
+
def list_zones(options = {})
|
6
6
|
request(
|
7
|
-
:expects
|
8
|
-
:method
|
9
|
-
:path
|
7
|
+
:expects => 200,
|
8
|
+
:method => 'GET',
|
9
|
+
:path => 'os-availability-zone.json',
|
10
|
+
:query => options
|
10
11
|
)
|
11
12
|
end
|
12
13
|
end
|
13
14
|
|
14
15
|
class Mock
|
15
|
-
def list_zones(
|
16
|
+
def list_zones(options = {})
|
16
17
|
Excon::Response.new(
|
17
18
|
:body => { "availabilityZoneInfo" => [
|
18
19
|
{
|
@@ -0,0 +1,55 @@
|
|
1
|
+
module Fog
|
2
|
+
module Compute
|
3
|
+
class OpenStack
|
4
|
+
class Real
|
5
|
+
def list_zones_detailed(options = {})
|
6
|
+
request(
|
7
|
+
:expects => 200,
|
8
|
+
:method => 'GET',
|
9
|
+
:path => 'os-availability-zone/detail.json',
|
10
|
+
:query => options
|
11
|
+
)
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
class Mock
|
16
|
+
def list_zones_detailed(options = {})
|
17
|
+
Excon::Response.new(
|
18
|
+
:body => {
|
19
|
+
"availabilityZoneInfo" => [
|
20
|
+
{
|
21
|
+
"zoneState" => {
|
22
|
+
"available" => true},
|
23
|
+
"hosts" => {
|
24
|
+
"instack.localdomain" => {
|
25
|
+
"nova-conductor" => {
|
26
|
+
"available" => true,
|
27
|
+
"active" => true,
|
28
|
+
"updated_at" => "2015-07-22T07:40:08.000000"},
|
29
|
+
"nova-scheduler" => {
|
30
|
+
"available" => true,
|
31
|
+
"active" => true,
|
32
|
+
"updated_at" => "2015-07-22T07:40:04.000000"},
|
33
|
+
"nova-consoleauth" => {
|
34
|
+
"available" => true,
|
35
|
+
"active" => true,
|
36
|
+
"updated_at" => "2015-07-22T07:40:09.000000"}}},
|
37
|
+
"zoneName" => "internal"
|
38
|
+
},
|
39
|
+
{
|
40
|
+
"zoneState" => {
|
41
|
+
"available" => true},
|
42
|
+
"hosts" => {
|
43
|
+
"instack.localdomain" => {
|
44
|
+
"nova-compute" => {
|
45
|
+
"available" => true,
|
46
|
+
"active" => true,
|
47
|
+
"updated_at" => "2015-07-22T07:40:04.000000"}}},
|
48
|
+
"zoneName" => "nova"}]},
|
49
|
+
:status => 200
|
50
|
+
)
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
module Fog
|
2
|
+
module Compute
|
3
|
+
class OpenStack
|
4
|
+
class Real
|
5
|
+
# Shelve Off load the server. Data and resource associations are deleted.
|
6
|
+
#
|
7
|
+
# === Parameters
|
8
|
+
# * server_id <~String> - The ID of the server to be shelve off loaded
|
9
|
+
# === Returns
|
10
|
+
# * success <~Boolean>
|
11
|
+
def shelve_offload_server(server_id)
|
12
|
+
body = { 'shelveOffload' => nil }
|
13
|
+
server_action(server_id, body).status == 202
|
14
|
+
end # def shelve_off_load_server
|
15
|
+
end # class Real
|
16
|
+
|
17
|
+
class Mock
|
18
|
+
def shelve_offload_server(server_id)
|
19
|
+
true
|
20
|
+
end # def shelve_off_load_server
|
21
|
+
end # class Mock
|
22
|
+
end # class OpenStack
|
23
|
+
end # module Compute
|
24
|
+
end # module Fog
|
@@ -0,0 +1,24 @@
|
|
1
|
+
module Fog
|
2
|
+
module Compute
|
3
|
+
class OpenStack
|
4
|
+
class Real
|
5
|
+
# Shelve the server.
|
6
|
+
#
|
7
|
+
# === Parameters
|
8
|
+
# * server_id <~String> - The ID of the server to be shelved
|
9
|
+
# === Returns
|
10
|
+
# * success <~Boolean>
|
11
|
+
def shelve_server(server_id)
|
12
|
+
body = { 'shelve' => nil }
|
13
|
+
server_action(server_id, body).status == 202
|
14
|
+
end # def shelve_server
|
15
|
+
end # class Real
|
16
|
+
|
17
|
+
class Mock
|
18
|
+
def shelve_server(server_id)
|
19
|
+
true
|
20
|
+
end # def shelve_server
|
21
|
+
end # class Mock
|
22
|
+
end # class OpenStack
|
23
|
+
end # module Compute
|
24
|
+
end # module Fog
|
@@ -0,0 +1,24 @@
|
|
1
|
+
module Fog
|
2
|
+
module Compute
|
3
|
+
class OpenStack
|
4
|
+
class Real
|
5
|
+
# Unshelve the server.
|
6
|
+
#
|
7
|
+
# === Parameters
|
8
|
+
# * server_id <~String> - The ID of the server to be unshelved
|
9
|
+
# === Returns
|
10
|
+
# * success <~Boolean>
|
11
|
+
def unshelve_server(server_id)
|
12
|
+
body = { 'unshelve' => nil }
|
13
|
+
server_action(server_id, body).status == 202
|
14
|
+
end # def unshelve_server
|
15
|
+
end # class Real
|
16
|
+
|
17
|
+
class Mock
|
18
|
+
def unshelve_server(server_id)
|
19
|
+
true
|
20
|
+
end # def unshelve_server
|
21
|
+
end # class Mock
|
22
|
+
end # class OpenStack
|
23
|
+
end # module Compute
|
24
|
+
end # module Fog
|
@@ -3,11 +3,11 @@ module Fog
|
|
3
3
|
class OpenStack
|
4
4
|
class V3
|
5
5
|
class Real
|
6
|
-
def get_project(id)
|
6
|
+
def get_project(id, options=[])
|
7
7
|
request(
|
8
8
|
:expects => [200],
|
9
9
|
:method => 'GET',
|
10
|
-
:path => "projects/#{id}"
|
10
|
+
:path => "projects/#{id}?#{options.join '&'}"
|
11
11
|
)
|
12
12
|
end
|
13
13
|
end
|
@@ -14,7 +14,7 @@ module Fog
|
|
14
14
|
vanilla_options = [:name, :gateway_ip, :allocation_pools,
|
15
15
|
:dns_nameservers, :host_routes, :enable_dhcp,
|
16
16
|
:tenant_id]
|
17
|
-
vanilla_options.each do |key|
|
17
|
+
vanilla_options.select{ |o| options.key?(o) }.each do |key|
|
18
18
|
data['subnet'][key] = options[key]
|
19
19
|
end
|
20
20
|
|
@@ -5,8 +5,8 @@ module Fog
|
|
5
5
|
def update_subnet(subnet_id, options = {})
|
6
6
|
data = { 'subnet' => {} }
|
7
7
|
|
8
|
-
vanilla_options = [:name, :gateway_ip, :
|
9
|
-
:host_routes, :enable_dhcp]
|
8
|
+
vanilla_options = [:name, :gateway_ip, :allocation_pools,
|
9
|
+
:dns_nameservers, :host_routes, :enable_dhcp]
|
10
10
|
vanilla_options.select{ |o| options.key?(o) }.each do |key|
|
11
11
|
data['subnet'][key] = options[key]
|
12
12
|
end
|
@@ -24,11 +24,12 @@ module Fog
|
|
24
24
|
def update_subnet(subnet_id, options = {})
|
25
25
|
response = Excon::Response.new
|
26
26
|
if subnet = list_subnets.body['subnets'].find { |_| _['id'] == subnet_id }
|
27
|
-
subnet['name']
|
28
|
-
subnet['gateway_ip']
|
29
|
-
subnet['dns_nameservers']
|
30
|
-
subnet['host_routes']
|
31
|
-
subnet['
|
27
|
+
subnet['name'] = options[:name]
|
28
|
+
subnet['gateway_ip'] = options[:gateway_ip]
|
29
|
+
subnet['dns_nameservers'] = options[:dns_nameservers] || []
|
30
|
+
subnet['host_routes'] = options[:host_routes] || []
|
31
|
+
subnet['allocation_pools'] = options[:allocation_pools] || []
|
32
|
+
subnet['enable_dhcp'] = options[:enable_dhcp]
|
32
33
|
response.body = { 'subnet' => subnet }
|
33
34
|
response.status = 200
|
34
35
|
response
|
@@ -0,0 +1,24 @@
|
|
1
|
+
module Fog
|
2
|
+
module Volume
|
3
|
+
class OpenStack
|
4
|
+
# no Mock needed, test coverage in RSpec
|
5
|
+
|
6
|
+
class Real
|
7
|
+
def accept_transfer(transfer_id, auth_key)
|
8
|
+
data = {
|
9
|
+
'accept' => {
|
10
|
+
'auth_key' => auth_key
|
11
|
+
}
|
12
|
+
}
|
13
|
+
|
14
|
+
request(
|
15
|
+
:body => Fog::JSON.encode(data),
|
16
|
+
:expects => [200, 202],
|
17
|
+
:method => 'POST',
|
18
|
+
:path => "os-volume-transfer/#{transfer_id}/accept"
|
19
|
+
)
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
module Fog
|
2
|
+
module Volume
|
3
|
+
class OpenStack
|
4
|
+
# no Mock needed, test coverage in RSpec
|
5
|
+
|
6
|
+
class Real
|
7
|
+
def create_transfer(volume_id, options={})
|
8
|
+
data = {
|
9
|
+
'transfer' => {
|
10
|
+
'volume_id' => volume_id
|
11
|
+
}
|
12
|
+
}
|
13
|
+
if options[:name]
|
14
|
+
data['transfer']['name'] = options[:name]
|
15
|
+
end
|
16
|
+
|
17
|
+
request(
|
18
|
+
:body => Fog::JSON.encode(data),
|
19
|
+
:expects => [200, 202],
|
20
|
+
:method => 'POST',
|
21
|
+
:path => 'os-volume-transfer'
|
22
|
+
)
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
module Fog
|
2
|
+
module Volume
|
3
|
+
class OpenStack
|
4
|
+
# no Mock needed, test coverage in RSpec
|
5
|
+
|
6
|
+
class Real
|
7
|
+
def delete_transfer(transfer_id)
|
8
|
+
request(
|
9
|
+
:expects => 202,
|
10
|
+
:method => 'DELETE',
|
11
|
+
:path => "os-volume-transfer/#{transfer_id}"
|
12
|
+
)
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
module Fog
|
2
|
+
module Volume
|
3
|
+
class OpenStack
|
4
|
+
class Real
|
5
|
+
def extend_volume(volume_id, size)
|
6
|
+
body = { 'os-extend' => { 'new_size' => size } }
|
7
|
+
request(
|
8
|
+
:expects => 202,
|
9
|
+
:method => 'POST',
|
10
|
+
:path => "volumes/#{volume_id}/action",
|
11
|
+
:body => Fog::JSON.encode(body)
|
12
|
+
)
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
class Mock
|
17
|
+
def extend_volume(volume_id, size)
|
18
|
+
response = Excon::Response.new
|
19
|
+
response.status = 202
|
20
|
+
response
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
module Fog
|
2
|
+
module Volume
|
3
|
+
class OpenStack
|
4
|
+
# no Mock needed, test coverage in RSpec
|
5
|
+
|
6
|
+
class Real
|
7
|
+
def get_transfer_details(transfer_id)
|
8
|
+
request(
|
9
|
+
:expects => 200,
|
10
|
+
:method => 'GET',
|
11
|
+
:path => "os-volume-transfer/#{transfer_id}"
|
12
|
+
)
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
module Fog
|
2
|
+
module Volume
|
3
|
+
class OpenStack
|
4
|
+
# no Mock needed, test coverage in RSpec
|
5
|
+
|
6
|
+
class Real
|
7
|
+
def list_transfers(options = {})
|
8
|
+
request(
|
9
|
+
:expects => 200,
|
10
|
+
:method => 'GET',
|
11
|
+
:path => 'os-volume-transfer',
|
12
|
+
:query => options
|
13
|
+
)
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
module Fog
|
2
|
+
module Volume
|
3
|
+
class OpenStack
|
4
|
+
# no Mock needed, test coverage in RSpec
|
5
|
+
|
6
|
+
class Real
|
7
|
+
def list_transfers_detailed(options = {})
|
8
|
+
request(
|
9
|
+
:expects => 200,
|
10
|
+
:method => 'GET',
|
11
|
+
:path => 'os-volume-transfer/detail',
|
12
|
+
:query => options
|
13
|
+
)
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
module Fog
|
2
|
+
module Volume
|
3
|
+
class OpenStack
|
4
|
+
class Real
|
5
|
+
def list_zones(options = {})
|
6
|
+
request(
|
7
|
+
:expects => 200,
|
8
|
+
:method => 'GET',
|
9
|
+
:path => 'os-availability-zone.json',
|
10
|
+
:query => options
|
11
|
+
)
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
class Mock
|
16
|
+
def list_zones(options = {})
|
17
|
+
Excon::Response.new(
|
18
|
+
:body => {
|
19
|
+
"availabilityZoneInfo" => [
|
20
|
+
{
|
21
|
+
"zoneState" => { "available" => true },
|
22
|
+
"zoneName" => "nova"
|
23
|
+
}
|
24
|
+
]
|
25
|
+
},
|
26
|
+
:status => 200
|
27
|
+
)
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
@@ -8,7 +8,8 @@ module Fog
|
|
8
8
|
recognizes :persistent, :openstack_service_name,
|
9
9
|
:openstack_service_type, :openstack_tenant,
|
10
10
|
:openstack_region, :openstack_temp_url_key,
|
11
|
-
:openstack_endpoint_type
|
11
|
+
:openstack_endpoint_type, :openstack_auth_token,
|
12
|
+
:openstack_management_url
|
12
13
|
|
13
14
|
model_path 'fog/openstack/models/storage'
|
14
15
|
model :directory
|
@@ -89,6 +90,7 @@ module Fog
|
|
89
90
|
@connection_options = options[:connection_options] || {}
|
90
91
|
@openstack_temp_url_key = options[:openstack_temp_url_key]
|
91
92
|
@openstack_endpoint_type = options[:openstack_endpoint_type] || 'publicURL'
|
93
|
+
@openstack_management_url = options[:openstack_management_url]
|
92
94
|
authenticate
|
93
95
|
@persistent = options[:persistent] || false
|
94
96
|
@connection = Fog::Core::Connection.new("#{@scheme}://#{@host}:#{@port}", @persistent, @connection_options)
|
data/lib/fog/openstack/volume.rb
CHANGED
@@ -15,9 +15,15 @@ module Fog
|
|
15
15
|
model :volume
|
16
16
|
collection :volumes
|
17
17
|
|
18
|
+
model :availability_zone
|
19
|
+
collection :availability_zones
|
20
|
+
|
18
21
|
model :volume_type
|
19
22
|
collection :volume_types
|
20
23
|
|
24
|
+
model :transfer
|
25
|
+
collection :transfers
|
26
|
+
|
21
27
|
request_path 'fog/openstack/requests/volume'
|
22
28
|
|
23
29
|
# Volume
|
@@ -25,8 +31,11 @@ module Fog
|
|
25
31
|
request :list_volumes_detailed
|
26
32
|
request :create_volume
|
27
33
|
request :get_volume_details
|
34
|
+
request :extend_volume
|
28
35
|
request :delete_volume
|
29
36
|
|
37
|
+
request :list_zones
|
38
|
+
|
30
39
|
request :list_volume_types
|
31
40
|
request :get_volume_type_details
|
32
41
|
|
@@ -35,6 +44,13 @@ module Fog
|
|
35
44
|
request :get_snapshot_details
|
36
45
|
request :delete_snapshot
|
37
46
|
|
47
|
+
request :list_transfers
|
48
|
+
request :list_transfers_detailed
|
49
|
+
request :create_transfer
|
50
|
+
request :get_transfer_details
|
51
|
+
request :accept_transfer
|
52
|
+
request :delete_transfer
|
53
|
+
|
38
54
|
request :update_quota
|
39
55
|
request :get_quota
|
40
56
|
request :get_quota_defaults
|