【问题标题】:ObjectFilter in SoftLayer doesn't workSoftLayer 中的 ObjectFilter 不起作用
【发布时间】:2017-02-02 08:04:46
【问题描述】:

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

我什至在这里尝试了 SoftLayer 网页中提供的示例:

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

休息:

列出dal05中所有服务器的ID和hostname

https://api.softlayer.com/rest/v3/SoftLayer_Account/getVirtualGuests?objectMask=mask[id,hostname]&objectFilter={"datacenter":{"name":{"operation":"dal05"}}}

当我运行这个命令时,它仍然返回所有的虚拟客户,不管虚拟客户属于哪个数据中心。

【问题讨论】:

    标签: api filter ibm-cloud-infrastructure


    【解决方案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

    问候

    【讨论】:

      【解决方案2】:

      也许您可以尝试在过滤器中添加virtualGuests,如下所示:

      objectFilter={ "virtualGuests": { "datacenter": { "longName": { "operation": "Dallas 6" } } } }
      

      或者请看https://sldn.softlayer.com/article/object-filters的第一个例子,像这样:

      object_filter = {
          'virtualGuests': {
              'datacenter': {
                  'name': {'operation': 'dal05'}
              }
          }
      }
      

      【讨论】:

      • 我确认这次它有效。感谢您的解释。应该需要有人更新在线网页,否则真的会产生误导。
      • 不客气 :)。没错,网页需要更新。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多