]>
Commit | Line | Data |
---|---|---|
030dd5c5 GD |
1 | - name: Create rundeck file list |
2 | find: | |
3 | path: "{{ rundeck_jobs_path }}" | |
4 | patterns: "*.yaml" | |
5 | delegate_to: localhost | |
6 | register: rundeck_jobs_files | |
7 | ||
8 | - name: Create rundeck jobs | |
9 | uri: | |
10 | url: "{{rundeck_api_url }}/{{rundeck_api_version}}/project/{{ rundeck_project }}/jobs/import" | |
11 | method: POST | |
12 | return_content: true | |
13 | body_format: raw | |
14 | body: fileformat=yaml&dupeOption=update&xmlBatch={{ lookup('file', item.path) | urlencode }} | |
15 | headers: | |
16 | Accept: application/json | |
17 | Content-Type: application/x-www-form-urlencoded; charset=utf-8 | |
18 | X-Rundeck-Auth-Token: "{{ rundeck_api_token }}" | |
19 | register: rundeck_create_jobs | |
20 | with_items: "{{ rundeck_jobs_files.files}}" | |
21 | ||
22 | - name: Get all jobs | |
23 | uri: | |
24 | url: "{{rundeck_api_url }}/{{rundeck_api_version}}/project/{{ rundeck_project }}/jobs" | |
25 | method: GET | |
26 | headers: | |
27 | Accept: application/json | |
28 | X-Rundeck-Auth-Token: "{{ rundeck_api_token }}" | |
29 | register: rundeck_existing_jobs | |
30 | when: rundeck_remove_missing | |
31 | ||
32 | - name: "Prepare list of jobs to remove" | |
33 | set_fact: | |
34 | rundeck_created_ids: "{{ rundeck_create_jobs.results | map(attribute='json') | map('json_query','succeeded[*].id') | flatten | list }}" | |
35 | rundeck_jobs_ids: "{{ rundeck_existing_jobs.json | map(attribute='id') | list }}" | |
36 | when: rundeck_remove_missing | |
37 | ||
38 | - name: "Remove jobs not in the directory" | |
39 | uri: | |
40 | url: "{{rundeck_api_url }}/{{rundeck_api_version}}/job/{{ item }}" | |
41 | method: DELETE | |
42 | headers: | |
43 | Accept: application/json | |
44 | X-Rundeck-Auth-Token: "{{ rundeck_api_token }}" | |
45 | status_code: [204] | |
46 | with_items: "{{ rundeck_jobs_ids | difference(rundeck_created_ids) }}" | |
47 | when: rundeck_remove_missing |