题目要求:
(
1
)程序支持根据命令行参数,创建
1
个用户。
位置参数“
create
”,表示创建;
参数“
-i
或
--input
”,格式为
json
格式文本用户数据。
查询结果,以
json
格式输出到控制台。
参考执行实例如下:
python3 user_manager.py create --input '{ "name": "user01", "password": "******",
"description": "description" } '
import requests
import json
import time
import argparse
try:
url = "http://192.168.1.101:5000/v3/auth/tokens"
body = {
"auth": {"identity":{"methods":["password"],"password":{
"user":{"domain":{"name":"demo"},"name":"admin","password":"******"}}},
"scope":{"project":{"domain":{"name":"demo"},"name":"admin"}}}}
headers= {
"Content-Type":"application/json"
}
token = requests.post(url,data=json.dumps(body),headers=headers).headers['X-Subject-Token']
headers={"X-Auth-Token":token}
print(token)
except Exception as e:
print(f"debeat{str(e)}")
exit(0)
parser=argparse.ArgumentParser()
parser.add_argument("create",type=str,help="create user")
parser.add_argument("-i","--input",type=str,help="shuchu")
args = parser.parse_args()
if args.create:
data = args.input
data=json.dumps(data)
else:
print("false")
class create_user:
def __init__(self,headers,url):
self.headers=headers
self.url = url
def delete_user(self,user_name):
result = json.loads(requests.get(self.url,headers=self.headers).text)
for i in result['users']:
if i['name'] == user_name:
requests.delete(f"http://192.168.1.101:5000/v3/users/{i['id']}",headers=self.headers)
def create_user(self,data):
print(type(data))
data['domain_id']="a38fc98e1d3d4ae3b627e300bc55fb8f"
data = data
status_code = requests.post(self.url,data=data,headers=self.headers)
def list_user(self):
result = json.loads(requests.get(self.url, headers=self.headers).text)
users = []
for i in result["users"]:
if i not in users:
users.append(i['name'])
return "用户有:\n".join(users)
create_user=create_user(headers,"http://192.168.1.101:5000/v3/users")
create_user.create_user(data)
create_user.list_user()