fog 1.40.0 → 1.41.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.
Files changed (188) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +3 -0
  3. data/CHANGELOG.md +30 -0
  4. data/fog.gemspec +6 -4
  5. data/lib/fog/ovirt/compute.rb +2 -0
  6. data/lib/fog/ovirt/models/compute/server.rb +7 -2
  7. data/lib/fog/ovirt/requests/compute/activate_volume.rb +22 -0
  8. data/lib/fog/ovirt/requests/compute/deactivate_volume.rb +22 -0
  9. data/lib/fog/version.rb +1 -1
  10. data/lib/tasks/changelog_task.rb +2 -1
  11. data/tests/compute/helper.rb +0 -3
  12. data/tests/helpers/mock_helper.rb +0 -2
  13. data/tests/storage/helper.rb +0 -3
  14. metadata +49 -224
  15. data/lib/fog/bin/internet_archive.rb +0 -32
  16. data/lib/fog/bin/joyent.rb +0 -33
  17. data/lib/fog/internet_archive.rb +0 -1
  18. data/lib/fog/internet_archive/core.rb +0 -291
  19. data/lib/fog/internet_archive/models/storage/directories.rb +0 -39
  20. data/lib/fog/internet_archive/models/storage/directory.rb +0 -105
  21. data/lib/fog/internet_archive/models/storage/file.rb +0 -254
  22. data/lib/fog/internet_archive/models/storage/files.rb +0 -119
  23. data/lib/fog/internet_archive/models/storage/ia_attributes.rb +0 -36
  24. data/lib/fog/internet_archive/parsers/storage/access_control_list.rb +0 -42
  25. data/lib/fog/internet_archive/parsers/storage/complete_multipart_upload.rb +0 -20
  26. data/lib/fog/internet_archive/parsers/storage/copy_object.rb +0 -18
  27. data/lib/fog/internet_archive/parsers/storage/cors_configuration.rb +0 -38
  28. data/lib/fog/internet_archive/parsers/storage/delete_multiple_objects.rb +0 -45
  29. data/lib/fog/internet_archive/parsers/storage/get_bucket.rb +0 -58
  30. data/lib/fog/internet_archive/parsers/storage/get_bucket_lifecycle.rb +0 -64
  31. data/lib/fog/internet_archive/parsers/storage/get_bucket_location.rb +0 -16
  32. data/lib/fog/internet_archive/parsers/storage/get_bucket_logging.rb +0 -36
  33. data/lib/fog/internet_archive/parsers/storage/get_bucket_website.rb +0 -22
  34. data/lib/fog/internet_archive/parsers/storage/get_request_payment.rb +0 -16
  35. data/lib/fog/internet_archive/parsers/storage/get_service.rb +0 -28
  36. data/lib/fog/internet_archive/parsers/storage/initiate_multipart_upload.rb +0 -20
  37. data/lib/fog/internet_archive/parsers/storage/list_multipart_uploads.rb +0 -52
  38. data/lib/fog/internet_archive/parsers/storage/list_parts.rb +0 -36
  39. data/lib/fog/internet_archive/requests/storage/abort_multipart_upload.rb +0 -27
  40. data/lib/fog/internet_archive/requests/storage/acl_utils.rb +0 -60
  41. data/lib/fog/internet_archive/requests/storage/complete_multipart_upload.rb +0 -46
  42. data/lib/fog/internet_archive/requests/storage/copy_object.rb +0 -77
  43. data/lib/fog/internet_archive/requests/storage/cors_utils.rb +0 -39
  44. data/lib/fog/internet_archive/requests/storage/delete_bucket.rb +0 -42
  45. data/lib/fog/internet_archive/requests/storage/delete_bucket_cors.rb +0 -26
  46. data/lib/fog/internet_archive/requests/storage/delete_bucket_lifecycle.rb +0 -26
  47. data/lib/fog/internet_archive/requests/storage/delete_bucket_policy.rb +0 -26
  48. data/lib/fog/internet_archive/requests/storage/delete_bucket_website.rb +0 -26
  49. data/lib/fog/internet_archive/requests/storage/delete_multiple_objects.rb +0 -88
  50. data/lib/fog/internet_archive/requests/storage/delete_object.rb +0 -46
  51. data/lib/fog/internet_archive/requests/storage/get_bucket.rb +0 -108
  52. data/lib/fog/internet_archive/requests/storage/get_bucket_acl.rb +0 -65
  53. data/lib/fog/internet_archive/requests/storage/get_bucket_cors.rb +0 -61
  54. data/lib/fog/internet_archive/requests/storage/get_bucket_lifecycle.rb +0 -35
  55. data/lib/fog/internet_archive/requests/storage/get_bucket_location.rb +0 -54
  56. data/lib/fog/internet_archive/requests/storage/get_bucket_logging.rb +0 -45
  57. data/lib/fog/internet_archive/requests/storage/get_bucket_policy.rb +0 -31
  58. data/lib/fog/internet_archive/requests/storage/get_bucket_website.rb +0 -38
  59. data/lib/fog/internet_archive/requests/storage/get_object.rb +0 -163
  60. data/lib/fog/internet_archive/requests/storage/get_object_acl.rb +0 -72
  61. data/lib/fog/internet_archive/requests/storage/get_object_http_url.rb +0 -48
  62. data/lib/fog/internet_archive/requests/storage/get_object_https_url.rb +0 -30
  63. data/lib/fog/internet_archive/requests/storage/get_object_torrent.rb +0 -45
  64. data/lib/fog/internet_archive/requests/storage/get_object_url.rb +0 -49
  65. data/lib/fog/internet_archive/requests/storage/get_request_payment.rb +0 -45
  66. data/lib/fog/internet_archive/requests/storage/get_service.rb +0 -50
  67. data/lib/fog/internet_archive/requests/storage/head_object.rb +0 -57
  68. data/lib/fog/internet_archive/requests/storage/initiate_multipart_upload.rb +0 -42
  69. data/lib/fog/internet_archive/requests/storage/list_multipart_uploads.rb +0 -52
  70. data/lib/fog/internet_archive/requests/storage/list_parts.rb +0 -53
  71. data/lib/fog/internet_archive/requests/storage/post_object_hidden_fields.rb +0 -36
  72. data/lib/fog/internet_archive/requests/storage/put_bucket.rb +0 -70
  73. data/lib/fog/internet_archive/requests/storage/put_bucket_acl.rb +0 -69
  74. data/lib/fog/internet_archive/requests/storage/put_bucket_cors.rb +0 -47
  75. data/lib/fog/internet_archive/requests/storage/put_bucket_lifecycle.rb +0 -76
  76. data/lib/fog/internet_archive/requests/storage/put_bucket_logging.rb +0 -79
  77. data/lib/fog/internet_archive/requests/storage/put_bucket_policy.rb +0 -25
  78. data/lib/fog/internet_archive/requests/storage/put_bucket_website.rb +0 -59
  79. data/lib/fog/internet_archive/requests/storage/put_object.rb +0 -94
  80. data/lib/fog/internet_archive/requests/storage/put_object_acl.rb +0 -73
  81. data/lib/fog/internet_archive/requests/storage/put_object_url.rb +0 -43
  82. data/lib/fog/internet_archive/requests/storage/put_request_payment.rb +0 -45
  83. data/lib/fog/internet_archive/requests/storage/sync_clock.rb +0 -24
  84. data/lib/fog/internet_archive/requests/storage/upload_part.rb +0 -39
  85. data/lib/fog/internet_archive/signaturev4.rb +0 -71
  86. data/lib/fog/internet_archive/storage.rb +0 -381
  87. data/lib/fog/joyent.rb +0 -12
  88. data/lib/fog/joyent/analytics.rb +0 -310
  89. data/lib/fog/joyent/compute.rb +0 -272
  90. data/lib/fog/joyent/core.rb +0 -10
  91. data/lib/fog/joyent/errors.rb +0 -91
  92. data/lib/fog/joyent/models/analytics/field.rb +0 -13
  93. data/lib/fog/joyent/models/analytics/fields.rb +0 -24
  94. data/lib/fog/joyent/models/analytics/instrumentation.rb +0 -82
  95. data/lib/fog/joyent/models/analytics/instrumentations.rb +0 -23
  96. data/lib/fog/joyent/models/analytics/joyent_module.rb +0 -13
  97. data/lib/fog/joyent/models/analytics/joyent_modules.rb +0 -24
  98. data/lib/fog/joyent/models/analytics/metric.rb +0 -17
  99. data/lib/fog/joyent/models/analytics/metrics.rb +0 -16
  100. data/lib/fog/joyent/models/analytics/transformation.rb +0 -13
  101. data/lib/fog/joyent/models/analytics/transformations.rb +0 -24
  102. data/lib/fog/joyent/models/analytics/type.rb +0 -16
  103. data/lib/fog/joyent/models/analytics/types.rb +0 -24
  104. data/lib/fog/joyent/models/analytics/value.rb +0 -20
  105. data/lib/fog/joyent/models/compute/datacenter.rb +0 -11
  106. data/lib/fog/joyent/models/compute/datacenters.rb +0 -21
  107. data/lib/fog/joyent/models/compute/flavor.rb +0 -19
  108. data/lib/fog/joyent/models/compute/flavors.rb +0 -21
  109. data/lib/fog/joyent/models/compute/image.rb +0 -26
  110. data/lib/fog/joyent/models/compute/images.rb +0 -30
  111. data/lib/fog/joyent/models/compute/key.rb +0 -19
  112. data/lib/fog/joyent/models/compute/keys.rb +0 -32
  113. data/lib/fog/joyent/models/compute/network.rb +0 -12
  114. data/lib/fog/joyent/models/compute/networks.rb +0 -14
  115. data/lib/fog/joyent/models/compute/server.rb +0 -124
  116. data/lib/fog/joyent/models/compute/servers.rb +0 -35
  117. data/lib/fog/joyent/models/compute/snapshot.rb +0 -44
  118. data/lib/fog/joyent/models/compute/snapshots.rb +0 -35
  119. data/lib/fog/joyent/requests/analytics/create_instrumentation.rb +0 -25
  120. data/lib/fog/joyent/requests/analytics/delete_instrumentation.rb +0 -23
  121. data/lib/fog/joyent/requests/analytics/describe_analytics.rb +0 -26
  122. data/lib/fog/joyent/requests/analytics/get_instrumentation.rb +0 -26
  123. data/lib/fog/joyent/requests/analytics/get_instrumentation_value.rb +0 -30
  124. data/lib/fog/joyent/requests/analytics/list_instrumentations.rb +0 -25
  125. data/lib/fog/joyent/requests/compute/add_machine_tags.rb +0 -19
  126. data/lib/fog/joyent/requests/compute/create_key.rb +0 -54
  127. data/lib/fog/joyent/requests/compute/create_machine.rb +0 -16
  128. data/lib/fog/joyent/requests/compute/create_machine_snapshot.rb +0 -16
  129. data/lib/fog/joyent/requests/compute/delete_all_machine_metadata.rb +0 -16
  130. data/lib/fog/joyent/requests/compute/delete_all_machine_tags.rb +0 -15
  131. data/lib/fog/joyent/requests/compute/delete_key.rb +0 -27
  132. data/lib/fog/joyent/requests/compute/delete_machine.rb +0 -15
  133. data/lib/fog/joyent/requests/compute/delete_machine_metadata.rb +0 -16
  134. data/lib/fog/joyent/requests/compute/delete_machine_snapshot.rb +0 -18
  135. data/lib/fog/joyent/requests/compute/delete_machine_tag.rb +0 -15
  136. data/lib/fog/joyent/requests/compute/get_dataset.rb +0 -27
  137. data/lib/fog/joyent/requests/compute/get_image.rb +0 -28
  138. data/lib/fog/joyent/requests/compute/get_key.rb +0 -29
  139. data/lib/fog/joyent/requests/compute/get_machine.rb +0 -29
  140. data/lib/fog/joyent/requests/compute/get_machine_metadata.rb +0 -24
  141. data/lib/fog/joyent/requests/compute/get_machine_snapshot.rb +0 -15
  142. data/lib/fog/joyent/requests/compute/get_machine_tag.rb +0 -18
  143. data/lib/fog/joyent/requests/compute/get_package.rb +0 -32
  144. data/lib/fog/joyent/requests/compute/list_datacenters.rb +0 -16
  145. data/lib/fog/joyent/requests/compute/list_datasets.rb +0 -24
  146. data/lib/fog/joyent/requests/compute/list_images.rb +0 -25
  147. data/lib/fog/joyent/requests/compute/list_keys.rb +0 -25
  148. data/lib/fog/joyent/requests/compute/list_machine_snapshots.rb +0 -15
  149. data/lib/fog/joyent/requests/compute/list_machine_tags.rb +0 -20
  150. data/lib/fog/joyent/requests/compute/list_machines.rb +0 -26
  151. data/lib/fog/joyent/requests/compute/list_networks.rb +0 -26
  152. data/lib/fog/joyent/requests/compute/list_packages.rb +0 -34
  153. data/lib/fog/joyent/requests/compute/reboot_machine.rb +0 -15
  154. data/lib/fog/joyent/requests/compute/resize_machine.rb +0 -16
  155. data/lib/fog/joyent/requests/compute/start_machine.rb +0 -16
  156. data/lib/fog/joyent/requests/compute/start_machine_from_snapshot.rb +0 -15
  157. data/lib/fog/joyent/requests/compute/stop_machine.rb +0 -16
  158. data/lib/fog/joyent/requests/compute/update_machine_metadata.rb +0 -15
  159. data/spec/fog/bin/internetarchive_spec.rb +0 -10
  160. data/tests/internet_archive/models/storage/directory_tests.rb +0 -42
  161. data/tests/internet_archive/models/storage/file_tests.rb +0 -61
  162. data/tests/internet_archive/models/storage/files_tests.rb +0 -58
  163. data/tests/internet_archive/models/storage/url_tests.rb +0 -28
  164. data/tests/internet_archive/requests/storage/acl_utils_tests.rb +0 -209
  165. data/tests/internet_archive/requests/storage/bucket_tests.rb +0 -324
  166. data/tests/internet_archive/requests/storage/cors_utils_tests.rb +0 -108
  167. data/tests/internet_archive/requests/storage/multipart_upload_tests.rb +0 -132
  168. data/tests/internet_archive/requests/storage/object_tests.rb +0 -166
  169. data/tests/internet_archive/signaturev4_tests.rb +0 -41
  170. data/tests/internet_archive/signed_params_tests.rb +0 -5
  171. data/tests/joyent/models/analytics/field_tests.rb +0 -10
  172. data/tests/joyent/models/analytics/fields_tests.rb +0 -13
  173. data/tests/joyent/models/analytics/instrumentation_tests.rb +0 -13
  174. data/tests/joyent/models/analytics/instrumentations_tests.rb +0 -3
  175. data/tests/joyent/models/analytics/joyent_module_tests.rb +0 -10
  176. data/tests/joyent/models/analytics/joyent_modules_tests.rb +0 -13
  177. data/tests/joyent/models/analytics/metric_tests.rb +0 -10
  178. data/tests/joyent/models/analytics/metrics_tests.rb +0 -20
  179. data/tests/joyent/models/analytics/transformation_tests.rb +0 -10
  180. data/tests/joyent/models/analytics/transformations_tests.rb +0 -13
  181. data/tests/joyent/models/analytics/type_tests.rb +0 -10
  182. data/tests/joyent/models/analytics/types_tests.rb +0 -13
  183. data/tests/joyent/requests/analytics/instrumentation_tests.rb +0 -44
  184. data/tests/joyent/requests/compute/datasets_tests.rb +0 -58
  185. data/tests/joyent/requests/compute/keys_tests.rb +0 -47
  186. data/tests/joyent/requests/compute/machines_tests.rb +0 -66
  187. data/tests/joyent/requests/compute/networks_tests.rb +0 -39
  188. data/tests/joyent/requests/compute/packages_tests.rb +0 -68
