From 652b78fc51fa8a7bb9b1a0fe0af40b21bb1fa492 Mon Sep 17 00:00:00 2001 From: Mark Goddard Date: Mon, 24 Sep 2018 09:32:02 +0100 Subject: [PATCH] Fix POST_FAILURE in CI when ARA DB doesn't exist If the main CI job fails before generating an ARA report, the SQLite database file will not exist. This cases the job to fail with POST_FAILURE, rather than FAILURE, and the following is seen in the logs: rsync: change_dir "/home/zuul/.ara" failed: No such file or directory rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1655) [Receiver=3.1.1] rsync: [Receiver] write error: Broken pipe (32) This change fixes this by checking for an SQLite database file, and only intiating the rsync transfer if it exists. Change-Id: I370e5bc9f137abe552918a3215a025fa61e3a0ca --- tests/post.yml | 29 ++++++++++++++++++----------- 1 file changed, 18 insertions(+), 11 deletions(-) diff --git a/tests/post.yml b/tests/post.yml index 68f8f08ff1..d84eeea3ef 100644 --- a/tests/post.yml +++ b/tests/post.yml @@ -37,15 +37,22 @@ - hosts: primary tasks: - - name: ensure ara-report folder existence - file: - path: "{{ zuul.executor.log_root }}/{{ inventory_hostname }}/ara-report" - state: directory - delegate_to: localhost - run_once: true + - name: check for existence of ara sqlite + stat: + path: "{{ ansible_env.HOME }}/.ara/ansible.sqlite" + register: ara_stat_result - - name: download ara sqlite - synchronize: - src: "{{ ansible_env.HOME }}/.ara/ansible.sqlite" - dest: "{{ zuul.executor.log_root }}/{{ inventory_hostname }}/ara-report/" - mode: pull + - block: + - name: ensure ara-report folder existence + file: + path: "{{ zuul.executor.log_root }}/{{ inventory_hostname }}/ara-report" + state: directory + delegate_to: localhost + run_once: true + + - name: download ara sqlite + synchronize: + src: "{{ ansible_env.HOME }}/.ara/ansible.sqlite" + dest: "{{ zuul.executor.log_root }}/{{ inventory_hostname }}/ara-report/" + mode: pull + when: ara_stat_result.stat.exists