Python REST API for the Ceph RADOS Gateway (radosgw) admin operations
http://docs.ceph.com/docs/master/radosgw/adminops/
NOTICE: The library support Ceph version >= 10.2 (Jewel).
- Version 1.6: Support for Ceph Hammer or older have been dropped.
- Version 1.7: Functions
get_buckets()
andget_users()
returns an iterator, not a list anymore. - Version 1.7.1: Function
get_uids()
added. - Version 1.7.2: Functions
get_policy(bucket, object=None, ...)
anddelete_usage()
added. Functionset_quota(...)
returnsNone
.
- boto
The package is available on https://pypi.python.org/pypi/radosgw-admin. To install it use pip
:
pip install radosgw-admin
Or clone this repository and install it locally:
python setup.py install
To create or modify a bucket/user in radosgw, the admin user require the following read,write
capabilities (caps):
"caps": [ { "type": "buckets", "perm": "*" }, { "type": "usage", "perm": "read" }, { "type": "metadata", "perm": "read" }, { "type": "users", "perm": "*" } ]
You can use the radosgw-admin
command to add capabilities to an existing user:
radosgw-admin caps add --uid <USER_ID> --caps "buckets=read,write" radosgw-admin caps add --uid <USER_ID> --caps "users=read,write"
See the example in examples/radosgw-admin-example.py
Here is a simple example:
import radosgw
rgwadmin = radosgw.connection.RadosGWAdminConnection(host='hostname.example.org',
access_key='<ADMIN_ACCESS_KEY>',
secret_key='<ADMIN_SECRET_KEY>')
# user operations
testuser2 = rgwadmin.create_user('testuser2',
display_name='A test user',
email='testuser2@example.org')
testuser2.update(display_name='Second test user', suspended=True)
testuser1 = rgwadmin.get_user('testuser1')
# bucket operations
buckets = rgwadmin.get_buckets()
for bucket in buckets:
print(bucket)
testuser1_buckets = testuser1.get_buckets()
for bucket in testuser1_buckets:
# transfer buckets to testuser2
rgwadmin.link_bucket(bucket.name, bucket.id, testuser2.id)