我发现ObjectFilter在SoftLayer中不起作用。
我甚至尝试过SoftLayer网页上提供的示例:
https://sldn.softlayer.com/article/object-filters
REST:
列出hostname
dal05
https://api.softlayer.com/rest/v3/SoftLayer_Account/getVirtualGuests?objectMask=mask[id,hostname]&objectFilter={"datacenter":{"name":{"operation":"dal05"}}}
当我运行此命令时,它仍会返回所有虚拟客户,无论虚拟客户属于哪个数据中心。
答案 0 :(得分:1)
尝试此请求:
GET https://api.softlayer.com/rest/v3/SoftLayer_Account/getVirtualGuests?objectMask=mask[id,hostname,datacenter]&objectFilter={"virtualGuests":{"datacenter":{"name":{"operation":"dal05"}}}}
您的请求的问题在于您错过了" virtualGuests"属性,请记住,objectFilter正在过滤数据库中的数据,因此您需要告诉它哪些表工作以及表的哪些记录工作。例如使用" SoftLayer_Account"这意味着所有工作都将通过" SoftLayer_Account"表现在你需要告诉id该表的哪个属性/记录工作,在这种情况下你需要解决" virtualGuests"等等。请记住,并查看有关有效属性/记录的文档,例如这些是Softlayer_Account的有效属性/记录:
http://sldn.softlayer.com/reference/datatypes/SoftLayer_Account
此致
答案 1 :(得分:0)
也许您可以尝试在过滤器中添加virtualGuests
,如下所示:
objectFilter={ "virtualGuests": { "datacenter": { "longName": { "operation": "Dallas 6" } } } }
或请参阅https://sldn.softlayer.com/article/object-filters的第一个示例,如下所示:
object_filter = {
'virtualGuests': {
'datacenter': {
'name': {'operation': 'dal05'}
}
}
}