fog 0.3.17 → 0.3.18

Sign up to get free protection for your applications and to get access to all the features.
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