fog 0.3.17 → 0.3.18

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.
Files changed (180) hide show
  1. data/Gemfile.lock +5 -5
  2. data/README.rdoc +16 -7
  3. data/fog.gemspec +102 -27
  4. data/lib/fog.rb +3 -2
  5. data/lib/fog/aws/cdn.rb +2 -1
  6. data/lib/fog/aws/compute.rb +3 -2
  7. data/lib/fog/aws/iam.rb +8 -0
  8. data/lib/fog/aws/models/compute/flavors.rb +2 -1
  9. data/lib/fog/aws/models/compute/server.rb +3 -0
  10. data/lib/fog/aws/models/compute/volume.rb +9 -8
  11. data/lib/fog/aws/models/storage/file.rb +24 -14
  12. data/lib/fog/aws/models/storage/files.rb +4 -14
  13. data/lib/fog/aws/parsers/cdn/distribution.rb +16 -1
  14. data/lib/fog/aws/parsers/cdn/get_distribution_list.rb +13 -0
  15. data/lib/fog/aws/parsers/compute/describe_volumes.rb +2 -0
  16. data/lib/fog/aws/parsers/iam/create_group.rb +2 -2
  17. data/lib/fog/aws/parsers/iam/create_user.rb +26 -0
  18. data/lib/fog/aws/parsers/iam/list_group_policies.rb +28 -0
  19. data/lib/fog/aws/parsers/iam/list_groups.rb +1 -1
  20. data/lib/fog/aws/parsers/storage/complete_multipart_upload.rb +24 -0
  21. data/lib/fog/aws/parsers/storage/initiate_multipart_upload.rb +24 -0
  22. data/lib/fog/aws/parsers/storage/list_multipart_uploads.rb +56 -0
  23. data/lib/fog/aws/parsers/storage/list_parts.rb +40 -0
  24. data/lib/fog/aws/requests/cdn/get_distribution.rb +11 -1
  25. data/lib/fog/aws/requests/cdn/get_distribution_list.rb +9 -1
  26. data/lib/fog/aws/requests/cdn/post_distribution.rb +16 -5
  27. data/lib/fog/aws/requests/cdn/put_distribution_config.rb +102 -0
  28. data/lib/fog/aws/requests/compute/describe_volumes.rb +1 -0
  29. data/lib/fog/aws/requests/compute/run_instances.rb +1 -1
  30. data/lib/fog/aws/requests/iam/add_user_to_group.rb +42 -0
  31. data/lib/fog/aws/requests/iam/create_group.rb +7 -3
  32. data/lib/fog/aws/requests/iam/create_user.rb +47 -0
  33. data/lib/fog/aws/requests/iam/delete_group.rb +5 -1
  34. data/lib/fog/aws/requests/iam/delete_group_policy.rb +42 -0
  35. data/lib/fog/aws/requests/iam/delete_user.rb +40 -0
  36. data/lib/fog/aws/requests/iam/list_group_policies.rb +47 -0
  37. data/lib/fog/aws/requests/iam/list_groups.rb +9 -4
  38. data/lib/fog/aws/requests/iam/put_group_policy.rb +44 -0
  39. data/lib/fog/aws/requests/iam/remove_user_from_group.rb +42 -0
  40. data/lib/fog/aws/requests/simpledb/put_attributes.rb +2 -2
  41. data/lib/fog/aws/requests/storage/abort_multipart_upload.rb +38 -0
  42. data/lib/fog/aws/requests/storage/complete_multipart_upload.rb +60 -0
  43. data/lib/fog/aws/requests/storage/get_service.rb +1 -1
  44. data/lib/fog/aws/requests/storage/initiate_multipart_upload.rb +55 -0
  45. data/lib/fog/aws/requests/storage/list_multipart_uploads.rb +68 -0
  46. data/lib/fog/aws/requests/storage/list_parts.rb +67 -0
  47. data/lib/fog/aws/requests/storage/put_object.rb +12 -5
  48. data/lib/fog/aws/requests/storage/upload_part.rb +51 -0
  49. data/lib/fog/aws/storage.rb +12 -6
  50. data/lib/fog/brightbox.rb +7 -0
  51. data/lib/fog/brightbox/bin.rb +23 -0
  52. data/lib/fog/brightbox/compute.rb +134 -0
  53. data/lib/fog/brightbox/models/compute/account.rb +51 -0
  54. data/lib/fog/brightbox/models/compute/cloud_ip.rb +43 -0
  55. data/lib/fog/brightbox/models/compute/cloud_ips.rb +34 -0
  56. data/lib/fog/brightbox/models/compute/flavor.rb +33 -0
  57. data/lib/fog/brightbox/models/compute/flavors.rb +28 -0
  58. data/lib/fog/brightbox/models/compute/image.rb +52 -0
  59. data/lib/fog/brightbox/models/compute/images.rb +28 -0
  60. data/lib/fog/brightbox/models/compute/server.rb +94 -0
  61. data/lib/fog/brightbox/models/compute/servers.rb +29 -0
  62. data/lib/fog/brightbox/models/compute/user.rb +39 -0
  63. data/lib/fog/brightbox/models/compute/users.rb +29 -0
  64. data/lib/fog/brightbox/models/compute/zone.rb +21 -0
  65. data/lib/fog/brightbox/models/compute/zones.rb +29 -0
  66. data/lib/fog/brightbox/requests/compute/create_api_client.rb +27 -0
  67. data/lib/fog/brightbox/requests/compute/create_cloud_ip.rb +27 -0
  68. data/lib/fog/brightbox/requests/compute/create_image.rb +27 -0
  69. data/lib/fog/brightbox/requests/compute/create_server.rb +27 -0
  70. data/lib/fog/brightbox/requests/compute/destroy_api_client.rb +28 -0
  71. data/lib/fog/brightbox/requests/compute/destroy_cloud_ip.rb +28 -0
  72. data/lib/fog/brightbox/requests/compute/destroy_image.rb +28 -0
  73. data/lib/fog/brightbox/requests/compute/destroy_server.rb +28 -0
  74. data/lib/fog/brightbox/requests/compute/get_account.rb +27 -0
  75. data/lib/fog/brightbox/requests/compute/get_api_client.rb +28 -0
  76. data/lib/fog/brightbox/requests/compute/get_cloud_ip.rb +28 -0
  77. data/lib/fog/brightbox/requests/compute/get_image.rb +28 -0
  78. data/lib/fog/brightbox/requests/compute/get_interface.rb +28 -0
  79. data/lib/fog/brightbox/requests/compute/get_server.rb +28 -0
  80. data/lib/fog/brightbox/requests/compute/get_server_type.rb +28 -0
  81. data/lib/fog/brightbox/requests/compute/get_user.rb +28 -0
  82. data/lib/fog/brightbox/requests/compute/get_zone.rb +28 -0
  83. data/lib/fog/brightbox/requests/compute/list_api_clients.rb +27 -0
  84. data/lib/fog/brightbox/requests/compute/list_cloud_ips.rb +27 -0
  85. data/lib/fog/brightbox/requests/compute/list_images.rb +27 -0
  86. data/lib/fog/brightbox/requests/compute/list_server_types.rb +27 -0
  87. data/lib/fog/brightbox/requests/compute/list_servers.rb +27 -0
  88. data/lib/fog/brightbox/requests/compute/list_users.rb +27 -0
  89. data/lib/fog/brightbox/requests/compute/list_zones.rb +27 -0
  90. data/lib/fog/brightbox/requests/compute/map_cloud_ip.rb +28 -0
  91. data/lib/fog/brightbox/requests/compute/reset_ftp_password_account.rb +27 -0
  92. data/lib/fog/brightbox/requests/compute/resize_server.rb +27 -0
  93. data/lib/fog/brightbox/requests/compute/shutdown_server.rb +28 -0
  94. data/lib/fog/brightbox/requests/compute/snapshot_server.rb +28 -0
  95. data/lib/fog/brightbox/requests/compute/start_server.rb +28 -0
  96. data/lib/fog/brightbox/requests/compute/stop_server.rb +28 -0
  97. data/lib/fog/brightbox/requests/compute/unmap_cloud_ip.rb +28 -0
  98. data/lib/fog/brightbox/requests/compute/update_account.rb +28 -0
  99. data/lib/fog/brightbox/requests/compute/update_api_client.rb +29 -0
  100. data/lib/fog/brightbox/requests/compute/update_image.rb +29 -0
  101. data/lib/fog/brightbox/requests/compute/update_server.rb +29 -0
  102. data/lib/fog/brightbox/requests/compute/update_user.rb +29 -0
  103. data/lib/fog/core/attributes.rb +3 -3
  104. data/lib/fog/core/bin.rb +2 -0
  105. data/lib/fog/core/compute.rb +5 -2
  106. data/lib/fog/core/credentials.rb +2 -0
  107. data/lib/fog/core/service.rb +24 -12
  108. data/lib/fog/google/models/storage/file.rb +23 -14
  109. data/lib/fog/google/models/storage/files.rb +4 -14
  110. data/lib/fog/google/requests/storage/get_bucket.rb +0 -1
  111. data/lib/fog/google/requests/storage/put_object.rb +9 -2
  112. data/lib/fog/rackspace/models/storage/file.rb +3 -3
  113. data/lib/fog/rackspace/models/storage/files.rb +5 -13
  114. data/spec/aws/models/compute/server_spec.rb +0 -3
  115. data/spec/aws/requests/simpledb/get_attributes_spec.rb +11 -0
  116. data/spec/core/attributes_spec.rb +52 -0
  117. data/spec/vcloud/bin_spec.rb +1 -1
  118. data/spec/vcloud/vcloud_spec.rb +1 -1
  119. data/tests/aws/models/compute/flavors_tests.rb +5 -0
  120. data/tests/aws/models/compute/server_tests.rb +6 -0
  121. data/tests/aws/models/compute/servers_tests.rb +6 -0
  122. data/tests/aws/requests/storage/bucket_tests.rb +1 -1
  123. data/tests/aws/requests/storage/multipart_upload_tests.rb +135 -0
  124. data/tests/bluebox/models/compute/flavors_tests.rb +5 -0
  125. data/tests/bluebox/models/compute/server_tests.rb +5 -0
  126. data/tests/bluebox/models/compute/servers_tests.rb +6 -0
  127. data/tests/brightbox/helper.rb +0 -0
  128. data/tests/brightbox/models/compute/flavors_tests.rb +5 -0
  129. data/tests/brightbox/models/compute/server_tests.rb +6 -0
  130. data/tests/brightbox/models/compute/servers_tests.rb +6 -0
  131. data/tests/google/requests/storage/bucket_tests.rb +78 -0
  132. data/tests/google/requests/storage/object_tests.rb +81 -0
  133. data/tests/helper.rb +19 -4
  134. data/tests/helpers/collection_tests.rb +51 -0
  135. data/tests/helpers/compute/flavors_tests.rb +34 -0
  136. data/tests/helpers/compute/server_tests.rb +19 -0
  137. data/tests/helpers/compute/servers_tests.rb +11 -0
  138. data/tests/helpers/model_tests.rb +28 -0
  139. data/tests/helpers/storage/directories_tests.rb +4 -36
  140. data/tests/helpers/storage/directory_tests.rb +8 -22
  141. data/tests/helpers/storage/file_tests.rb +8 -25
  142. data/tests/helpers/storage/files_tests.rb +5 -39
  143. data/tests/local/models/storage/directories_tests.rb +1 -1
  144. data/tests/local/models/storage/directory_tests.rb +1 -1
  145. data/tests/local/models/storage/file_tests.rb +1 -1
  146. data/tests/local/models/storage/files_tests.rb +1 -1
  147. data/tests/rackspace/models/compute/flavors_tests.rb +5 -0
  148. data/tests/rackspace/models/compute/server_tests.rb +6 -0
  149. data/tests/rackspace/models/compute/servers_tests.rb +6 -0
  150. data/tests/rackspace/models/storage/directories_tests.rb +1 -1
  151. data/tests/rackspace/models/storage/directory_tests.rb +1 -1
  152. data/tests/rackspace/models/storage/file_tests.rb +1 -1
  153. data/tests/rackspace/models/storage/files_tests.rb +1 -1
  154. data/tests/slicehost/models/compute/flavors_tests.rb +5 -0
  155. data/tests/slicehost/models/compute/server_tests.rb +6 -0
  156. data/tests/slicehost/models/compute/servers_tests.rb +6 -0
  157. metadata +108 -31
  158. data/spec/aws/models/compute/flavors_spec.rb +0 -14
  159. data/spec/aws/models/compute/servers_spec.rb +0 -21
  160. data/spec/bluebox/models/compute/flavors_spec.rb +0 -17
  161. data/spec/bluebox/models/compute/server_spec.rb +0 -29
  162. data/spec/bluebox/models/compute/servers_spec.rb +0 -31
  163. data/spec/google/requests/storage/copy_object_spec.rb +0 -61
  164. data/spec/google/requests/storage/delete_bucket_spec.rb +0 -35
  165. data/spec/google/requests/storage/delete_object_spec.rb +0 -38
  166. data/spec/google/requests/storage/get_bucket_spec.rb +0 -110
  167. data/spec/google/requests/storage/get_object_spec.rb +0 -58
  168. data/spec/google/requests/storage/get_service_spec.rb +0 -32
  169. data/spec/google/requests/storage/head_object_spec.rb +0 -26
  170. data/spec/google/requests/storage/put_bucket_spec.rb +0 -21
  171. data/spec/google/requests/storage/put_object_spec.rb +0 -43
  172. data/spec/rackspace/models/compute/flavors_spec.rb +0 -18
  173. data/spec/rackspace/models/compute/server_spec.rb +0 -55
  174. data/spec/rackspace/models/compute/servers_spec.rb +0 -22
  175. data/spec/shared_examples/flavors_examples.rb +0 -16
  176. data/spec/shared_examples/server_examples.rb +0 -43
  177. data/spec/shared_examples/servers_examples.rb +0 -37
  178. data/spec/slicehost/models/compute/flavors_spec.rb +0 -18
  179. data/spec/slicehost/models/compute/server_spec.rb +0 -55
  180. 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, :aliases => 'volumeId'
