
The project was started in the following repository: https://github.com/kopecmartin/ansible-role-refstack-client This commit moves all content from the original repository to it's new one under x org: https://opendev.org/x/ansible-role-refstack-client Change-Id: I658157f25caef4ec47c8127378a890d65c7b53b1
194 lines
5.2 KiB
YAML
194 lines
5.2 KiB
YAML
---
|
|
- name: Install required packages
|
|
include: install-packages.yaml
|
|
|
|
- name: Clone refstack-client
|
|
git:
|
|
repo: 'https://github.com/openstack/refstack-client.git'
|
|
dest: "{{ refstack_client_source }}"
|
|
|
|
- name: Look for python3
|
|
command: "python3 --version"
|
|
ignore_errors: yes
|
|
register: python3_is_available
|
|
changed_when: false
|
|
|
|
- name: Set python3 params for setup_env
|
|
set_fact:
|
|
python3_param: "-p 3"
|
|
when: python3_is_available.rc == 0
|
|
|
|
- name: Install refstack-client
|
|
command: ./setup_env {{ python3_param | default('') }}
|
|
args:
|
|
chdir: "{{ refstack_client_source }}"
|
|
when: tempest_tag is not defined
|
|
|
|
- name: Install refstack-client and clone Tempest from specific tag
|
|
command: ./setup_env -t {{ tempest_tag }} {{ python3_param | default('') }}
|
|
args:
|
|
chdir: "{{ refstack_client_source }}"
|
|
when: tempest_tag is defined
|
|
|
|
- name: Generate accounts.yaml file
|
|
include: generate-accounts.yaml
|
|
when: accounts_path is not defined
|
|
|
|
- name: Set path to newly generated accounts.yaml
|
|
set_fact:
|
|
path_to_accounts_file: "{{ refstack_client_source }}/etc/accounts.yaml"
|
|
when: accounts_path is not defined
|
|
|
|
- name: Set path to provided accounts.yaml
|
|
set_fact:
|
|
path_to_accounts_file: "{{ accounts_path }}"
|
|
when: accounts_path is defined
|
|
|
|
- name: Generate tempest configuration script
|
|
template:
|
|
src: generate-tempestconf.sh.j2
|
|
dest: "{{ refstack_client_source }}/generate-tempestconf.sh"
|
|
mode: 0744
|
|
when: tempest_config_path is not defined
|
|
|
|
- name: Generate tempest configuration file
|
|
shell: |
|
|
./generate-tempestconf.sh
|
|
args:
|
|
chdir: "{{ refstack_client_source }}"
|
|
executable: /bin/bash
|
|
when: tempest_config_path is not defined
|
|
|
|
- name: Set path to newly generated tempest.conf
|
|
set_fact:
|
|
path_to_tempest_config: "{{ refstack_client_source }}/etc/tempest.conf"
|
|
when: tempest_config_path is not defined
|
|
|
|
- name: Set path to provided tempest.conf
|
|
set_fact:
|
|
path_to_tempest_config: "{{ tempest_config_path }}"
|
|
when: tempest_config_path is defined
|
|
|
|
- name: Validate setup
|
|
shell: |
|
|
set -ex
|
|
source .venv/bin/activate
|
|
refstack-client test -c {{ path_to_tempest_config }} \
|
|
-v \
|
|
-- \
|
|
--regex tempest.api.identity.v3.test_tokens.TokensV3Test.test_create_token
|
|
args:
|
|
chdir: "{{ refstack_client_source }}"
|
|
executable: /bin/bash
|
|
|
|
- name: Run tests with the defined test list
|
|
shell: |
|
|
set -ex
|
|
export PATH=$PATH:/usr/local/sbin:/usr/sbin
|
|
source .venv/bin/activate
|
|
printenv
|
|
refstack-client test \
|
|
-c {{ path_to_tempest_config }} \
|
|
-v \
|
|
--test-list {{ test_list }}
|
|
args:
|
|
chdir: "{{ refstack_client_source }}"
|
|
executable: /bin/bash
|
|
register: refstack_result
|
|
ignore_errors: yes
|
|
when: test_list is defined
|
|
|
|
- name: Run tests with the default test list
|
|
shell: |
|
|
set -ex
|
|
export PATH=$PATH:/usr/local/sbin:/usr/sbin
|
|
source .venv/bin/activate
|
|
printenv
|
|
refstack-client test \
|
|
-c {{ path_to_tempest_config }} \
|
|
-v \
|
|
--test-list "https://refstack.openstack.org/api/v1/guidelines/{{ guideline }}/tests?target=platform&type=required&alias=true&flag=false"
|
|
args:
|
|
chdir: "{{ refstack_client_source }}"
|
|
executable: /bin/bash
|
|
register: refstack_result
|
|
ignore_errors: yes
|
|
when: test_list is not defined
|
|
|
|
- name: Find the test result json file
|
|
shell: |
|
|
set -ex
|
|
ls | grep "\.json" | tail -1
|
|
register: ls_out
|
|
args:
|
|
chdir: "{{ refstack_client_source }}/.tempest/.stestr"
|
|
executable: /bin/bash
|
|
|
|
- name: Copy private key
|
|
copy:
|
|
src: "{{ private_key_path_src }}"
|
|
dest: "{{ private_key_path }}"
|
|
when:
|
|
- upload_results | bool
|
|
- private_key_path is defined
|
|
- private_key_path_src is defined
|
|
|
|
- name: Upload results with signature
|
|
shell: |
|
|
set -ex
|
|
source .venv/bin/activate
|
|
yes | refstack-client upload ".tempest/.stestr/{{ ls_out.stdout }}" \
|
|
--url {{ server }} \
|
|
-i {{ private_key_path }}
|
|
register: upload_out
|
|
args:
|
|
chdir: "{{ refstack_client_source }}"
|
|
executable: /bin/bash
|
|
when:
|
|
- upload_results | bool
|
|
- private_key_path is defined
|
|
|
|
- block:
|
|
- name: Download results file in .json
|
|
fetch:
|
|
src: "{{ refstack_client_source }}/.tempest/.stestr/{{ ls_out.stdout }}"
|
|
dest: "{{ dest_dir }}/test_results.json"
|
|
flat: yes
|
|
|
|
- name: Download results file in subunit
|
|
fetch:
|
|
src: "{{ refstack_client_source }}/.tempest/.stestr/{{ ls_out.stdout | splitext | first }}"
|
|
dest: "{{ dest_dir }}/test_results_subunit"
|
|
flat: yes
|
|
|
|
- debug:
|
|
msg: "{{ upload_out.stdout }}"
|
|
|
|
- name: Dump output of upload command
|
|
copy:
|
|
content: "{{ upload_out.stdout }}"
|
|
dest: "{{ dest_dir }}/upload_output.txt"
|
|
delegate_to: localhost
|
|
|
|
- name: Download tempest.conf file
|
|
fetch:
|
|
src: "{{ path_to_tempest_config }}"
|
|
dest: "{{ dest_dir }}/tempest.conf"
|
|
flat: yes
|
|
args:
|
|
chdir: "{{ refstack_client_source }}"
|
|
|
|
- name: Download accounts.yaml file
|
|
fetch:
|
|
src: "{{ path_to_accounts_file }}"
|
|
dest: "{{ dest_dir }}/accounts.yaml"
|
|
flat: yes
|
|
args:
|
|
chdir: "{{ refstack_client_source }}"
|
|
when: download_artifacts | bool
|
|
|
|
- name: Check if we passed refstack tests
|
|
fail:
|
|
msg: "Refstack tests failed."
|
|
when: refstack_result.rc > 0
|