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: Ia65492db1688f3a3fce22a4432ae8445f67c37b3changes/86/708386/13
parent
000049c15d
commit
ec629c2e0c
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,4 @@
|
|||
- hosts: all
|
||||
roles:
|
||||
- setup_logdir
|
||||
- configure_functional_tests
|
|
@ -0,0 +1,5 @@
|
|||
- hosts: all
|
||||
roles:
|
||||
- fetch_journal_log
|
||||
- fetch-tox-output
|
||||
- fetch-subunit-output
|
|
@ -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
|
|
@ -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
|
|
@ -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"
|
|
@ -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
|
|
@ -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.
|
|
@ -0,0 +1,2 @@
|
|||
journal_log_path: "{{ ansible_user_dir }}/logs"
|
||||
journal_log_file_name: "{{ journal_log_path }}/journal.log"
|
|
@ -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
|
|
@ -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.
|
|
@ -0,0 +1 @@
|
|||
logdir: /opt/stack/logs
|
|
@ -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
|
||||
|
|
|
@ -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