Delete unused files in tests/contrib
Code in octavia/tests/contrib is now obsoleted with the retirement of neutron-lbaas. Change-Id: I73566e535a16dd73f3b32659668d0fb6ae6ad22c
This commit is contained in:
parent
88c4b9bb9d
commit
89f7d349e0
|
@ -1,63 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
|
|
||||||
# This file is meant to be sourced by the other hooks
|
|
||||||
|
|
||||||
# Legacy values for $1, $2 and $3:
|
|
||||||
# $1 - dsvm-functional, tempest (testtype)
|
|
||||||
# $2 - lbaasv2, lbaasv1 (octaviaversion)
|
|
||||||
# $3 - scenario, minimal, api, healthmonitor, listener, loadbalancer, member, pool (octaviatest)
|
|
||||||
|
|
||||||
# Args being phased in:
|
|
||||||
# $1 - same
|
|
||||||
# $2 - same
|
|
||||||
# $3 - test-driver, with any missing -driver being "octavia"
|
|
||||||
# scenario-octavia
|
|
||||||
# minimal-octavia
|
|
||||||
# api-namespace
|
|
||||||
# api-{thirdparty}
|
|
||||||
# healthmonitor-octavia
|
|
||||||
# listener-octavia
|
|
||||||
# loadbalancer-octavia
|
|
||||||
# member-octavia
|
|
||||||
# pool-octavia
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
testtype="$1"
|
|
||||||
octaviaversion="$2"
|
|
||||||
octaviatest="$3"
|
|
||||||
|
|
||||||
case $testtype in
|
|
||||||
"dsvm-functional")
|
|
||||||
testenv=$testtype
|
|
||||||
;;
|
|
||||||
|
|
||||||
"tempest")
|
|
||||||
lbaasenv=$(echo "$octaviatest" | perl -ne '/^(.*)-([^-]+)$/ && print "$1";')
|
|
||||||
if [ -z "$lbaasenv" ]; then
|
|
||||||
lbaasenv=$octaviatest
|
|
||||||
fi
|
|
||||||
lbaasdriver=$(echo "$octaviatest" | perl -ne '/^(.*)-([^-]+)$/ && print "$2";')
|
|
||||||
if [ -z "$lbaasdriver" ]; then
|
|
||||||
lbaasdriver='octavia'
|
|
||||||
fi
|
|
||||||
|
|
||||||
testenv=${octaviatest:-"apiv1"}
|
|
||||||
|
|
||||||
if [ "$octaviaversion" = "v1" ]; then
|
|
||||||
case "$lbaasenv" in
|
|
||||||
"api"|"healthmonitor"|"listener"|"loadbalancer"|"member"|"minimal"|"pool")
|
|
||||||
testenv="apiv1"
|
|
||||||
;;
|
|
||||||
"scenario")
|
|
||||||
testenv="scenario"
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
echo "Unrecognized env $lbaasenv".
|
|
||||||
exit 1
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
esac
|
|
|
@ -1,80 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
|
|
||||||
set -ex
|
|
||||||
|
|
||||||
function wait_for_loadbalancer_active() {
|
|
||||||
lb_name=$1
|
|
||||||
while [ $(neutron lbaas-loadbalancer-list \
|
|
||||||
| grep $lb_name | grep ACTIVE \
|
|
||||||
| wc --lines) == 0 ]; do
|
|
||||||
sleep 2
|
|
||||||
done
|
|
||||||
}
|
|
||||||
|
|
||||||
BUILD_DIR=$(mktemp -d)
|
|
||||||
cp $( dirname "${BASH_SOURCE[0]}" )/httpd.go ${BUILD_DIR}
|
|
||||||
pushd ${BUILD_DIR}
|
|
||||||
go build -ldflags "-linkmode external -extldflags -static" httpd.go
|
|
||||||
popd
|
|
||||||
|
|
||||||
SEC_GROUP_ID=$( openstack security group create "app-server-sec-group" \
|
|
||||||
-f value -c id)
|
|
||||||
openstack security group rule create ${SEC_GROUP_ID} --protocol tcp \
|
|
||||||
--dst-port 22
|
|
||||||
openstack security group rule create ${SEC_GROUP_ID} --protocol tcp \
|
|
||||||
--dst-port 8080
|
|
||||||
|
|
||||||
ssh-keygen -q -b 4096 -t rsa -N "" -f ${BUILD_DIR}/id_rsa
|
|
||||||
openstack keypair create "app-server-key" --public-key ${BUILD_DIR}/id_rsa.pub
|
|
||||||
|
|
||||||
PRIVATE_NET_ID=$( openstack network show private -f value -c id )
|
|
||||||
|
|
||||||
neutron lbaas-loadbalancer-create --name lb1 private-subnet
|
|
||||||
wait_for_loadbalancer_active lb
|
|
||||||
neutron lbaas-listener-create --name listener1 \
|
|
||||||
--loadbalancer lb1 \
|
|
||||||
--protocol HTTP \
|
|
||||||
--protocol-port 80 \
|
|
||||||
--connection-limit 100000
|
|
||||||
wait_for_loadbalancer_active lb1
|
|
||||||
neutron lbaas-pool-create --name pool1 \
|
|
||||||
--lb-algorithm ROUND_ROBIN \
|
|
||||||
--listener listener1 \
|
|
||||||
--protocol HTTP
|
|
||||||
wait_for_loadbalancer_active lb1
|
|
||||||
|
|
||||||
for NUM in $( seq -f "%02.0f" 1 3 ); do
|
|
||||||
# For higher scale testing you may want to use a large flavor assuming your
|
|
||||||
# environment has capacity
|
|
||||||
SERVER_ID=$( openstack server create app${NUM} \
|
|
||||||
--image cirros-0.3.4-x86_64-uec \
|
|
||||||
--flavor m1.tiny \
|
|
||||||
--security-group ${SEC_GROUP_ID} \
|
|
||||||
--nic net-id=${PRIVATE_NET_ID} \
|
|
||||||
--key-name "app-server-key" \
|
|
||||||
--wait -f value -c id )
|
|
||||||
sleep 30
|
|
||||||
SERVER_IPV4=$( openstack server show ${SERVER_ID} \
|
|
||||||
-c addresses -f value \
|
|
||||||
| perl -ne 'print $1 if /(\d+\.\d+\.\d+\.\d+)/' )
|
|
||||||
|
|
||||||
scp -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null \
|
|
||||||
-i ${BUILD_DIR}/id_rsa \
|
|
||||||
${BUILD_DIR}/httpd cirros@${SERVER_IPV4}:/dev/shm/
|
|
||||||
ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null \
|
|
||||||
-i ${BUILD_DIR}/id_rsa cirros@${SERVER_IPV4} \
|
|
||||||
sudo sh -c "ulimit -n 100000; screen -d -m /dev/shm/httpd \
|
|
||||||
-id ${NUM} -port 8080"
|
|
||||||
|
|
||||||
neutron lbaas-member-create --subnet private-subnet \
|
|
||||||
--address ${SERVER_IPV4} \
|
|
||||||
--name app${NUM} \
|
|
||||||
--protocol-port 8080 pool1
|
|
||||||
wait_for_loadbalancer_active lb1
|
|
||||||
done
|
|
||||||
|
|
||||||
VIP_ADDRESS=$( neutron lbaas-loadbalancer-show lb1 -f value -c vip_address )
|
|
||||||
neutron lbaas-loadbalancer-show lb1
|
|
||||||
|
|
||||||
echo -e "You can now perform a load test against this load balancer. " \
|
|
||||||
"For example:\n ab -n 40000 -c 10000 http://${VIP_ADDRESS}/slow"
|
|
|
@ -1,133 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
|
|
||||||
set -ex
|
|
||||||
|
|
||||||
GATE_DEST=$BASE/new
|
|
||||||
|
|
||||||
_DEVSTACK_LOCAL_CONFIG_TAIL=
|
|
||||||
|
|
||||||
# Inject config from hook
|
|
||||||
function load_conf_hook {
|
|
||||||
local hook="$1"
|
|
||||||
local GATE_HOOKS=$GATE_DEST/octavia/octavia/tests/contrib/hooks
|
|
||||||
|
|
||||||
_DEVSTACK_LOCAL_CONFIG_TAIL+=$'\n'"$(cat $GATE_HOOKS/$hook)"
|
|
||||||
}
|
|
||||||
|
|
||||||
export DEVSTACK_LOCAL_CONFIG+=$'\n'"enable_plugin barbican https://opendev.org/openstack/barbican"$'\n'
|
|
||||||
|
|
||||||
# Allow testing against diskimage-builder changes with depends-on
|
|
||||||
export DEVSTACK_LOCAL_CONFIG+=$'\n'"LIBS_FROM_GIT+=,diskimage-builder"$'\n'
|
|
||||||
|
|
||||||
# Sort out our gate args
|
|
||||||
. $(dirname "$0")/decode_args.sh
|
|
||||||
|
|
||||||
# Note: The check for OVH and limestone instances is temporary until they
|
|
||||||
# resolve the KVM failures as logged here:
|
|
||||||
# https://bugzilla.kernel.org/show_bug.cgi?id=192521
|
|
||||||
# However, this may be resolved at OVH before the kernel bug is resolved.
|
|
||||||
if $(egrep --quiet '(vmx|svm)' /proc/cpuinfo) && [[ ( ! $(hostname) =~ "ovh" && ! $(hostname) =~ "limestone" ) ]]; then
|
|
||||||
export DEVSTACK_GATE_LIBVIRT_TYPE=kvm
|
|
||||||
fi
|
|
||||||
|
|
||||||
function _setup_octavia_multinode {
|
|
||||||
|
|
||||||
PRIMARY_NODE_IP=$(cat /etc/nodepool/primary_node_private)
|
|
||||||
SUBNODE_IP=$(head -n1 /etc/nodepool/sub_nodes_private)
|
|
||||||
|
|
||||||
# OCTAVIA_CONTROLLER_IP_PORT_LIST are the ips inside the
|
|
||||||
# lb-mgmt network that the amphoras reach via heartbeats
|
|
||||||
COMMON_MULTINODE_CONFIG="
|
|
||||||
OCTAVIA_USE_PREGENERATED_CERTS=True
|
|
||||||
OCTAVIA_USE_PREGENERATED_SSH_KEY=True
|
|
||||||
OCTAVIA_CONTROLLER_IP_PORT_LIST=192.168.0.3:5555,192.168.0.4:5555
|
|
||||||
|
|
||||||
# Embedded fix for devstack bug/1629133 , this line can be removed once
|
|
||||||
# that bug is fixed
|
|
||||||
SUBNETPOOL_PREFIX_V4=10.0.0.0/16"$'\n'
|
|
||||||
|
|
||||||
export DEVSTACK_LOCAL_CONFIG+="$COMMON_MULTINODE_CONFIG
|
|
||||||
OCTAVIA_NODE=main
|
|
||||||
OCTAVIA_NODES=main:$PRIMARY_NODE_IP,second:$SUBNODE_IP
|
|
||||||
enable_service o-api-ha
|
|
||||||
OCTAVIA_MGMT_PORT_IP=192.168.0.3"$'\n'
|
|
||||||
|
|
||||||
export DEVSTACK_SUBNODE_CONFIG+="$COMMON_MULTINODE_CONFIG
|
|
||||||
OCTAVIA_NODE=second
|
|
||||||
enable_plugin octavia https://opendev.org/openstack/octavia
|
|
||||||
OCTAVIA_MGMT_PORT_IP=192.168.0.4"$'\n'
|
|
||||||
}
|
|
||||||
|
|
||||||
function _setup_octavia {
|
|
||||||
export DEVSTACK_LOCAL_CONFIG+=$'\n'"OCTAVIA_DIB_TRACING=True"$'\n'
|
|
||||||
export DEVSTACK_LOCAL_CONFIG+=$'\n'"enable_plugin octavia https://opendev.org/openstack/octavia"$'\n'
|
|
||||||
# Use infra's cached version of the file
|
|
||||||
if [ -f /opt/stack/new/devstack/files/get-pip.py ]; then
|
|
||||||
export DEVSTACK_LOCAL_CONFIG+=$'\n'"DIB_REPOLOCATION_pip_and_virtualenv=file:///opt/stack/new/devstack/files/get-pip.py"$'\n'
|
|
||||||
fi
|
|
||||||
if [ "$testenv" != "apiv1" ]; then
|
|
||||||
ENABLED_SERVICES+="octavia,o-cw,o-hk,o-hm,o-api,"
|
|
||||||
if [ "$DEVSTACK_GATE_TOPOLOGY" == "multinode" ]; then
|
|
||||||
_setup_octavia_multinode
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
if [ "$testenv" = "apiv1" ]; then
|
|
||||||
load_conf_hook apiv1
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "$testenv" = "scenario" ]; then
|
|
||||||
load_conf_hook scenario
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
# Make sure lbaasv2 is listed as enabled for tempest
|
|
||||||
load_conf_hook api_extensions
|
|
||||||
|
|
||||||
case "$testtype" in
|
|
||||||
|
|
||||||
"dsvm-functional")
|
|
||||||
PROJECT_NAME=octavia
|
|
||||||
OCTAVIA_PATH=$GATE_DEST/$PROJECT_NAME
|
|
||||||
IS_GATE=True
|
|
||||||
USE_CONSTRAINT_ENV=False
|
|
||||||
export LOG_COLOR=False
|
|
||||||
source "$OCTAVIA"/tools/configure_for_lbaas_func_testing.sh
|
|
||||||
|
|
||||||
# Make the workspace owned by the stack user
|
|
||||||
sudo chown -R "$STACK_USER":"$STACK_USER" "$BASE"
|
|
||||||
|
|
||||||
configure_host_for_lbaas_func_testing
|
|
||||||
;;
|
|
||||||
|
|
||||||
"tempest")
|
|
||||||
# These are not needed with either v1 or v2
|
|
||||||
ENABLED_SERVICES+="-c-api,-c-bak,-c-sch,-c-vol,-cinder,"
|
|
||||||
ENABLED_SERVICES+="-s-account,-s-container,-s-object,-s-proxy,"
|
|
||||||
|
|
||||||
if [ "$testenv" != "scenario" ]; then
|
|
||||||
export DEVSTACK_LOCAL_CONFIG+=$'\n'"DISABLE_AMP_IMAGE_BUILD=True"$'\n'
|
|
||||||
# Not needed for API tests
|
|
||||||
ENABLED_SERVICES+="-horizon,-ceilometer-acentral,-ceilometer-acompute,"
|
|
||||||
ENABLED_SERVICES+="-ceilometer-alarm-evaluator,-ceilometer-alarm-notifier,"
|
|
||||||
ENABLED_SERVICES+="-ceilometer-anotification,-ceilometer-api,"
|
|
||||||
ENABLED_SERVICES+="-ceilometer-collector,"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "$lbaasdriver" = "namespace" ]; then
|
|
||||||
export DEVSTACK_LOCAL_CONFIG+=$'\n'"NEUTRON_LBAAS_SERVICE_PROVIDERV2=LOADBALANCERV2:Haproxy:neutron_lbaas.drivers.haproxy.plugin_driver.HaproxyOnHostPluginDriver:default"$'\n'
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "$lbaasdriver" = "octavia" ]; then
|
|
||||||
_setup_octavia
|
|
||||||
fi
|
|
||||||
|
|
||||||
export ENABLED_SERVICES
|
|
||||||
export DEVSTACK_LOCAL_CONFIG+=$'\n'"$_DEVSTACK_LOCAL_CONFIG_TAIL"
|
|
||||||
"$GATE_DEST"/devstack-gate/devstack-vm-gate.sh
|
|
||||||
;;
|
|
||||||
|
|
||||||
*)
|
|
||||||
echo "Unrecognized test type $testtype".
|
|
||||||
exit 1
|
|
||||||
;;
|
|
||||||
esac
|
|
|
@ -1 +0,0 @@
|
||||||
NETWORK_API_EXTENSIONS="all,lbaasv2"
|
|
|
@ -1,8 +0,0 @@
|
||||||
[[post-config|/etc/octavia/octavia.conf]]
|
|
||||||
[DEFAULT]
|
|
||||||
debug = True
|
|
||||||
|
|
||||||
[controller_worker]
|
|
||||||
amphora_driver = amphora_noop_driver
|
|
||||||
compute_driver = compute_noop_driver
|
|
||||||
network_driver = network_noop_driver
|
|
|
@ -1,3 +0,0 @@
|
||||||
[[post-config|/etc/octavia/octavia.conf]]
|
|
||||||
[DEFAULT]
|
|
||||||
debug = True
|
|
|
@ -1,134 +0,0 @@
|
||||||
package main
|
|
||||||
|
|
||||||
import (
|
|
||||||
"flag"
|
|
||||||
"fmt"
|
|
||||||
"io"
|
|
||||||
"net"
|
|
||||||
"net/http"
|
|
||||||
"sync"
|
|
||||||
"time"
|
|
||||||
)
|
|
||||||
|
|
||||||
var sess_cookie http.Cookie
|
|
||||||
var resp string
|
|
||||||
|
|
||||||
type ConnectionCount struct {
|
|
||||||
mu sync.Mutex
|
|
||||||
cur_conn int
|
|
||||||
max_conn int
|
|
||||||
total_conn int
|
|
||||||
packets int
|
|
||||||
}
|
|
||||||
|
|
||||||
var scoreboard ConnectionCount
|
|
||||||
|
|
||||||
func (cc *ConnectionCount) open() {
|
|
||||||
cc.mu.Lock()
|
|
||||||
defer cc.mu.Unlock()
|
|
||||||
|
|
||||||
cc.cur_conn++
|
|
||||||
cc.total_conn++
|
|
||||||
}
|
|
||||||
|
|
||||||
func (cc *ConnectionCount) close() {
|
|
||||||
cc.mu.Lock()
|
|
||||||
defer cc.mu.Unlock()
|
|
||||||
|
|
||||||
if cc.cur_conn > cc.max_conn {
|
|
||||||
cc.max_conn = cc.cur_conn
|
|
||||||
}
|
|
||||||
cc.cur_conn--
|
|
||||||
}
|
|
||||||
|
|
||||||
func (cc *ConnectionCount) stats() (int, int, int) {
|
|
||||||
cc.mu.Lock()
|
|
||||||
defer cc.mu.Unlock()
|
|
||||||
|
|
||||||
return cc.max_conn, cc.total_conn, cc.packets
|
|
||||||
}
|
|
||||||
|
|
||||||
func (cc *ConnectionCount) inc() {
|
|
||||||
cc.mu.Lock()
|
|
||||||
defer cc.mu.Unlock()
|
|
||||||
|
|
||||||
cc.packets++
|
|
||||||
}
|
|
||||||
|
|
||||||
func (cc *ConnectionCount) reset() {
|
|
||||||
cc.mu.Lock()
|
|
||||||
defer cc.mu.Unlock()
|
|
||||||
|
|
||||||
cc.max_conn = 0
|
|
||||||
cc.total_conn = 0
|
|
||||||
cc.packets = 0
|
|
||||||
}
|
|
||||||
|
|
||||||
func root_handler(w http.ResponseWriter, r *http.Request) {
|
|
||||||
scoreboard.open()
|
|
||||||
defer scoreboard.close()
|
|
||||||
|
|
||||||
http.SetCookie(w, &sess_cookie)
|
|
||||||
io.WriteString(w, resp)
|
|
||||||
}
|
|
||||||
|
|
||||||
func slow_handler(w http.ResponseWriter, r *http.Request) {
|
|
||||||
scoreboard.open()
|
|
||||||
defer scoreboard.close()
|
|
||||||
|
|
||||||
delay, err := time.ParseDuration(r.URL.Query().Get("delay"))
|
|
||||||
if err != nil {
|
|
||||||
delay = 3 * time.Second
|
|
||||||
}
|
|
||||||
|
|
||||||
time.Sleep(delay)
|
|
||||||
http.SetCookie(w, &sess_cookie)
|
|
||||||
io.WriteString(w, resp)
|
|
||||||
}
|
|
||||||
|
|
||||||
func stats_handler(w http.ResponseWriter, r *http.Request) {
|
|
||||||
http.SetCookie(w, &sess_cookie)
|
|
||||||
max_conn, total_conn, packets := scoreboard.stats()
|
|
||||||
fmt.Fprintf(w, "max_conn=%d\ntotal_conn=%d\npackets=%d\n", max_conn, total_conn, packets)
|
|
||||||
}
|
|
||||||
|
|
||||||
func reset_handler(w http.ResponseWriter, r *http.Request) {
|
|
||||||
http.SetCookie(w, &sess_cookie)
|
|
||||||
scoreboard.reset()
|
|
||||||
fmt.Fprintf(w, "reset\n")
|
|
||||||
}
|
|
||||||
|
|
||||||
func udp_handler(port *int) {
|
|
||||||
ServerConn, _ := net.ListenUDP("udp", &net.UDPAddr{IP: []byte{0, 0, 0, 0}, Port: *port, Zone: ""})
|
|
||||||
defer ServerConn.Close()
|
|
||||||
buf := make([]byte, 1024)
|
|
||||||
for {
|
|
||||||
n, addr, _ := ServerConn.ReadFromUDP(buf)
|
|
||||||
scoreboard.inc()
|
|
||||||
fmt.Println("Received ", string(buf[0:n]), " from ", addr)
|
|
||||||
ServerConn.WriteTo([]byte(resp), addr)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func main() {
|
|
||||||
portPtr := flag.Int("port", 8080, "TCP port to listen on")
|
|
||||||
idPtr := flag.String("id", "1", "Server ID")
|
|
||||||
udpPortPtr := flag.Int("udpPort", -1, "UDP port to listen on. If port <=0 UDP server won't start")
|
|
||||||
|
|
||||||
flag.Parse()
|
|
||||||
|
|
||||||
resp = fmt.Sprintf("%s", *idPtr)
|
|
||||||
sess_cookie.Name = "JSESSIONID"
|
|
||||||
sess_cookie.Value = *idPtr
|
|
||||||
|
|
||||||
http.HandleFunc("/", root_handler)
|
|
||||||
http.HandleFunc("/slow", slow_handler)
|
|
||||||
http.HandleFunc("/stats", stats_handler)
|
|
||||||
http.HandleFunc("/reset", reset_handler)
|
|
||||||
portStr := fmt.Sprintf(":%d", *portPtr)
|
|
||||||
if *udpPortPtr > 0 {
|
|
||||||
// only start server if flag is set
|
|
||||||
go udp_handler(udpPortPtr)
|
|
||||||
}
|
|
||||||
http.ListenAndServe(portStr, nil)
|
|
||||||
}
|
|
|
@ -1,87 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
|
|
||||||
set -xe
|
|
||||||
|
|
||||||
TEMPEST_CONFIG_DIR="$BASE/new/tempest/etc"
|
|
||||||
SCRIPTS_DIR="/usr/os-testr-env/bin"
|
|
||||||
OCTAVIA_DIR="$BASE/new/octavia"
|
|
||||||
|
|
||||||
# Sort out our gate args
|
|
||||||
. $(dirname "$0")/decode_args.sh
|
|
||||||
|
|
||||||
if [ "$testenv" = "apiv1" ]; then
|
|
||||||
case "$lbaasenv" in
|
|
||||||
minimal)
|
|
||||||
# Temporarily just do the happy path
|
|
||||||
test_subset="octavia.tests.tempest.v2.api.test_load_balancers_non_admin.LoadBalancersTestJSON.test_create_load_balancer(?!_) "
|
|
||||||
test_subset+="octavia.tests.tempest.v2.api.test_load_balancers_non_admin.LoadBalancersTestJSON.test_get_load_balancer_stats(?!_) "
|
|
||||||
test_subset+="octavia.tests.tempest.v2.api.test_load_balancers_non_admin.LoadBalancersTestJSON.test_get_load_balancer_status_tree(?!_) "
|
|
||||||
test_subset+="octavia.tests.tempest.v2.api.test_listeners_non_admin.ListenersTestJSON.test_create_listener(?!_) "
|
|
||||||
test_subset+="octavia.tests.tempest.v2.api.test_pools_non_admin.TestPools.test_create_pool(?!_) "
|
|
||||||
test_subset+="octavia.tests.tempest.v2.api.test_members_non_admin.MemberTestJSON.test_add_member(?!_) "
|
|
||||||
test_subset+="octavia.tests.tempest.v2.api.test_health_monitors_non_admin.TestHealthMonitors.test_create_health_monitor(?!_)"
|
|
||||||
;;
|
|
||||||
healthmonitor)
|
|
||||||
test_subset="health_monitor"
|
|
||||||
;;
|
|
||||||
listener)
|
|
||||||
test_subset="listeners"
|
|
||||||
;;
|
|
||||||
loadbalancer)
|
|
||||||
test_subset="load_balancers"
|
|
||||||
;;
|
|
||||||
member)
|
|
||||||
test_subset="members"
|
|
||||||
;;
|
|
||||||
pool)
|
|
||||||
test_subset="pools"
|
|
||||||
;;
|
|
||||||
scenario)
|
|
||||||
testenv="scenario"
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
fi
|
|
||||||
|
|
||||||
function generate_testr_results {
|
|
||||||
# Give job user rights to access tox logs
|
|
||||||
sudo -H -u "$owner" chmod o+rw .
|
|
||||||
if [ -d ".stestr" ] ; then
|
|
||||||
sudo -H -u "$owner" chmod o+rw -R .stestr
|
|
||||||
if [ -f ".stestr/0" ] ; then
|
|
||||||
stestr last --subunit > ./testrepository.subunit
|
|
||||||
$SCRIPTS_DIR/subunit2html ./testrepository.subunit testr_results.html
|
|
||||||
gzip -9 ./testrepository.subunit
|
|
||||||
gzip -9 ./testr_results.html
|
|
||||||
sudo mv ./*.gz /opt/stack/logs/
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
case $testtype in
|
|
||||||
"dsvm-functional")
|
|
||||||
owner=stack
|
|
||||||
sudo_env=
|
|
||||||
;;
|
|
||||||
"tempest")
|
|
||||||
owner=tempest
|
|
||||||
# Configure the api and scenario tests to use the tempest.conf set by devstack
|
|
||||||
sudo_env="TEMPEST_CONFIG_DIR=$TEMPEST_CONFIG_DIR"
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
# Set owner permissions according to job's requirements.
|
|
||||||
cd "$OCTAVIA_DIR"
|
|
||||||
sudo chown -R $owner:stack "$OCTAVIA_DIR"
|
|
||||||
|
|
||||||
# Run tests
|
|
||||||
echo "Running Octavia $testenv test suite"
|
|
||||||
set +e
|
|
||||||
|
|
||||||
sudo -H -u $owner $sudo_env tox -e $testenv -- $test_subset
|
|
||||||
|
|
||||||
testr_exit_code=$?
|
|
||||||
set -e
|
|
||||||
|
|
||||||
# Collect and parse results
|
|
||||||
generate_testr_results
|
|
||||||
exit $testr_exit_code
|
|
Loading…
Reference in New Issue