1

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

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

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

4

2 回答 2

1

最后代替:

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

它奏效了。

于 2019-03-28T11:36:10.553 回答
0

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

是这样的:

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)

之后,创建的任何东西(服务器、密钥对、网络等)都在新项目下。

于 2019-10-15T17:54:28.523 回答