]> git.immae.eu Git - github/fretlink/ansible-rundeck-jobs.git/blobdiff - tasks/rundeck.yml
Fix linting errors
[github/fretlink/ansible-rundeck-jobs.git] / tasks / rundeck.yml
index 43965528f5d95e00f02ba47a894411e712291648..aa71570dd89307ccc7f24617ad75fe53b6f0aace 100644 (file)
@@ -7,7 +7,7 @@
 
 - name: Create rundeck jobs
   uri:
-    url: "{{rundeck_api_url }}/{{rundeck_api_version}}/project/{{ rundeck_project }}/jobs/import"
+    url: "{{ rundeck_api_url }}/{{ rundeck_api_version }}/project/{{ rundeck_project }}/jobs/import"
     method: POST
     return_content: true
     body_format: raw
       Content-Type: application/x-www-form-urlencoded; charset=utf-8
       X-Rundeck-Auth-Token: "{{ rundeck_api_token }}"
   register: rundeck_create_jobs
-  with_items: "{{ rundeck_jobs_files.files}}"
+  with_items: "{{ rundeck_jobs_files.files }}"
+
+- name: Check if a job failed
+  fail:
+    msg: "Job defined in {{ file }} has failed with message: {{ message }}"
+  with_items: "{{ rundeck_create_jobs.results }}"
+  loop_control:
+    label: "{{ item.item.path }}"
+  vars:
+    file: "{{ item.item.path }}"
+    message: "{{ item.json.failed }}"
+  when: item.json.failed|length > 0
+  ignore_errors: "{{ rundeck_ignore_creation_error }}"
 
 - name: Get all jobs
   uri:
-    url: "{{rundeck_api_url }}/{{rundeck_api_version}}/project/{{ rundeck_project }}/jobs?groupPathExact={{ rundeck_jobs_group | default(rundeck_empty_group_path) }}"
+    url: "{{ rundeck_api_url }}/{{ rundeck_api_version }}/project/{{ rundeck_project }}/jobs?groupPathExact={{ rundeck_group_path }}"
     method: GET
     headers:
       Accept: application/json
       X-Rundeck-Auth-Token: "{{ rundeck_api_token }}"
   vars:
-    rundeck_empty_group_path: '""'
+    rundeck_empty_group_path: ''
+    rundeck_group_path: "{{ rundeck_jobs_group | default(rundeck_empty_group_path) }}"
   register: rundeck_existing_jobs
   when: rundeck_remove_missing
 
 - name: "Prepare list of jobs to remove"
   set_fact:
     rundeck_created_ids: "{{ rundeck_create_jobs.results | map(attribute='json') | map('json_query','succeeded[*].id') | flatten | list }}"
-    rundeck_jobs_ids: "{{ rundeck_existing_jobs.json | map(attribute='id') | list }}"
+    rundeck_jobs_ids: "{{ rundeck_existing_jobs_list | map(attribute='id') | list }}"
+  vars:
+    rundeck_existing_jobs_list_null: "{{ rundeck_existing_jobs.json | selectattr('group', 'none') | list }}"
+    rundeck_existing_jobs_list: "{{ rundeck_jobs_group | default(false) | ternary(rundeck_existing_jobs.json, rundeck_existing_jobs_list_null) }}"
   when: rundeck_remove_missing
 
 - name: "Remove jobs not in the directory"
   uri:
-    url: "{{rundeck_api_url }}/{{rundeck_api_version}}/job/{{ item }}"
+    url: "{{ rundeck_api_url }}/{{ rundeck_api_version }}/job/{{ item }}"
     method: DELETE
     headers:
       Accept: application/json