簡體   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