11
+ identity :id, :aliases => 'volumeId'
12
12
 
13
- attribute :attached_at, :aliases => 'attachTime'
14
- attribute :availability_zone, :aliases => 'availabilityZone'
15
- attribute :created_at, :aliases => 'createTime'
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, :aliases => 'instanceId'
18
+ attribute :server_id, :aliases => 'instanceId'
18
19
  attribute :size
19
- attribute :snapshot_id, :aliases => 'snapshotId'
20
- attribute :state, :aliases => 'status'
21
- attribute :tags, :aliases => 'tagSet'
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 :content_length, :aliases => 'Content-Length'
13
- attribute :content_type, :aliases => 'Content-Type'
14
- attribute :etag, :aliases => ['Etag', 'ETag']
15
- attribute :last_modified, :aliases => ['Last-Modified', 'LastModified']
16
- attribute :owner, :aliases => 'Owner'
17
- attribute :size, :aliases => 'Size'
18
- attribute :storage_class, :aliases => 'StorageClass'
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
- options['x-amz-acl'] ||= @acl
85
- end
86
- if content_type
87
- options['Content-Type'] = content_type
88
- end
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
- @etag = data.headers['ETag']
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] << @value
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 CreateGroups < Fog::Parsers::Base
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
@@ -19,7 +19,7 @@ module Fog
19
19
  @group = {}
20
20
  when 'IsTruncated'
21
21
  response[name] = (@value == 'true')
22
- when 'RequestId'
22
+ when 'Marker', 'RequestId'
23
23
  response[name] = @value
24
24
  end
25
25
  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
- # * 'DomainName'<~String>: Domain name of distribution
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