[英]API Issue While Adding Device Access to a User in SoftLayer via addBulkVirtualGuestAccess
我正在嘗試使用SoftLayer API向測試用戶分配對設備的訪問權限。 (以下任何引用的功能均由“ SoftLayer_User_Customer”服務提供)
當調用“ addBulkVirtualGuestAccess”和“ removeBulkVirtualGuestAccess”時,在兩種情況下都返回true。 當使用“ getAllowedVirtualGuestIds”時,在執行之前引用的函數之前和之后,我將返回一個空數組。 測試用戶最初不包含任何服務器訪問權限,因此這是可以預期的,但是在執行“ addBulkVirtualGuestAccess”調用之后,這是不希望的。
根據文檔,僅當該用戶已經可以訪問該設備或無法使用該設備的刪除功能時,才應返回true。 我提供的JSON正文可能不合適,如果是這種情況,請告訴我。
等效的curl命令:
回聲'{“ parameters”:[[X,Y]]}'| 卷曲-X POST -u $ USERNAME:$ KEY --data @ - https://api.softlayer.com/rest/v3/SoftLayer_User_Customer/Z/addBulkVirtualGuestAccess.json
其中X&Y是設備整數ID值,Z是要添加用戶的SoftLayer用戶ID。
任何援助將不勝感激。
================================================== ====================== 更新
看來我無法創建評論以滿足我的回復長度要求,因此我將改為編輯答案。
感謝您的回復,mcruz。
您的建議似乎可行,似乎用戶需要通過addBulkVirtualGuestAccess函數將權限“ VIRTUAL_GUEST_VIEW”添加到設備。
但是,應注意,同一服務User_Customer的相似方法具有意外的行為:
未將任何設備添加到適當的用戶權限時,返回true。 這具有誤導性,我希望會返回用戶權限異常。
可以用於將虛擬機分別添加到沒有“ VIRTUAL_GUEST_VIEW”權限的用戶。 getAllowedVirtualGuestIds完成后將不返回任何ID,但是getVirtualGuests將返回單獨添加的VM的完整圖像JSON數據,可以從那里推斷ID。
我花了很多時間調試上面的內容,很高興它終於解決了。
為了幫助將來的用戶使用此服務:
問候,
保羅·康諾利
請確認您要添加服務器訪問”permissions”
的用戶是否具有以下”permissions”
: ”View Virtual Server Details”
要添加此權限,請執行:
https://[username]:[apikey]@api.softlayer.com/rest/v3/SoftLayer_User_Customer/[user_id]/addPortalPermission
Method: POST
{
"parameters": [
{
"keyName": "VIRTUAL_GUEST_VIEW"
}
]
}
要獲取所有可用的權限,請查看: SoftLayer_User_Customer_CustomerPermission_Permission :: getAllObjects
現在,在查看完上述可用權限后,請執行:
https://[username]:[apikey]@api.softlayer.com/rest/v3/SoftLayer_User_Customer/[user_id]/addBulkVirtualGuestAccess
Method: POST
Json Payload:
{
"parameters": [
[
18131945,
17071523
]
]
}
您可以看到執行以下命令時將顯示設備:
https://[username]:[apikey]@api.softlayer.com/rest/v3/SoftLayer_User_Customer/[user_id]/getAllowedVirtualGuestIds
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.