[英]Question about Pagination in Ansible API playbook query
我需要在我的剧本中查询 Ansible Tower 中的 REST API Jobs 端点。
我正在使用以下内容来检索数据
- name: Pull Jobs Data
uri:
url: https://ansible.xxxx.com/api/v2/jobs/?format=json&page=1&page_size=200
headers:
Content-Type: application/json
Authorization: "Bearer {{ lookup('env', 'TOWER_PASSWORD') }}"
register: jobs_data
- name: Get last half hour of data
debug:
var: "{{item}}"
when:
- item['started'] > current_epoch_half_hour_back
loop: "{{ jobs_data['json']['results'] }}"
我只对查看最近半小时的就业数据感兴趣。
我们保留了大约 2 周,大约有 15,000 页的工作数据,当我使用上面的page=1
和page_size=200
时,它似乎从第 1 页开始,这是最旧的数据,因此似乎只查看前 200 页完全缺少最新数据。 RedHat 表示可以通过修改以下文件/etc/tower/conf.d/<some file>.py
来更改限制,但建议您不要超过 200。
有谁知道如何让查询从最后一页(最新数据)而不是第 1 页(最旧数据)开始?
不想对page=
values 进行硬编码,因为我不知道最后一页的确切值。
根据有关Ansible Tower REST API - Jobs的文档,您可以通过?order_by=
执行排序,这可能是id
、 started
或那里记录的其他字段。 通过这样做,您可以将结果集减小到不再需要分页的大小。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.