SoftLayer中的ObjectFilter不起作用

时间:2017-02-02 08:04:47

标签: api filter ibm-cloud-infrastructure

我发现ObjectFilter在SoftLayer中不起作用。

我甚至尝试过SoftLayer网页上提供的示例:

https://sldn.softlayer.com/article/object-filters

REST:

列出hostname

中所有服务器的ID和dal05
https://api.softlayer.com/rest/v3/SoftLayer_Account/getVirtualGuests?objectMask=mask[id,hostname]&objectFilter={"datacenter":{"name":{"operation":"dal05"}}}

当我运行此命令时,它仍会返回所有虚拟客户,无论虚拟客户属于哪个数据中心。

2 个答案:

答案 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'}
        }
    }
}