Enable VPN test cases
With the gate hook changes from Ieeaca1375d68705509f4e05f10cb35c0fa0b9582 and new jobs from I2db939bf99288c0cdec06cdd49fec3bdc72e5253, this commit does several things: * Moves test modules to tests/functional/core/ * Moves VPN test cases to new module & places in tests/functional/adv-svcs * Modifies tox.ini to support 'functional' and 'functional-adv-svcs' test This commit will be used to test the experimental jobs, one that runs the same tests as before, one that runs VPN tests using the VPN DevStack plugin via the gate-hook.sh. Modified post test hook so that test results are properly created (was not seeing results from testr, prior to this). Goal is to place all advanced services into tests/functional/adv-svcs/ and use plugins, as needed in the gate hook. Change-Id: I1e3d19e51a1cbd1bc947bbf9927260cd4d73841a Depends-On: I2db939bf99288c0cdec06cdd49fec3bdc72e5253 Partial-Bug: 1484148
This commit is contained in:
parent
3e115991c1
commit
b915201dbf
0
neutronclient/tests/functional/adv-svcs/__init__.py
Normal file
0
neutronclient/tests/functional/adv-svcs/__init__.py
Normal file
@ -0,0 +1,55 @@
|
|||||||
|
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
||||||
|
# not use this file except in compliance with the License. You may obtain
|
||||||
|
# a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing, software
|
||||||
|
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||||
|
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||||
|
# License for the specific language governing permissions and limitations
|
||||||
|
# under the License.
|
||||||
|
|
||||||
|
from neutronclient.tests.functional import base
|
||||||
|
|
||||||
|
|
||||||
|
class SimpleReadOnlyNeutronVpnClientTest(base.ClientTestBase):
|
||||||
|
|
||||||
|
"""This is a first pass at a simple read only python-neutronclient test.
|
||||||
|
This only exercises vpn based client commands that are read only.
|
||||||
|
|
||||||
|
This should test commands:
|
||||||
|
* as a regular user
|
||||||
|
* as a admin user
|
||||||
|
* with and without optional parameters
|
||||||
|
* initially just check return codes, and later test command outputs
|
||||||
|
|
||||||
|
"""
|
||||||
|
|
||||||
|
def test_neutron_vpn_ikepolicy_list(self):
|
||||||
|
ikepolicy = self.parser.listing(self.neutron('vpn-ikepolicy-list'))
|
||||||
|
self.assertTableStruct(ikepolicy, ['id', 'name',
|
||||||
|
'auth_algorithm',
|
||||||
|
'encryption_algorithm',
|
||||||
|
'ike_version', 'pfs'])
|
||||||
|
|
||||||
|
def test_neutron_vpn_ipsecpolicy_list(self):
|
||||||
|
ipsecpolicy = self.parser.listing(self.neutron('vpn-ipsecpolicy-list'))
|
||||||
|
self.assertTableStruct(ipsecpolicy, ['id', 'name',
|
||||||
|
'auth_algorithm',
|
||||||
|
'encryption_algorithm',
|
||||||
|
'pfs'])
|
||||||
|
|
||||||
|
def test_neutron_vpn_service_list(self):
|
||||||
|
vpn_list = self.parser.listing(self.neutron('vpn-service-list'))
|
||||||
|
self.assertTableStruct(vpn_list, ['id', 'name',
|
||||||
|
'router_id', 'status'])
|
||||||
|
|
||||||
|
def test_neutron_ipsec_site_connection_list(self):
|
||||||
|
ipsec_site = self.parser.listing(self.neutron
|
||||||
|
('ipsec-site-connection-list'))
|
||||||
|
self.assertTableStruct(ipsec_site, ['id', 'name',
|
||||||
|
'peer_address',
|
||||||
|
'peer_cidrs',
|
||||||
|
'route_mode',
|
||||||
|
'auth_mode', 'status'])
|
0
neutronclient/tests/functional/core/__init__.py
Normal file
0
neutronclient/tests/functional/core/__init__.py
Normal file
@ -11,7 +11,6 @@
|
|||||||
# under the License.
|
# under the License.
|
||||||
|
|
||||||
import re
|
import re
|
||||||
import unittest2
|
|
||||||
|
|
||||||
from tempest_lib import exceptions
|
from tempest_lib import exceptions
|
||||||
|
|
||||||
@ -124,38 +123,6 @@ class SimpleReadOnlyNeutronClientTest(base.ClientTestBase):
|
|||||||
self.assertTableStruct(subnet_list, ['id', 'name', 'cidr',
|
self.assertTableStruct(subnet_list, ['id', 'name', 'cidr',
|
||||||
'allocation_pools'])
|
'allocation_pools'])
|
||||||
|
|
||||||
@unittest2.skip("Skipping until 1484148 is resolved")
|
|
||||||
def test_neutron_vpn_ikepolicy_list(self):
|
|
||||||
ikepolicy = self.parser.listing(self.neutron('vpn-ikepolicy-list'))
|
|
||||||
self.assertTableStruct(ikepolicy, ['id', 'name',
|
|
||||||
'auth_algorithm',
|
|
||||||
'encryption_algorithm',
|
|
||||||
'ike_version', 'pfs'])
|
|
||||||
|
|
||||||
@unittest2.skip("Skipping until 1484148 is resolved")
|
|
||||||
def test_neutron_vpn_ipsecpolicy_list(self):
|
|
||||||
ipsecpolicy = self.parser.listing(self.neutron('vpn-ipsecpolicy-list'))
|
|
||||||
self.assertTableStruct(ipsecpolicy, ['id', 'name',
|
|
||||||
'auth_algorithm',
|
|
||||||
'encryption_algorithm',
|
|
||||||
'pfs'])
|
|
||||||
|
|
||||||
@unittest2.skip("Skipping until 1484148 is resolved")
|
|
||||||
def test_neutron_vpn_service_list(self):
|
|
||||||
vpn_list = self.parser.listing(self.neutron('vpn-service-list'))
|
|
||||||
self.assertTableStruct(vpn_list, ['id', 'name',
|
|
||||||
'router_id', 'status'])
|
|
||||||
|
|
||||||
@unittest2.skip("Skipping until 1484148 is resolved")
|
|
||||||
def test_neutron_ipsec_site_connection_list(self):
|
|
||||||
ipsec_site = self.parser.listing(self.neutron
|
|
||||||
('ipsec-site-connection-list'))
|
|
||||||
self.assertTableStruct(ipsec_site, ['id', 'name',
|
|
||||||
'peer_address',
|
|
||||||
'peer_cidrs',
|
|
||||||
'route_mode',
|
|
||||||
'auth_mode', 'status'])
|
|
||||||
|
|
||||||
def test_neutron_firewall_list(self):
|
def test_neutron_firewall_list(self):
|
||||||
firewall_list = self.parser.listing(self.neutron
|
firewall_list = self.parser.listing(self.neutron
|
||||||
('firewall-list'))
|
('firewall-list'))
|
@ -3,11 +3,13 @@
|
|||||||
|
|
||||||
set -ex
|
set -ex
|
||||||
|
|
||||||
|
source $BASE/new/devstack-gate/functions.sh
|
||||||
|
start_timer
|
||||||
|
|
||||||
VENV=${1:-"functional"}
|
VENV=${1:-"functional"}
|
||||||
|
|
||||||
|
|
||||||
if [ "$VENV" == "functional-vpn" ]
|
if [ "$VENV" == "functional-adv-svcs" ]
|
||||||
then
|
then
|
||||||
export DEVSTACK_LOCAL_CONFIG="enable_plugin neutron-vpnaas git://git.openstack.org/openstack/neutron-vpnaas"
|
export DEVSTACK_LOCAL_CONFIG="enable_plugin neutron-vpnaas git://git.openstack.org/openstack/neutron-vpnaas"
|
||||||
fi
|
fi
|
||||||
|
@ -14,21 +14,43 @@
|
|||||||
|
|
||||||
# This script is executed inside post_test_hook function in devstack gate.
|
# This script is executed inside post_test_hook function in devstack gate.
|
||||||
|
|
||||||
|
SCRIPTS_DIR="/usr/os-testr-env/bin/"
|
||||||
|
|
||||||
|
function generate_test_logs {
|
||||||
|
local path="$1"
|
||||||
|
# Compress all $path/*.txt files and move the directories holding those
|
||||||
|
# files to /opt/stack/logs. Files with .log suffix have their
|
||||||
|
# suffix changed to .txt (so browsers will know to open the compressed
|
||||||
|
# files and not download them).
|
||||||
|
if [ -d "$path" ]
|
||||||
|
then
|
||||||
|
sudo find $path -iname "*.log" -type f -exec mv {} {}.txt \; -exec gzip -9 {}.txt \;
|
||||||
|
sudo mv $path/* /opt/stack/logs/
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
function generate_testr_results {
|
function generate_testr_results {
|
||||||
if [ -f .testrepository/0 ]; then
|
# Give job user rights to access tox logs
|
||||||
sudo .tox/functional/bin/testr last --subunit > $WORKSPACE/testrepository.subunit
|
sudo -H -u $owner chmod o+rw .
|
||||||
sudo mv $WORKSPACE/testrepository.subunit $BASE/logs/testrepository.subunit
|
sudo -H -u $owner chmod o+rw -R .testrepository
|
||||||
sudo /usr/os-testr-env/bin/subunit2html $BASE/logs/testrepository.subunit $BASE/logs/testr_results.html
|
if [ -f ".testrepository/0" ] ; then
|
||||||
sudo gzip -9 $BASE/logs/testrepository.subunit
|
.tox/$VENV/bin/subunit-1to2 < .testrepository/0 > ./testrepository.subunit
|
||||||
sudo gzip -9 $BASE/logs/testr_results.html
|
$SCRIPTS_DIR/subunit2html ./testrepository.subunit testr_results.html
|
||||||
sudo chown jenkins:jenkins $BASE/logs/testrepository.subunit.gz $BASE/logs/testr_results.html.gz
|
gzip -9 ./testrepository.subunit
|
||||||
sudo chmod a+r $BASE/logs/testrepository.subunit.gz $BASE/logs/testr_results.html.gz
|
gzip -9 ./testr_results.html
|
||||||
|
sudo mv ./*.gz /opt/stack/logs/
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "$venv" == "functional" ] || [ "$venv" == "functional-adv-svcs" ]
|
||||||
|
then
|
||||||
|
generate_test_logs "/tmp/${venv}-logs"
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
export NEUTRONCLIENT_DIR="$BASE/new/python-neutronclient"
|
export NEUTRONCLIENT_DIR="$BASE/new/python-neutronclient"
|
||||||
|
owner=jenkins
|
||||||
|
|
||||||
sudo chown -R jenkins:stack $NEUTRONCLIENT_DIR
|
sudo chown -R $owner:stack $NEUTRONCLIENT_DIR
|
||||||
|
|
||||||
# Get admin credentials
|
# Get admin credentials
|
||||||
cd $BASE/new/devstack
|
cd $BASE/new/devstack
|
||||||
@ -55,7 +77,7 @@ VENV=${1:-"functional"}
|
|||||||
echo "Running neutronclient functional test suite"
|
echo "Running neutronclient functional test suite"
|
||||||
set +e
|
set +e
|
||||||
# Preserve env for OS_ credentials
|
# Preserve env for OS_ credentials
|
||||||
sudo -E -H -u jenkins tox -e $VENV
|
sudo -E -H -u $owner tox -e $VENV
|
||||||
EXIT_CODE=$?
|
EXIT_CODE=$?
|
||||||
set -e
|
set -e
|
||||||
|
|
||||||
|
8
tox.ini
8
tox.ini
@ -24,7 +24,13 @@ commands = {posargs}
|
|||||||
|
|
||||||
[testenv:functional]
|
[testenv:functional]
|
||||||
setenv =
|
setenv =
|
||||||
OS_TEST_PATH = ./neutronclient/tests/functional
|
OS_TEST_PATH = ./neutronclient/tests/functional/core
|
||||||
|
OS_NEUTRONCLIENT_EXEC_DIR = {envdir}/bin
|
||||||
|
|
||||||
|
[testenv:functional-adv-svcs]
|
||||||
|
setenv =
|
||||||
|
OS_TEST_PATH = ./neutronclient/tests/functional/adv-svcs
|
||||||
|
OS_NEUTRONCLIENT_EXEC_DIR = {envdir}/bin
|
||||||
|
|
||||||
[testenv:cover]
|
[testenv:cover]
|
||||||
commands = python setup.py testr --coverage --testr-args='{posargs}'
|
commands = python setup.py testr --coverage --testr-args='{posargs}'
|
||||||
|
Loading…
Reference in New Issue
Block a user