API 通过 addBulkVirtualGuestAccess 在 SoftLayer 中向用户添加设备访问权限时出现问题
API Issue While Adding Device Access to a User in SoftLayer via addBulkVirtualGuestAccess
我正在尝试使用 SoftLayer API 为测试用户分配对设备的访问权限。 (以下任何参考功能均由 "SoftLayer_User_Customer" 服务提供)
当调用 "addBulkVirtualGuestAccess" 和 "removeBulkVirtualGuestAccess" 时,我 return 在这两种情况下都是正确的。
使用 "getAllowedVirtualGuestIds" 时,在执行之前引用的函数之前和之后,我被 returned 一个空数组。测试用户最初不包含任何服务器访问权限,因此这是预期的,但是在执行 "addBulkVirtualGuestAccess" 调用后并不预期。
根据文档,只有在该用户已经可以访问该设备的情况下,或者当用户无法使用该设备时,才应为 true returned。有可能我提供的 JSON body 不合适,如果是这种情况,请告诉我。
等效的 curl 命令:
回声 '{"parameters":[[X,Y]]}' | curl -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。
您的建议似乎有效,似乎用户需要权限 "VIRTUAL_GUEST_VIEW" 才能通过 addBulkVirtualGuestAccess 函数添加设备。
但是需要注意的是,同一服务的类似方法User_Customer,有意想不到的行为:
- addBulkVirtualGuestAccess
Returns 当没有设备被添加到应有的用户权限时为真。这是误导,我希望用户权限异常被 returned.
- addVirtualGuestAccess
可用于在没有 "VIRTUAL_GUEST_VIEW" 权限的情况下向用户单独添加 VM。 getAllowedVirtualGuestIds 完成后将 return 没有 ID,但是 getVirtualGuests 将 return 单独添加 VM 的完整图像 JSON 数据,可以从那里推断 ID。
我花了很多时间调试上面的问题,很高兴终于解决了。
为帮助此服务的未来用户:
- 上面列出的一些意外行为
addVirtualGuestAccess方法可以解释一下吗?
- 能否将 addBulkVirtualGuestAccess 方法更新为 return
异常如果用户真的没有被添加设备由于
用户权限问题?
- SoftLayer API 参考页面未提及用户
应用某个设备所需的权限,也许这应该
更新以显示这个?
此致,
保罗·康诺利
请验证您要添加服务器访问权限的用户是否具有以下 ”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
我正在尝试使用 SoftLayer API 为测试用户分配对设备的访问权限。 (以下任何参考功能均由 "SoftLayer_User_Customer" 服务提供)
当调用 "addBulkVirtualGuestAccess" 和 "removeBulkVirtualGuestAccess" 时,我 return 在这两种情况下都是正确的。 使用 "getAllowedVirtualGuestIds" 时,在执行之前引用的函数之前和之后,我被 returned 一个空数组。测试用户最初不包含任何服务器访问权限,因此这是预期的,但是在执行 "addBulkVirtualGuestAccess" 调用后并不预期。
根据文档,只有在该用户已经可以访问该设备的情况下,或者当用户无法使用该设备时,才应为 true returned。有可能我提供的 JSON body 不合适,如果是这种情况,请告诉我。
等效的 curl 命令:
回声 '{"parameters":[[X,Y]]}' | curl -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。
您的建议似乎有效,似乎用户需要权限 "VIRTUAL_GUEST_VIEW" 才能通过 addBulkVirtualGuestAccess 函数添加设备。
但是需要注意的是,同一服务的类似方法User_Customer,有意想不到的行为:
- addBulkVirtualGuestAccess
Returns 当没有设备被添加到应有的用户权限时为真。这是误导,我希望用户权限异常被 returned.
- addVirtualGuestAccess
可用于在没有 "VIRTUAL_GUEST_VIEW" 权限的情况下向用户单独添加 VM。 getAllowedVirtualGuestIds 完成后将 return 没有 ID,但是 getVirtualGuests 将 return 单独添加 VM 的完整图像 JSON 数据,可以从那里推断 ID。
我花了很多时间调试上面的问题,很高兴终于解决了。
为帮助此服务的未来用户:
- 上面列出的一些意外行为 addVirtualGuestAccess方法可以解释一下吗?
- 能否将 addBulkVirtualGuestAccess 方法更新为 return 异常如果用户真的没有被添加设备由于 用户权限问题?
- SoftLayer API 参考页面未提及用户 应用某个设备所需的权限,也许这应该 更新以显示这个?
此致,
保罗·康诺利
请验证您要添加服务器访问权限的用户是否具有以下 ”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