Native Zuulv3 and fixes for python-zaqarclient-functional

This change converts the existing legacy job into a native one.

It also re-enables the execution of functional tests, which are
otherwise not executed. It seems the initial idea of this job
was to run them, but this part has been probably lost over time.
This require a new 'functional' tox environment which focuses
on the functional tests.

Without the functional tests, this job is just a
simple devstack deployment job which tests the installability
of zaqarclient, but without really going through its code.

Unfortunately, as they haven't been executed for a while,
only a minority of the functional tests work. Only a subset
of them has been then enabled for now.

Change-Id: I6f33ca4b2da44cdaf4c85d30a3d520b0fdddce85
This commit is contained in:
Luigi Toscano 2020-09-08 22:09:07 +02:00
parent 27a628f03b
commit f2e850019b
4 changed files with 29 additions and 162 deletions

View File

@ -1,15 +1,29 @@
- job:
name: python-zaqarclient-functional
parent: legacy-dsvm-base
run: playbooks/zaqarclient-dsvm-functional/run.yaml
post-run: playbooks/zaqarclient-dsvm-functional/post.yaml
timeout: 6000
parent: devstack-tox-functional
required-projects:
- openstack/devstack-gate
- openstack/python-zaqarclient
- openstack/zaqar
- openstack/zaqar-tempest-plugin
- openstack/zaqar-ui
- opendev.org/openstack/horizon
- opendev.org/openstack/python-zaqarclient
- opendev.org/openstack/zaqar
- opendev.org/openstack/zaqar-tempest-plugin
vars:
devstack_plugins:
zaqar: https://opendev.org/openstack/zaqar
devstack_services:
# it does not seem to work with tls-proxy at the time
# of the legacy -> Zuul v3 porting
tls-proxy: false
# probably other services can be disabled;
# the old legacy job only uses mysql, keystone, zaqar and tempest
s-account: false
s-container: false
s-object: false
s-proxy: false
c-bak: false
# FIXME: only a few functional tests work at the end of Victoria cycle
# when they have been enabled again by a native Zuul v3 job.
# The failing job can be checked by removing this filter.
tox_extra_args: -vv -- tests.functional.queues.v2.test_health
- project:
templates:

View File

@ -1,80 +0,0 @@
- hosts: primary
tasks:
- name: Copy files from {{ ansible_user_dir }}/workspace/ on node
synchronize:
src: '{{ ansible_user_dir }}/workspace/'
dest: '{{ zuul.executor.log_root }}'
mode: pull
copy_links: true
verify_host: true
rsync_opts:
- --include=**/*nose_results.html
- --include=*/
- --exclude=*
- --prune-empty-dirs
- name: Copy files from {{ ansible_user_dir }}/workspace/ on node
synchronize:
src: '{{ ansible_user_dir }}/workspace/'
dest: '{{ zuul.executor.log_root }}'
mode: pull
copy_links: true
verify_host: true
rsync_opts:
- --include=**/*testr_results.html.gz
- --include=*/
- --exclude=*
- --prune-empty-dirs
- name: Copy files from {{ ansible_user_dir }}/workspace/ on node
synchronize:
src: '{{ ansible_user_dir }}/workspace/'
dest: '{{ zuul.executor.log_root }}'
mode: pull
copy_links: true
verify_host: true
rsync_opts:
- --include=/.testrepository/tmp*
- --include=*/
- --exclude=*
- --prune-empty-dirs
- name: Copy files from {{ ansible_user_dir }}/workspace/ on node
synchronize:
src: '{{ ansible_user_dir }}/workspace/'
dest: '{{ zuul.executor.log_root }}'
mode: pull
copy_links: true
verify_host: true
rsync_opts:
- --include=**/*testrepository.subunit.gz
- --include=*/
- --exclude=*
- --prune-empty-dirs
- name: Copy files from {{ ansible_user_dir }}/workspace/ on node
synchronize:
src: '{{ ansible_user_dir }}/workspace/'
dest: '{{ zuul.executor.log_root }}/tox'
mode: pull
copy_links: true
verify_host: true
rsync_opts:
- --include=/.tox/*/log/*
- --include=*/
- --exclude=*
- --prune-empty-dirs
- name: Copy files from {{ ansible_user_dir }}/workspace/ on node
synchronize:
src: '{{ ansible_user_dir }}/workspace/'
dest: '{{ zuul.executor.log_root }}'
mode: pull
copy_links: true
verify_host: true
rsync_opts:
- --include=/logs/**
- --include=*/
- --exclude=*
- --prune-empty-dirs

