Project

General

Profile

Feature #8945

rgw: support swift /info api

Added by Yehuda Sadeh over 3 years ago. Updated about 1 year ago.

Status:
Resolved
Priority:
Normal
Target version:
-
Start date:
07/28/2014
Due date:
% Done:

100%

Source:
other
Tags:
Backport:
Reviewed:
User Impact:
Affected Versions:
Release:
Needs Doc:
No

History

#1 Updated by Luis Pabon over 3 years ago

  • Assignee set to Luis Pabon

#2 Updated by Ian Colle over 3 years ago

  • Target version set to v0.85

#3 Updated by Luis Pabon about 3 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.

#4 Updated by Luis Pabon about 3 years ago

  • Target version deleted (v0.85)

#5 Updated by Luis Pabon about 3 years ago

  • Target version set to v0.85

#6 Updated by Ian Colle about 3 years ago

  • Target version changed from v0.85 to v0.86

#7 Updated by Luis Pabon about 3 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
    }
}

#8 Updated by Luis Pabon about 3 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.

#9 Updated by Yehuda Sadeh about 3 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.

#10 Updated by Ian Colle about 3 years ago

  • Target version deleted (v0.86)

#11 Updated by Yehuda Sadeh over 1 year ago

  • Assignee changed from Luis Pabon to Pritha Srivastava

#12 Updated by Pritha Srivastava about 1 year ago

  • Status changed from New to Resolved
  • % Done changed from 20 to 100

Also available in: Atom PDF