fog 0.3.17 → 0.3.18
Sign up to get free protection for your applications and to get access to all the features.
- data/Gemfile.lock +5 -5
- data/README.rdoc +16 -7
- data/fog.gemspec +102 -27
- data/lib/fog.rb +3 -2
- data/lib/fog/aws/cdn.rb +2 -1
- data/lib/fog/aws/compute.rb +3 -2
- data/lib/fog/aws/iam.rb +8 -0
- data/lib/fog/aws/models/compute/flavors.rb +2 -1
- data/lib/fog/aws/models/compute/server.rb +3 -0
- data/lib/fog/aws/models/compute/volume.rb +9 -8
- data/lib/fog/aws/models/storage/file.rb +24 -14
- data/lib/fog/aws/models/storage/files.rb +4 -14
- data/lib/fog/aws/parsers/cdn/distribution.rb +16 -1
- data/lib/fog/aws/parsers/cdn/get_distribution_list.rb +13 -0
- data/lib/fog/aws/parsers/compute/describe_volumes.rb +2 -0
- data/lib/fog/aws/parsers/iam/create_group.rb +2 -2
- data/lib/fog/aws/parsers/iam/create_user.rb +26 -0
- data/lib/fog/aws/parsers/iam/list_group_policies.rb +28 -0
- data/lib/fog/aws/parsers/iam/list_groups.rb +1 -1
- data/lib/fog/aws/parsers/storage/complete_multipart_upload.rb +24 -0
- data/lib/fog/aws/parsers/storage/initiate_multipart_upload.rb +24 -0
- data/lib/fog/aws/parsers/storage/list_multipart_uploads.rb +56 -0
- data/lib/fog/aws/parsers/storage/list_parts.rb +40 -0
- data/lib/fog/aws/requests/cdn/get_distribution.rb +11 -1
- data/lib/fog/aws/requests/cdn/get_distribution_list.rb +9 -1
- data/lib/fog/aws/requests/cdn/post_distribution.rb +16 -5
- data/lib/fog/aws/requests/cdn/put_distribution_config.rb +102 -0
- data/lib/fog/aws/requests/compute/describe_volumes.rb +1 -0
- data/lib/fog/aws/requests/compute/run_instances.rb +1 -1
- data/lib/fog/aws/requests/iam/add_user_to_group.rb +42 -0
- data/lib/fog/aws/requests/iam/create_group.rb +7 -3
- data/lib/fog/aws/requests/iam/create_user.rb +47 -0
- data/lib/fog/aws/requests/iam/delete_group.rb +5 -1
- data/lib/fog/aws/requests/iam/delete_group_policy.rb +42 -0
- data/lib/fog/aws/requests/iam/delete_user.rb +40 -0
- data/lib/fog/aws/requests/iam/list_group_policies.rb +47 -0
- data/lib/fog/aws/requests/iam/list_groups.rb +9 -4
- data/lib/fog/aws/requests/iam/put_group_policy.rb +44 -0
- data/lib/fog/aws/requests/iam/remove_user_from_group.rb +42 -0
- data/lib/fog/aws/requests/simpledb/put_attributes.rb +2 -2
- data/lib/fog/aws/requests/storage/abort_multipart_upload.rb +38 -0
- data/lib/fog/aws/requests/storage/complete_multipart_upload.rb +60 -0
- data/lib/fog/aws/requests/storage/get_service.rb +1 -1
- data/lib/fog/aws/requests/storage/initiate_multipart_upload.rb +55 -0
- data/lib/fog/aws/requests/storage/list_multipart_uploads.rb +68 -0
- data/lib/fog/aws/requests/storage/list_parts.rb +67 -0
- data/lib/fog/aws/requests/storage/put_object.rb +12 -5
- data/lib/fog/aws/requests/storage/upload_part.rb +51 -0
- data/lib/fog/aws/storage.rb +12 -6
- data/lib/fog/brightbox.rb +7 -0
- data/lib/fog/brightbox/bin.rb +23 -0
- data/lib/fog/brightbox/compute.rb +134 -0
- data/lib/fog/brightbox/models/compute/account.rb +51 -0
- data/lib/fog/brightbox/models/compute/cloud_ip.rb +43 -0
- data/lib/fog/brightbox/models/compute/cloud_ips.rb +34 -0
- data/lib/fog/brightbox/models/compute/flavor.rb +33 -0
- data/lib/fog/brightbox/models/compute/flavors.rb +28 -0
- data/lib/fog/brightbox/models/compute/image.rb +52 -0
- data/lib/fog/brightbox/models/compute/images.rb +28 -0
- data/lib/fog/brightbox/models/compute/server.rb +94 -0
- data/lib/fog/brightbox/models/compute/servers.rb +29 -0
- data/lib/fog/brightbox/models/compute/user.rb +39 -0
- data/lib/fog/brightbox/models/compute/users.rb +29 -0
- data/lib/fog/brightbox/models/compute/zone.rb +21 -0
- data/lib/fog/brightbox/models/compute/zones.rb +29 -0
- data/lib/fog/brightbox/requests/compute/create_api_client.rb +27 -0
- data/lib/fog/brightbox/requests/compute/create_cloud_ip.rb +27 -0
- data/lib/fog/brightbox/requests/compute/create_image.rb +27 -0
- data/lib/fog/brightbox/requests/compute/create_server.rb +27 -0
- data/lib/fog/brightbox/requests/compute/destroy_api_client.rb +28 -0
- data/lib/fog/brightbox/requests/compute/destroy_cloud_ip.rb +28 -0
- data/lib/fog/brightbox/requests/compute/destroy_image.rb +28 -0
- data/lib/fog/brightbox/requests/compute/destroy_server.rb +28 -0
- data/lib/fog/brightbox/requests/compute/get_account.rb +27 -0
- data/lib/fog/brightbox/requests/compute/get_api_client.rb +28 -0
- data/lib/fog/brightbox/requests/compute/get_cloud_ip.rb +28 -0
- data/lib/fog/brightbox/requests/compute/get_image.rb +28 -0
- data/lib/fog/brightbox/requests/compute/get_interface.rb +28 -0
- data/lib/fog/brightbox/requests/compute/get_server.rb +28 -0
- data/lib/fog/brightbox/requests/compute/get_server_type.rb +28 -0
- data/lib/fog/brightbox/requests/compute/get_user.rb +28 -0
- data/lib/fog/brightbox/requests/compute/get_zone.rb +28 -0
- data/lib/fog/brightbox/requests/compute/list_api_clients.rb +27 -0
- data/lib/fog/brightbox/requests/compute/list_cloud_ips.rb +27 -0
- data/lib/fog/brightbox/requests/compute/list_images.rb +27 -0
- data/lib/fog/brightbox/requests/compute/list_server_types.rb +27 -0
- data/lib/fog/brightbox/requests/compute/list_servers.rb +27 -0
- data/lib/fog/brightbox/requests/compute/list_users.rb +27 -0
- data/lib/fog/brightbox/requests/compute/list_zones.rb +27 -0
- data/lib/fog/brightbox/requests/compute/map_cloud_ip.rb +28 -0
- data/lib/fog/brightbox/requests/compute/reset_ftp_password_account.rb +27 -0
- data/lib/fog/brightbox/requests/compute/resize_server.rb +27 -0
- data/lib/fog/brightbox/requests/compute/shutdown_server.rb +28 -0
- data/lib/fog/brightbox/requests/compute/snapshot_server.rb +28 -0
- data/lib/fog/brightbox/requests/compute/start_server.rb +28 -0
- data/lib/fog/brightbox/requests/compute/stop_server.rb +28 -0
- data/lib/fog/brightbox/requests/compute/unmap_cloud_ip.rb +28 -0
- data/lib/fog/brightbox/requests/compute/update_account.rb +28 -0
- data/lib/fog/brightbox/requests/compute/update_api_client.rb +29 -0
- data/lib/fog/brightbox/requests/compute/update_image.rb +29 -0
- data/lib/fog/brightbox/requests/compute/update_server.rb +29 -0
- data/lib/fog/brightbox/requests/compute/update_user.rb +29 -0
- data/lib/fog/core/attributes.rb +3 -3
- data/lib/fog/core/bin.rb +2 -0
- data/lib/fog/core/compute.rb +5 -2
- data/lib/fog/core/credentials.rb +2 -0
- data/lib/fog/core/service.rb +24 -12
- data/lib/fog/google/models/storage/file.rb +23 -14
- data/lib/fog/google/models/storage/files.rb +4 -14
- data/lib/fog/google/requests/storage/get_bucket.rb +0 -1
- data/lib/fog/google/requests/storage/put_object.rb +9 -2
- data/lib/fog/rackspace/models/storage/file.rb +3 -3
- data/lib/fog/rackspace/models/storage/files.rb +5 -13
- data/spec/aws/models/compute/server_spec.rb +0 -3
- data/spec/aws/requests/simpledb/get_attributes_spec.rb +11 -0
- data/spec/core/attributes_spec.rb +52 -0
- data/spec/vcloud/bin_spec.rb +1 -1
- data/spec/vcloud/vcloud_spec.rb +1 -1
- data/tests/aws/models/compute/flavors_tests.rb +5 -0
- data/tests/aws/models/compute/server_tests.rb +6 -0
- data/tests/aws/models/compute/servers_tests.rb +6 -0
- data/tests/aws/requests/storage/bucket_tests.rb +1 -1
- data/tests/aws/requests/storage/multipart_upload_tests.rb +135 -0
- data/tests/bluebox/models/compute/flavors_tests.rb +5 -0
- data/tests/bluebox/models/compute/server_tests.rb +5 -0
- data/tests/bluebox/models/compute/servers_tests.rb +6 -0
- data/tests/brightbox/helper.rb +0 -0
- data/tests/brightbox/models/compute/flavors_tests.rb +5 -0
- data/tests/brightbox/models/compute/server_tests.rb +6 -0
- data/tests/brightbox/models/compute/servers_tests.rb +6 -0
- data/tests/google/requests/storage/bucket_tests.rb +78 -0
- data/tests/google/requests/storage/object_tests.rb +81 -0
- data/tests/helper.rb +19 -4
- data/tests/helpers/collection_tests.rb +51 -0
- data/tests/helpers/compute/flavors_tests.rb +34 -0
- data/tests/helpers/compute/server_tests.rb +19 -0
- data/tests/helpers/compute/servers_tests.rb +11 -0
- data/tests/helpers/model_tests.rb +28 -0
- data/tests/helpers/storage/directories_tests.rb +4 -36
- data/tests/helpers/storage/directory_tests.rb +8 -22
- data/tests/helpers/storage/file_tests.rb +8 -25
- data/tests/helpers/storage/files_tests.rb +5 -39
- data/tests/local/models/storage/directories_tests.rb +1 -1
- data/tests/local/models/storage/directory_tests.rb +1 -1
- data/tests/local/models/storage/file_tests.rb +1 -1
- data/tests/local/models/storage/files_tests.rb +1 -1
- data/tests/rackspace/models/compute/flavors_tests.rb +5 -0
- data/tests/rackspace/models/compute/server_tests.rb +6 -0
- data/tests/rackspace/models/compute/servers_tests.rb +6 -0
- data/tests/rackspace/models/storage/directories_tests.rb +1 -1
- data/tests/rackspace/models/storage/directory_tests.rb +1 -1
- data/tests/rackspace/models/storage/file_tests.rb +1 -1
- data/tests/rackspace/models/storage/files_tests.rb +1 -1
- data/tests/slicehost/models/compute/flavors_tests.rb +5 -0
- data/tests/slicehost/models/compute/server_tests.rb +6 -0
- data/tests/slicehost/models/compute/servers_tests.rb +6 -0
- metadata +108 -31
- data/spec/aws/models/compute/flavors_spec.rb +0 -14
- data/spec/aws/models/compute/servers_spec.rb +0 -21
- data/spec/bluebox/models/compute/flavors_spec.rb +0 -17
- data/spec/bluebox/models/compute/server_spec.rb +0 -29
- data/spec/bluebox/models/compute/servers_spec.rb +0 -31
- data/spec/google/requests/storage/copy_object_spec.rb +0 -61
- data/spec/google/requests/storage/delete_bucket_spec.rb +0 -35
- data/spec/google/requests/storage/delete_object_spec.rb +0 -38
- data/spec/google/requests/storage/get_bucket_spec.rb +0 -110
- data/spec/google/requests/storage/get_object_spec.rb +0 -58
- data/spec/google/requests/storage/get_service_spec.rb +0 -32
- data/spec/google/requests/storage/head_object_spec.rb +0 -26
- data/spec/google/requests/storage/put_bucket_spec.rb +0 -21
- data/spec/google/requests/storage/put_object_spec.rb +0 -43
- data/spec/rackspace/models/compute/flavors_spec.rb +0 -18
- data/spec/rackspace/models/compute/server_spec.rb +0 -55
- data/spec/rackspace/models/compute/servers_spec.rb +0 -22
- data/spec/shared_examples/flavors_examples.rb +0 -16
- data/spec/shared_examples/server_examples.rb +0 -43
- data/spec/shared_examples/servers_examples.rb +0 -37
- data/spec/slicehost/models/compute/flavors_spec.rb +0 -18
- data/spec/slicehost/models/compute/server_spec.rb +0 -55
- data/spec/slicehost/models/compute/servers_spec.rb +0 -26
@@ -8,17 +8,18 @@ module Fog
|
|
8
8
|
extend Fog::Deprecation
|
9
9
|
deprecate(:status, :state)
|
10
10
|
|
11
|
-
identity :id,
|
11
|
+
identity :id, :aliases => 'volumeId'
|
12
12
|
|
13
|
-
attribute :attached_at,
|
14
|
-
attribute :availability_zone,
|
15
|
-
attribute :created_at,
|
13
|
+
attribute :attached_at, :aliases => 'attachTime'
|
14
|
+
attribute :availability_zone, :aliases => 'availabilityZone'
|
15
|
+
attribute :created_at, :aliases => 'createTime'
|
16
|
+
attribute :delete_on_termination, :aliases => 'deleteOnTermination'
|
16
17
|
attribute :device
|
17
|
-
attribute :server_id,
|
18
|
+
attribute :server_id, :aliases => 'instanceId'
|
18
19
|
attribute :size
|
19
|
-
attribute :snapshot_id,
|
20
|
-
attribute :state,
|
21
|
-
attribute :tags,
|
20
|
+
attribute :snapshot_id, :aliases => 'snapshotId'
|
21
|
+
attribute :state, :aliases => 'status'
|
22
|
+
attribute :tags, :aliases => 'tagSet'
|
22
23
|
|
23
24
|
def initialize(attributes = {})
|
24
25
|
# assign server first to prevent race condition with new_record?
|
@@ -5,17 +5,24 @@ module Fog
|
|
5
5
|
class Storage
|
6
6
|
|
7
7
|
class File < Fog::Model
|
8
|
+
extend Fog::Deprecation
|
9
|
+
deprecate(:size, :content_length)
|
10
|
+
deprecate(:size=, :content_length=)
|
8
11
|
|
9
12
|
identity :key, :aliases => 'Key'
|
10
13
|
|
11
14
|
attr_writer :body
|
12
|
-
attribute :
|
13
|
-
attribute :
|
14
|
-
attribute :
|
15
|
-
attribute :
|
16
|
-
attribute :
|
17
|
-
attribute :
|
18
|
-
attribute :
|
15
|
+
attribute :cache_control, :aliases => 'Cache-Control'
|
16
|
+
attribute :content_disposition, :aliases => 'Content-Disposition'
|
17
|
+
attribute :content_encoding, :aliases => 'Content-Encoding'
|
18
|
+
attribute :content_length, :aliases => ['Content-Length', 'Size'], :type => :integer
|
19
|
+
attribute :content_md5, :aliases => 'Content-MD5'
|
20
|
+
attribute :content_type, :aliases => 'Content-Type'
|
21
|
+
attribute :etag, :aliases => ['Etag', 'ETag']
|
22
|
+
attribute :expires, :aliases => 'Expires'
|
23
|
+
attribute :last_modified, :aliases => ['Last-Modified', 'LastModified'], :type => :time
|
24
|
+
attribute :owner, :aliases => 'Owner'
|
25
|
+
attribute :storage_class, :aliases => ['x-amz-storage-class', 'StorageClass']
|
19
26
|
|
20
27
|
def acl=(new_acl)
|
21
28
|
valid_acls = ['private', 'public-read', 'public-read-write', 'authenticated-read']
|
@@ -80,14 +87,17 @@ module Fog
|
|
80
87
|
if options != {}
|
81
88
|
Formatador.display_line("[yellow][WARN] options param is deprecated, use acl= instead[/] [light_black](#{caller.first})[/]")
|
82
89
|
end
|
83
|
-
if @acl
|
84
|
-
|
85
|
-
|
86
|
-
if
|
87
|
-
|
88
|
-
|
90
|
+
options['x-amz-acl'] ||= @acl if @acl
|
91
|
+
options['Cache-Control'] = cache_control if cache_control
|
92
|
+
options['Content-Disposition'] = content_disposition if content_disposition
|
93
|
+
options['Content-Encoding'] = content_encoding if content_encoding
|
94
|
+
options['Content-MD5'] = content_md5 if content_md5
|
95
|
+
options['Content-Type'] = content_type if content_type
|
96
|
+
options['Expires'] = expires if expires
|
97
|
+
options['x-amz-storage-class'] = storage_class if storage_class
|
98
|
+
|
89
99
|
data = connection.put_object(directory.key, @key, @body, options)
|
90
|
-
|
100
|
+
merge_attributes(data.headers)
|
91
101
|
true
|
92
102
|
end
|
93
103
|
|
@@ -41,15 +41,10 @@ module Fog
|
|
41
41
|
def get(key, options = {}, &block)
|
42
42
|
requires :directory
|
43
43
|
data = connection.get_object(directory.key, key, options, &block)
|
44
|
-
file_data = {
|
44
|
+
file_data = data.headers.merge({
|
45
45
|
:body => data.body,
|
46
46
|
:key => key
|
47
|
-
}
|
48
|
-
for key, value in data.headers
|
49
|
-
if ['Content-Length', 'Content-Type', 'ETag', 'Last-Modified'].include?(key)
|
50
|
-
file_data[key] = value
|
51
|
-
end
|
52
|
-
end
|
47
|
+
})
|
53
48
|
new(file_data)
|
54
49
|
rescue Excon::Errors::NotFound
|
55
50
|
nil
|
@@ -63,14 +58,9 @@ module Fog
|
|
63
58
|
def head(key, options = {})
|
64
59
|
requires :directory
|
65
60
|
data = connection.head_object(directory.key, key, options)
|
66
|
-
file_data = {
|
61
|
+
file_data = data.headers.merge({
|
67
62
|
:key => key
|
68
|
-
}
|
69
|
-
for key, value in data.headers
|
70
|
-
if ['Content-Length', 'Content-Type', 'ETag', 'Last-Modified'].include?(key)
|
71
|
-
file_data[key] = value
|
72
|
-
end
|
73
|
-
end
|
63
|
+
})
|
74
64
|
new(file_data)
|
75
65
|
rescue Excon::Errors::NotFound
|
76
66
|
nil
|
@@ -9,6 +9,15 @@ module Fog
|
|
9
9
|
@response = { 'DistributionConfig' => { 'CNAME' => [], 'Logging' => {}, 'TrustedSigners' => [] } }
|
10
10
|
end
|
11
11
|
|
12
|
+
def start_element(name, attrs = [])
|
13
|
+
super
|
14
|
+
case name
|
15
|
+
when 'CustomOrigin', 'S3Origin'
|
16
|
+
@origin = name
|
17
|
+
@response['DistributionConfig'][@origin] = {}
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
12
21
|
def end_element(name)
|
13
22
|
case name
|
14
23
|
when 'AwsAccountNumber'
|
@@ -17,16 +26,22 @@ module Fog
|
|
17
26
|
@response['DistributionConfig']['Logging'][name] = @value
|
18
27
|
when 'CNAME'
|
19
28
|
@response['DistributionConfig']['CNAME'] << @value
|
29
|
+
when 'DNSName', 'OriginAccessIdentity', 'OriginProtocolPolicy'
|
30
|
+
@response['DistributionConfig'][@origin][name] = @value
|
20
31
|
when 'DomainName', 'Id', 'Status'
|
21
32
|
@response[name] = @value
|
22
33
|
when 'CallerReference', 'Comment', 'DefaultRootObject', 'Origin', 'OriginAccessIdentity'
|
23
|
-
@response['DistributionConfig'][name]
|
34
|
+
@response['DistributionConfig'][name] = @value
|
24
35
|
when 'Enabled'
|
25
36
|
if @value == 'true'
|
26
37
|
@response['DistributionConfig'][name] = true
|
27
38
|
else
|
28
39
|
@response['DistributionConfig'][name] = false
|
29
40
|
end
|
41
|
+
when 'HTTPPort', 'HTTPSPort'
|
42
|
+
@response['DistributionConfig'][@origin][name] = @value.to_i
|
43
|
+
when 'InProgressInvalidationBatches'
|
44
|
+
@response[name] = @value.to_i
|
30
45
|
when 'LastModifiedTime'
|
31
46
|
@response[name] = Time.parse(@value)
|
32
47
|
when 'Protocol'
|
@@ -10,6 +10,15 @@ module Fog
|
|
10
10
|
@response = { 'DistributionSummary' => [] }
|
11
11
|
end
|
12
12
|
|
13
|
+
def start_element(name, attrs = [])
|
14
|
+
super
|
15
|
+
case name
|
16
|
+
when 'CustomOrigin', 'S3Origin'
|
17
|
+
@origin = name
|
18
|
+
@distribution_summary[@origin] = {}
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
13
22
|
def end_element(name)
|
14
23
|
case name
|
15
24
|
when 'DistributionSummary'
|
@@ -19,12 +28,16 @@ module Fog
|
|
19
28
|
@distribution_summary[name] = @value
|
20
29
|
when 'CNAME'
|
21
30
|
@distribution_summary[name] << @value
|
31
|
+
when 'DNSName', 'OriginAccessIdentity', 'OriginProtocolPolicy'
|
32
|
+
@distribution_summary[@origin][name] = @value
|
22
33
|
when 'Enabled'
|
23
34
|
if @value == 'true'
|
24
35
|
@distribution_summary[name] = true
|
25
36
|
else
|
26
37
|
@distribution_summary[name] = false
|
27
38
|
end
|
39
|
+
when 'HTTPPort', 'HTTPSPort'
|
40
|
+
@distribution_summary[@origin][name] = @value.to_i
|
28
41
|
when 'LastModifiedTime'
|
29
42
|
@distribution_summary[name] = Time.parse(@value)
|
30
43
|
when 'IsTruncated'
|
@@ -30,6 +30,8 @@ module Fog
|
|
30
30
|
@in_attachment_set = false
|
31
31
|
when 'attachTime'
|
32
32
|
@attachment[name] = Time.parse(@value)
|
33
|
+
when 'deleteOnTermination'
|
34
|
+
@attachment[name] = @value == 'true'
|
33
35
|
when 'device', 'instanceId', 'status', 'volumeId'
|
34
36
|
@attachment[name] = @value
|
35
37
|
when 'item'
|
@@ -3,7 +3,7 @@ module Fog
|
|
3
3
|
module AWS
|
4
4
|
module IAM
|
5
5
|
|
6
|
-
class
|
6
|
+
class CreateGroup < Fog::Parsers::Base
|
7
7
|
|
8
8
|
def reset
|
9
9
|
@response = { 'Group' => {} }
|
@@ -14,7 +14,7 @@ module Fog
|
|
14
14
|
when 'Arn', 'GroupId', 'GroupName', 'Path'
|
15
15
|
@response['Group'][name] = @value
|
16
16
|
when 'RequestId'
|
17
|
-
response[name] = @value
|
17
|
+
@response[name] = @value
|
18
18
|
end
|
19
19
|
end
|
20
20
|
|
@@ -0,0 +1,26 @@
|
|
1
|
+
module Fog
|
2
|
+
module Parsers
|
3
|
+
module AWS
|
4
|
+
module IAM
|
5
|
+
|
6
|
+
class CreateUser < Fog::Parsers::Base
|
7
|
+
|
8
|
+
def reset
|
9
|
+
@response = { 'User' => {} }
|
10
|
+
end
|
11
|
+
|
12
|
+
def end_element(name)
|
13
|
+
case name
|
14
|
+
when 'Arn', 'UserId', 'UserName', 'Path'
|
15
|
+
@response['User'][name] = @value
|
16
|
+
when 'RequestId'
|
17
|
+
@response[name] = @value
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
end
|
22
|
+
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
module Fog
|
2
|
+
module Parsers
|
3
|
+
module AWS
|
4
|
+
module IAM
|
5
|
+
|
6
|
+
class ListGroups < Fog::Parsers::Base
|
7
|
+
|
8
|
+
def reset
|
9
|
+
@response = { 'PolicyNames' => [] }
|
10
|
+
end
|
11
|
+
|
12
|
+
def end_element(name)
|
13
|
+
case name
|
14
|
+
when 'member'
|
15
|
+
@response['PolicyNames'] << @value
|
16
|
+
when 'IsTruncated'
|
17
|
+
response[name] = (@value == 'true')
|
18
|
+
when 'Marker', 'RequestId'
|
19
|
+
response[name] = @value
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
end
|
24
|
+
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
module Fog
|
2
|
+
module Parsers
|
3
|
+
module AWS
|
4
|
+
module Storage
|
5
|
+
|
6
|
+
class CompleteMultipartUpload < Fog::Parsers::Base
|
7
|
+
|
8
|
+
def reset
|
9
|
+
@response = {}
|
10
|
+
end
|
11
|
+
|
12
|
+
def end_element(name)
|
13
|
+
case name
|
14
|
+
when 'Bucket', 'ETag', 'Key', 'Location'
|
15
|
+
@response[name] = @value
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
end
|
20
|
+
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
module Fog
|
2
|
+
module Parsers
|
3
|
+
module AWS
|
4
|
+
module Storage
|
5
|
+
|
6
|
+
class InitiateMultipartUpload < Fog::Parsers::Base
|
7
|
+
|
8
|
+
def reset
|
9
|
+
@response = {}
|
10
|
+
end
|
11
|
+
|
12
|
+
def end_element(name)
|
13
|
+
case name
|
14
|
+
when 'Bucket', 'Key', 'UploadId'
|
15
|
+
@response[name] = @value
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
end
|
20
|
+
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
@@ -0,0 +1,56 @@
|
|
1
|
+
module Fog
|
2
|
+
module Parsers
|
3
|
+
module AWS
|
4
|
+
module Storage
|
5
|
+
|
6
|
+
class ListMultipartUploads < Fog::Parsers::Base
|
7
|
+
|
8
|
+
def reset
|
9
|
+
@upload = { 'Initiator' => {}, 'Owner' => {} }
|
10
|
+
@response = { 'Upload' => [] }
|
11
|
+
end
|
12
|
+
|
13
|
+
def start_element(name, attrs = [])
|
14
|
+
super
|
15
|
+
case name
|
16
|
+
when 'Initiator'
|
17
|
+
@in_initiator = true
|
18
|
+
when 'Owner'
|
19
|
+
@in_owner = true
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
def end_element(name)
|
24
|
+
case name
|
25
|
+
when 'Bucket', 'KeyMarker', 'NextKeyMarker', 'NextUploadIdMarker', 'UploadIdMarker'
|
26
|
+
@response[name] = @value
|
27
|
+
when 'DisplayName', 'ID'
|
28
|
+
if @in_initiator
|
29
|
+
@upload['Initiator'][name] = @value
|
30
|
+
elsif @in_owner
|
31
|
+
@upload['Owner'][name] = @value
|
32
|
+
end
|
33
|
+
when 'Initiated'
|
34
|
+
@upload[name] = Time.parse(@value)
|
35
|
+
when 'Initiator'
|
36
|
+
@in_initiator = false
|
37
|
+
when 'IsTruncated'
|
38
|
+
@response[name] = @value == 'true'
|
39
|
+
when 'Key', 'StorageClass', 'UploadId'
|
40
|
+
@upload[name] = @value
|
41
|
+
when 'MaxUploads'
|
42
|
+
@response[name] = @value.to_i
|
43
|
+
when 'Owner'
|
44
|
+
@in_owner = false
|
45
|
+
when 'Upload'
|
46
|
+
@response['Upload'] << @upload
|
47
|
+
@upload = { 'Initiator' => {}, 'Owner' => {} }
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
51
|
+
end
|
52
|
+
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|
56
|
+
end
|
@@ -0,0 +1,40 @@
|
|
1
|
+
module Fog
|
2
|
+
module Parsers
|
3
|
+
module AWS
|
4
|
+
module Storage
|
5
|
+
|
6
|
+
class ListParts < Fog::Parsers::Base
|
7
|
+
|
8
|
+
def reset
|
9
|
+
@part = {}
|
10
|
+
@response = { 'Initiator' => {}, 'Part' => [] }
|
11
|
+
end
|
12
|
+
|
13
|
+
def end_element(name)
|
14
|
+
case name
|
15
|
+
when 'Bucket', 'Key', 'NextPartNumberMarker', 'PartNumberMarker', 'StorageClass', 'UploadId'
|
16
|
+
@response[name] = @value
|
17
|
+
when 'DisplayName', 'ID'
|
18
|
+
@response['Initiator'][name] = @value
|
19
|
+
when 'ETag'
|
20
|
+
@part[name] = @value
|
21
|
+
when 'IsTruncated'
|
22
|
+
@response[name] = @value == 'true'
|
23
|
+
when 'LastModified'
|
24
|
+
@part[name] = Time.parse(@value)
|
25
|
+
when 'MaxParts'
|
26
|
+
@response[name] = @value.to_i
|
27
|
+
when 'Part'
|
28
|
+
@response['Part'] << @part
|
29
|
+
@part = {}
|
30
|
+
when 'PartNumber', 'Size'
|
31
|
+
@part[name] = @value.to_i
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
end
|
36
|
+
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
@@ -13,7 +13,16 @@ module Fog
|
|
13
13
|
# ==== Returns
|
14
14
|
# * response<~Excon::Response>:
|
15
15
|
# * body<~Hash>:
|
16
|
-
# * '
|
16
|
+
# * 'S3Origin'<~Hash>:
|
17
|
+
# * 'DNSName'<~String> - origin to associate with distribution, ie 'mybucket.s3.amazonaws.com'
|
18
|
+
# * 'OriginAccessIdentity'<~String> - Optional: Used when serving private content
|
19
|
+
# or
|
20
|
+
# * 'CustomOrigin'<~Hash>:
|
21
|
+
# * 'DNSName'<~String> - origin to associate with distribution, ie 'www.example.com'
|
22
|
+
# * 'HTTPPort'<~Integer> - HTTP port of origin, in [80, 443] or (1024...65535)
|
23
|
+
# * 'HTTPSPort'<~Integer> - HTTPS port of origin, in [80, 443] or (1024...65535)
|
24
|
+
# * 'OriginProtocolPolicy'<~String> - Policy on using http vs https, in ['http-only', 'match-viewer']
|
25
|
+
#
|
17
26
|
# * 'Id'<~String> - Id of distribution
|
18
27
|
# * 'LastModifiedTime'<~String> - Timestamp of last modification of distribution
|
19
28
|
# * 'Status'<~String> - Status of distribution
|
@@ -22,6 +31,7 @@ module Fog
|
|
22
31
|
# * 'CNAME'<~Array> - array of associated cnames
|
23
32
|
# * 'Comment'<~String> - comment associated with distribution
|
24
33
|
# * 'Enabled'<~Boolean> - whether or not distribution is enabled
|
34
|
+
# * 'InProgressInvalidationBatches'<~Integer> - number of invalidation batches in progress
|
25
35
|
# * 'Logging'<~Hash>:
|
26
36
|
# * 'Bucket'<~String> - bucket logs are stored in
|
27
37
|
# * 'Prefix'<~String> - prefix logs are stored with
|