Python 运维开发:用户管理的命令行工具开发

题目要求:

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()

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值