From a016e02d4f32b32d0c6a6c04af3d6c72bd224bea Mon Sep 17 00:00:00 2001 From: Matt Riedemann Date: Tue, 6 Feb 2018 17:09:28 -0500 Subject: [PATCH] Move the nova-next job in-tree and update it This moves the legacy-tempest-dsvm-neutron-nova-next-full job from openstack-zuul-jobs in-tree and updates a few things since it's now branch specific: - The cells v2 and placement stuff can be removed since those are required now (they were optional when this job would run against newton changes). - Use nova/gate/post_test_hook.sh rather than the symlink under nova/tools/hooks/. The job is currently non-voting and needs to remain that way until bug 1747511 is fixed. According to the branch restrictions in project-config, apparently this job is only running against stable/newton (which no longer exists) and master, presumably when master was pike. We should also run this job against stable/pike for the service user test coverage and post_test_hook.sh run, so we'll likely backport this change to stable/pike as well. The related project-config change is: I36d96f89b3e5323746fcbcef5cc7e4d0384a184d Change-Id: I24a5f73c29094a23e2fdef8ee8b43601300af593 --- .zuul.yaml | 16 +++++++ playbooks/legacy/nova-next/post.yaml | 15 +++++++ playbooks/legacy/nova-next/run.yaml | 63 ++++++++++++++++++++++++++++ 3 files changed, 94 insertions(+) create mode 100644 playbooks/legacy/nova-next/post.yaml create mode 100644 playbooks/legacy/nova-next/run.yaml diff --git a/.zuul.yaml b/.zuul.yaml index 930a1583aa96..6c9bb37a2441 100644 --- a/.zuul.yaml +++ b/.zuul.yaml @@ -86,11 +86,27 @@ run: playbooks/legacy/nova-multiattach/run.yaml post-run: playbooks/legacy/nova-multiattach/post.yaml +- job: + name: nova-next + parent: nova-dsvm-base + description: | + This job was added in Newton when placement and cellsv2 + were optional. Placement and cellsv2 are required starting in Ocata. In + Pike, the service user token functionality was added. This job is also + unique in that it runs the post_test_hook from the nova repo, which runs + post-test scripts to ensure those scripts are still working, + e.g. archive_deleted_rows. + # TODO(mriedem): Make this voting once bug 1747511 is fixed. + voting: false + run: playbooks/legacy/nova-next/run.yaml + post-run: playbooks/legacy/nova-next/post.yaml + - project: # Please try to keep the list of job names sorted alphabetically. check: jobs: - nova-multiattach + - nova-next - nova-tox-functional - nova-tox-functional-py35 gate: diff --git a/playbooks/legacy/nova-next/post.yaml b/playbooks/legacy/nova-next/post.yaml new file mode 100644 index 000000000000..e07f5510ae70 --- /dev/null +++ b/playbooks/legacy/nova-next/post.yaml @@ -0,0 +1,15 @@ +- 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=/logs/** + - --include=*/ + - --exclude=* + - --prune-empty-dirs diff --git a/playbooks/legacy/nova-next/run.yaml b/playbooks/legacy/nova-next/run.yaml new file mode 100644 index 000000000000..de5f1d4c061d --- /dev/null +++ b/playbooks/legacy/nova-next/run.yaml @@ -0,0 +1,63 @@ +- hosts: all + name: nova-next + tasks: + + - name: Ensure workspace directory + file: + path: '{{ ansible_user_dir }}/workspace' + state: directory + + - shell: + cmd: | + set -e + set -x + cat > clonemap.yaml << EOF + clonemap: + - name: openstack-infra/devstack-gate + dest: devstack-gate + EOF + /usr/zuul-env/bin/zuul-cloner -m clonemap.yaml --cache-dir /opt/git \ + git://git.openstack.org \ + openstack-infra/devstack-gate + executable: /bin/bash + chdir: '{{ ansible_user_dir }}/workspace' + environment: '{{ zuul | zuul_legacy_vars }}' + + - shell: + # TODO(mriedem): Consider setting USE_PYTHON3=True here to make this + # job run under python 3.5 which is a "next" type thing. + cmd: | + set -e + set -x + cat << 'EOF' >>"/tmp/dg-local.conf" + [[local|localrc]] + NOVA_USE_SERVICE_TOKEN=True + + EOF + executable: /bin/bash + chdir: '{{ ansible_user_dir }}/workspace' + environment: '{{ zuul | zuul_legacy_vars }}' + + - shell: + cmd: | + set -e + set -x + export PYTHONUNBUFFERED=true + # Yes we want to run Tempest. + export DEVSTACK_GATE_TEMPEST=1 + # Run non-slow tempest API tests (concurrently) and scenario + # tests (serially). + export DEVSTACK_GATE_TEMPEST_FULL=1 + # The post_test_hook runs some post-test CLIs for things that + # Tempest does not test, like archiving deleted records. + function post_test_hook { + if [ -f $BASE/new/nova/gate/post_test_hook.sh ]; then + $BASE/new/nova/gate/post_test_hook.sh + fi + } + 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 }}'