commit 0cda97fede35e29283911d88c11cc4623b5b0c22 Author: Luigi Toscano Date: Tue Sep 8 22:09:07 2020 +0200 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 (cherry picked from commit f2e850019bac384b1cf033e7b43d6beb5bfc7548) diff --git a/.zuul.yaml b/.zuul.yaml index e08d33f..7f0eb39 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 dac8753..0000000 --- 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 528a906..0000000 --- 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 79a3ca1..60068f2 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}