Feature #8945
closedrgw: support swift /info api
100%
Updated by Luis Pabon over 9 years ago
- % Done changed from 0 to 20
After spending some time on this call, I am going to have to break it down to smaller tasks. I am currently investigating what /info provides to clients and what are the expected values.
Updated by Ian Colle over 9 years ago
- Target version changed from v0.85 to v0.86
Updated by Luis Pabon over 9 years ago
Here is a sample output retrieved from OpenStack Swift:
{ "bulk_delete": { "max_failed_deletes": 1000, "max_deletes_per_request": 10000 }, "container_quotas": {}, "crossdomain": {}, "swift": { "max_file_size": 5368709122, "account_listing_limit": 10000, "max_meta_count": 90, "max_meta_value_length": 256, "container_listing_limit": 10000, "max_meta_overall_size": 4096, "version": "2.0.0.124.gac22c5e", "max_meta_name_length": 128, "max_header_size": 8192, "policies": [ { "default": true, "name": "gold" }, { "name": "silver" } ], "max_object_name_length": 1024, "max_account_name_length": 256, "strict_cors_mode": true, "max_container_name_length": 256 }, "tempurl": { "methods": [ "GET", "HEAD", "PUT", "POST", "DELETE" ] }, "bulk_upload": { "max_failed_extractions": 1000, "max_containers_per_extraction": 10000 }, "ratelimit": { "account_ratelimit": 0, "max_sleep_time_seconds": 60, "container_ratelimits": [], "container_listing_ratelimits": [] }, "slo": { "max_manifest_segments": 1000, "min_segment_size": 1048576, "max_manifest_size": 2097152 }, "account_quotas": {}, "staticweb": {}, "tempauth": { "account_acls": true } }
Updated by Luis Pabon over 9 years ago
After some investigation it seems there is no real standard because OpenStack Swift is not an API. Therefore, client developers must be very careful when using this the /info api. They must first get an entire JSON packet returned, then determine which strings correspond to the features they are looking for.
Here is the way OpenStack Swift builds the data:
1. The first key in the JSON packet is created by the middleware and by the application. In the example above, the application is 'swift' and others like 'account_quotas', 'bulk_upload', and others are the middleware.
2. Each data entry can be whatever the middleware or application wants to record. For example, 'account_quotas' does not record any data, but 'tempurl' does.
3. The application 'swift' records the following: version, cors_mode, storage policies, and any constraints.
Updated by Yehuda Sadeh over 9 years ago
This info just looks like some internal configurables. If it doesn't make sense as an api, I'm not sure we want to support it as it is.
Updated by Yehuda Sadeh almost 8 years ago
- Assignee changed from Luis Pabon to Pritha Srivastava
Updated by Pritha Srivastava over 7 years ago
- Status changed from New to Resolved
- % Done changed from 20 to 100
Merged upstream: https://github.com/ceph/ceph/pull/10280