From f2e850019bac384b1cf033e7b43d6beb5bfc7548 Mon Sep 17 00:00:00 2001 From: Luigi Toscano Date: Tue, 8 Sep 2020 22:09:07 +0200 Subject: [PATCH] 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 --- .zuul.yaml | 32 +++++--- .../zaqarclient-dsvm-functional/post.yaml | 80 ------------------- .../zaqarclient-dsvm-functional/run.yaml | 73 ----------------- tox.ini | 6 ++ 4 files changed, 29 insertions(+), 162 deletions(-) delete mode 100644 playbooks/zaqarclient-dsvm-functional/post.yaml delete mode 100644 playbooks/zaqarclient-dsvm-functional/run.yaml diff --git a/.zuul.yaml b/.zuul.yaml index e08d33f5..7f0eb39f 100644 --- a/.zuul.yaml +++ b/.zuul.yaml @@ -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: diff --git a/playbooks/zaqarclient-dsvm-functional/post.yaml b/playbooks/zaqarclient-dsvm-functional/post.yaml deleted file mode 100644 index dac87534..00000000 --- a/playbooks/zaqarclient-dsvm-functional/post.yaml +++ /dev/null @@ -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 diff --git a/playbooks/zaqarclient-dsvm-functional/run.yaml b/playbooks/zaqarclient-dsvm-functional/run.yaml deleted file mode 100644 index 528a9068..00000000 --- a/playbooks/zaqarclient-dsvm-functional/run.yaml +++ /dev/null @@ -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 }}' diff --git a/tox.ini b/tox.ini index 79a3ca13..60068f2a 100644 --- a/tox.ini +++ b/tox.ini @@ -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}