Adding func_ovs tox environment for neutron ovs testing
This tox environment will be run with check experimental for now. Ultimately it should become part of the gate testing for the role. Change-Id: I410f029816590dde819a6c97bde5f159f7a791d1 Implements: blueprint support-openvswitch
This commit is contained in:
parent
1240dd0cf0
commit
eb0bb51faf
22
Vagrantfile
vendored
22
Vagrantfile
vendored
@ -1,13 +1,31 @@
|
||||
# Runs various tests defined in the tox.ini
|
||||
#
|
||||
# To run everything but functional tests:
|
||||
# vagrant up --provision-with bootstrap
|
||||
#
|
||||
# To run docs, linters and functional:
|
||||
# vagrant up
|
||||
#
|
||||
# To run docs, linters and func_ovs tests:
|
||||
# TOX_ENV=func_ovs vagrant up
|
||||
#
|
||||
Vagrant.configure(2) do |config|
|
||||
config.vm.box = "ubuntu/trusty64"
|
||||
config.vm.provider "virtualbox" do |v|
|
||||
v.memory = 2048
|
||||
v.cpus = 2
|
||||
end
|
||||
config.vm.provision "shell", inline: <<-SHELL
|
||||
# Run docs, linters, etc, but no functional tests
|
||||
config.vm.provision "bootstrap", type: "shell", inline: <<-SHELL
|
||||
sudo su -
|
||||
cd /vagrant
|
||||
apt-get update
|
||||
./run_tests.sh
|
||||
FUNCTIONAL_TEST=false ./run_tests.sh
|
||||
SHELL
|
||||
# Run functional tests
|
||||
config.vm.provision "func_test", type: "shell", inline: <<-SHELL
|
||||
sudo su -
|
||||
cd /vagrant
|
||||
tox -e #{ENV['TOX_ENV'] || "functional"}
|
||||
SHELL
|
||||
end
|
@ -33,7 +33,7 @@ pip install tox
|
||||
|
||||
# run through each tox env and execute the test
|
||||
for tox_env in $(awk -F= '/envlist/ {print $2}' tox.ini | sed 's/,/ /g'); do
|
||||
if [ "${tox_env}" != "functional" ]; then
|
||||
if [[ "${tox_env}" != "functional" ]] && [[ $tox_env != func_* ]]; then
|
||||
tox -e ${tox_env}
|
||||
elif [ "${tox_env}" == "functional" ]; then
|
||||
if ${FUNCTIONAL_TEST}; then
|
||||
|
@ -1,6 +1,5 @@
|
||||
# {{ ansible_managed }}
|
||||
|
||||
# Linux bridge agent physical interface mappings
|
||||
[ovs]
|
||||
{% if neutron_tunnel_types | length > 0 %}
|
||||
local_ip = {{ neutron_local_ip }}
|
||||
|
@ -1,8 +1,11 @@
|
||||
[all]
|
||||
localhost ansible_connection=local ansible_become=True
|
||||
localhost ansible_connection=local ansible_ssh_host=127.0.0.1 ansible_become=True
|
||||
infra1 ansible_host=10.100.100.2 ansible_become=True ansible_user=root
|
||||
openstack1 ansible_host=10.100.100.3 ansible_become=True ansible_user=root
|
||||
|
||||
[physical_host]
|
||||
localhost
|
||||
|
||||
[all_containers]
|
||||
infra1
|
||||
openstack1
|
||||
@ -50,6 +53,7 @@ openstack1
|
||||
neutron_agent
|
||||
neutron_dhcp_agent
|
||||
neutron_linuxbridge_agent
|
||||
neutron_openvswitch_agent
|
||||
neutron_metering_agent
|
||||
neutron_l3_agent
|
||||
neutron_lbaas_agent
|
61
tests/ovs_inventory
Normal file
61
tests/ovs_inventory
Normal file
@ -0,0 +1,61 @@
|
||||
[all]
|
||||
localhost ansible_connection=local ansible_ssh_host=127.0.0.1 ansible_become=True
|
||||
infra1 ansible_host=10.100.100.2 ansible_become=True ansible_user=root
|
||||
openstack1 ansible_host=10.100.100.3 ansible_become=True ansible_user=root
|
||||
|
||||
[physical_host]
|
||||
localhost
|
||||
|
||||
[all_containers]
|
||||
infra1
|
||||
openstack1
|
||||
|
||||
[rabbitmq_all]
|
||||
infra1
|
||||
|
||||
[galera_all]
|
||||
infra1
|
||||
|
||||
[service_all:children]
|
||||
rabbitmq_all
|
||||
galera_all
|
||||
|
||||
[keystone_all]
|
||||
openstack1
|
||||
|
||||
[neutron_agent]
|
||||
openstack1
|
||||
|
||||
[neutron_dhcp_agent]
|
||||
openstack1
|
||||
|
||||
[neutron_linuxbridge_agent]
|
||||
|
||||
[neutron_openvswitch_agent]
|
||||
openstack1
|
||||
|
||||
[neutron_metering_agent]
|
||||
openstack1
|
||||
|
||||
[neutron_l3_agent]
|
||||
openstack1
|
||||
|
||||
[neutron_lbaas_agent]
|
||||
openstack1
|
||||
|
||||
[neutron_metadata_agent]
|
||||
openstack1
|
||||
|
||||
[neutron_server]
|
||||
openstack1
|
||||
|
||||
[neutron_all:children]
|
||||
neutron_agent
|
||||
neutron_dhcp_agent
|
||||
neutron_linuxbridge_agent
|
||||
neutron_openvswitch_agent
|
||||
neutron_metering_agent
|
||||
neutron_l3_agent
|
||||
neutron_lbaas_agent
|
||||
neutron_metadata_agent
|
||||
neutron_server
|
8
tests/ovs_test_vars.yml
Normal file
8
tests/ovs_test_vars.yml
Normal file
@ -0,0 +1,8 @@
|
||||
---
|
||||
openstack_host_specific_kernel_modules:
|
||||
- name: "openvswitch"
|
||||
pattern: "CONFIG_OPENVSWITCH="
|
||||
group: "physical_host"
|
||||
|
||||
neutron_plugin_type: ml2.ovs
|
||||
neutron_local_ip: "{{ ansible_ssh_host }}"
|
@ -106,6 +106,10 @@
|
||||
set_fact:
|
||||
uca_apt_repo_url: "{{ ubuntu_repo_url.stdout | netorigin }}/ubuntu-cloud-archive"
|
||||
when: nodepool.stat.exists | bool
|
||||
- name: Include OVS testing vars
|
||||
include_vars: ovs_test_vars.yml
|
||||
when:
|
||||
- groups['neutron_openvswitch_agent'] | length > 0
|
||||
roles:
|
||||
- role: "{{ rolename | basename }}"
|
||||
post_tasks:
|
||||
|
@ -27,6 +27,14 @@
|
||||
url: "http://localhost:9696"
|
||||
status_code: 200
|
||||
|
||||
# No assertion around this yet, just useful for debug purposes
|
||||
# TODO(automagically) - Test for all expected agents and agent status
|
||||
- name: Neutron agents status
|
||||
shell: |
|
||||
. /root/openrc
|
||||
neutron agent-list
|
||||
register: agent_list
|
||||
|
||||
- name: Ensure that the DHCP agent is alive
|
||||
shell: |
|
||||
. /root/openrc
|
||||
@ -60,12 +68,13 @@
|
||||
delay: 10
|
||||
|
||||
- name: Check for dhcp network namespace
|
||||
shell: |
|
||||
ip netns | grep "^qdhcp"
|
||||
shell: ip netns
|
||||
register: dhcp_namespace
|
||||
until: dhcp_namespace.rc == 0
|
||||
retries: 5
|
||||
delay: 10
|
||||
|
||||
- name: Make sure the dhcp namespace is present
|
||||
assert:
|
||||
that:
|
||||
- "'qdhcp' in dhcp_namespace.stdout"
|
||||
|
||||
- name: Check for iptables checksum rule
|
||||
shell: |
|
||||
@ -74,3 +83,5 @@
|
||||
until : checksum_rule.rc == 0
|
||||
retries: 5
|
||||
delay: 10
|
||||
when:
|
||||
- groups['neutron_linuxbridge_agent'] | length > 0
|
||||
|
@ -32,7 +32,12 @@
|
||||
lxc_container_cache_files:
|
||||
- { src: '/etc/pip.conf', dest: '/etc/pip.conf' }
|
||||
when: nodepool.stat.exists | bool
|
||||
- name: Include OVS testing vars
|
||||
include_vars: ovs_test_vars.yml
|
||||
when:
|
||||
- groups['neutron_openvswitch_agent'] | length > 0
|
||||
roles:
|
||||
- role: "openstack_hosts"
|
||||
- role: "lxc_hosts"
|
||||
lxc_net_address: 10.100.100.1
|
||||
lxc_net_dhcp_range: 10.100.100.8,10.100.100.253
|
||||
|
24
tox.ini
24
tox.ini
@ -139,7 +139,7 @@ setenv =
|
||||
{[testenv:ansible]setenv}
|
||||
commands =
|
||||
{[testenv:ansible]commands}
|
||||
ansible-playbook -i {toxinidir}/tests/inventory \
|
||||
ansible-playbook -i {toxinidir}/tests/lxb_inventory \
|
||||
--syntax-check \
|
||||
--list-tasks \
|
||||
-e "rolename={toxinidir}" \
|
||||
@ -157,6 +157,8 @@ commands =
|
||||
# NOTE(odyssey4me): this target does not use constraints because
|
||||
# it doesn't work in OpenStack-CI yet. Once that's fixed, we can
|
||||
# drop the install_command.
|
||||
#
|
||||
# NOTE(automagically): this target tests neutron with linuxbridge
|
||||
install_command =
|
||||
pip install -U --force-reinstall {opts} {packages}
|
||||
deps =
|
||||
@ -165,11 +167,29 @@ setenv =
|
||||
{[testenv:ansible]setenv}
|
||||
commands =
|
||||
{[testenv:ansible]commands}
|
||||
ansible-playbook -i {toxinidir}/tests/inventory \
|
||||
ansible-playbook -i {toxinidir}/tests/lxb_inventory \
|
||||
-e "rolename={toxinidir}" \
|
||||
-e "install_test_packages=True" \
|
||||
{toxinidir}/tests/test.yml -vvvv
|
||||
|
||||
[testenv:func_ovs]
|
||||
# NOTE(odyssey4me): this target does not use constraints because
|
||||
# it doesn't work in OpenStack-CI yet. Once that's fixed, we can
|
||||
# drop the install_command.
|
||||
#
|
||||
# NOTE(automagically): this target tests neutron with ovs
|
||||
install_command =
|
||||
pip install -U --force-reinstall {opts} {packages}
|
||||
deps =
|
||||
{[testenv:ansible]deps}
|
||||
setenv =
|
||||
{[testenv:ansible]setenv}
|
||||
commands =
|
||||
{[testenv:ansible]commands}
|
||||
ansible-playbook -i {toxinidir}/tests/ovs_inventory \
|
||||
-e "rolename={toxinidir}" \
|
||||
-e "install_test_packages=True" \
|
||||
{toxinidir}/tests/test.yml -vvvv
|
||||
|
||||
[testenv:linters]
|
||||
deps =
|
||||
|
Loading…
Reference in New Issue
Block a user