我正在尝试使用 openstacksdk python api 创建实例一切都很好,但即使我使用:
conn2 = conn.connect_as_project(proj.name)
server = conn2.create_server(......)
服务器是在管理项目的属性下创建的,而不是 proj.name 中提到的项目我什至尝试过 project.id 但没有奏效。
我正在尝试使用 openstacksdk python api 创建实例一切都很好,但即使我使用:
conn2 = conn.connect_as_project(proj.name)
server = conn2.create_server(......)
服务器是在管理项目的属性下创建的,而不是 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)
之后,创建的任何东西(服务器、密钥对、网络等)都在新项目下。