From 2c0e84879e1c8d2b3ba25b8a159783c52c9a26dd Mon Sep 17 00:00:00 2001 From: Ghanshyam Mann Date: Wed, 11 Sep 2019 05:15:44 +0000 Subject: [PATCH] [train][goal] Define new 'zaqar-tempest-swift-ipv6' job As part of Train community goal 'Support IPv6-Only Deployments and Testing'[1], we need to define the integration job which deploy services on IPv6 and perform testing to make sure service listen and communicate over IPv6 properly. Zaqar has legacy zuul jobs so base zuulv3 IPv6 job 'devstack-ipv6' and 'devstack-tempest-ipv6' cannot be used and we have to copy the whole run.yaml to set the IPv6 setting and run the IPv6 verification script via post_test_hook. This commit adds the new job 'zaqar-tempest-swift-ipv6' run on gate and set the required IPv6 setting'. Change-Id: I9aece13783a061c4214157c3f7cfc9cc9f2a3f96 Story: #2005477 Task: #35941 --- .zuul.yaml | 7 ++ devstack/plugin.sh | 2 +- .../tempest-devstack-zaqar-base/run-ipv6.yaml | 72 +++++++++++++++++++ 3 files changed, 80 insertions(+), 1 deletion(-) create mode 100644 playbooks/legacy/tempest-devstack-zaqar-base/run-ipv6.yaml diff --git a/.zuul.yaml b/.zuul.yaml index db97c29a7..80eec0b4e 100644 --- a/.zuul.yaml +++ b/.zuul.yaml @@ -69,6 +69,11 @@ vars: database_backend: swift +- job: + name: zaqar-tempest-swift-ipv6 + parent: zaqar-tempest-swift + run: playbooks/legacy/tempest-devstack-zaqar-base/run-ipv6.yaml + - job: name: zaqar-tox-integration parent: openstack-tox @@ -125,6 +130,7 @@ - zaqar-grenade-mongodb - zaqar-grenade-redis - zaqar-grenade-swift + - zaqar-tempest-swift-ipv6 # TripleO jobs that deploy Zaqar. # Note we don't use a project-template here, so it's easier # to disable voting on one specific job if things go wrong. @@ -142,5 +148,6 @@ - zaqar-tempest-mongodb - zaqar-tempest-redis - zaqar-tempest-swift + - zaqar-tempest-swift-ipv6 - tripleo-ci-centos-7-scenario002-standalone - heat-functional-convg-mysql-lbaasv2 diff --git a/devstack/plugin.sh b/devstack/plugin.sh index 4bb64d93d..fb785c492 100755 --- a/devstack/plugin.sh +++ b/devstack/plugin.sh @@ -92,7 +92,7 @@ function configure_zaqar { # Enable pooling by default for now iniset $ZAQAR_CONF DEFAULT admin_mode True - iniset $ZAQAR_CONF 'drivers:transport:websocket' bind $ZAQAR_SERVICE_HOST + iniset $ZAQAR_CONF 'drivers:transport:websocket' bind $(ipv6_unquote $ZAQAR_SERVICE_HOST) iniset $ZAQAR_CONF 'drivers:transport:websocket' port $ZAQAR_WEBSOCKET_PORT iniset $ZAQAR_CONF drivers transport websocket diff --git a/playbooks/legacy/tempest-devstack-zaqar-base/run-ipv6.yaml b/playbooks/legacy/tempest-devstack-zaqar-base/run-ipv6.yaml new file mode 100644 index 000000000..e85939531 --- /dev/null +++ b/playbooks/legacy/tempest-devstack-zaqar-base/run-ipv6.yaml @@ -0,0 +1,72 @@ +- hosts: all + name: Tempest Devstack Zaqar Base + 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' + SERVICE_IP_VERSION=6 + SERVICE_HOST="" + + 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 PYTHONUNBUFFERED=true + export ENABLED_SERVICES=tempest + export DEVSTACK_GATE_TEMPEST_REGEX="zaqar_tempest_plugin.tests" + export DEVSTACK_GATE_TEMPEST=0 + export DEVSTACK_GATE_USE_PYTHON3=True + + function gate_hook { + cd /opt/stack/new/zaqar/devstack/gate + ./gate_hook.sh tempest "{{ database_backend }}" + } + + export PROJECTS="openstack/zaqar-tempest-plugin $PROJECTS" + export -f gate_hook + + function post_test_hook { + cd $BASE/new/tempest/tools + ./verify-ipv6-only-deployments.sh + } + 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 }}'