Set tempest result separately in file

Don't exit with error automatically, write down tempest status in
file for later parsing and set variable tempest_status.

Change-Id: I986587ceadf58b13e9a2aeadb62f81c522e29b82
This commit is contained in:
Sagi Shnaidman 2017-02-07 21:46:52 +02:00
parent 94e211723c
commit ae0525a776
5 changed files with 57 additions and 35 deletions

View File

@ -26,6 +26,7 @@ Role Variables
* `tempest_tests_file`: path to file - path to file with tests to run
* `tempest_until_failure`: false/true - default is false, repeat the run again and again until failure occurs
* `tempest_failing`: false/true - default is false, run only tests known to be failing
* `tempest_exit_on_failure`: true/false - whether to exit from role with tempest exit code (default: true)
Dependencies
------------

View File

@ -29,3 +29,4 @@ skip_file: skip_file
tempest_isolated: false
tempest_until_failure: false
tempest_failing: false
tempest_exit_on_failure: true

View File

@ -1,36 +1,3 @@
---
- name: Fetch nostests results
fetch:
src: "{{ working_dir }}/tempest/tempest.xml"
dest: "{{ lookup('env', 'PWD') }}/nosetests.xml"
flat: yes
- name: Generate subunit results file
shell: |
find '{{ working_dir }}/tempest/.testrepository/' -regex '.*/[0-9]+' \
| while read name; do cat "$name"; done \
> '{{ working_dir }}/tempest/results.subunit'
- name: Generate HTML results file
shell: |
subunit2html $(find {{ working_dir }}/tempest/.testrepository -name [0-9] \
| head -1) {{ working_dir }}/tempest/tempest.html \
2>&1 >> {{ tempest_log_file }}
ignore_errors: yes
- name: Fetch subunit results
fetch:
src: "{{ working_dir }}/tempest/results.subunit"
dest: "{{ lookup('env', 'PWD') }}/results.subunit"
flat: yes
- name: Fetch HTML results
fetch:
src: "{{ working_dir }}/tempest/tempest.html"
dest: "{{ lookup('env', 'PWD') }}/tempest.html"
flat: yes
ignore_errors: yes
- name: Exit with tempest result code
shell: tail -10 {{ tempest_log_file }}; exit {{ tempest_result.rc }}
when: 'tempest_result.rc != 0'
- include: tempest-status.yml
- include: tempest-results.yml

View File

@ -0,0 +1,37 @@
---
- name: Fetch nostests results
fetch:
src: "{{ working_dir }}/tempest/tempest.xml"
dest: "{{ lookup('env', 'PWD') }}/nosetests.xml"
flat: yes
- name: Generate subunit results file
shell: |
find '{{ working_dir }}/tempest/.testrepository/' -regex '.*/[0-9]+' \
| while read name; do cat "$name"; done \
> '{{ working_dir }}/tempest/results.subunit'
- name: Fetch subunit results
fetch:
src: "{{ working_dir }}/tempest/results.subunit"
dest: "{{ lookup('env', 'PWD') }}/results.subunit"
flat: yes
- ignore_errors: true
block:
- name: Generate HTML results file
shell: |
subunit2html $(find {{ working_dir }}/tempest/.testrepository -name [0-9] \
| head -1) {{ working_dir }}/tempest/tempest.html \
2>&1 >> {{ tempest_log_file }}
- name: Fetch HTML results
fetch:
src: "{{ working_dir }}/tempest/tempest.html"
dest: "{{ lookup('env', 'PWD') }}/tempest.html"
flat: yes
- name: Exit with tempest result code if configured
shell: tail -10 {{ tempest_log_file }}; exit {{ tempest_result.rc }}
when: tempest_result.rc != 0 and tempest_exit_on_failure|bool

View File

@ -0,0 +1,16 @@
---
- name: Tempest failed if rc code is not 0
set_fact:
tempest_status: failed
when: tempest_result.rc != 0
- name: Write down tempest result
shell: >
echo '{ "tempest_status": "{{ tempest_status|default('passed') }}" }' >
"{{ local_working_dir }}/tempest_status.json"
- name: import tempest_status from file
include_vars: "{{ local_working_dir }}/tempest_status.json"
- name: echo tempest status
debug: var=tempest_status