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,38 +0,0 @@
1
- module Fog
2
- module Storage
3
- class InternetArchive
4
- class Real
5
- require 'fog/internet_archive/parsers/storage/get_bucket_website'
6
-
7
- # Get website configuration for an S3 bucket
8
- #
9
- #
10
- # @param bucket_name [String] name of bucket to get website configuration for
11
- #
12
- # @return [Excon::Response] response:
13
- # * body [Hash]:
14
- # * IndexDocument [Hash]:
15
- # * Suffix [String] - Suffix appended when directory is requested
16
- # * ErrorDocument [Hash]:
17
- # * Key [String] - Object key to return for 4XX class errors
18
- #
19
- # @see http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketGETwebsite.html
20
-
21
- def get_bucket_website(bucket_name)
22
- unless bucket_name
23
- raise ArgumentError.new('bucket_name is required')
24
- end
25
- request({
26
- :expects => 200,
27
- :headers => {},
28
- :host => "#{bucket_name}.#{@host}",
29
- :idempotent => true,
30
- :method => 'GET',
31
- :parser => Fog::Parsers::Storage::InternetArchive::GetBucketWebsite.new,
32
- :query => {'website' => nil}
33
- })
34
- end
35
- end
36
- end
37
- end
38
- end
@@ -1,163 +0,0 @@
1
- module Fog
2
- module Storage
3
- class InternetArchive
4
- class Real
5
- # Get an object from S3
6
- #
7
- # @param bucket_name [String] Name of bucket to read from
8
- # @param object_name [String] Name of object to read
9
- # @param options [Hash]
10
- # @option options If-Match [String] Returns object only if its etag matches this value, otherwise returns 412 (Precondition Failed).
11
- # @option options If-Modified-Since [Time] Returns object only if it has been modified since this time, otherwise returns 304 (Not Modified).
12
- # @option options If-None-Match [String] Returns object only if its etag differs from this value, otherwise returns 304 (Not Modified)
13
- # @option options If-Unmodified-Since [Time] Returns object only if it has not been modified since this time, otherwise returns 412 (Precodition Failed).
14
- # @option options Range [String] Range of object to download
15
- #
16
- # @return [Excon::Response] response:
17
- # * body [String]- Contents of object
18
- # * headers [Hash]:
19
- # * Content-Length [String] - Size of object contents
20
- # * Content-Type [String] - MIME type of object
21
- # * ETag [String] - Etag of object
22
- # * Last-Modified [String] - Last modified timestamp for object
23
- #
24
- # @see http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTObjectGET.html
25
-
26
- def get_object(bucket_name, object_name, options = {}, &block)
27
- unless bucket_name
28
- raise ArgumentError.new('bucket_name is required')
29
- end
30
- unless object_name
31
- raise ArgumentError.new('object_name is required')
32
- end
33
-
34
- params = { :headers => {} }
35
- params[:headers].merge!(options)
36
- if options['If-Modified-Since']
37
- params[:headers]['If-Modified-Since'] = Fog::Time.at(options['If-Modified-Since'].to_i).to_date_header
38
- end
39
- if options['If-Unmodified-Since']
40
- params[:headers]['If-Unmodified-Since'] = Fog::Time.at(options['If-Unmodified-Since'].to_i).to_date_header
41
- end
42
-
43
- if block_given?
44
- params[:response_block] = Proc.new
45
- end
46
-
47
- request(params.merge!({
48
- :expects => [ 200, 206 ],
49
- :host => "#{bucket_name}.#{@host}",
50
- :idempotent => true,
51
- :method => 'GET',
52
- :path => CGI.escape(object_name),
53
- }))
54
- end
55
- end
56
-
57
- class Mock # :nodoc:all
58
- def get_object(bucket_name, object_name, options = {}, &block)
59
- unless bucket_name
60
- raise ArgumentError.new('bucket_name is required')
61
- end
62
-
63
- unless object_name
64
- raise ArgumentError.new('object_name is required')
65
- end
66
-
67
- response = Excon::Response.new
68
- if (bucket = self.data[:buckets][bucket_name])
69
- object = nil
70
- if bucket[:objects].key?(object_name)
71
- object = bucket[:objects][object_name].first
72
- end
73
-
74
- if (object && !object[:delete_marker])
75
- if options['If-Match'] && options['If-Match'] != object['ETag']
76
- response.status = 412
77
- elsif options['If-Modified-Since'] && options['If-Modified-Since'] >= Time.parse(object['Last-Modified'])
78
- response.status = 304
79
- elsif options['If-None-Match'] && options['If-None-Match'] == object['ETag']
80
- response.status = 304
81
- elsif options['If-Unmodified-Since'] && options['If-Unmodified-Since'] < Time.parse(object['Last-Modified'])
82
- response.status = 412
83
- else
84
- response.status = 200
85
- for key, value in object
86
- case key
87
- when 'Cache-Control', 'Content-Disposition', 'Content-Encoding', 'Content-Length', 'Content-MD5', 'Content-Type', 'ETag', 'Expires', 'Last-Modified', /^x-amz-meta-/
88
- response.headers[key] = value
89
- end
90
- end
91
-
92
- body = object[:body]
93
- if options['Range']
94
- # since AWS S3 itself does not support multiple range headers, we will use only the first
95
- ranges = byte_ranges(options['Range'], body.size)
96
- unless ranges.nil? || ranges.empty?
97
- response.status = 206
98
- body = body[ranges.first]
99
- end
100
- end
101
-
102
- unless block_given?
103
- response.body = body
104
- else
105
- data = StringIO.new(body)
106
- remaining = data.length
107
- while remaining > 0
108
- chunk = data.read([remaining, Excon::CHUNK_SIZE].min)
109
- block.call(chunk)
110
- remaining -= Excon::CHUNK_SIZE
111
- end
112
- end
113
- end
114
- else
115
- response.status = 404
116
- response.body = "...<Code>NoSuchKey<\/Code>..."
117
- raise(Excon::Errors.status_error({:expects => 200}, response))
118
- end
119
- else
120
- response.status = 404
121
- response.body = "...<Code>NoSuchBucket</Code>..."
122
- raise(Excon::Errors.status_error({:expects => 200}, response))
123
- end
124
- response
125
- end
126
-
127
- private
128
-
129
- # === Borrowed from rack
130
- # Parses the "Range:" header, if present, into an array of Range objects.
131
- # Returns nil if the header is missing or syntactically invalid.
132
- # Returns an empty array if none of the ranges are satisfiable.
133
- def byte_ranges(http_range, size)
134
- # See <http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.35>
135
- return nil unless http_range
136
- ranges = []
137
- http_range.split(/,\s*/).each do |range_spec|
138
- matches = range_spec.match(/bytes=(\d*)-(\d*)/)
139
- return nil unless matches
140
- r0,r1 = matches[1], matches[2]
141
- if r0.empty?
142
- return nil if r1.empty?
143
- # suffix-byte-range-spec, represents trailing suffix of file
144
- r0 = [size - r1.to_i, 0].max
145
- r1 = size - 1
146
- else
147
- r0 = r0.to_i
148
- if r1.empty?
149
- r1 = size - 1
150
- else
151
- r1 = r1.to_i
152
- return nil if r1 < r0 # backwards range is syntactically invalid
153
- r1 = size-1 if r1 >= size
154
- end
155
- end
156
- ranges << (r0..r1) if r0 <= r1
157
- end
158
- ranges
159
- end
160
- end
161
- end
162
- end
163
- end
@@ -1,72 +0,0 @@
1
- module Fog
2
- module Storage
3
- class InternetArchive
4
- class Real
5
- require 'fog/internet_archive/parsers/storage/access_control_list'
6
-
7
- # Get access control list for an S3 object
8
- #
9
- # @param bucket_name [String] name of bucket containing object
10
- # @param object_name [String] name of object to get access control list for
11
- # @param options [Hash]
12
- #
13
- # @return [Excon::Response] response:
14
- # * body [Hash]:
15
- # * [AccessControlPolicy [Hash]:
16
- # * Owner [Hash]:
17
- # * DisplayName [String] - Display name of object owner
18
- # * ID [String] - Id of object owner
19
- # * AccessControlList [Array]:
20
- # * Grant [Hash]:
21
- # * Grantee [Hash]:
22
- # * DisplayName [String] - Display name of grantee
23
- # * ID [String] - Id of grantee
24
- # or
25
- # * URI [String] - URI of group to grant access for
26
- # * Permission [String] - Permission, in [FULL_CONTROL, WRITE, WRITE_ACP, READ, READ_ACP]
27
- #
28
- # @see http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTObjectGETacl.html
29
-
30
- def get_object_acl(bucket_name, object_name, options = {})
31
- unless bucket_name
32
- raise ArgumentError.new('bucket_name is required')
33
- end
34
- unless object_name
35
- raise ArgumentError.new('object_name is required')
36
- end
37
- query = {'acl' => nil}
38
- request({
39
- :expects => 200,
40
- :headers => {},
41
- :host => "#{bucket_name}.#{@host}",
42
- :idempotent => true,
43
- :method => 'GET',
44
- :parser => Fog::Parsers::Storage::InternetArchive::AccessControlList.new,
45
- :path => CGI.escape(object_name),
46
- :query => query
47
- })
48
- end
49
- end
50
-
51
- class Mock # :nodoc:all
52
- require 'fog/internet_archive/requests/storage/acl_utils'
53
-
54
- def get_object_acl(bucket_name, object_name, options = {})
55
- response = Excon::Response.new
56
- if acl = self.data[:acls][:object][bucket_name] && self.data[:acls][:object][bucket_name][object_name]
57
- response.status = 200
58
- if acl.is_a?(String)
59
- response.body = Fog::Storage::InternetArchive.acl_to_hash(acl)
60
- else
61
- response.body = acl
62
- end
63
- else
64
- response.status = 404
65
- raise(Excon::Errors.status_error({:expects => 200}, response))
66
- end
67
- response
68
- end
69
- end
70
- end
71
- end
72
- end
@@ -1,48 +0,0 @@
1
- module Fog
2
- module Storage
3
- class InternetArchive
4
- module GetObjectHttpUrl
5
- def get_object_http_url(bucket_name, object_name, expires, options = {})
6
- unless bucket_name
7
- raise ArgumentError.new('bucket_name is required')
8
- end
9
- unless object_name
10
- raise ArgumentError.new('object_name is required')
11
- end
12
- host, path = if bucket_name =~ /^(?:[a-z]|\d(?!\d{0,2}(?:\.\d{1,3}){3}$))(?:[a-z0-9]|\.(?![\.\-])|\-(?![\.])){1,61}[a-z0-9]$/
13
- ["#{bucket_name}.#{@host}", object_name]
14
- else
15
- [@host, "#{bucket_name}/#{object_name}"]
16
- end
17
- http_url({
18
- :headers => {},
19
- :host => host,
20
- :port => @port,
21
- :method => 'GET',
22
- :path => path,
23
- :query => options[:query]
24
- }, expires)
25
- end
26
- end
27
-
28
- class Real
29
- # Get an expiring object http url from S3
30
- #
31
- # @param bucket_name [String] Name of bucket containing object
32
- # @param object_name [String] Name of object to get expiring url for
33
- # @param expires [Time] An expiry time for this url
34
- #
35
- # @return [Excon::Response] response:
36
- # * body [String] - url for object
37
- #
38
- # @see http://docs.amazonwebservices.com/AmazonS3/latest/dev/S3_QSAuth.html
39
-
40
- include GetObjectHttpUrl
41
- end
42
-
43
- class Mock # :nodoc:all
44
- include GetObjectHttpUrl
45
- end
46
- end
47
- end
48
- end
@@ -1,30 +0,0 @@
1
- module Fog
2
- module Storage
3
- class InternetArchive
4
- module GetObjectHttpsUrl
5
- def get_object_https_url(bucket_name, object_name, expires, options = {})
6
- get_object_url(bucket_name, object_name, expires, options.merge(:scheme => 'https'))
7
- end
8
- end
9
-
10
- class Real
11
- # Get an expiring object https url from S3
12
- #
13
- # @param bucket_name [String] Name of bucket containing object
14
- # @param object_name [String] Name of object to get expiring url for
15
- # @param expires [Time] An expiry time for this url
16
- #
17
- # @return [Excon::Response] response:
18
- # * body [String] - url for object
19
- #
20
- # @see http://docs.amazonwebservices.com/AmazonS3/latest/dev/S3_QSAuth.html
21
-
22
- include GetObjectHttpsUrl
23
- end
24
-
25
- class Mock # :nodoc:all
26
- include GetObjectHttpsUrl
27
- end
28
- end
29
- end
30
- end
@@ -1,45 +0,0 @@
1
- module Fog
2
- module Storage
3
- class InternetArchive
4
- class Real
5
- # Get torrent for an S3 object
6
- #
7
- # @param bucket_name [String] name of bucket containing object
8
- # @param object_name [String] name of object to get torrent for
9
- #
10
- # @return [Excon::Response] response:
11
- # * body [Hash]:
12
- # * AccessControlPolicy [Hash:
13
- # * Owner [Hash]:
14
- # * DisplayName [String] - Display name of object owner
15
- # * ID [String] - Id of object owner
16
- # * AccessControlList [Array]:
17
- # * Grant [Hash]:
18
- # * Grantee [Hash]:
19
- # * DisplayName [String] - Display name of grantee
20
- # * ID [String] - Id of grantee
21
- # * Permission [String] - Permission, in [FULL_CONTROL, WRITE, WRITE_ACP, READ, READ_ACP]
22
- #
23
- # @see http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTObjectGETtorrent.html
24
-
25
- def get_object_torrent(bucket_name, object_name)
26
- unless bucket_name
27
- raise ArgumentError.new('bucket_name is required')
28
- end
29
- unless object_name
30
- raise ArgumentError.new('object_name is required')
31
- end
32
- request({
33
- :expects => 200,
34
- :headers => {},
35
- :host => "#{bucket_name}.#{@host}",
36
- :idempotent => true,
37
- :method => 'GET',
38
- :path => CGI.escape(object_name),
39
- :query => {'torrent' => nil}
40
- })
41
- end
42
- end
43
- end
44
- end
45
- end
@@ -1,49 +0,0 @@
1
- module Fog
2
- module Storage
3
- class InternetArchive
4
- module GetObjectUrl
5
- def get_object_url(bucket_name, object_name, expires, options = {})
6
- unless bucket_name
7
- raise ArgumentError.new('bucket_name is required')
8
- end
9
- unless object_name
10
- raise ArgumentError.new('object_name is required')
11
- end
12
- host, path = if bucket_name =~ Fog::InternetArchive::COMPLIANT_BUCKET_NAMES
13
- ["#{bucket_name}.#{@host}", object_name]
14
- else
15
- [@host, "#{bucket_name}/#{object_name}"]
16
- end
17
- scheme_host_path_query({
18
- :scheme => options[:scheme],
19
- :headers => {},
20
- :host => host,
21
- :port => @port,
22
- :method => 'GET',
23
- :path => path,
24
- :query => options[:query]
25
- }, expires)
26
- end
27
- end
28
-
29
- class Real
30
- # Get an expiring object url from S3
31
- #
32
- # @param bucket_name [String] Name of bucket containing object
33
- # @param object_name [String] Name of object to get expiring url for
34
- # @param expires [Time] An expiry time for this url
35
- #
36
- # @return [Excon::Response] response:
37
- # * body [String] - url for object
38
- #
39
- # @see http://docs.amazonwebservices.com/AmazonS3/latest/dev/S3_QSAuth.html
40
-
41
- include GetObjectUrl
42
- end
43
-
44
- class Mock # :nodoc:all
45
- include GetObjectUrl
46
- end
47
- end
48
- end
49
- end