Run cinderlib functional tests on LVM-LIO job

This patch adds the openstack/cinderlib project as a required project
for cinder-tempest-dsv-lvm-lio-barbican job and then runs its functional
tests as part of the CI job.

With this we'll be able to run cross-repo dependencies with cinderlib
for the cinder-tempest-dsv-lvm-lio-barbican job.

Change-Id: I25c19cf1f7da6881807e729a326cd94d07b4c42d
This commit is contained in:
Gorka Eguileor 2019-03-20 13:32:37 +01:00
parent 483b037b69
commit 0bdb3cdd27
3 changed files with 54 additions and 0 deletions

View File

@ -112,6 +112,7 @@
required-projects:
- openstack-infra/devstack-gate
- openstack/barbican
- openstack/cinderlib
- openstack/python-barbicanclient
- openstack/tempest
- openstack/os-brick

View File

@ -0,0 +1,49 @@
# Variables: devstack_base_dir, cinderlib_log_file, cinderlib_ignore_errors
- hosts: "{{ cinderlib_hosts | default('all') }}"
become: True
vars:
base_dir: "{{ devstack_base_dir | default('/opt/stack/new') }}"
default_log_file: "{{ ansible_user_dir }}/zuul-output/logs/cinderlib.txt"
tasks:
- name: Find cinderlib location in required-projects
set_fact:
cinderlib_location: "{{ ansible_user_dir }}/{{ item.src_dir}}"
with_items: "{{ zuul.projects.values() | list }}"
when:
- cinderlib_location is not defined
- item.short_name == 'cinderlib'
- name: Default cinderlib location to devstack directory
set_fact:
cinderlib_location: "{{ base_dir }}/cinderlib"
when:
- cinderlib_location is not defined
- name: Install cinderlib
pip:
name: ./
editable: yes
extra_args: --no-cache-dir
chdir: "{{ cinderlib_location }}"
- name: Locate unit2 binary location
shell:
cmd: which unit2
register: unit2_which
- name: Add sudoers role for cinderlib unit2
copy:
dest: /etc/sudoers.d/zuul-sudo-unit2
content: "zuul ALL = NOPASSWD:{{ unit2_which.stdout }} discover -v -s cinderlib/tests/functional\n"
mode: 0440
- name: Validate sudoers config after edits
command: "/usr/sbin/visudo -c"
- name: Run cinderlib functional tests
shell:
cmd: "set -o pipefail && {{ unit2_which.stdout }} discover -v -s cinderlib/tests/functional 2>&1 | tee {{ cinderlib_log_file | default(default_log_file)}}"
chdir: "{{ cinderlib_location }}"
executable: /bin/bash
ignore_errors: "{{ cinderlib_ignore_errors | default(false) | bool}}"

View File

@ -82,3 +82,7 @@
executable: /bin/bash
chdir: '{{ ansible_user_dir }}/workspace'
environment: '{{ zuul | zuul_legacy_vars }}'
- import_playbook: ../../cinderlib-run.yaml
vars:
default_log_file: "{{ ansible_user_dir }}/workspace/logs/cinderlib.txt"