@@ -1,47 +0,0 @@
1
- module Fog
2
- module Storage
3
- class InternetArchive
4
- class Real
5
- require 'fog/internet_archive/requests/storage/cors_utils'
6
-
7
- # Sets the cors configuration for your bucket. If the configuration exists, Amazon S3 replaces it.
8
- #
9
- # @param bucket_name [String] name of bucket to modify
10
- # @param cors [Hash]
11
- # * CORSConfiguration [Array]:
12
- # * ID [String]: A unique identifier for the rule.
13
- # * AllowedMethod [String]: An HTTP method that you want to allow the origin to execute.
14
- # * AllowedOrigin [String]: An origin that you want to allow cross-domain requests from.
15
- # * AllowedHeader [String]: Specifies which headers are allowed in a pre-flight OPTIONS request via the Access-Control-Request-Headers header.
16
- # * MaxAgeSeconds [String]: The time in seconds that your browser is to cache the preflight response for the specified resource.
17
- # * ExposeHeader [String]: One or more headers in the response that you want customers to be able to access from their applications.
18
- #
19
- # @see http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketPUTcors.html
20
-
21
- def put_bucket_cors(bucket_name, cors)
22
- data = Fog::Storage::InternetArchive.hash_to_cors(cors)
23
-
24
- headers = {}
25
- headers['Content-MD5'] = Base64.encode64(Digest::MD5.digest(data)).strip
26
- headers['Content-Type'] = 'application/json'
27
- headers['Date'] = Fog::Time.now.to_date_header
28
-
29
- request({
30
- :body => data,
31
- :expects => 200,
32
- :headers => headers,
33
- :host => "#{bucket_name}.#{@host}",
34
- :method => 'PUT',
35
- :query => {'cors' => nil}
36
- })
37
- end
38
- end
39
-
40
- class Mock
41
- def put_bucket_cors(bucket_name, cors)
42
- self.data[:cors][:bucket][bucket_name] = Fog::Storage::InternetArchive.hash_to_cors(cors)
43
- end
44
- end
45
- end
46
- end
47
- end
@@ -1,76 +0,0 @@
1
- module Fog
2
- module Storage
3
- class InternetArchive
4
- class Real
5
- # Change lifecycle configuration for an S3 bucket
6
- #
7
- # @param bucket_name [String] name of bucket to set lifecycle configuration for
8
- # * lifecycle [Hash]:
9
- # * Rules [Array] object expire rules
10
- # * ID [String] Unique identifier for the rule
11
- # * Prefix [String] Prefix identifying one or more objects to which the rule applies
12
- # * Enabled [Boolean] if rule is currently being applied
13
- # * Expiration [Hash] Container for the object expiration rule.
14
- # * Days [Integer] lifetime, in days, of the objects that are subject to the rule
15
- # * Date [Date] Indicates when the specific rule take effect.
16
- # The date value must conform to the ISO 8601 format. The time is always midnight UTC.
17
- # * Transition [Hash] Container for the transition rule that describes when objects transition
18
- # to the Glacier storage class
19
- # * Days [Integer] lifetime, in days, of the objects that are subject to the rule
20
- # * Date [Date] Indicates when the specific rule take effect.
21
- # The date value must conform to the ISO 8601 format. The time is always midnight UTC.
22
- # * StorageClass [String] Indicates the Amazon S3 storage class to which you want the object
23
- # to transition to.
24
- #
25
- #
26
- # @see http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketPUTlifecycle.html
27
- #
28
- def put_bucket_lifecycle(bucket_name, lifecycle)
29
- builder = Nokogiri::XML::Builder.new do
30
- LifecycleConfiguration {
31
- lifecycle['Rules'].each do |rule|
32
- Rule {
33
- ID rule['ID']
34
- Prefix rule['Prefix']
35
- Status rule['Enabled'] ? 'Enabled' : 'Disabled'
36
- unless (rule['Expiration'] or rule['Transition'])
37
- Expiration { Days rule['Days'] }
38
- else
39
- if rule['Expiration']
40
- if rule['Expiration']['Days']
41
- Expiration { Days rule['Expiration']['Days'] }
42
- elsif rule['Expiration']['Date']
43
- Expiration { Date rule['Expiration']['Date'].is_a?(Time) ? rule['Expiration']['Date'].utc.iso8601 : Time.parse(rule['Expiration']['Date']).utc.iso8601 }
44
- end
45
- end
46
- if rule['Transition']
47
- Transition {
48
- if rule['Transition']['Days']
49
- Days rule['Transition']['Days']
50
- elsif rule['Transition']['Date']
51
- Date rule['Transition']['Date'].is_a?(Time) ? time.utc.iso8601 : Time.parse(time).utc.iso8601
52
- end
53
- StorageClass rule['Transition']['StorageClass'].nil? ? 'GLACIER' : rule['Transition']['StorageClass']
54
- }
55
- end
56
- end
57
- }
58
- end
59
- }
60
- end
61
- body = builder.to_xml
62
- body.gsub! /<([^<>]+)\/>/, '<\1></\1>'
63
- request({
64
- :body => body,
65
- :expects => 200,
66
- :headers => {'Content-MD5' => Base64.encode64(Digest::MD5.digest(body)).chomp!,
67
- 'Content-Type' => 'application/xml'},
68
- :host => "#{bucket_name}.#{@host}",
69
- :method => 'PUT',
70
- :query => {'lifecycle' => nil}
71
- })
72
- end
73
- end
74
- end
75
- end
76
- end
@@ -1,79 +0,0 @@
1
- module Fog
2
- module Storage
3
- class InternetArchive
4
- class Real
5
- # Change logging status for an S3 bucket
6
- #
7
- # @param bucket_name [String] name of bucket to modify
8
- # @param logging_status [Hash]:
9
- # * Owner [Hash]:
10
- # * ID [String]: id of owner
11
- # * DisplayName [String]: display name of owner
12
- # * AccessControlList [Array]:
13
- # * Grantee [Hash]:
14
- # * DisplayName [String] Display name of grantee
15
- # * ID [String] Id of grantee
16
- # or
17
- # * EmailAddress [String] Email address of grantee
18
- # or
19
- # * URI [String] URI of group to grant access for
20
- # * Permission [String] Permission, in [FULL_CONTROL, WRITE, WRITE_ACP, READ, READ_ACP]
21
- #
22
- # @see http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketPUTlogging.html
23
-
24
- def put_bucket_logging(bucket_name, logging_status)
25
- if logging_status['LoggingEnabled'].empty?
26
- data =
27
- <<-DATA
28
- <BucketLoggingStatus xmlns="http://doc.s3.amazonaws.com/2006-03-01" />
29
- DATA
30
- else
31
- data =
32
- <<-DATA
33
- <BucketLoggingStatus xmlns="http://doc.s3.amazonaws.com/2006-03-01">
34
- <LoggingEnabled>
35
- <TargetBucket>#{logging_status['LoggingEnabled']['TargetBucket']}</TargetBucket>
36
- <TargetPrefix>#{logging_status['LoggingEnabled']['TargetBucket']}</TargetPrefix>
37
- <TargetGrants>
38
- DATA
39
-
40
- acl['AccessControlList'].each do |grant|
41
- data << " <Grant>"
42
- type = case grant['Grantee'].keys.sort
43
- when ['DisplayName', 'ID']
44
- 'CanonicalUser'
45
- when ['EmailAddress']
46
- 'AmazonCustomerByEmail'
47
- when ['URI']
48
- 'Group'
49
- end
50
- data << " <Grantee xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:type=\"#{type}\">"
51
- for key, value in grant['Grantee']
52
- data << " <#{key}>#{value}</#{key}>"
53
- end
54
- data << " </Grantee>"
55
- data << " <Permission>#{grant['Permission']}</Permission>"
56
- data << " </Grant>"
57
- end
58
-
59
- data <<
60
- <<-DATA
61
- </TargetGrants>
62
- </LoggingEnabled>
63
- </BucketLoggingStatus>
64
- DATA
65
- end
66
-
67
- request({
68
- :body => data,
69
- :expects => 200,
70
- :headers => {},
71
- :host => "#{bucket_name}.#{@host}",
72
- :method => 'PUT',
73
- :query => {'logging' => nil}
74
- })
75
- end
76
- end
77
- end
78
- end
79
- end
@@ -1,25 +0,0 @@
1
- module Fog
2
- module Storage
3
- class InternetArchive
4
- class Real
5
- # Change bucket policy for an S3 bucket
6
- #
7
- # @param bucket_name [String] name of bucket to modify
8
- # @param policy [Hash] policy document
9
- #
10
- # @see http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketPUTpolicy.html
11
-
12
- def put_bucket_policy(bucket_name, policy)
13
- request({
14
- :body => Fog::JSON.encode(policy),
15
- :expects => 204,
16
- :headers => {},
17
- :host => "#{bucket_name}.#{@host}",
18
- :method => 'PUT',
19
- :query => {'policy' => nil}
20
- })
21
- end
22
- end
23
- end
24
- end
25
- end
@@ -1,59 +0,0 @@
1
- module Fog
2
- module Storage
3
- class InternetArchive
4
- class Real
5
- # Change website configuration for an S3 bucket
6
- #
7
- # @param bucket_name [String] name of bucket to modify
8
- # @param suffix [String] suffix to append to requests for the bucket
9
- # @param options [Hash]
10
- # @option options key [String] key to use for 4XX class errors
11
- #
12
- # @see http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketPUTwebsite.html
13
-
14
- def put_bucket_website(bucket_name, suffix, options = {})
15
- data =
16
- <<-DATA
17
- <WebsiteConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
18
- <IndexDocument>
19
- <Suffix>#{suffix}</Suffix>
20
- </IndexDocument>
21
- DATA
22
-
23
- if options[:key]
24
- data <<
25
- <<-DATA
26
- <ErrorDocument>
27
- <Key>#{options[:key]}</Key>
28
- </ErrorDocument>
29
- DATA
30
- end
31
-
32
- data << '</WebsiteConfiguration>'
33
- request({
34
- :body => data,
35
- :expects => 200,
36
- :headers => {},
37
- :host => "#{bucket_name}.#{@host}",
38
- :method => 'PUT',
39
- :query => {'website' => nil}
40
- })
41
- end
42
- end
43
-
44
- class Mock # :nodoc:all
45
- def put_bucket_website(bucket_name, suffix, options = {})
46
- response = Excon::Response.new
47
- if self.data[:buckets][bucket_name]
48
- response.status = 200
49
- else
50
- response.status = 404
51
- raise(Excon::Errors.status_error({:expects => 200}, response))
52
- end
53
-
54
- response
55
- end
56
- end
57
- end
58
- end
59
- end
@@ -1,94 +0,0 @@
1
- module Fog
2
- module Storage
3
- class InternetArchive
4
- class Real
5
- # Create an object in an S3 bucket
6
- #
7
- # @param bucket_name [String] Name of bucket to create object in
8
- # @param object_name [String] Name of object to create
9
- # @param data [File||String] File or String to create object from
10
- # @param options [Hash]
11
- # @option options Cache-Control [String] Caching behaviour
12
- # @option options Content-Disposition [String] Presentational information for the object
13
- # @option options Content-Encoding [String] Encoding of object data
14
- # @option options Content-Length [String] Size of object in bytes (defaults to object.read.length)
15
- # @option options Content-MD5 [String] Base64 encoded 128-bit MD5 digest of message
16
- # @option options Content-Type [String] Standard MIME type describing contents (defaults to MIME::Types.of.first)
17
- # @option options Expires [String] Cache expiry
18
- # @option options x-amz-acl [String] Permissions, must be in ['private', 'public-read', 'public-read-write', 'authenticated-read']
19
- # @option options x-amz-storage-class [String] Default is 'STANDARD', set to 'REDUCED_REDUNDANCY' for non-critical, reproducable data
20
- # @option options x-amz-meta-#{name} Headers to be returned with object, note total size of request without body must be less than 8 KB.
21
- #
22
- # @return [Excon::Response] response:
23
- # * headers [Hash]:
24
- # * ETag [String] etag of new object
25
- #
26
- # @see http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTObjectPUT.html
27
-
28
- def put_object(bucket_name, object_name, data, options = {})
29
- data = Fog::Storage.parse_data(data)
30
- headers = data[:headers].merge!(options)
31
- request({
32
- :body => data[:body],
33
- :expects => 200,
34
- :headers => headers,
35
- :host => "#{bucket_name}.#{@host}",
36
- :idempotent => true,
37
- :method => 'PUT',
38
- :path => CGI.escape(object_name)
39
- })
40
- end
41
- end
42
-
43
- class Mock # :nodoc:all
44
- def put_object(bucket_name, object_name, data, options = {})
45
- acl = options['x-amz-acl'] || 'private'
46
- if !['private', 'public-read', 'public-read-write', 'authenticated-read'].include?(acl)
47
- raise Excon::Errors::BadRequest.new('invalid x-amz-acl')
48
- else
49
- self.data[:acls][:object][bucket_name] ||= {}
50
- self.data[:acls][:object][bucket_name][object_name] = self.class.acls(acl)
51
- end
52
-
53
- data = Fog::Storage.parse_data(data)
54
- unless data[:body].is_a?(String)
55
- data[:body] = data[:body].read
56
- end
57
- response = Excon::Response.new
58
- if (bucket = self.data[:buckets][bucket_name])
59
- response.status = 200
60
- object = {
61
- :body => data[:body],
62
- 'Content-Type' => options['Content-Type'] || data[:headers]['Content-Type'],
63
- 'ETag' => Digest::MD5.hexdigest(data[:body]),
64
- 'Key' => object_name,
65
- 'Last-Modified' => Fog::Time.now.to_date_header,
66
- 'Content-Length' => options['Content-Length'] || data[:headers]['Content-Length'],
67
- }
68
-
69
- for key, value in options
70
- case key
71
- when 'Cache-Control', 'Content-Disposition', 'Content-Encoding', 'Content-MD5', 'Expires', /^x-amz-meta-/, /^x-archive-/
72
- object[key] = value
73
- end
74
- end
75
-
76
- bucket[:objects][object_name] = [object]
77
-
78
- response.headers = {
79
- 'Content-Length' => object['Content-Length'],
80
- 'Content-Type' => object['Content-Type'],
81
- 'ETag' => object['ETag'],
82
- 'Last-Modified' => object['Last-Modified'],
83
- }
84
-
85
- else
86
- response.status = 404
87
- raise(Excon::Errors.status_error({:expects => 200}, response))
88
- end
89
- response
90
- end
91
- end
92
- end
93
- end
94
- end
@@ -1,73 +0,0 @@
1
- module Fog
2
- module Storage
3
- class InternetArchive
4
- class Real
5
- require 'fog/internet_archive/requests/storage/acl_utils'
6
-
7
- # Change access control list for an S3 object
8
- #
9
- # @param bucket_name [String] name of bucket to modify
10
- # @param object_name [String] name of object to get access control list for
11
- # @param acl [Hash]:
12
- # * Owner [Hash]
13
- # * ID [String] id of owner
14
- # * DisplayName [String] display name of owner
15
- # * AccessControlList [Array]
16
- # * Grantee [Hash]
17
- # * DisplayName [String] Display name of grantee
18
- # * ID [String] Id of grantee
19
- # or
20
- # * EmailAddress [String] Email address of grantee
21
- # or
22
- # * URI [String] URI of group to grant access for
23
- # * Permission [String] Permission, in [FULL_CONTROL, WRITE, WRITE_ACP, READ, READ_ACP]
24
- # @param acl [String] Permissions, must be in ['private', 'public-read', 'public-read-write', 'authenticated-read']
25
- # @param options [Hash]
26
- #
27
- # @see http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTObjectPUTacl.html
28
-
29
- def put_object_acl(bucket_name, object_name, acl, options = {})
30
- query = {'acl' => nil}
31
- data = ""
32
- headers = {}
33
-
34
- if acl.is_a?(Hash)
35
- data = Fog::Storage::InternetArchive.hash_to_acl(acl)
36
- else
37
- if !['private', 'public-read', 'public-read-write', 'authenticated-read'].include?(acl)
38
- raise Excon::Errors::BadRequest.new('invalid x-amz-acl')
39
- end
40
- headers['x-amz-acl'] = acl
41
- end
42
-
43
- headers['Content-MD5'] = Base64.encode64(Digest::MD5.digest(data)).strip
44
- headers['Content-Type'] = 'application/json'
45
- headers['Date'] = Fog::Time.now.to_date_header
46
-
47
- request({
48
- :body => data,
49
- :expects => 200,
50
- :headers => headers,
51
- :host => "#{bucket_name}.#{@host}",
52
- :method => 'PUT',
53
- :path => CGI.escape(object_name),
54
- :query => query
55
- })
56
- end
57
- end
58
-
59
- class Mock
60
- def put_object_acl(bucket_name, object_name, acl, options = {})
61
- if acl.is_a?(Hash)
62
- self.data[:acls][:object][bucket_name][object_name] = Fog::Storage::InternetArchive.hash_to_acl(acl)
63
- else
64
- if !['private', 'public-read', 'public-read-write', 'authenticated-read'].include?(acl)
65
- raise Excon::Errors::BadRequest.new('invalid x-amz-acl')
66
- end
67
- self.data[:acls][:object][bucket_name][object_name] = acl
68
- end
69
- end
70
- end
71
- end
72
- end
73
- end