- added support for quantum-debug command
- added ping and ssh method for quantum
Change-Id: Iebf8a0e9e2ed2bb56bee6533e69827e6caa2bc82
| ... | ... |
@@ -32,6 +32,12 @@ source $TOP_DIR/functions |
| 32 | 32 |
# Import configuration |
| 33 | 33 |
source $TOP_DIR/openrc |
| 34 | 34 |
|
| 35 |
+# Import quantum functions if needed |
|
| 36 |
+if is_service_enabled quantum; then |
|
| 37 |
+ source $TOP_DIR/lib/quantum |
|
| 38 |
+ setup_quantum |
|
| 39 |
+fi |
|
| 40 |
+ |
|
| 35 | 41 |
# Import exercise configuration |
| 36 | 42 |
source $TOP_DIR/exerciserc |
| 37 | 43 |
|
| ... | ... |
@@ -168,6 +174,10 @@ nova floating-ip-delete $FLOATING_IP || \ |
| 168 | 168 |
# Delete a secgroup |
| 169 | 169 |
nova secgroup-delete $SECGROUP || die "Failure deleting security group $SECGROUP" |
| 170 | 170 |
|
| 171 |
+if is_service_enabled quantum; then |
|
| 172 |
+ teardown_quantum |
|
| 173 |
+fi |
|
| 174 |
+ |
|
| 171 | 175 |
set +o xtrace |
| 172 | 176 |
echo "*********************************************************************" |
| 173 | 177 |
echo "SUCCESS: End DevStack Exercise: $0" |
| ... | ... |
@@ -33,6 +33,12 @@ source $TOP_DIR/functions |
| 33 | 33 |
# Import EC2 configuration |
| 34 | 34 |
source $TOP_DIR/eucarc |
| 35 | 35 |
|
| 36 |
+# Import quantum functions if needed |
|
| 37 |
+if is_service_enabled quantum; then |
|
| 38 |
+ source $TOP_DIR/lib/quantum |
|
| 39 |
+ setup_quantum |
|
| 40 |
+fi |
|
| 41 |
+ |
|
| 36 | 42 |
# Import exercise configuration |
| 37 | 43 |
source $TOP_DIR/exerciserc |
| 38 | 44 |
|
| ... | ... |
@@ -169,6 +175,10 @@ fi |
| 169 | 169 |
# Delete group |
| 170 | 170 |
euca-delete-group $SECGROUP || die "Failure deleting security group $SECGROUP" |
| 171 | 171 |
|
| 172 |
+if is_service_enabled quantum; then |
|
| 173 |
+ teardown_quantum |
|
| 174 |
+fi |
|
| 175 |
+ |
|
| 172 | 176 |
set +o xtrace |
| 173 | 177 |
echo "*********************************************************************" |
| 174 | 178 |
echo "SUCCESS: End DevStack Exercise: $0" |
| ... | ... |
@@ -31,6 +31,12 @@ source $TOP_DIR/functions |
| 31 | 31 |
# Import configuration |
| 32 | 32 |
source $TOP_DIR/openrc |
| 33 | 33 |
|
| 34 |
+# Import quantum functions if needed |
|
| 35 |
+if is_service_enabled quantum; then |
|
| 36 |
+ source $TOP_DIR/lib/quantum |
|
| 37 |
+ setup_quantum |
|
| 38 |
+fi |
|
| 39 |
+ |
|
| 34 | 40 |
# Import exercise configuration |
| 35 | 41 |
source $TOP_DIR/exerciserc |
| 36 | 42 |
|
| ... | ... |
@@ -155,14 +161,16 @@ nova add-floating-ip $VM_UUID $FLOATING_IP || \ |
| 155 | 155 |
# test we can ping our floating ip within ASSOCIATE_TIMEOUT seconds |
| 156 | 156 |
ping_check "$PUBLIC_NETWORK_NAME" $FLOATING_IP $ASSOCIATE_TIMEOUT |
| 157 | 157 |
|
| 158 |
-# Allocate an IP from second floating pool |
|
| 159 |
-TEST_FLOATING_IP=`nova floating-ip-create $TEST_FLOATING_POOL | grep $TEST_FLOATING_POOL | get_field 1` |
|
| 160 |
-die_if_not_set TEST_FLOATING_IP "Failure creating floating IP in $TEST_FLOATING_POOL" |
|
| 158 |
+if ! is_service_enabled quantum; then |
|
| 159 |
+ # Allocate an IP from second floating pool |
|
| 160 |
+ TEST_FLOATING_IP=`nova floating-ip-create $TEST_FLOATING_POOL | grep $TEST_FLOATING_POOL | get_field 1` |
|
| 161 |
+ die_if_not_set TEST_FLOATING_IP "Failure creating floating IP in $TEST_FLOATING_POOL" |
|
| 161 | 162 |
|
| 162 |
-# list floating addresses |
|
| 163 |
-if ! timeout $ASSOCIATE_TIMEOUT sh -c "while ! nova floating-ip-list | grep $TEST_FLOATING_POOL | grep -q $TEST_FLOATING_IP; do sleep 1; done"; then |
|
| 164 |
- echo "Floating IP not allocated" |
|
| 165 |
- exit 1 |
|
| 163 |
+ # list floating addresses |
|
| 164 |
+ if ! timeout $ASSOCIATE_TIMEOUT sh -c "while ! nova floating-ip-list | grep $TEST_FLOATING_POOL | grep -q $TEST_FLOATING_IP; do sleep 1; done"; then |
|
| 165 |
+ echo "Floating IP not allocated" |
|
| 166 |
+ exit 1 |
|
| 167 |
+ fi |
|
| 166 | 168 |
fi |
| 167 | 169 |
|
| 168 | 170 |
# dis-allow icmp traffic (ping) |
| ... | ... |
@@ -171,12 +179,13 @@ nova secgroup-delete-rule $SECGROUP icmp -1 -1 0.0.0.0/0 || die "Failure deletin |
| 171 | 171 |
# FIXME (anthony): make xs support security groups |
| 172 | 172 |
if [ "$VIRT_DRIVER" != "xenserver" -a "$VIRT_DRIVER" != "openvz" ]; then |
| 173 | 173 |
# test we can aren't able to ping our floating ip within ASSOCIATE_TIMEOUT seconds |
| 174 |
- ping_check "$PUBLIC_NETWORK_NAME" $FLOATING_IP $ASSOCIATE_TIMEOUT |
|
| 174 |
+ ping_check "$PUBLIC_NETWORK_NAME" $FLOATING_IP $ASSOCIATE_TIMEOUT Fail |
|
| 175 | 175 |
fi |
| 176 | 176 |
|
| 177 |
-# Delete second floating IP |
|
| 178 |
-nova floating-ip-delete $TEST_FLOATING_IP || die "Failure deleting floating IP $TEST_FLOATING_IP" |
|
| 179 |
- |
|
| 177 |
+if ! is_service_enabled quantum; then |
|
| 178 |
+ # Delete second floating IP |
|
| 179 |
+ nova floating-ip-delete $TEST_FLOATING_IP || die "Failure deleting floating IP $TEST_FLOATING_IP" |
|
| 180 |
+fi |
|
| 180 | 181 |
|
| 181 | 182 |
# de-allocate the floating ip |
| 182 | 183 |
nova floating-ip-delete $FLOATING_IP || die "Failure deleting floating IP $FLOATING_IP" |
| ... | ... |
@@ -193,6 +202,10 @@ fi |
| 193 | 193 |
# Delete a secgroup |
| 194 | 194 |
nova secgroup-delete $SECGROUP || die "Failure deleting security group $SECGROUP" |
| 195 | 195 |
|
| 196 |
+if is_service_enabled quantum; then |
|
| 197 |
+ teardown_quantum |
|
| 198 |
+fi |
|
| 199 |
+ |
|
| 196 | 200 |
set +o xtrace |
| 197 | 201 |
echo "*********************************************************************" |
| 198 | 202 |
echo "SUCCESS: End DevStack Exercise: $0" |
| ... | ... |
@@ -52,13 +52,17 @@ source $TOP_DIR/functions |
| 52 | 52 |
# Import configuration |
| 53 | 53 |
source $TOP_DIR/openrc |
| 54 | 54 |
|
| 55 |
-# Import exercise configuration |
|
| 56 |
-source $TOP_DIR/exerciserc |
|
| 57 |
- |
|
| 58 | 55 |
# If quantum is not enabled we exit with exitcode 55 which mean |
| 59 | 56 |
# exercise is skipped. |
| 60 | 57 |
is_service_enabled quantum && is_service_enabled q-agt && is_service_enabled q-dhcp || exit 55 |
| 61 | 58 |
|
| 59 |
+# Import quantum fucntions |
|
| 60 |
+source $TOP_DIR/lib/quantum |
|
| 61 |
+setup_quantum |
|
| 62 |
+ |
|
| 63 |
+# Import exercise configuration |
|
| 64 |
+source $TOP_DIR/exerciserc |
|
| 65 |
+ |
|
| 62 | 66 |
#------------------------------------------------------------------------------ |
| 63 | 67 |
# Test settings for quantum |
| 64 | 68 |
#------------------------------------------------------------------------------ |
| ... | ... |
@@ -76,14 +80,14 @@ DEMO1_NUM_NET=1 |
| 76 | 76 |
DEMO2_NUM_NET=2 |
| 77 | 77 |
|
| 78 | 78 |
PUBLIC_NET1_CIDR="200.0.0.0/24" |
| 79 |
-DEMO1_NET1_CIDR="10.1.0.0/24" |
|
| 80 |
-DEMO2_NET1_CIDR="10.2.0.0/24" |
|
| 81 |
-DEMO2_NET2_CIDR="10.2.1.0/24" |
|
| 79 |
+DEMO1_NET1_CIDR="10.10.0.0/24" |
|
| 80 |
+DEMO2_NET1_CIDR="10.20.0.0/24" |
|
| 81 |
+DEMO2_NET2_CIDR="10.20.1.0/24" |
|
| 82 | 82 |
|
| 83 | 83 |
PUBLIC_NET1_GATEWAY="200.0.0.1" |
| 84 |
-DEMO1_NET1_GATEWAY="10.1.0.1" |
|
| 85 |
-DEMO2_NET1_GATEWAY="10.2.0.1" |
|
| 86 |
-DEMO2_NET2_GATEWAY="10.2.1.1" |
|
| 84 |
+DEMO1_NET1_GATEWAY="10.10.0.1" |
|
| 85 |
+DEMO2_NET1_GATEWAY="10.20.0.1" |
|
| 86 |
+DEMO2_NET2_GATEWAY="10.20.1.1" |
|
| 87 | 87 |
|
| 88 | 88 |
PUBLIC_NUM_VM=1 |
| 89 | 89 |
DEMO1_NUM_VM=1 |
| ... | ... |
@@ -188,7 +192,7 @@ function get_flavor_id {
|
| 188 | 188 |
|
| 189 | 189 |
function confirm_server_active {
|
| 190 | 190 |
local VM_UUID=$1 |
| 191 |
- if ! timeout $ACTIVE_TIMEOUT sh -c "while ! nova --no_cache show $VM_UUID | grep status | grep -q ACTIVE; do sleep 1; done"; then |
|
| 191 |
+ if ! timeout $ACTIVE_TIMEOUT sh -c "while ! nova show $VM_UUID | grep status | grep -q ACTIVE; do sleep 1; done"; then |
|
| 192 | 192 |
echo "server '$VM_UUID' did not become active!" |
| 193 | 193 |
false |
| 194 | 194 |
fi |
| ... | ... |
@@ -232,6 +236,7 @@ function create_tenants {
|
| 232 | 232 |
source $TOP_DIR/openrc admin admin |
| 233 | 233 |
add_tenant demo1 demo1 demo1 |
| 234 | 234 |
add_tenant demo2 demo2 demo2 |
| 235 |
+ source $TOP_DIR/openrc demo demo |
|
| 235 | 236 |
} |
| 236 | 237 |
|
| 237 | 238 |
function delete_tenants_and_users {
|
| ... | ... |
@@ -241,6 +246,7 @@ function delete_tenants_and_users {
|
| 241 | 241 |
remove_user demo2 |
| 242 | 242 |
remove_tenant demo2 |
| 243 | 243 |
echo "removed all tenants" |
| 244 |
+ source $TOP_DIR/openrc demo demo |
|
| 244 | 245 |
} |
| 245 | 246 |
|
| 246 | 247 |
function create_network {
|
| ... | ... |
@@ -256,12 +262,8 @@ function create_network {
|
| 256 | 256 |
source $TOP_DIR/openrc $TENANT $TENANT |
| 257 | 257 |
local NET_ID=$(quantum net-create --tenant_id $TENANT_ID $NET_NAME $EXTRA| grep ' id ' | awk '{print $4}' )
|
| 258 | 258 |
quantum subnet-create --ip_version 4 --tenant_id $TENANT_ID --gateway $GATEWAY $NET_ID $CIDR |
| 259 |
- #T0DO(nati) comment out until l3-agent is merged |
|
| 260 |
- #local ROUTER_ID=$($QUANTUM router-create --tenant_id $TENANT_ID $ROUTER_NAME| grep ' id ' | awk '{print $4}' )
|
|
| 261 |
- #for NET_NAME in ${NET_NAMES//,/ };do
|
|
| 262 |
- # SUBNET_ID=`get_subnet_id $NET_NAME` |
|
| 263 |
- # $QUANTUM router-interface-create $NAME --subnet_id $SUBNET_ID |
|
| 264 |
- #done |
|
| 259 |
+ quantum-debug probe-create $NET_ID |
|
| 260 |
+ source $TOP_DIR/openrc demo demo |
|
| 265 | 261 |
} |
| 266 | 262 |
|
| 267 | 263 |
function create_networks {
|
| ... | ... |
@@ -285,7 +287,7 @@ function create_vm {
|
| 285 | 285 |
done |
| 286 | 286 |
#TODO (nati) Add multi-nic test |
| 287 | 287 |
#TODO (nati) Add public-net test |
| 288 |
- local VM_UUID=`nova --no_cache boot --flavor $(get_flavor_id m1.tiny) \ |
|
| 288 |
+ local VM_UUID=`nova boot --flavor $(get_flavor_id m1.tiny) \ |
|
| 289 | 289 |
--image $(get_image_id) \ |
| 290 | 290 |
$NIC \ |
| 291 | 291 |
$TENANT-server$NUM | grep ' id ' | cut -d"|" -f3 | sed 's/ //g'` |
| ... | ... |
@@ -301,32 +303,26 @@ function ping_ip {
|
| 301 | 301 |
# Test agent connection. Assumes namespaces are disabled, and |
| 302 | 302 |
# that DHCP is in use, but not L3 |
| 303 | 303 |
local VM_NAME=$1 |
| 304 |
- IP=`nova --no_cache show $VM_NAME | grep 'network' | awk '{print $5}'`
|
|
| 305 |
- if ! timeout $BOOT_TIMEOUT sh -c "while ! ping -c1 -w1 $IP; do sleep 1; done"; then |
|
| 306 |
- echo "Could not ping $VM_NAME" |
|
| 307 |
- false |
|
| 308 |
- fi |
|
| 304 |
+ local NET_NAME=$2 |
|
| 305 |
+ IP=`nova show $VM_NAME | grep 'network' | awk '{print $5}'`
|
|
| 306 |
+ ping_check $NET_NAME $IP $BOOT_TIMEOUT |
|
| 309 | 307 |
} |
| 310 | 308 |
|
| 311 | 309 |
function check_vm {
|
| 312 | 310 |
local TENANT=$1 |
| 313 | 311 |
local NUM=$2 |
| 314 | 312 |
local VM_NAME="$TENANT-server$NUM" |
| 313 |
+ local NET_NAME=$3 |
|
| 315 | 314 |
source $TOP_DIR/openrc $TENANT $TENANT |
| 316 |
- ping_ip $VM_NAME |
|
| 315 |
+ ping_ip $VM_NAME $NET_NAME |
|
| 317 | 316 |
# TODO (nati) test ssh connection |
| 318 | 317 |
# TODO (nati) test inter connection between vm |
| 319 |
- # TODO (nati) test namespace dhcp |
|
| 320 | 318 |
# TODO (nati) test dhcp host routes |
| 321 | 319 |
# TODO (nati) test multi-nic |
| 322 |
- # TODO (nati) use test-agent |
|
| 323 |
- # TODO (nati) test L3 forwarding |
|
| 324 |
- # TODO (nati) test floating ip |
|
| 325 |
- # TODO (nati) test security group |
|
| 326 | 320 |
} |
| 327 | 321 |
|
| 328 | 322 |
function check_vms {
|
| 329 |
- foreach_tenant_vm 'check_vm ${%TENANT%_NAME} %NUM%'
|
|
| 323 |
+ foreach_tenant_vm 'check_vm ${%TENANT%_NAME} %NUM% ${%TENANT%_VM%NUM%_NET}'
|
|
| 330 | 324 |
} |
| 331 | 325 |
|
| 332 | 326 |
function shutdown_vm {
|
| ... | ... |
@@ -334,12 +330,12 @@ function shutdown_vm {
|
| 334 | 334 |
local NUM=$2 |
| 335 | 335 |
source $TOP_DIR/openrc $TENANT $TENANT |
| 336 | 336 |
VM_NAME=${TENANT}-server$NUM
|
| 337 |
- nova --no_cache delete $VM_NAME |
|
| 337 |
+ nova delete $VM_NAME |
|
| 338 | 338 |
} |
| 339 | 339 |
|
| 340 | 340 |
function shutdown_vms {
|
| 341 | 341 |
foreach_tenant_vm 'shutdown_vm ${%TENANT%_NAME} %NUM%'
|
| 342 |
- if ! timeout $TERMINATE_TIMEOUT sh -c "while nova --no_cache list | grep -q ACTIVE; do sleep 1; done"; then |
|
| 342 |
+ if ! timeout $TERMINATE_TIMEOUT sh -c "while nova list | grep -q ACTIVE; do sleep 1; done"; then |
|
| 343 | 343 |
echo "Some VMs failed to shutdown" |
| 344 | 344 |
false |
| 345 | 345 |
fi |
| ... | ... |
@@ -347,17 +343,22 @@ function shutdown_vms {
|
| 347 | 347 |
|
| 348 | 348 |
function delete_network {
|
| 349 | 349 |
local TENANT=$1 |
| 350 |
+ local NUM=$2 |
|
| 351 |
+ local NET_NAME="${TENANT}-net$NUM"
|
|
| 350 | 352 |
source $TOP_DIR/openrc admin admin |
| 351 | 353 |
local TENANT_ID=$(get_tenant_id $TENANT) |
| 352 | 354 |
#TODO(nati) comment out until l3-agent merged |
| 353 | 355 |
#for res in port subnet net router;do |
| 354 |
- for res in port subnet net;do |
|
| 355 |
- quantum ${res}-list -F id -F tenant_id | grep $TENANT_ID | awk '{print $2}' | xargs -I % quantum ${res}-delete %
|
|
| 356 |
+ for net_id in `quantum net-list -c id -c name | grep $NET_NAME | awk '{print $2}'`;do
|
|
| 357 |
+ delete_probe $net_id |
|
| 358 |
+ quantum subnet-list | grep $net_id | awk '{print $2}' | xargs -I% quantum subnet-delete %
|
|
| 359 |
+ quantum net-delete $net_id |
|
| 356 | 360 |
done |
| 361 |
+ source $TOP_DIR/openrc demo demo |
|
| 357 | 362 |
} |
| 358 | 363 |
|
| 359 | 364 |
function delete_networks {
|
| 360 |
- foreach_tenant 'delete_network ${%TENANT%_NAME}'
|
|
| 365 |
+ foreach_tenant_net 'delete_network ${%TENANT%_NAME} ${%NUM%}'
|
|
| 361 | 366 |
#TODO(nati) add secuirty group check after it is implemented |
| 362 | 367 |
# source $TOP_DIR/openrc demo1 demo1 |
| 363 | 368 |
# nova secgroup-delete-rule default icmp -1 -1 0.0.0.0/0 |
| ... | ... |
@@ -474,6 +475,7 @@ main() {
|
| 474 | 474 |
} |
| 475 | 475 |
|
| 476 | 476 |
|
| 477 |
+teardown_quantum |
|
| 477 | 478 |
#------------------------------------------------------------------------------- |
| 478 | 479 |
# Kick off script. |
| 479 | 480 |
#------------------------------------------------------------------------------- |
| ... | ... |
@@ -30,6 +30,12 @@ source $TOP_DIR/functions |
| 30 | 30 |
# Import configuration |
| 31 | 31 |
source $TOP_DIR/openrc |
| 32 | 32 |
|
| 33 |
+# Import quantum functions if needed |
|
| 34 |
+if is_service_enabled quantum; then |
|
| 35 |
+ source $TOP_DIR/lib/quantum |
|
| 36 |
+ setup_quantum |
|
| 37 |
+fi |
|
| 38 |
+ |
|
| 33 | 39 |
# Import exercise configuration |
| 34 | 40 |
source $TOP_DIR/exerciserc |
| 35 | 41 |
|
| ... | ... |
@@ -206,6 +212,10 @@ fi |
| 206 | 206 |
# Delete a secgroup |
| 207 | 207 |
nova secgroup-delete $SECGROUP || die "Failure deleting security group $SECGROUP" |
| 208 | 208 |
|
| 209 |
+if is_service_enabled quantum; then |
|
| 210 |
+ teardown_quantum |
|
| 211 |
+fi |
|
| 212 |
+ |
|
| 209 | 213 |
set +o xtrace |
| 210 | 214 |
echo "*********************************************************************" |
| 211 | 215 |
echo "SUCCESS: End DevStack Exercise: $0" |
| ... | ... |
@@ -852,7 +852,11 @@ function yum_install() {
|
| 852 | 852 |
# ping check |
| 853 | 853 |
# Uses globals ``ENABLED_SERVICES`` |
| 854 | 854 |
function ping_check() {
|
| 855 |
- _ping_check_novanet "$1" $2 $3 |
|
| 855 |
+ if is_service_enabled quantum; then |
|
| 856 |
+ _ping_check_quantum "$1" $2 $3 $4 |
|
| 857 |
+ return |
|
| 858 |
+ fi |
|
| 859 |
+ _ping_check_novanet "$1" $2 $3 $4 |
|
| 856 | 860 |
} |
| 857 | 861 |
|
| 858 | 862 |
# ping check for nova |
| ... | ... |
@@ -861,19 +865,39 @@ function _ping_check_novanet() {
|
| 861 | 861 |
local from_net=$1 |
| 862 | 862 |
local ip=$2 |
| 863 | 863 |
local boot_timeout=$3 |
| 864 |
+ local expected=${4:-"True"}
|
|
| 865 |
+ local check_command="" |
|
| 864 | 866 |
MULTI_HOST=`trueorfalse False $MULTI_HOST` |
| 865 | 867 |
if [[ "$MULTI_HOST" = "True" && "$from_net" = "$PRIVATE_NETWORK_NAME" ]]; then |
| 866 | 868 |
sleep $boot_timeout |
| 867 | 869 |
return |
| 868 | 870 |
fi |
| 869 |
- if ! timeout $boot_timeout sh -c "while ! ping -c1 -w1 $ip; do sleep 1; done"; then |
|
| 870 |
- echo "Couldn't ping server" |
|
| 871 |
+ if [[ "$expected" = "True" ]]; then |
|
| 872 |
+ check_command="while ! ping -c1 -w1 $ip; do sleep 1; done" |
|
| 873 |
+ else |
|
| 874 |
+ check_command="while ping -c1 -w1 $ip; do sleep 1; done" |
|
| 875 |
+ fi |
|
| 876 |
+ if ! timeout $boot_timeout sh -c "$check_command"; then |
|
| 877 |
+ if [[ "$expected" = "True" ]]; then |
|
| 878 |
+ echo "[Fail] Couldn't ping server" |
|
| 879 |
+ else |
|
| 880 |
+ echo "[Fail] Could ping server" |
|
| 881 |
+ fi |
|
| 871 | 882 |
exit 1 |
| 872 | 883 |
fi |
| 873 | 884 |
} |
| 874 | 885 |
|
| 875 | 886 |
# ssh check |
| 887 |
+ |
|
| 876 | 888 |
function ssh_check() {
|
| 889 |
+ if is_service_enabled quantum; then |
|
| 890 |
+ _ssh_check_quantum "$1" $2 $3 $4 $5 |
|
| 891 |
+ return |
|
| 892 |
+ fi |
|
| 893 |
+ _ssh_check_novanet "$1" $2 $3 $4 $5 |
|
| 894 |
+} |
|
| 895 |
+ |
|
| 896 |
+function _ssh_check_novanet() {
|
|
| 877 | 897 |
local NET_NAME=$1 |
| 878 | 898 |
local KEY_FILE=$2 |
| 879 | 899 |
local FLOATING_IP=$3 |
| ... | ... |
@@ -5,6 +5,8 @@ |
| 5 | 5 |
XTRACE=$(set +o | grep xtrace) |
| 6 | 6 |
set +o xtrace |
| 7 | 7 |
|
| 8 |
+export QUANTUM_TEST_CONFIG_FILE=${QUANTUM_TEST_CONFIG_FILE:-"/etc/quantum/debug.ini"}
|
|
| 9 |
+ |
|
| 8 | 10 |
# Configures keystone integration for quantum service and agents |
| 9 | 11 |
function quantum_setup_keystone() {
|
| 10 | 12 |
local conf_file=$1 |
| ... | ... |
@@ -57,5 +59,72 @@ function is_quantum_ovs_base_plugin() {
|
| 57 | 57 |
return 1 |
| 58 | 58 |
} |
| 59 | 59 |
|
| 60 |
+function _get_net_id() {
|
|
| 61 |
+ quantum --os-tenant-name admin --os-username admin --os-password $ADMIN_PASSWORD net-list | grep $1 | awk '{print $2}'
|
|
| 62 |
+} |
|
| 63 |
+ |
|
| 64 |
+function _get_probe_cmd_prefix() {
|
|
| 65 |
+ local from_net="$1" |
|
| 66 |
+ net_id=`_get_net_id $from_net` |
|
| 67 |
+ probe_id=`quantum-debug --os-tenant-name admin --os-username admin --os-password $ADMIN_PASSWORD probe-list -c id -c network_id | grep $net_id | awk '{print $2}' | head -n 1`
|
|
| 68 |
+ echo "sudo ip netns exec qprobe-$probe_id" |
|
| 69 |
+} |
|
| 70 |
+ |
|
| 71 |
+function delete_probe() {
|
|
| 72 |
+ local from_net="$1" |
|
| 73 |
+ net_id=`_get_net_id $from_net` |
|
| 74 |
+ probe_id=`quantum-debug --os-tenant-name admin --os-username admin --os-password $ADMIN_PASSWORD probe-list -c id -c network_id | grep $net_id | awk '{print $2}'`
|
|
| 75 |
+ quantum-debug --os-tenant-name admin --os-username admin probe-delete $probe_id |
|
| 76 |
+} |
|
| 77 |
+ |
|
| 78 |
+function _ping_check_quantum() {
|
|
| 79 |
+ local from_net=$1 |
|
| 80 |
+ local ip=$2 |
|
| 81 |
+ local timeout_sec=$3 |
|
| 82 |
+ local expected=${4:-"True"}
|
|
| 83 |
+ local check_command="" |
|
| 84 |
+ probe_cmd=`_get_probe_cmd_prefix $from_net` |
|
| 85 |
+ if [[ "$expected" = "True" ]]; then |
|
| 86 |
+ check_command="while ! $probe_cmd ping -c1 -w1 $ip; do sleep 1; done" |
|
| 87 |
+ else |
|
| 88 |
+ check_command="while $probe_cmd ping -c1 -w1 $ip; do sleep 1; done" |
|
| 89 |
+ fi |
|
| 90 |
+ if ! timeout $timeout_sec sh -c "$check_command"; then |
|
| 91 |
+ if [[ "$expected" = "True" ]]; then |
|
| 92 |
+ echo "[Fail] Couldn't ping server" |
|
| 93 |
+ else |
|
| 94 |
+ echo "[Fail] Could ping server" |
|
| 95 |
+ fi |
|
| 96 |
+ exit 1 |
|
| 97 |
+ fi |
|
| 98 |
+} |
|
| 99 |
+ |
|
| 100 |
+# ssh check |
|
| 101 |
+function _ssh_check_quantum() {
|
|
| 102 |
+ local from_net=$1 |
|
| 103 |
+ local key_file=$2 |
|
| 104 |
+ local ip=$3 |
|
| 105 |
+ local user=$4 |
|
| 106 |
+ local timeout_sec=$5 |
|
| 107 |
+ local probe_cmd = "" |
|
| 108 |
+ probe_cmd=`_get_probe_cmd_prefix $from_net` |
|
| 109 |
+ if ! timeout $timeout_sec sh -c "while ! $probe_cmd ssh -o StrictHostKeyChecking=no -i $key_file ${user}@$ip echo success ; do sleep 1; done"; then
|
|
| 110 |
+ echo "server didn't become ssh-able!" |
|
| 111 |
+ exit 1 |
|
| 112 |
+ fi |
|
| 113 |
+} |
|
| 114 |
+ |
|
| 115 |
+function setup_quantum() {
|
|
| 116 |
+ public_net_id=`_get_net_id $PUBLIC_NETWORK_NAME` |
|
| 117 |
+ quantum-debug --os-tenant-name admin --os-username admin --os-password $ADMIN_PASSWORD probe-create $public_net_id |
|
| 118 |
+ private_net_id=`_get_net_id $PRIVATE_NETWORK_NAME` |
|
| 119 |
+ quantum-debug --os-tenant-name admin --os-username admin --os-password $ADMIN_PASSWORD probe-create $private_net_id |
|
| 120 |
+} |
|
| 121 |
+ |
|
| 122 |
+function teardown_quantum() {
|
|
| 123 |
+ delete_probe $PUBLIC_NETWORK_NAME |
|
| 124 |
+ delete_probe $PRIVATE_NETWORK_NAME |
|
| 125 |
+} |
|
| 126 |
+ |
|
| 60 | 127 |
# Restore xtrace |
| 61 | 128 |
$XTRACE |
| ... | ... |
@@ -73,5 +73,5 @@ export COMPUTE_API_VERSION=${COMPUTE_API_VERSION:-$NOVA_VERSION}
|
| 73 | 73 |
# export KEYSTONECLIENT_DEBUG=1 |
| 74 | 74 |
# export NOVACLIENT_DEBUG=1 |
| 75 | 75 |
|
| 76 |
-# set qunatum debug command |
|
| 77 |
-export TEST_CONFIG_FILE=/etc/quantum/debug.ini |
|
| 76 |
+# set quantum debug command |
|
| 77 |
+export QUANTUM_TEST_CONFIG_FILE=${QUANTUM_TEST_CONFIG_FILE:-"/etc/quantum/debug.ini"}
|
| ... | ... |
@@ -341,6 +341,8 @@ Q_USE_NAMESPACE=${Q_USE_NAMESPACE:-True}
|
| 341 | 341 |
Q_USE_ROOTWRAP=${Q_USE_ROOTWRAP=:-True}
|
| 342 | 342 |
# Meta data IP |
| 343 | 343 |
Q_META_DATA_IP=${Q_META_DATA_IP:-$HOST_IP}
|
| 344 |
+# Use quantum-debug command |
|
| 345 |
+Q_USE_DEBUG_COMMAND=${Q_USE_DEBUG_COMMAND:-False}
|
|
| 344 | 346 |
|
| 345 | 347 |
RYU_DIR=$DEST/ryu |
| 346 | 348 |
# Ryu API Host |
| ... | ... |
@@ -1503,6 +1505,15 @@ if is_service_enabled quantum; then |
| 1503 | 1503 |
iniset $Q_CONF_FILE DEFAULT rabbit_host $RABBIT_HOST |
| 1504 | 1504 |
iniset $Q_CONF_FILE DEFAULT rabbit_password $RABBIT_PASSWORD |
| 1505 | 1505 |
fi |
| 1506 |
+ if [[ "$Q_USE_DEBUG_COMMAND" == "True" ]]; then |
|
| 1507 |
+ Q_DEBUG_CONF_FILE=/etc/quantum/debug.ini |
|
| 1508 |
+ cp $QUANTUM_DIR/etc/l3_agent.ini $Q_DEBUG_CONF_FILE |
|
| 1509 |
+ iniset $Q_L3_CONF_FILE DEFAULT verbose False |
|
| 1510 |
+ iniset $Q_L3_CONF_FILE DEFAULT debug False |
|
| 1511 |
+ iniset $Q_L3_CONF_FILE DEFAULT metadata_ip $Q_META_DATA_IP |
|
| 1512 |
+ iniset $Q_L3_CONF_FILE DEFAULT use_namespaces $Q_USE_NAMESPACE |
|
| 1513 |
+ iniset $Q_L3_CONF_FILE DEFAULT root_helper "sudo" |
|
| 1514 |
+ fi |
|
| 1506 | 1515 |
fi |
| 1507 | 1516 |
|
| 1508 | 1517 |
# Nova |