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:
Carlos Goncalves 2019-05-17 16:50:24 +02:00
parent 88c4b9bb9d
commit 89f7d349e0
8 changed files with 0 additions and 509 deletions

View File

@ -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

View File

@ -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"

View File

@ -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

View File

@ -1 +0,0 @@
NETWORK_API_EXTENSIONS="all,lbaasv2"

View File

@ -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

View File

@ -1,3 +0,0 @@
[[post-config|/etc/octavia/octavia.conf]]
[DEFAULT]
debug = True

View File

@ -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)
}

View File

@ -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