View File

@ -1,73 +0,0 @@
- hosts: all
name: Autoconverted job legacy-zaqarclient-dsvm-functional from old job gate-zaqarclient-dsvm-functional-ubuntu-xenial
tasks:
- name: Ensure legacy workspace directory
file:
path: '{{ ansible_user_dir }}/workspace'
state: directory
- shell:
cmd: |
set -e
set -x
cat > clonemap.yaml << EOF
clonemap:
- name: openstack/devstack-gate
dest: devstack-gate
EOF
/usr/zuul-env/bin/zuul-cloner -m clonemap.yaml --cache-dir /opt/git \
https://opendev.org \
openstack/devstack-gate
executable: /bin/bash
chdir: '{{ ansible_user_dir }}/workspace'
environment: '{{ zuul | zuul_legacy_vars }}'
- shell:
cmd: |
set -e
set -x
cat << 'EOF' >>"/tmp/dg-local.conf"
[[local|localrc]]
enable_plugin zaqar https://opendev.org/openstack/zaqar
# Enable Zaqar Tempest Plugin
TEMPEST_PLUGINS='/opt/stack/new/zaqar-tempest-plugin'
EOF
executable: /bin/bash
chdir: '{{ ansible_user_dir }}/workspace'
environment: '{{ zuul | zuul_legacy_vars }}'
- shell:
cmd: |
set -e
set -x
export PROJECTS="openstack/python-zaqarclient $PROJECTS"
export PROJECTS="openstack/zaqar-ui $PROJECTS"
export PYTHONUNBUFFERED=true
export FUNCTEST_TIMEOUT=30
export DEVSTACK_GATE_ZAQAR=1
export DEVSTACK_GATE_TEMPEST=0
export DEVSTACK_GATE_EXERCISES=0
export DEVSTACK_GATE_INSTALL_TESTONLY=1
export ENABLED_SERVICES=mysql,key,tempest
export DEVSTACK_GATE_TEMPEST_REGEX="zaqar_tempest_plugin.tests"
export BRANCH_OVERRIDE=default
if [ "$BRANCH_OVERRIDE" != "default" ] ; then
export OVERRIDE_ZUUL_BRANCH=$BRANCH_OVERRIDE
fi
export PROJECTS="openstack/zaqar-tempest-plugin $PROJECTS"
export ZAQARCLIENT_AUTH_FUNCTIONAL=1
export ZAQARCLIENT_TEST_FUNCTIONAL=1
function post_test_hook {
cd /opt/stack/new/python-zaqarclient
}
export -f post_test_hook
cp devstack-gate/devstack-vm-gate-wrap.sh ./safe-devstack-vm-gate-wrap.sh
./safe-devstack-vm-gate-wrap.sh
executable: /bin/bash
chdir: '{{ ansible_user_dir }}/workspace'
environment: '{{ zuul | zuul_legacy_vars }}'

View File

@ -31,6 +31,12 @@ commands =
coverage html -d cover
coverage xml -o cover/coverage.xml
[testenv:functional]
setenv =
OS_TEST_PATH = ./tests/functional
ZAQARCLIENT_AUTH_FUNCTIONAL = 1
ZAQARCLIENT_TEST_FUNCTIONAL = 1
[testenv:venv]
commands = {posargs}