如何使用Softlayer的票证API应用过滤器?

时间:2017-09-18 19:32:08

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

我尝试接收完整的故障单列表,其中包含以下代码:

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

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

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

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

但它始终返回完整的故障单列表,并且在具有大量故障单的帐户上以相同的方式失败。我需要创建所有门票的历史记录。

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

1 个答案:

答案 0 :(得分:2)

你的objectMask应该是

  

客户端['帐户'] getTickets。(掩模="掩盖[ID]&#34)

你的fitler应该是:

  

tickets = client.call(' Account',' getTickets',                         滤波器= {"票" {" ID" {"操作":48076123}}}

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

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

有关详细信息,请参阅https://github.com/softlayer/softlayer-python/blob/master/docs/api/client.rst