使用多个页面迭代 Ansible Tower API
Iterating through Ansible Tower APIs with multiple pages
我需要为工作模板获取所有相关工作。 API 每页最多只能 return 200 个结果。
有人用 URI 模块处理过 API 分页吗?
如何使用名为 page_number?
的变量简单地遍历页数
在我的代码下方:
- name: List related jobs for job template
uri:
url: http://localhost{{ api_for_job_template.json.related.jobs }}?page_size=200&page={{ page_number }}
force_basic_auth: yes
user: "{{ user }}"
password: "{{ password }}"
body_format: json
register: jobs_info
好的,我找到了获取所有页面的方法。
在一项任务中,我计算了 API 中的作业数,并将其除以每页返回的记录数。接下来在 uri 中使用“with_sequence”逐页迭代。只需要将它四舍五入并转换为 int。
- name: List related jobs for job template
uri:
url: http://localhost{{ api_for_job_template.json.related.jobs }}?page_size={{ page_size }}&page={{ item }}
force_basic_auth: yes
user: "{{ user }}"
password: "{{ password }}"
body_format: json
register: jobs_info
with_sequence: start=1 end="{{ end_at }}"
vars:
- end_at: "{{ ((jobs_count.json.count / 20) | round(0,'ceil')) | int }}"
我需要为工作模板获取所有相关工作。 API 每页最多只能 return 200 个结果。
有人用 URI 模块处理过 API 分页吗?
如何使用名为 page_number?
在我的代码下方:
- name: List related jobs for job template
uri:
url: http://localhost{{ api_for_job_template.json.related.jobs }}?page_size=200&page={{ page_number }}
force_basic_auth: yes
user: "{{ user }}"
password: "{{ password }}"
body_format: json
register: jobs_info
好的,我找到了获取所有页面的方法。 在一项任务中,我计算了 API 中的作业数,并将其除以每页返回的记录数。接下来在 uri 中使用“with_sequence”逐页迭代。只需要将它四舍五入并转换为 int。
- name: List related jobs for job template
uri:
url: http://localhost{{ api_for_job_template.json.related.jobs }}?page_size={{ page_size }}&page={{ item }}
force_basic_auth: yes
user: "{{ user }}"
password: "{{ password }}"
body_format: json
register: jobs_info
with_sequence: start=1 end="{{ end_at }}"
vars:
- end_at: "{{ ((jobs_count.json.count / 20) | round(0,'ceil')) | int }}"