Last active
December 13, 2018 05:12
-
-
Save kairen/1db292fe63e4310c775b to your computer and use it in GitHub Desktop.
radosgw-admin-api
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/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