首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >openstacksdk如何更改当前用户密码

openstacksdk如何更改当前用户密码
EN

Stack Overflow用户
提问于 2021-10-18 12:25:51
回答 1查看 401关注 0票数 0

我找到了CLIAPI请求方法,它们为我工作,如下所示:

代码语言:javascript
复制
# source /etc/kolla/admin-openrc.sh
# openstack user password set --password newpsw --original-password oripsw

Or

# source /etc/kolla/admin-openrc.sh
# curl -v -s -X POST $OS_AUTH_URL/auth/tokens?nocatalog \
 -H "Content-Type: application/json" \
 -d '{ "auth": { "identity": { "methods": ["password"], \ 
 "password": {"user": {"domain": {"name": "'"$OS_USER_DOMAIN_NAME"'"}, \
 "name": "'"$OS_USERNAME"'", "password": "'"$OS_PASSWORD"'"} } }, \
 "scope": { "project": { "domain": { "name": "'"$OS_PROJECT_DOMAIN_NAME"'" }, \
 "name":  "'"$OS_PROJECT_NAME"'" } } }}'
< HTTP/1.1 201 CREATED
< Date: Mon, 18 Oct 2021 11:44:39 GMT
< Server: Apache
< Content-Length: 720
< X-Subject-Token: gAAAAABhbV4o9WvatToB4Z7dUhaNqyYqpwUt4T3wwOmnN2-YCioaSYZ-HpqdWNDvAq0pvnSe6qIuvoZXOIUjmxxUu03tWk2mp2TOJ_LTLECXOHqlQT22vqNvgJj_YTgOWbwHVlrrqbkcUWM4WDvbsD1HjM8xiEYidSNMzpw2LOHtO43cIN0nyvs
< Vary: X-Auth-Token
# export OS_TOKEN=gAAAAABhbV4o9WvatToB4Z7dUhaNqyYqpwUt4T3wwOmnN2-YCioaSYZ-HpqdWNDvAq0pvnSe6qIuvoZXOIUjmxxUu03tWk2mp2TOJ_LTLECXOHqlQT22vqNvgJj_YTgOWbwHVlrrqbkcUWM4WDvbsD1HjM8xiEYidSNMzpw2LOHtO43cIN0nyvs
# curl --header "Content-Type: application/json" --request POST --data '{"user":{"password":"123","original_password":"aaa"}}' http://10.32.17.172:5000/v3/users/e1c5cc75489f4e0cbb05c39d03b46097/password

Change password for user方法在API的最后一个请求 文档

但是我需要通过在我们的项目中使用openstacksdk来实现这一点,我在openstacksdk文档中找到了最后一个方法-- update_user(user, **attrs),这似乎是我最想要的方法。不幸的是,Openstack.Idty.v3.用户实例没有original_password,我的代码无法工作:

代码语言:javascript
复制
import openstack

conn = openstack.connect(
    region_name = 'RegionOne',
    auth_url = 'http://10.32.17.172:35357/v3',
    domain_name = 'Default',
    project_name = 'admin',
    username = 'admin',
    password = '123'
)

user_args = {
    "name":"admin",
    "pasword":'aaa',  # new password
    "password_expires_at":None, 
    "links":{u'self': u'http://10.32.17.172:5000/v3/users/e1c5cc75489f4e0cbb05c39d03b46097'},
    "enabled":True, 
    "domain_id":"default",
    "original_password": "123",
}

conn.identity.update_user(user_args)

如何通过openstacksdk实现更改当前用户密码?先谢了。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-10-30 06:51:44

通过这个解决:

代码语言:javascript
复制
import openstack
conn = openstack.connect(
    ...
)
user_args = {
    "id":"e1c5cc75489f4e0cbb05c39d03b46097"
}
user = conn.identity.get_user(user_args)
user.description = "test_update_psw"
user.password="123456"
conn.identity.update_user(user)

更新用户的信息应该使用user对象而不是dictionary,就像问题的代码一样。

我的糟糕的程序语言技能和缺乏API文档知识的耻辱。

非常感谢一个打电话给丹金的人

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69616030

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档