Import OVN LB functional tests
This patch imports OVN LB functional tests. Unfortunately neutron hasn't been released yet so for test requirements we need to install it from git, from commit that imports functional base class to neutron [1]. [1] https://review.opendev.org/#/c/701733/ Change-Id: Ia65492db1688f3a3fce22a4432ae8445f67c37b3
This commit is contained in:
parent
000049c15d
commit
ec629c2e0c
1170
ovn_octavia_provider/tests/functional/test_driver.py
Normal file
1170
ovn_octavia_provider/tests/functional/test_driver.py
Normal file
File diff suppressed because it is too large
Load Diff
4
playbooks/configure_functional_job.yaml
Normal file
4
playbooks/configure_functional_job.yaml
Normal file
@ -0,0 +1,4 @@
|
||||
- hosts: all
|
||||
roles:
|
||||
- setup_logdir
|
||||
- configure_functional_tests
|
5
playbooks/post_functional_job.yaml
Normal file
5
playbooks/post_functional_job.yaml
Normal file
@ -0,0 +1,5 @@
|
||||
- hosts: all
|
||||
roles:
|
||||
- fetch_journal_log
|
||||
- fetch-tox-output
|
||||
- fetch-subunit-output
|
10
playbooks/run_functional_job.yaml
Normal file
10
playbooks/run_functional_job.yaml
Normal file
@ -0,0 +1,10 @@
|
||||
- hosts: all
|
||||
roles:
|
||||
- run-devstack
|
||||
# Run bindep and test-setup after devstack so that they won't interfere
|
||||
- role: bindep
|
||||
bindep_profile: test
|
||||
bindep_dir: "{{ zuul_work_dir }}"
|
||||
- test-setup
|
||||
- ensure-tox
|
||||
- tox
|
21
roles/configure_functional_tests/README.rst
Normal file
21
roles/configure_functional_tests/README.rst
Normal file
@ -0,0 +1,21 @@
|
||||
Configure host to run on it Neutron functional/fullstack tests
|
||||
|
||||
**Role Variables**
|
||||
|
||||
.. zuul:rolevar:: tests_venv
|
||||
:default: {{ tox_envlist }}
|
||||
|
||||
.. zuul:rolevar:: project_name
|
||||
:default: neutron
|
||||
|
||||
.. zuul:rolevar:: base_dir
|
||||
:default: {{ ansible_user_dir }}/src/opendev.org
|
||||
|
||||
.. zuul:rolevar:: gate_dest_dir
|
||||
:default: {{ base_dir }}/openstack
|
||||
|
||||
.. zuul:rolevar:: devstack_dir
|
||||
:default: {{ base_dir }}/openstack/devstack
|
||||
|
||||
.. zuul:rolevar:: neutron_dir
|
||||
:default: {{ gate_dest_dir }}/neutron
|
7
roles/configure_functional_tests/defaults/main.yaml
Normal file
7
roles/configure_functional_tests/defaults/main.yaml
Normal file
@ -0,0 +1,7 @@
|
||||
tests_venv: "{{ tox_envlist }}"
|
||||
project_name: "ovn-octavia-provider"
|
||||
base_dir: "{{ ansible_user_dir }}/src/opendev.org"
|
||||
gate_dest_dir: "{{ base_dir }}/openstack"
|
||||
devstack_dir: "{{ base_dir }}/openstack/devstack"
|
||||
neutron_dir: "{{ gate_dest_dir }}/neutron"
|
||||
ovn_octavia_provider_dir: "{{ gate_dest_dir }}/ovn-octavia-provider"
|
20
roles/configure_functional_tests/tasks/main.yaml
Normal file
20
roles/configure_functional_tests/tasks/main.yaml
Normal file
@ -0,0 +1,20 @@
|
||||
- shell:
|
||||
cmd: |
|
||||
set -e
|
||||
set -x
|
||||
GATE_STACK_USER={{ ansible_user }}
|
||||
IS_GATE=True
|
||||
|
||||
BASE_DIR={{ base_dir }}
|
||||
GATE_DEST={{ gate_dest_dir }}
|
||||
PROJECT_NAME={{ project_name }}
|
||||
NEUTRON_PATH={{ neutron_dir }}
|
||||
DEVSTACK_PATH={{ devstack_dir }}
|
||||
VENV={{ tests_venv }}
|
||||
|
||||
source $DEVSTACK_PATH/functions
|
||||
source $NEUTRON_PATH/devstack/lib/ovs
|
||||
source $NEUTRON_PATH/tools/configure_for_func_testing.sh
|
||||
|
||||
configure_host_for_func_testing
|
||||
executable: /bin/bash
|
16
roles/fetch_journal_log/README.rst
Normal file
16
roles/fetch_journal_log/README.rst
Normal file
@ -0,0 +1,16 @@
|
||||
Collect journal log from test run
|
||||
|
||||
By default, this stores journal log into log file and store it in
|
||||
"journal_log_file_path"
|
||||
|
||||
**Role Variables**
|
||||
|
||||
.. zuul:rolevar:: journal_log_path
|
||||
:default: {{ ansible_user_dir }}/workspace/logs
|
||||
|
||||
Path where journal log file will be stored on job's node.
|
||||
|
||||
.. zuul:rolevar:: journal_log_file_name
|
||||
:default: {{ journal_log_path }}/journal.log
|
||||
|
||||
Name of journal log file.
|
2
roles/fetch_journal_log/defaults/main.yaml
Normal file
2
roles/fetch_journal_log/defaults/main.yaml
Normal file
@ -0,0 +1,2 @@
|
||||
journal_log_path: "{{ ansible_user_dir }}/logs"
|
||||
journal_log_file_name: "{{ journal_log_path }}/journal.log"
|
22
roles/fetch_journal_log/tasks/main.yaml
Normal file
22
roles/fetch_journal_log/tasks/main.yaml
Normal file
@ -0,0 +1,22 @@
|
||||
- name: Ensure {{ journal_log_path }} exists
|
||||
become: yes
|
||||
file:
|
||||
path: "{{ journal_log_path }}"
|
||||
state: directory
|
||||
owner: "{{ ansible_user }}"
|
||||
group: "{{ ansible_user }}"
|
||||
mode: 0775
|
||||
|
||||
- name: Store journal logs in {{ journal_log_file_name }}
|
||||
become: yes
|
||||
shell:
|
||||
cmd: |
|
||||
/bin/journalctl -a > {{ journal_log_file_name }}
|
||||
|
||||
- name: Set journal.log file permissions
|
||||
become: yes
|
||||
file:
|
||||
path: '{{ journal_log_file_name }}'
|
||||
owner: '{{ ansible_user }}'
|
||||
group: '{{ ansible_user }}'
|
||||
mode: 0644
|
8
roles/setup_logdir/README.rst
Normal file
8
roles/setup_logdir/README.rst
Normal file
@ -0,0 +1,8 @@
|
||||
Configure logs dir to be accessible for ``stack`` user.
|
||||
|
||||
**Role Variables**
|
||||
|
||||
.. zuul:rolevar:: logdir
|
||||
:default: /opt/stack/logs
|
||||
|
||||
Name of the directory where logs will be stored.
|
1
roles/setup_logdir/defaults/main.yaml
Normal file
1
roles/setup_logdir/defaults/main.yaml
Normal file
@ -0,0 +1 @@
|
||||
logdir: /opt/stack/logs
|
8
roles/setup_logdir/tasks/main.yaml
Normal file
8
roles/setup_logdir/tasks/main.yaml
Normal file
@ -0,0 +1,8 @@
|
||||
- name: Ensure logdir exists
|
||||
become: yes
|
||||
file:
|
||||
path: "{{ logdir }}"
|
||||
state: directory
|
||||
owner: stack
|
||||
group: "{{ ansible_user }}"
|
||||
mode: 0775
|
@ -17,4 +17,8 @@ testresources>=2.0.0 # Apache-2.0/BSD
|
||||
testscenarios>=0.4 # Apache-2.0/BSD
|
||||
WebTest>=2.0.27 # MIT
|
||||
testtools>=2.2.0 # MIT
|
||||
|
||||
# NOTE: Precisely we need ussuri neutron and neutron 15.y.z is train release
|
||||
# but zuul installs neutron master as we specify it as required-projects.
|
||||
# Let's update the lower bound once neutron ussuri is releaesd including beta.
|
||||
neutron>=15.0.0 # Apache-2.0
|
||||
|
2
tox.ini
2
tox.ini
@ -52,7 +52,7 @@ setenv = {[testenv:functional]setenv}
|
||||
{[testenv:dsvm]setenv}
|
||||
deps = {[testenv:functional]deps}
|
||||
commands =
|
||||
{toxinidir}/tools/ostestr_compat_shim.sh {posargs}
|
||||
stestr run {posargs}
|
||||
|
||||
[testenv:cover]
|
||||
envdir = {toxworkdir}/shared
|
||||
|
32
zuul.d/base.yaml
Normal file
32
zuul.d/base.yaml
Normal file
@ -0,0 +1,32 @@
|
||||
- job:
|
||||
name: ovn-octavia-provider-functional
|
||||
parent: devstack-minimal
|
||||
description: Run OVN Octavia provider functional tests
|
||||
timeout: 7800
|
||||
required-projects:
|
||||
- opendev.org/openstack/devstack
|
||||
- openstack/neutron
|
||||
- openstack/requirements
|
||||
roles:
|
||||
- zuul: openstack/devstack
|
||||
pre-run: playbooks/configure_functional_job.yaml
|
||||
run: playbooks/run_functional_job.yaml
|
||||
post-run: playbooks/post_functional_job.yaml
|
||||
irrelevant-files:
|
||||
- ^.*\.rst$
|
||||
- ^doc/.*$
|
||||
- ^releasenotes/.*$
|
||||
vars:
|
||||
devstack_services:
|
||||
# Ignore any default set by devstack. Emit a "disable_all_services".
|
||||
base: false
|
||||
devstack_localrc:
|
||||
INSTALL_TESTONLY_PACKAGES: true
|
||||
DATABASE_PASSWORD: stackdb
|
||||
tox_envlist: dsvm-functional
|
||||
tox_constraints_file: '{{ ansible_user_dir }}/src/opendev.org/openstack/requirements/upper-constraints.txt'
|
||||
zuul_copy_output:
|
||||
# We need to copy directory with logs to have it in job artifacts also,
|
||||
# /opt/stack/logs is default logs directory defined in neutron's
|
||||
# tox.ini file
|
||||
'{{ devstack_base_dir }}/logs/dsvm-functional-logs': logs
|
@ -11,9 +11,7 @@
|
||||
required-projects:
|
||||
- openstack/neutron
|
||||
voting: false
|
||||
- ovn-octavia-provider-functional
|
||||
gate:
|
||||
jobs:
|
||||
- openstack-tox-cover:
|
||||
required-projects:
|
||||
- openstack/neutron
|
||||
voting: false
|
||||
- ovn-octavia-provider-functional
|
||||
|
Loading…
Reference in New Issue
Block a user