【问题标题】:How can I apply a filter using Softlayer's ticket API?如何使用 Softlayer 的票务 API 应用过滤器?
【发布时间】:2017-09-18 19:32:07
【问题描述】:

我试图收到一份完整的票证列表,其中包含以下代码:

client = SoftLayer.create_client_from_env(username="xxx", api_key="xxx")
client['Account'].getTickets(mask='id')

即便如此,我将输出屏蔽为仅返回 'id',但它在我的一个使用 SoftLayerAPIError: SoftLayerAPIError(SOAP-ENV:Server): Internal Error 的 Softlayer 帐户中失败了。我在该帐户中有超过 140 万张票(包括已关闭的票)。

接下来我尝试应用过滤器:

tickets = client.call('Account', 'getTickets',
                      filter={'id': { 'operation': 48076123 }}
# or
tickets = client.call('Account', 'getTickets',
                      filter={'id': { 'operation': '>48076123' }}

但它总是返回完整的工单列表,并且在具有大量工单的帐户上以同样的方式失败。我需要创建所有票证的历史记录。

有没有办法限制查询或在结果上创建一个窗口? 任何帮助表示赞赏。

【问题讨论】:

    标签: api ibm-cloud-infrastructure ticket-system


    【解决方案1】:

    你的 objectMask 应该是

    client['Account'].getTickets(mask="mask[id]")

    您的装配工应该是:

    tickets = client.call('Account', 'getTickets', filter={"tickets":{"id":{"operation":48076123}}}

    你也可以使用分页来限制结果

    client.call('Account', 'getTickets', limit=10, offset=0)
    

    更多信息请参见https://github.com/softlayer/softlayer-python/blob/master/docs/api/client.rst

    【讨论】:

    • 我认为分页是我一直在寻找的解决方案。谢谢。
    猜你喜欢
    • 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
    相关资源
    最近更新 更多