From 969a201ee45d60d1682679496dd0a967a251c14e Mon Sep 17 00:00:00 2001 From: Lucas Alvares Gomes Date: Thu, 20 Sep 2018 15:10:03 +0100 Subject: [PATCH] Move ovsdbapp jobs to its tree This patch is moving the legacy CI jobs for ovsdbapp into its tree. This will give the project more flexibility to control what jobs should run in which pipeline as well as facilitate creation/deletion/updates for new and existing jobs. Change-Id: I2e34bd16ab9907bdc3f9225b879f9b0846d2c779 --- .../post.yaml | 4 + .../run.yaml | 88 +++++++++++++++++++ playbooks/legacy/tempest-post-common.yml | 56 ++++++++++++ zuul.d/legacy-ovsdbapp-jobs.yaml | 13 +++ .zuul.yaml => zuul.d/project.yaml | 7 +- 5 files changed, 163 insertions(+), 5 deletions(-) create mode 100644 playbooks/legacy/tempest-dsvm-networking-ovn-ovs-release-ovsdbapp-src/post.yaml create mode 100644 playbooks/legacy/tempest-dsvm-networking-ovn-ovs-release-ovsdbapp-src/run.yaml create mode 100644 playbooks/legacy/tempest-post-common.yml create mode 100644 zuul.d/legacy-ovsdbapp-jobs.yaml rename .zuul.yaml => zuul.d/project.yaml (63%) diff --git a/playbooks/legacy/tempest-dsvm-networking-ovn-ovs-release-ovsdbapp-src/post.yaml b/playbooks/legacy/tempest-dsvm-networking-ovn-ovs-release-ovsdbapp-src/post.yaml new file mode 100644 index 00000000..70d365e6 --- /dev/null +++ b/playbooks/legacy/tempest-dsvm-networking-ovn-ovs-release-ovsdbapp-src/post.yaml @@ -0,0 +1,4 @@ +- hosts: primary + tasks: + + - include: ../tempest-post-common.yml diff --git a/playbooks/legacy/tempest-dsvm-networking-ovn-ovs-release-ovsdbapp-src/run.yaml b/playbooks/legacy/tempest-dsvm-networking-ovn-ovs-release-ovsdbapp-src/run.yaml new file mode 100644 index 00000000..ebb65445 --- /dev/null +++ b/playbooks/legacy/tempest-dsvm-networking-ovn-ovs-release-ovsdbapp-src/run.yaml @@ -0,0 +1,88 @@ +- hosts: all + name: Autoconverted job legacy-tempest-dsvm-networking-ovn-ovs-release-ovsdbapp-src + from old job gate-tempest-dsvm-networking-ovn-ovs-release-ovsdbapp-src-nv + 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-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: + cmd: | + set -e + set -x + cat << 'EOF' >>"/tmp/dg-local.conf" + [[local|localrc]] + enable_plugin networking-ovn git://git.openstack.org/openstack/networking-ovn + enable_plugin neutron-tempest-plugin git://git.openstack.org/openstack/neutron-tempest-plugin + enable_plugin octavia git://git.openstack.org/openstack/octavia + enable_service ovn-octavia + enable_service o-api + enable_service o-hk + LIBS_FROM_GIT="ovsdbapp" + OVN_DBS_LOG_LEVEL="dbg" + + EOF + executable: /bin/bash + chdir: '{{ ansible_user_dir }}/workspace' + environment: '{{ zuul | zuul_legacy_vars }}' + + - shell: + cmd: | + set -e + set -x + export PYTHONUNBUFFERED=true + export DEVSTACK_GATE_NEUTRON=1 + export DEVSTACK_GATE_TEMPEST=1 + export DEVSTACK_GATE_TEMPEST_ALL_PLUGINS=1 + export BRANCH_OVERRIDE=default + if [ "$BRANCH_OVERRIDE" != "default" ] ; then + export OVERRIDE_ZUUL_BRANCH=$BRANCH_OVERRIDE + fi + # Because we are testing a non standard project, add + # our project repository. This makes zuul do the right + # reference magic for testing changes. + export PROJECTS="openstack/networking-ovn openstack/neutron-tempest-plugin openstack/octavia $PROJECTS" + export PROJECTS="openstack/ovsdbapp $PROJECTS" + + # Keep localrc to be able to set some vars in pre_test_hook + export KEEP_LOCALRC=1 + + function pre_test_hook { + if [ -f $BASE/new/networking-ovn/devstack/pre_test_hook.sh ] ; then + . $BASE/new/networking-ovn/devstack/pre_test_hook.sh + fi + } + export -f pre_test_hook + + function post_test_hook { + if [ -f $BASE/new/networking-ovn/devstack/post_test_hook.sh ] ; then + . $BASE/new/networking-ovn/devstack/post_test_hook.sh + fi + } + export -f post_test_hook + + export DEVSTACK_GATE_SETTINGS="/opt/stack/new/networking-ovn/devstack/devstackgaterc latest-release" + + 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/playbooks/legacy/tempest-post-common.yml b/playbooks/legacy/tempest-post-common.yml new file mode 100644 index 00000000..7dbe89cf --- /dev/null +++ b/playbooks/legacy/tempest-post-common.yml @@ -0,0 +1,56 @@ +# +# Copy OVN SB & NB database files: those files can be handy for debugging issues as the +# ovsdb files are stored as logs. +# + +- name: Check whether OVNSB DB was created + stat: + path: /opt/stack/data/ovs/ovnsb_db.db + register: ovnsb_file + +- name: Create destination directory to collect OVN database logs + file: path={{ ansible_user_dir }}/workspace/logs/ovs_dbs state=directory + when: ovnsb_file.stat.exists + +- name: Collect OVN databases + copy: + remote_src: true + src: '/opt/stack/data/ovs/{{ item }}.db' + dest: '{{ ansible_user_dir }}/workspace/logs/ovs_dbs/{{ item }}.txt' + with_items: + - conf + - ovnnb_db + - ovnsb_db + when: ovnsb_file.stat.exists + +- name: Copy OVN database logs + copy: + remote_src: true + src: '/opt/stack/new/{{ item }}.log' + dest: '{{ ansible_user_dir }}/workspace/logs/ovs_dbs/{{ item }}.log.txt' + with_items: + - ovsdb-server-nb + - ovsdb-server-sb + when: ovnsb_file.stat.exists + become: true + +- name: Compress OVN databases in individual files + shell: gzip -9 {{ ansible_user_dir }}/workspace/logs/ovs_dbs/* + when: ovnsb_file.stat.exists + +# +# Synchronize files from workspace in node to the zuul log_root which will be stored +# + +- 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/zuul.d/legacy-ovsdbapp-jobs.yaml b/zuul.d/legacy-ovsdbapp-jobs.yaml new file mode 100644 index 00000000..f3fe356b --- /dev/null +++ b/zuul.d/legacy-ovsdbapp-jobs.yaml @@ -0,0 +1,13 @@ +- job: + name: ovsdbapp-tempest-dsvm-networking-ovn-ovs-release + parent: legacy-networking-ovn-dsvm-base + run: playbooks/legacy/tempest-dsvm-networking-ovn-ovs-release-ovsdbapp-src/run.yaml + post-run: playbooks/legacy/tempest-dsvm-networking-ovn-ovs-release-ovsdbapp-src/post.yaml + timeout: 7800 + required-projects: + - openstack-infra/devstack-gate + - openstack/networking-ovn + - openstack/neutron-tempest-plugin + - openstack/ovsdbapp + - openstack/octavia + - openstack/tempest diff --git a/.zuul.yaml b/zuul.d/project.yaml similarity index 63% rename from .zuul.yaml rename to zuul.d/project.yaml index 980c3aab..fba40c6a 100644 --- a/.zuul.yaml +++ b/zuul.d/project.yaml @@ -8,12 +8,9 @@ jobs: - openstack-tox-lower-constraints - openstack-tox-functional - - legacy-tempest-dsvm-networking-ovn-ovs-release-ovsdbapp-src: - voting: false - irrelevant-files: - - ^(test-|)requirements.txt$ - - ^setup.cfg$ + - ovsdbapp-tempest-dsvm-networking-ovn-ovs-release gate: jobs: - openstack-tox-lower-constraints - openstack-tox-functional + - ovsdbapp-tempest-dsvm-networking-ovn-ovs-release