mirror of
https://github.com/OpenNebula/one.git
synced 2025-03-21 14:50:08 +03:00
onedb: more thorough tests
This commit is contained in:
parent
e823bb0c05
commit
7d266cc63e
Binary file not shown.
@ -1,13 +1,26 @@
|
||||
#!/bin/bash
|
||||
|
||||
# This script populates a DB with different resources
|
||||
# Set the TWO_SERIES flag if the target OpenNebula is 2.0 or 2.2
|
||||
|
||||
# The oneadmin's auth must be in ~/.one/one_auth
|
||||
|
||||
TWO_SERIES="no"
|
||||
#TWO_SERIES="yes"
|
||||
|
||||
ONEADMIN_AUTH=$ONE_AUTH
|
||||
|
||||
TMP_FILE="tmp_file"
|
||||
|
||||
# 5 Users
|
||||
|
||||
# 5 Hosts and Clusters
|
||||
for i in 0 1 2 3 4; do
|
||||
echo "user_$i:pass_$i" > one_auth$i
|
||||
oneuser create user_$i pass_$i
|
||||
done
|
||||
|
||||
|
||||
# 5 Hosts
|
||||
|
||||
for i in 0 1 2 3 4; do
|
||||
onehost create host_$i im_dummy vmm_dummy tm_dummy
|
||||
@ -18,7 +31,9 @@ done
|
||||
for i in 0 1 2; do
|
||||
( echo "NAME = vnet_fixed_$i"
|
||||
echo "TYPE = FIXED"
|
||||
echo "PUBLIC = FIXED"
|
||||
echo "BRIDGE = vbr1"
|
||||
echo "EXTRA_ATT = \"EXTRA_VALUE FOR VNET $i\""
|
||||
echo "LEASES = [IP=192.168.$i.1]"
|
||||
echo "LEASES = [IP=192.168.$i.2]"
|
||||
echo "LEASES = [IP=192.168.$i.3]"
|
||||
@ -26,6 +41,9 @@ for i in 0 1 2; do
|
||||
echo "LEASES = [IP=192.168.$i.5]"
|
||||
) > $TMP_FILE
|
||||
|
||||
# Change auth
|
||||
export ONE_AUTH="`pwd`/one_auth$i"
|
||||
|
||||
onevnet create $TMP_FILE
|
||||
done
|
||||
|
||||
@ -37,9 +55,14 @@ for i in 3 4; do
|
||||
echo "BRIDGE = vbr0"
|
||||
echo "NETWORK_SIZE = C"
|
||||
echo "NETWORK_ADDRESS = 192.168.$i.0"
|
||||
echo "EXTRA_ATT = \"EXTRA_VALUE FOR VNET $i\""
|
||||
) > $TMP_FILE
|
||||
|
||||
# Change auth
|
||||
export ONE_AUTH="`pwd`/one_auth$i"
|
||||
|
||||
onevnet create $TMP_FILE
|
||||
onevnet publish $i
|
||||
done
|
||||
|
||||
# 5 Images
|
||||
@ -48,17 +71,14 @@ for i in 0 1 2 3 4; do
|
||||
( echo "NAME = image_$i"
|
||||
echo "TYPE = DATABLOCK"
|
||||
echo "PATH = /dev/null"
|
||||
echo "EXTRA_ATT = \"EXTRA_VALUE FOR IMG $i\""
|
||||
) > $TMP_FILE
|
||||
|
||||
export ONE_AUTH="`pwd`/one_auth$i"
|
||||
|
||||
oneimage create $TMP_FILE
|
||||
done
|
||||
|
||||
# 5 Users
|
||||
|
||||
for i in 0 1 2 3 4; do
|
||||
oneuser create user_$i pass_$i
|
||||
done
|
||||
|
||||
# 5 VMs
|
||||
|
||||
for i in 0 1 2 3 4; do
|
||||
@ -82,23 +102,38 @@ for i in 0 1 2 3 4; do
|
||||
echo "REQUIREMENTS = \"CPUSPEED > 1000\" "
|
||||
echo "RANK = FREECPU "
|
||||
echo "CONTEXT = [ files = \"/dev/null\" ] "
|
||||
|
||||
echo "EXTRA_ATT = \"EXTRA_VALUE FOR VM $i\""
|
||||
) > $TMP_FILE
|
||||
|
||||
export ONE_AUTH="`pwd`/one_auth$i"
|
||||
|
||||
if [ $TWO_SERIES == "yes" ]; then
|
||||
onevm create $TMP_FILE
|
||||
else
|
||||
onetemplate create $TMP_FILE
|
||||
onetemplate instantiate $i
|
||||
fi
|
||||
done
|
||||
|
||||
|
||||
if [ -n "$ONEADMIN_AUTH" ] ; then
|
||||
export ONE_AUTH=$ONEADMIN_AUTH
|
||||
else
|
||||
# Unset the one_auth file, cli will look for it in ~/.one/one_auth
|
||||
unset ONE_AUTH
|
||||
fi
|
||||
|
||||
for i in 0 1 2 3; do
|
||||
onevm deploy $i $i
|
||||
done
|
||||
|
||||
rm $TMP_FILE
|
||||
|
||||
|
||||
echo -n "Waiting until all VMs are running "
|
||||
|
||||
while [ $(onevm list | grep -c runn) -ne 5 ]; do
|
||||
while [ $(onevm list | grep -c runn) -ne 4 ]; do
|
||||
echo -n "."
|
||||
sleep 0.5s
|
||||
done
|
||||
@ -108,17 +143,34 @@ echo " ok"
|
||||
# Wait for some monitorization data
|
||||
sleep 3s
|
||||
|
||||
|
||||
onevm migrate 0 1
|
||||
while [ $(onevm list | grep -c runn) -ne 5 ]; do sleep 0.5s; done
|
||||
while [ $(onevm list a | grep -c runn) -ne 4 ]; do sleep 0.5s; done
|
||||
|
||||
|
||||
onevm livemigrate 1 2
|
||||
while [ $(onevm list | grep -c runn) -ne 5 ]; do sleep 0.5s; done
|
||||
while [ $(onevm list a | grep -c runn) -ne 4 ]; do sleep 0.5s; done
|
||||
|
||||
onevm stop 1
|
||||
while [ $(onevm list a | grep -c stop) -ne 1 ]; do sleep 0.5s; done
|
||||
|
||||
onevm resume 1
|
||||
while [ $(onevm list a | grep -c pend) -ne 2 ]; do sleep 0.5s; done
|
||||
|
||||
onevm deploy 1 0
|
||||
while [ $(onevm list a | grep -c runn) -ne 4 ]; do sleep 0.5s; done
|
||||
|
||||
onevm migrate 1 3
|
||||
while [ $(onevm list a | grep -c runn) -ne 4 ]; do sleep 0.5s; done
|
||||
|
||||
onevm shutdown 1
|
||||
while [ $(onevm list a | grep -c runn) -ne 3 ]; do sleep 0.5s; done
|
||||
|
||||
onevm shutdown 2
|
||||
while [ $(onevm list | grep -c runn) -ne 4 ]; do sleep 0.5s; done
|
||||
while [ $(onevm list a | grep -c runn) -ne 2 ]; do sleep 0.5s; done
|
||||
|
||||
onevm delete 3
|
||||
while [ $(onevm list | grep -c runn) -ne 3 ]; do sleep 0.5s; done
|
||||
while [ $(onevm list a | grep -c runn) -ne 1 ]; do sleep 0.5s; done
|
||||
|
||||
onehost disable 3
|
||||
oneimage persistent 3
|
||||
@ -130,8 +182,20 @@ sleep 3s
|
||||
|
||||
mkdir -p results/xml_files
|
||||
|
||||
for obj in host vnet image vm; do
|
||||
for obj in host vnet image vm user; do
|
||||
one$obj list -x > results/xml_files/$obj-pool.xml
|
||||
|
||||
for i in 0 1 2 3 4; do
|
||||
one$obj show -x $i > results/xml_files/$obj-$i.xml
|
||||
done
|
||||
done
|
||||
|
||||
if [ $TWO_SERIES == "no" ]; then
|
||||
oneacl list -x > results/xml_files/acl-pool.xml
|
||||
onegroup list -x > results/xml_files/group-pool.xml
|
||||
fi
|
||||
|
||||
# Clean one auth files
|
||||
for i in 0 1 2 3 4; do
|
||||
rm one_auth$i
|
||||
done
|
||||
|
@ -26,8 +26,12 @@ fi
|
||||
|
||||
cp oned.conf $ONEDCONF_LOCATION
|
||||
|
||||
|
||||
echo "oneadmin:oneadmin" > oneadmin_auth
|
||||
export ONE_XMLRPC=http://localhost:2888/RPC2
|
||||
export PATH=$ONE_LOCATION/bin:$PATH
|
||||
export ONE_AUTH="`pwd`/oneadmin_auth"
|
||||
|
||||
|
||||
PID=$$
|
||||
|
||||
@ -62,12 +66,16 @@ onedb upgrade -v --sqlite results/one.db.upgraded --backup results/one.db.backup
|
||||
echo "Done. Upgraded DB and the one just created will be compared."
|
||||
|
||||
# Dump both DB schemas
|
||||
sqlite3 results/one.db.upgraded ".schema" > results/one.db.upgraded.schema
|
||||
sqlite3 results/one.db.3.0 ".schema" > results/one.db.3.0.schema
|
||||
sqlite3 results/one.db.upgraded ".schema" > results/one.db.upgraded.tmpschema
|
||||
sqlite3 results/one.db.3.0 ".schema" > results/one.db.3.0.tmpschema
|
||||
|
||||
# Sort the files contents, to avoid false diff errors
|
||||
sort results/one.db.upgraded.schema > results/one.db.upgraded.schema
|
||||
sort results/one.db.3.0.schema > results/one.db.3.0.schema
|
||||
sort results/one.db.upgraded.tmpschema > results/one.db.upgraded.schema
|
||||
sort results/one.db.3.0.tmpschema > results/one.db.3.0.schema
|
||||
|
||||
rm results/one.db.upgraded.tmpschema
|
||||
rm results/one.db.3.0.tmpschema
|
||||
|
||||
|
||||
|
||||
# Perform a diff
|
||||
@ -92,12 +100,17 @@ cp results/one.db.upgraded $VAR_LOCATION/one.db
|
||||
oned -f &
|
||||
sleep 2s;
|
||||
|
||||
for obj in host vnet image vm; do
|
||||
for obj in host vnet image vm user; do
|
||||
for i in 0 1 2 3 4; do
|
||||
one$obj show -x $i > results/xml_files/$obj-$i-upgraded.xml
|
||||
done
|
||||
done
|
||||
|
||||
for obj in host vnet image vm acl group user; do
|
||||
one$obj list -x > results/xml_files/$obj-pool-upgraded.xml
|
||||
done
|
||||
|
||||
|
||||
pkill -P $PID oned
|
||||
sleep 2s;
|
||||
pkill -9 -P $PID oned
|
||||
@ -106,6 +119,14 @@ echo "XML output collected. A diff will be performed."
|
||||
|
||||
mkdir results/diff_files
|
||||
|
||||
diff <(grep -v -e "<LAST_MON_TIME>" -e "<CLUSTER>" -e "NAME>" results/xml_files/host-pool.xml) <(grep -v -e "<LAST_MON_TIME>" -e "<CLUSTER>" -e "NAME>" results/xml_files/host-pool-upgraded.xml) > results/diff_files/host-pool.diff
|
||||
diff <(grep -v -e "<REGTIME>" -e "<SOURCE>" results/xml_files/image-pool.xml) <(grep -v -e "<REGTIME>" -e "<SOURCE>" results/xml_files/image-pool-upgraded.xml) > results/diff_files/image-pool.diff
|
||||
diff <(grep -v -e "<LAST_POLL>" -e "TIME>" -e "<SOURCE>" -e "<TEMPLATE_ID>" -e "<VM_DIR>" results/xml_files/vm-pool.xml) <(grep -v -e "<LAST_POLL>" -e "TIME>" -e "<SOURCE>" -e "<TEMPLATE_ID>" -e "<VM_DIR>" results/xml_files/vm-pool-upgraded.xml) > results/diff_files/vm-pool.diff
|
||||
|
||||
for obj in vnet acl group user; do
|
||||
diff <(cat results/xml_files/$obj-pool.xml) <(cat results/xml_files/$obj-pool-upgraded.xml) > results/diff_files/$obj-pool.diff
|
||||
done
|
||||
|
||||
for i in 0 1 2 3 4; do
|
||||
diff <(grep -v -e "<LAST_MON_TIME>" -e "<CLUSTER>" -e "NAME>" results/xml_files/host-$i.xml) <(grep -v -e "<LAST_MON_TIME>" -e "<CLUSTER>" -e "NAME>" results/xml_files/host-$i-upgraded.xml) > results/diff_files/host-$i.diff
|
||||
|
||||
@ -113,12 +134,15 @@ for i in 0 1 2 3 4; do
|
||||
|
||||
diff <(grep -v -e "<REGTIME>" -e "<SOURCE>" results/xml_files/image-$i.xml) <(grep -v -e "<REGTIME>" -e "<SOURCE>" results/xml_files/image-$i-upgraded.xml) > results/diff_files/image-$i.diff
|
||||
|
||||
diff <(grep -v -e "<LAST_POLL>" -e "TIME>" -e "<SOURCE>" -e "<TEMPLATE_ID>" -e "<VM_DIR>" results/xml_files/vm-$i.xml) <(grep -v -e "<LAST_POLL>" -e "TIME>" -e "<SOURCE>" -e "<TEMPLATE_ID>" -e "<VM_DIR>" results/xml_files/vm-$i-upgraded.xml) > results/diff_files/vm-$i.diff
|
||||
diff <(grep -v -e "<LAST_POLL>" -e "TIME>" -e "<SOURCE>" -e "<TEMPLATE_ID>" -e "<VM_DIR>" -e "<NET_TX>" results/xml_files/vm-$i.xml) <(grep -v -e "<LAST_POLL>" -e "TIME>" -e "<SOURCE>" -e "<TEMPLATE_ID>" -e "<VM_DIR>" -e "<NET_TX>" results/xml_files/vm-$i-upgraded.xml) > results/diff_files/vm-$i.diff
|
||||
|
||||
diff <(cat results/xml_files/user-$i.xml) <(cat results/xml_files/user-$i-upgraded.xml) > results/diff_files/user-$i.diff
|
||||
done
|
||||
|
||||
|
||||
CODE=0
|
||||
|
||||
for obj in host vnet image vm; do
|
||||
for obj in host vnet image vm user; do
|
||||
for i in 0 1 2 3 4; do
|
||||
FILE=results/diff_files/$obj-$i.diff
|
||||
if [[ -s $FILE ]] ; then
|
||||
@ -128,8 +152,19 @@ for obj in host vnet image vm; do
|
||||
done
|
||||
done
|
||||
|
||||
for obj in host vnet image vm acl group user; do
|
||||
FILE=results/diff_files/$obj-pool.diff
|
||||
if [[ -s $FILE ]] ; then
|
||||
echo "Error: diff file $FILE is not empty."
|
||||
CODE=-1
|
||||
fi
|
||||
done
|
||||
|
||||
|
||||
if [ $CODE -eq 0 ]; then
|
||||
echo "Done, all tests passed."
|
||||
fi
|
||||
|
||||
rm oneadmin_auth
|
||||
|
||||
exit $CODE
|
||||
|
Loading…
x
Reference in New Issue
Block a user