Skip to content

Instantly share code, notes, and snippets.

@kairen
Last active December 13, 2018 05:12
Show Gist options
  • Star 2 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save kairen/1db292fe63e4310c775b to your computer and use it in GitHub Desktop.
Save kairen/1db292fe63e4310c775b to your computer and use it in GitHub Desktop.
radosgw-admin-api
#!/usr/bin/env python
import sys
import requests
import json
import argparse
from awsauth import S3Auth
aws_key = 'ACCESS_KEY'
secret = 'SECRET_KEY'
server_url = 'S3_HTTP_URL'
admin_entry = 'ADMIN_ENTRY'
def create_user(args):
for value in vars(args).values():
if value is None:
sys.exit('ERROR : Option input error ...')
parameters = "uid={0}&display-name={1}&email={2}".format(args.uid, args.display_name, args.email)
parameters += "&suspended={0}".format(False)
url = "http://{0}/{1}/user?format=json&{2}".format(server_url, admin_entry, parameters)
print("URL : {}".format(url))
response = requests.put(url,auth=S3Auth(aws_key, secret, server_url))
print("Status code : {}".format(response.status_code))
print("Response : {}".format(json.dumps(response.json(), indent=4, sort_keys=True)))
def get_user_info(args):
if args.uid is None:
sys.exit('ERROR : Option input error ...')
url = "http://{0}/{1}/user?format=json&uid={2}".format(server_url, admin_entry, args.uid)
print("URL : {}".format(url))
response = requests.get(url, auth=S3Auth(aws_key, secret, server_url))
print("Status code : {}".format(response.status_code))
print("Response : {}".format(json.dumps(response.json(), indent=4, sort_keys=True)))
parser = argparse.ArgumentParser(description='RadosGW S3 Admin Example')
options_parser = argparse.ArgumentParser(add_help=False)
parser.add_argument("user", help="User command")
options_parser.add_argument("--uid", help="User identity name")
options_parser.add_argument("--display-name", help="User full name")
options_parser.add_argument("--email", help="User email account")
subparsers = parser.add_subparsers()
parser_create = subparsers.add_parser('create', help='create a new user', parents=[options_parser])
parser_info = subparsers.add_parser('info', help='get user info', parents=[options_parser])
parser_create.set_defaults(func=create_user)
parser_info.set_defaults(func=get_user_info)
args = parser.parse_args()
args.func(args)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment