fog 1.32.0 → 1.33.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/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
|
@@ -1,21 +1,15 @@
|
|
|
1
|
-
require 'fog/
|
|
1
|
+
require 'fog/openstack/models/model'
|
|
2
2
|
|
|
3
3
|
module Fog
|
|
4
4
|
module Openstack
|
|
5
5
|
class Planning
|
|
6
|
-
class Role < Fog::Model
|
|
6
|
+
class Role < Fog::OpenStack::Model
|
|
7
7
|
identity :uuid
|
|
8
8
|
|
|
9
9
|
attribute :description
|
|
10
10
|
attribute :name
|
|
11
11
|
attribute :uuid
|
|
12
12
|
|
|
13
|
-
def initialize(attributes)
|
|
14
|
-
# Old 'connection' is renamed as service and should be used instead
|
|
15
|
-
prepare_service_value(attributes)
|
|
16
|
-
super
|
|
17
|
-
end
|
|
18
|
-
|
|
19
13
|
def add_to_plan(plan_uuid)
|
|
20
14
|
service.add_role_to_plan(plan_uuid, uuid)
|
|
21
15
|
end
|
|
@@ -1,18 +1,15 @@
|
|
|
1
|
-
require 'fog/
|
|
1
|
+
require 'fog/openstack/models/collection'
|
|
2
2
|
require 'fog/openstack/models/planning/role'
|
|
3
3
|
|
|
4
4
|
module Fog
|
|
5
5
|
module Openstack
|
|
6
6
|
class Planning
|
|
7
|
-
class Roles < Fog::Collection
|
|
7
|
+
class Roles < Fog::OpenStack::Collection
|
|
8
8
|
model Fog::Openstack::Planning::Role
|
|
9
9
|
|
|
10
10
|
def all(options = {})
|
|
11
|
-
|
|
11
|
+
load_response(service.list_roles(options))
|
|
12
12
|
end
|
|
13
|
-
|
|
14
|
-
alias_method :summary, :all
|
|
15
|
-
|
|
16
13
|
end
|
|
17
14
|
end
|
|
18
15
|
end
|
|
@@ -1,19 +1,17 @@
|
|
|
1
|
-
require 'fog/
|
|
1
|
+
require 'fog/openstack/models/collection'
|
|
2
2
|
require 'fog/openstack/models/storage/directory'
|
|
3
3
|
|
|
4
4
|
module Fog
|
|
5
5
|
module Storage
|
|
6
6
|
class OpenStack
|
|
7
|
-
class Directories < Fog::Collection
|
|
7
|
+
class Directories < Fog::OpenStack::Collection
|
|
8
8
|
model Fog::Storage::OpenStack::Directory
|
|
9
9
|
|
|
10
10
|
def all(options = {})
|
|
11
|
-
data = service.get_containers(options)
|
|
12
|
-
|
|
11
|
+
data = service.get_containers(options)
|
|
12
|
+
load_response(data)
|
|
13
13
|
end
|
|
14
14
|
|
|
15
|
-
alias_method :summary, :all
|
|
16
|
-
|
|
17
15
|
def get(key, options = {})
|
|
18
16
|
data = service.get_container(key, options)
|
|
19
17
|
directory = new(:key => key)
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
require 'fog/
|
|
1
|
+
require 'fog/openstack/models/model'
|
|
2
2
|
require 'fog/openstack/models/storage/files'
|
|
3
3
|
|
|
4
4
|
module Fog
|
|
5
5
|
module Storage
|
|
6
6
|
class OpenStack
|
|
7
|
-
class Directory < Fog::Model
|
|
7
|
+
class Directory < Fog::OpenStack::Model
|
|
8
8
|
identity :key, :aliases => 'name'
|
|
9
9
|
|
|
10
10
|
attribute :bytes, :aliases => 'X-Container-Bytes-Used'
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
require 'fog/
|
|
1
|
+
require 'fog/openstack/models/model'
|
|
2
2
|
|
|
3
3
|
module Fog
|
|
4
4
|
module Storage
|
|
5
5
|
class OpenStack
|
|
6
|
-
class File < Fog::Model
|
|
6
|
+
class File < Fog::OpenStack::Model
|
|
7
7
|
identity :key, :aliases => 'name'
|
|
8
8
|
|
|
9
9
|
attribute :access_control_allow_origin, :aliases => ['Access-Control-Allow-Origin']
|
|
@@ -14,6 +14,17 @@ module Fog
|
|
|
14
14
|
attribute :last_modified, :aliases => ['last_modified', 'Last-Modified'], :type => :time
|
|
15
15
|
attribute :metadata
|
|
16
16
|
attribute :origin, :aliases => ['Origin']
|
|
17
|
+
# @!attribute [rw] delete_at
|
|
18
|
+
# A Unix Epoch Timestamp, in integer form, representing the time when this object will be automatically deleted.
|
|
19
|
+
# @return [Integer] the unix epoch timestamp of when this object will be automatically deleted
|
|
20
|
+
# @see http://docs.openstack.org/developer/swift/overview_expiring_objects.html
|
|
21
|
+
attribute :delete_at, :aliases => ['X-Delete-At']
|
|
22
|
+
|
|
23
|
+
# @!attribute [rw] delete_after
|
|
24
|
+
# A number of seconds representing how long from now this object will be automatically deleted.
|
|
25
|
+
# @return [Integer] the number of seconds until this object will be automatically deleted
|
|
26
|
+
# @see http://docs.openstack.org/developer/swift/overview_expiring_objects.html
|
|
27
|
+
attribute :delete_after, :aliases => ['X-Delete-After']
|
|
17
28
|
|
|
18
29
|
def body
|
|
19
30
|
attributes[:body] ||= if last_modified
|
|
@@ -88,6 +99,8 @@ module Fog
|
|
|
88
99
|
options['Content-Disposition'] = content_disposition if content_disposition
|
|
89
100
|
options['Access-Control-Allow-Origin'] = access_control_allow_origin if access_control_allow_origin
|
|
90
101
|
options['Origin'] = origin if origin
|
|
102
|
+
options['X-Delete-At'] = delete_at if delete_at
|
|
103
|
+
options['X-Delete-After'] = delete_after if delete_after
|
|
91
104
|
options.merge!(metadata_to_headers)
|
|
92
105
|
|
|
93
106
|
data = service.put_object(directory.key, key, body, options)
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
require 'fog/
|
|
1
|
+
require 'fog/openstack/models/collection'
|
|
2
2
|
require 'fog/openstack/models/storage/file'
|
|
3
3
|
|
|
4
4
|
module Fog
|
|
5
5
|
module Storage
|
|
6
6
|
class OpenStack
|
|
7
|
-
class Files < Fog::Collection
|
|
7
|
+
class Files < Fog::OpenStack::Collection
|
|
8
8
|
attribute :directory
|
|
9
9
|
attribute :limit
|
|
10
10
|
attribute :marker
|
|
@@ -16,10 +16,10 @@ module Fog
|
|
|
16
16
|
def all(options = {})
|
|
17
17
|
requires :directory
|
|
18
18
|
options = {
|
|
19
|
-
'limit'
|
|
20
|
-
'marker'
|
|
21
|
-
'path'
|
|
22
|
-
'prefix'
|
|
19
|
+
'limit' => limit,
|
|
20
|
+
'marker' => marker,
|
|
21
|
+
'path' => path,
|
|
22
|
+
'prefix' => prefix
|
|
23
23
|
}.merge!(options)
|
|
24
24
|
merge_attributes(options)
|
|
25
25
|
parent = directory.collection.get(
|
|
@@ -27,14 +27,13 @@ module Fog
|
|
|
27
27
|
options
|
|
28
28
|
)
|
|
29
29
|
if parent
|
|
30
|
+
# TODO change to load_response?
|
|
30
31
|
load(parent.files.map {|file| file.attributes})
|
|
31
32
|
else
|
|
32
33
|
nil
|
|
33
34
|
end
|
|
34
35
|
end
|
|
35
36
|
|
|
36
|
-
alias_method :summary, :all
|
|
37
|
-
|
|
38
37
|
alias_method :each_file_this_page, :each
|
|
39
38
|
def each
|
|
40
39
|
if !block_given?
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
require 'fog/openstack/models/collection'
|
|
2
|
+
require 'fog/openstack/models/volume/availability_zone'
|
|
3
|
+
|
|
4
|
+
module Fog
|
|
5
|
+
module Volume
|
|
6
|
+
class OpenStack
|
|
7
|
+
class AvailabilityZones < Fog::OpenStack::Collection
|
|
8
|
+
model Fog::Volume::OpenStack::AvailabilityZone
|
|
9
|
+
|
|
10
|
+
def all(options = {})
|
|
11
|
+
data = service.list_zones(options)
|
|
12
|
+
load_response(data, 'availabilityZoneInfo')
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
end
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
require 'fog/openstack/models/model'
|
|
2
|
+
|
|
3
|
+
module Fog
|
|
4
|
+
module Volume
|
|
5
|
+
class OpenStack
|
|
6
|
+
class Transfer < Fog::OpenStack::Model
|
|
7
|
+
identity :id
|
|
8
|
+
|
|
9
|
+
attribute :auth_key, :aliases => 'authKey'
|
|
10
|
+
attribute :created_at, :aliases => 'createdAt'
|
|
11
|
+
attribute :name
|
|
12
|
+
attribute :volume_id, :aliases => 'volumeId'
|
|
13
|
+
|
|
14
|
+
def save
|
|
15
|
+
requires :name, :volume_id
|
|
16
|
+
data = service.create_transfer(volume_id, :name => name)
|
|
17
|
+
merge_attributes(data.body['transfer'])
|
|
18
|
+
true
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
def destroy
|
|
22
|
+
requires :id
|
|
23
|
+
service.delete_transfer(id)
|
|
24
|
+
true
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
def initialize(attributes)
|
|
28
|
+
# Old 'connection' is renamed as service and should be used instead
|
|
29
|
+
prepare_service_value(attributes)
|
|
30
|
+
super
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
end
|
|
34
|
+
end
|
|
35
|
+
end
|
|
36
|
+
end
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
require 'fog/openstack/models/collection'
|
|
2
|
+
require 'fog/openstack/models/volume/transfer'
|
|
3
|
+
|
|
4
|
+
module Fog
|
|
5
|
+
module Volume
|
|
6
|
+
class OpenStack
|
|
7
|
+
class Transfers < Fog::OpenStack::Collection
|
|
8
|
+
model Fog::Volume::OpenStack::Transfer
|
|
9
|
+
|
|
10
|
+
def all(options = {})
|
|
11
|
+
load_response(service.list_transfers_detailed(options), 'transfers')
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
def summary(options = {})
|
|
15
|
+
load_response(service.list_transfers(options), 'transfers')
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
def get(transfer_id)
|
|
19
|
+
if transfer = service.get_transfer_details(transfer_id).body['transfer']
|
|
20
|
+
new(transfer)
|
|
21
|
+
end
|
|
22
|
+
rescue Fog::Volume::OpenStack::NotFound
|
|
23
|
+
nil
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
def accept(transfer_id, auth_key)
|
|
27
|
+
# NOTE: This is NOT a method on the Transfer object, since the
|
|
28
|
+
# receiver cannot see the transfer object in the get_transfer_details
|
|
29
|
+
# or list_transfers(_detailed) requests.
|
|
30
|
+
if transfer = service.accept_transfer(transfer_id, auth_key).body['transfer']
|
|
31
|
+
new(transfer)
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
end
|
|
36
|
+
end
|
|
37
|
+
end
|
|
38
|
+
end
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
require 'fog/
|
|
1
|
+
require 'fog/openstack/models/model'
|
|
2
2
|
|
|
3
3
|
module Fog
|
|
4
4
|
module Volume
|
|
5
5
|
class OpenStack
|
|
6
|
-
class Volume < Fog::Model
|
|
6
|
+
class Volume < Fog::OpenStack::Model
|
|
7
7
|
identity :id
|
|
8
8
|
|
|
9
9
|
attribute :display_name, :aliases => 'displayName'
|
|
@@ -18,12 +18,7 @@ module Fog
|
|
|
18
18
|
attribute :created_at, :aliases => 'createdAt'
|
|
19
19
|
attribute :attachments
|
|
20
20
|
attribute :source_volid
|
|
21
|
-
|
|
22
|
-
def initialize(attributes)
|
|
23
|
-
# Old 'connection' is renamed as service and should be used instead
|
|
24
|
-
prepare_service_value(attributes)
|
|
25
|
-
super
|
|
26
|
-
end
|
|
21
|
+
attribute :tenant_id, :aliases => 'os-vol-tenant-attr:tenant_id'
|
|
27
22
|
|
|
28
23
|
def save
|
|
29
24
|
requires :display_name, :size
|
|
@@ -38,6 +33,12 @@ module Fog
|
|
|
38
33
|
true
|
|
39
34
|
end
|
|
40
35
|
|
|
36
|
+
def extend(size)
|
|
37
|
+
requires :id
|
|
38
|
+
service.extend_volume(id, size)
|
|
39
|
+
true
|
|
40
|
+
end
|
|
41
|
+
|
|
41
42
|
def ready?
|
|
42
43
|
status == 'available'
|
|
43
44
|
end
|
|
@@ -1,19 +1,13 @@
|
|
|
1
|
-
require 'fog/
|
|
1
|
+
require 'fog/openstack/models/model'
|
|
2
2
|
|
|
3
3
|
module Fog
|
|
4
4
|
module Volume
|
|
5
5
|
class OpenStack
|
|
6
|
-
class VolumeType < Fog::Model
|
|
6
|
+
class VolumeType < Fog::OpenStack::Model
|
|
7
7
|
identity :id
|
|
8
8
|
|
|
9
9
|
attribute :name
|
|
10
10
|
attribute :volume_backend_name
|
|
11
|
-
|
|
12
|
-
def initialize(attributes)
|
|
13
|
-
# Old 'connection' is renamed as service and should be used instead
|
|
14
|
-
prepare_service_value(attributes)
|
|
15
|
-
super
|
|
16
|
-
end
|
|
17
11
|
end
|
|
18
12
|
end
|
|
19
13
|
end
|
|
@@ -1,19 +1,17 @@
|
|
|
1
|
-
require 'fog/
|
|
1
|
+
require 'fog/openstack/models/collection'
|
|
2
2
|
require 'fog/openstack/models/volume/volume_type'
|
|
3
3
|
|
|
4
4
|
module Fog
|
|
5
5
|
module Volume
|
|
6
6
|
class OpenStack
|
|
7
|
-
class VolumeTypes < Fog::Collection
|
|
7
|
+
class VolumeTypes < Fog::OpenStack::Collection
|
|
8
8
|
model Fog::Volume::OpenStack::VolumeType
|
|
9
9
|
|
|
10
10
|
def all(options = {})
|
|
11
11
|
response = service.list_volume_types(options)
|
|
12
|
-
|
|
12
|
+
load_response(response, 'volume_types')
|
|
13
13
|
end
|
|
14
14
|
|
|
15
|
-
alias_method :summary, :all
|
|
16
|
-
|
|
17
15
|
def get(volume_type_id)
|
|
18
16
|
if volume_type = service.get_volume_type_details(volume_type_id).body['volume_type']
|
|
19
17
|
new(volume_type)
|
|
@@ -21,7 +19,6 @@ module Fog
|
|
|
21
19
|
rescue Fog::Volume::OpenStack::NotFound
|
|
22
20
|
nil
|
|
23
21
|
end
|
|
24
|
-
alias_method :find_by_id, :get
|
|
25
22
|
end
|
|
26
23
|
end
|
|
27
24
|
end
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
require 'fog/
|
|
1
|
+
require 'fog/openstack/models/collection'
|
|
2
2
|
require 'fog/openstack/models/volume/volume'
|
|
3
3
|
|
|
4
4
|
module Fog
|
|
5
5
|
module Volume
|
|
6
6
|
class OpenStack
|
|
7
|
-
class Volumes < Fog::Collection
|
|
7
|
+
class Volumes < Fog::OpenStack::Collection
|
|
8
8
|
model Fog::Volume::OpenStack::Volume
|
|
9
9
|
|
|
10
10
|
def all(options = {})
|
|
@@ -13,16 +13,16 @@ module Fog
|
|
|
13
13
|
detailed = options.is_a?(Hash) ? options.delete(:detailed) : options
|
|
14
14
|
if detailed.nil? || detailed
|
|
15
15
|
# This method gives details by default, unless false or {:detailed => false} is passed
|
|
16
|
-
|
|
16
|
+
load_response(service.list_volumes_detailed(options), 'volumes')
|
|
17
17
|
else
|
|
18
18
|
Fog::Logger.deprecation('Calling OpenStack[:volume].volumes.all(false) or volumes.all(:detailed => false) '\
|
|
19
19
|
' is deprecated, call .volumes.summary instead')
|
|
20
|
-
|
|
20
|
+
load_response(service.list_volumes(options), 'volumes')
|
|
21
21
|
end
|
|
22
22
|
end
|
|
23
23
|
|
|
24
24
|
def summary(options = {})
|
|
25
|
-
|
|
25
|
+
load_response(service.list_volumes(options), 'volumes')
|
|
26
26
|
end
|
|
27
27
|
|
|
28
28
|
def get(volume_id)
|
|
@@ -32,7 +32,6 @@ module Fog
|
|
|
32
32
|
rescue Fog::Volume::OpenStack::NotFound
|
|
33
33
|
nil
|
|
34
34
|
end
|
|
35
|
-
alias_method :find_by_id, :get
|
|
36
35
|
end
|
|
37
36
|
end
|
|
38
37
|
end
|
|
@@ -3,13 +3,16 @@ module Fog
|
|
|
3
3
|
class OpenStack
|
|
4
4
|
class Real
|
|
5
5
|
def list_servers(options = {})
|
|
6
|
-
params =
|
|
7
|
-
|
|
6
|
+
params = options.dup
|
|
7
|
+
if params[:all_tenants]
|
|
8
|
+
params['all_tenants'] = 'True'
|
|
9
|
+
params.delete(:all_tenants)
|
|
10
|
+
end
|
|
8
11
|
|
|
9
12
|
request(
|
|
10
|
-
:expects
|
|
11
|
-
:method
|
|
12
|
-
:path
|
|
13
|
+
:expects => [200, 203],
|
|
14
|
+
:method => 'GET',
|
|
15
|
+
:path => 'servers.json',
|
|
13
16
|
:query => params
|
|
14
17
|
)
|
|
15
18
|
end
|
|
@@ -3,14 +3,17 @@ module Fog
|
|
|
3
3
|
class OpenStack
|
|
4
4
|
class Real
|
|
5
5
|
# Available filters: name, status, image, flavor, changes_since, reservation_id
|
|
6
|
-
def list_servers_detail(
|
|
7
|
-
params =
|
|
8
|
-
|
|
6
|
+
def list_servers_detail(options = {})
|
|
7
|
+
params = options.dup
|
|
8
|
+
if params[:all_tenants]
|
|
9
|
+
params['all_tenants'] = 'True'
|
|
10
|
+
params.delete(:all_tenants)
|
|
11
|
+
end
|
|
9
12
|
|
|
10
13
|
request(
|
|
11
|
-
:expects
|
|
12
|
-
:method
|
|
13
|
-
:path
|
|
14
|
+
:expects => [200, 203],
|
|
15
|
+
:method => 'GET',
|
|
16
|
+
:path => 'servers/detail.json',
|
|
14
17
|
:query => params
|
|
15
18
|
)
|
|
16
19
|
end
|