mirror of
https://github.com/ceph/ceph
synced 2024-12-22 11:31:55 +00:00
da271f7f78
Signed-off-by: caleb miles <caleb.miles@inktank.com>
496 lines
7.4 KiB
ReStructuredText
496 lines
7.4 KiB
ReStructuredText
==================
|
|
Admin Operations
|
|
==================
|
|
|
|
An admin API request will be done on a URI that starts with the configurable 'admin'
|
|
resource entry point. Authorization for the admin API duplicates the S3 authorization
|
|
mechanism. Some operations require that the user holds special administrative capabilities.
|
|
The response entity type (XML or JSON) may be specified as the 'format' option in the
|
|
request and defaults to JSON if not specified.
|
|
|
|
Get Object
|
|
==========
|
|
|
|
Get an existing object. NOTE: Does not require owner to be non-suspended.
|
|
|
|
Syntax
|
|
~~~~~~
|
|
|
|
::
|
|
|
|
GET /{admin}/bucket?object&format=json HTTP/1.1
|
|
Host {fqdn}
|
|
|
|
Request Parameters
|
|
~~~~~~~~~~~~~~~~~~
|
|
|
|
``bucket``
|
|
|
|
:Description: The bucket containing the object to be retrieved.
|
|
:Type: String
|
|
:Example: ``foo_bucket``
|
|
:Required: Yes
|
|
|
|
``object``
|
|
|
|
:Description: The object to be retrieved.
|
|
:Type: String
|
|
:Example: ``foo.txt``
|
|
:Required: Yes
|
|
|
|
Response Entities
|
|
~~~~~~~~~~~~~~~~~
|
|
|
|
If successful, returns the desired object.
|
|
|
|
``object``
|
|
|
|
:Description: The desired object.
|
|
:Type: Object
|
|
|
|
Special Error Responses
|
|
~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
``NoSuchObject``
|
|
|
|
:Description: Specified object does not exist.
|
|
:Code: 404 Not Found
|
|
|
|
Head Object
|
|
===========
|
|
|
|
Verify the existence of an object. If the object exists,
|
|
metadata headers for the object will be returned.
|
|
|
|
Syntax
|
|
~~~~~~
|
|
|
|
::
|
|
|
|
HEAD /{admin}/bucket?object HTTP/1.1
|
|
Host {fqdn}
|
|
|
|
Request Parameters
|
|
~~~~~~~~~~~~~~~~~~
|
|
|
|
``bucket``
|
|
|
|
:Description: The bucket containing the object to be retrieved.
|
|
:Type: String
|
|
:Example: ``foo_bucket``
|
|
:Required: Yes
|
|
|
|
``object``
|
|
|
|
:Description: The object to be retrieved.
|
|
:Type: String
|
|
:Example: ``foo.txt``
|
|
:Required: Yes
|
|
|
|
Response Entities
|
|
~~~~~~~~~~~~~~~~~
|
|
|
|
None.
|
|
|
|
Special Error Responses
|
|
~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
``NoSuchObject``
|
|
|
|
:Description: Specified object does not exist.
|
|
:Code: 404 Not Found
|
|
|
|
Get Zone Info
|
|
=============
|
|
|
|
Get cluster information.
|
|
|
|
Syntax
|
|
~~~~~~
|
|
|
|
::
|
|
|
|
GET /{admin}/zone&format=json HTTP/1.1
|
|
Host {fqdn}
|
|
|
|
|
|
Response Entities
|
|
~~~~~~~~~~~~~~~~~
|
|
|
|
If successful, returns cluster pool configuration.
|
|
|
|
``zone``
|
|
|
|
:Description: Contains current cluster pool configuration.
|
|
:Type: Container
|
|
|
|
``domain_root``
|
|
|
|
:Description: root of all buckets.
|
|
:Type: String
|
|
:Parent: ``cluster``
|
|
|
|
``control_pool``
|
|
|
|
:Description:
|
|
:Type: String
|
|
:Parent: ``cluster``
|
|
|
|
``gc_pool``
|
|
|
|
:Description: Garbage collection pool.
|
|
:Type: String
|
|
:Parent: ``cluster``
|
|
|
|
``log_pool``
|
|
|
|
:Description: Log pool.
|
|
:Type: String
|
|
:Parent: ``cluster``
|
|
|
|
``intent_log_pool``
|
|
|
|
:Description: Intent log pool.
|
|
:Type: String
|
|
:Parent: ``cluster``
|
|
|
|
``usage_log_pool``
|
|
|
|
:Description: Usage log pool.
|
|
:Type: String
|
|
:Parent: ``cluster``
|
|
|
|
``user_keys_pool``
|
|
|
|
:Description: User key pool.
|
|
:Type: String
|
|
:Parent: ``cluster``
|
|
|
|
``user_email_pool``
|
|
|
|
:Description: User email pool.
|
|
:Type: String
|
|
:Parent: ``cluster``
|
|
|
|
``user_swift_pool``
|
|
|
|
:Description: Pool of swift users.
|
|
:Type: String
|
|
:Parent: ``cluster``
|
|
|
|
Special Error Responses
|
|
~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
None.
|
|
|
|
Example Response
|
|
~~~~~~~~~~~~~~~~
|
|
|
|
::
|
|
|
|
HTTP/1.1 200
|
|
Content-Type: application/json
|
|
|
|
{
|
|
"domain_root": ".rgw",
|
|
"control_pool": ".rgw.control",
|
|
"gc_pool": ".rgw.gc",
|
|
"log_pool": ".log",
|
|
"intent_log_pool": ".intent-log",
|
|
"usage_log_pool": ".usage",
|
|
"user_keys_pool": ".users",
|
|
"user_email_pool": ".users.email",
|
|
"user_swift_pool": ".users.swift",
|
|
"user_uid_pool ": ".users.uid"
|
|
}
|
|
|
|
|
|
|
|
Add Placement Pool
|
|
==================
|
|
|
|
Make a pool available for data placement.
|
|
|
|
Syntax
|
|
~~~~~~
|
|
|
|
::
|
|
|
|
PUT /{admin}/pool?format=json HTTP/1.1
|
|
Host {fqdn}
|
|
|
|
|
|
Request Parameters
|
|
~~~~~~~~~~~~~~~~~~
|
|
|
|
``pool``
|
|
|
|
:Description: The pool to be made available for data placement.
|
|
:Type: String
|
|
:Example: ``foo_pool``
|
|
:Required: Yes
|
|
|
|
``create``
|
|
|
|
:Description: Creates the data pool if it does not exist.
|
|
:Type: Boolean
|
|
:Example: False [False]
|
|
:Required: No
|
|
|
|
Response Entities
|
|
~~~~~~~~~~~~~~~~~
|
|
|
|
TBD.
|
|
|
|
Special Error Responses
|
|
~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
TBD.
|
|
|
|
Remove Placement Pool
|
|
=====================
|
|
|
|
Make a pool unavailable for data placement.
|
|
|
|
Syntax
|
|
~~~~~~
|
|
|
|
::
|
|
|
|
DELETE /{admin}/pool?format=json HTTP/1.1
|
|
Host {fqdn}
|
|
|
|
|
|
Request Parameters
|
|
~~~~~~~~~~~~~~~~~~
|
|
|
|
``pool``
|
|
|
|
:Description: The existing pool to be made available for data placement.
|
|
:Type: String
|
|
:Example: ``foo_pool``
|
|
:Required: Yes
|
|
|
|
``destroy``
|
|
|
|
:Description: Destroys the pool after removing it from the active set.
|
|
:Type: Boolean
|
|
:Example: False [False]
|
|
:Required: No
|
|
|
|
Response Entities
|
|
~~~~~~~~~~~~~~~~~
|
|
|
|
TBD.
|
|
|
|
Special Error Responses
|
|
~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
TBD.
|
|
|
|
List Available Data Placement Pools
|
|
===================================
|
|
|
|
List current pools available for data placement.
|
|
|
|
Syntax
|
|
~~~~~~
|
|
|
|
::
|
|
|
|
GET /{admin}/pool?format=json HTTP/1.1
|
|
Host {fqdn}
|
|
|
|
|
|
Response Entities
|
|
~~~~~~~~~~~~~~~~~
|
|
|
|
If successful, returns a list of pools available for data placement.
|
|
|
|
``pools``
|
|
|
|
:Description: Contains currently available pools for data placement.
|
|
:Type: Container
|
|
|
|
|
|
|
|
List Expired Garbage Collection Items
|
|
=====================================
|
|
|
|
List objects scheduled for garbage collection.
|
|
|
|
Syntax
|
|
~~~~~~
|
|
|
|
::
|
|
|
|
GET /{admin}/garbage?format=json HTTP/1.1
|
|
Host {fqdn}
|
|
|
|
Request Parameters
|
|
~~~~~~~~~~~~~~~~~~
|
|
|
|
None.
|
|
|
|
Response Entities
|
|
~~~~~~~~~~~~~~~~~
|
|
|
|
If expired garbage collection items exist, a list of such objects
|
|
will be returned.
|
|
|
|
``garbage``
|
|
|
|
:Description: Expired garbage collection items.
|
|
:Type: Container
|
|
|
|
``object``
|
|
|
|
:Description: A container garbage collection object information.
|
|
:Type: Container
|
|
:Parent: ``garbage``
|
|
|
|
``name``
|
|
|
|
:Description: The name of the object.
|
|
:Type: String
|
|
:Parent: ``object``
|
|
|
|
``expired``
|
|
|
|
:Description: The date at which the object expired.
|
|
:Type: String
|
|
:Parent: ``object``
|
|
|
|
Special Error Responses
|
|
~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
TBD.
|
|
|
|
Manually Processes Garbage Collection Items
|
|
===========================================
|
|
|
|
List objects scheduled for garbage collection.
|
|
|
|
Syntax
|
|
~~~~~~
|
|
|
|
::
|
|
|
|
DELETE /{admin}/garbage?format=json HTTP/1.1
|
|
Host {fqdn}
|
|
|
|
Request Parameters
|
|
~~~~~~~~~~~~~~~~~~
|
|
|
|
None.
|
|
|
|
Response Entities
|
|
~~~~~~~~~~~~~~~~~
|
|
|
|
If expired garbage collection items exist, a list of removed objects
|
|
will be returned.
|
|
|
|
``garbage``
|
|
|
|
:Description: Expired garbage collection items.
|
|
:Type: Container
|
|
|
|
``object``
|
|
|
|
:Description: A container garbage collection object information.
|
|
:Type: Container
|
|
:Parent: ``garbage``
|
|
|
|
``name``
|
|
|
|
:Description: The name of the object.
|
|
:Type: String
|
|
:Parent: ``object``
|
|
|
|
``expired``
|
|
|
|
:Description: The date at which the object expired.
|
|
:Type: String
|
|
:Parent: ``object``
|
|
|
|
Special Error Responses
|
|
~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
TBD.
|
|
|
|
Show Log Objects
|
|
================
|
|
|
|
Show log objects
|
|
|
|
Syntax
|
|
~~~~~~
|
|
|
|
::
|
|
|
|
GET /{admin}/log?format=json HTTP/1.1
|
|
Host {fqdn}
|
|
|
|
Request Parameters
|
|
~~~~~~~~~~~~~~~~~~
|
|
|
|
``object``
|
|
|
|
:Description: The log object to return.
|
|
:Type: String:
|
|
:Example: ``2012-10-11-09-4165.2-foo_bucket``
|
|
:Required: No
|
|
|
|
Response Entities
|
|
~~~~~~~~~~~~~~~~~
|
|
|
|
If no object is specified, returns the full list of log objects.
|
|
|
|
``log-objects``
|
|
|
|
:Description: A list of log objects.
|
|
:Type: Container
|
|
|
|
``object``
|
|
|
|
:Description: The name of the log object.
|
|
:Type: String
|
|
|
|
``log``
|
|
|
|
:Description: The contents of the log object.
|
|
:Type: Container
|
|
|
|
Special Error Responses
|
|
~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
None.
|
|
|
|
Standard Error Responses
|
|
========================
|
|
|
|
``AccessDenied``
|
|
|
|
:Description: Access denied.
|
|
:Code: 403 Forbidden
|
|
|
|
``InternalError``
|
|
|
|
:Description: Internal server error.
|
|
:Code: 500 Internal Server Error
|
|
|
|
``NoSuchUser``
|
|
|
|
:Description: User does not exist.
|
|
:Code: 404 Not Found
|
|
|
|
``NoSuchBucket``
|
|
|
|
:Description: Bucket does not exist.
|
|
:Code: 404 Not Found
|
|
|
|
``NoSuchKey``
|
|
|
|
:Description: No such access key.
|
|
:Code: 404 Not Found
|