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
This commit is contained in:
Mark Goddard 2018-09-24 09:32:02 +01:00
parent 0b6e401c4f
commit 652b78fc51

View File

@ -37,6 +37,12 @@
- hosts: primary - hosts: primary
tasks: tasks:
- name: check for existence of ara sqlite
stat:
path: "{{ ansible_env.HOME }}/.ara/ansible.sqlite"
register: ara_stat_result
- block:
- name: ensure ara-report folder existence - name: ensure ara-report folder existence
file: file:
path: "{{ zuul.executor.log_root }}/{{ inventory_hostname }}/ara-report" path: "{{ zuul.executor.log_root }}/{{ inventory_hostname }}/ara-report"
@ -49,3 +55,4 @@
src: "{{ ansible_env.HOME }}/.ara/ansible.sqlite" src: "{{ ansible_env.HOME }}/.ara/ansible.sqlite"
dest: "{{ zuul.executor.log_root }}/{{ inventory_hostname }}/ara-report/" dest: "{{ zuul.executor.log_root }}/{{ inventory_hostname }}/ara-report/"
mode: pull mode: pull
when: ara_stat_result.stat.exists