【问题标题】:How to filter virtual guests with tag A and B using Softlayer API如何使用 Softlayer API 过滤带有标签 A 和 B 的虚拟客人
【发布时间】:2016-10-11 11:18:47
【问题描述】:

我给我的虚拟客人加了标签,比如我给VM1加了标签A,给VM2加了标签A和B,我知道如何获取所有带有标签A的VM:

https://api.softlayer.com/rest/v3/SoftLayer_Account/getVirtualGuests.json?objectMask=mask[tagReferences[tag[name]]]&objectFilter={"virtualGuests":{"tagReferences":{"tag":{"name":{"operation":"*=A"}}}}}

但我不确定如何过滤同时具有标记 A 和 B 的 VM。是否有示例供参考。谢谢。

【问题讨论】:

    标签: filter ibm-cloud-infrastructure


    【解决方案1】:

    尝试:

    URL : https://$USERNAME:$APIKEY@api.softlayer.com/rest/v3/SoftLayer_Account/getVirtualGuests?objectFilter={"virtualGuests":{"tagReferences":{"tag":{"name":{"operation":"in","options":[{"name":"data","value":["$tag1","$tag2"]}]}}}}}
    
    Method: GET
    
    Note: replace $tag1 and $tag2 with the tags you wish 
    

    【讨论】:

    • 好的,对象过滤器没有被应用的问题,它可能是你正在使用的 REST 客户端(一些客户端需要 enconde objectFilter)我建议你尝试使用 Insomi 或 Postman 客户端
    • 我只是从浏览器运行命令,我可以通过从浏览器运行命令来使用一个标签。
    • 是的,我也是通过 Chrome 运行的,我今天用 postman 试了一下,结果似乎是所有虚拟机都具有标签 A 和标签 B 的 OR 关系,而不是 AND 关系。您认为“操作”或其他内容的“输入”是否正确?谢谢。
    • 当前结果是使用objectFilter可以获得的最佳结果,如果您想要其他情况,您需要使用自己的代码来过滤数据
    • 好吧,你的意思是只能过滤带有标签 A 或标签 B 的虚拟机,但不可能过滤必须同时带有标签 A 和标签 B 的虚拟机,对吧?谢谢。
    猜你喜欢
    • 1970-01-01
    • 2014-04-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-17
    • 2017-12-02
    相关资源
    最近更新 更多