繁体   English   中英

OpenStackSDK在特定项目下创建实例

[英]OpenStackSDK create instance under specific project

我正在尝试使用openstacksdk python api创建实例,一切正常,但是即使使用:

conn2 = conn.connect_as_project(proj.name)
server = conn2.create_server(......)

服务器是在admin项目的属性下创建的,而不是proj.name中提到的项目,我什至尝试了project.id,但没有用。

最后代替:

conn2 = conn.connect_as_project(project_id)

我用了:

conn2 = openstack.connection.Connection(
    region_name='RegionOne',
    auth=dict(
        auth_url='http://controller:5000/v3',
        username=u_name,
        password=password,
        project_id=project_id,
        user_domain_id='default'),
    compute_api_version='2',
    identity_interface='internal')

而且有效。

我做得很好……唯一的区别是该项目是一个新项目,我必须向使用的用户提供凭据。

就像这样:

project = sconn.create_project(
    name=name, domain_id='default')
user_id = conn.current_user_id
user = conn.get_user(user_id)
roles = conn.list_roles()
for r in roles:
    conn.identity.assign_project_role_to_user(
        project.id, user.id, r.id
    )
# Make sure the roles are correctly assigned to the user before proceed
conn2 = self.conn.connect_as_project(project.name)

之后,创建的所有内容(服务器,密钥对,网络等)都在新项目下。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM