From 7d266cc63e920b1c5248d50c66785d5e136b3024 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Carlos=20Mart=C3=ADn?= Date: Mon, 11 Jul 2011 17:52:51 +0200 Subject: [PATCH] onedb: more thorough tests --- src/onedb/test/2.2/one.db | Bin 35840 -> 39936 bytes src/onedb/test/create.sh | 90 ++++++++++++++++++++++++++++++++------ src/onedb/test/test.sh | 49 ++++++++++++++++++--- 3 files changed, 119 insertions(+), 20 deletions(-) diff --git a/src/onedb/test/2.2/one.db b/src/onedb/test/2.2/one.db index 5e62d3ad7ddb7dca834c28f8bab144b79e311fc3..62d34ebc1fcc2f47ade38e84f4426988e061ccf9 100644 GIT binary patch delta 2966 zcmb7GU2IfE6rP{EKlF#vHKp=Xb}L)DHc{@qdw=b}6%9!Nsimw`}OA2d7>B0d;IK#c*TBGm|zf_3KJ-D;PZY&V%bb7tmz z=bJg_%-qQj(B!9RW_=0V2fSZxHhK%=&3M6q@7~30oRe2c}i2U(# zi@NRA?ymNM_U`VMrrN%a7uvhq`@Er^_Rc-qA}{XhiuCN<)*TW0`&*i}F0Ce+-4SQk z?mAf30hSOUnd~Yak$((vlXJDJ0R|C7lrTgY`(F8!j46CQB|P2C5qnQ-(S+j#@Yz?Y z$dx@GmUW;dzL-q*6wg;I0L<*Be0v(8AEJu@UCi3&QFuz`mgxG%hEt;hhmGL_DRV#q zV~N8&$@GMYl~`T$CZqzNY!hE~pPB9E9ByzL<#OQlT%chaKxbfE)|OyosvoWfa09I) z&hCZqcr$u!$T*N15D)+~S8kHay)7}pOe9m5De_XvGUCa&C~CYZCS}DCO-a`+O;>e3 zVWi0FUP)Ps{r_jm_8l)hmMCq#YstjkzHmQS&IfvYc#qF@#;3uOEMBuj!(>Gv=u%uX z6S`@{1w}9gNirxcIi<#V1j(9Su~(Et*`il;ll8lvftO!YXi6YTw@3{Tyi= znTzqo250Tif?Pxv_w0xi#-?Iea-KhY9?p(Xmj|8tA`6F94LvNa1Rwm)-{^?)(0&9b6r zOWelZx^xx!Bxopf=vUhA=j0tKS-VfI)76y_t~(0DH5`4AIr^iw$>55{+cQ^qJ!nQtLV3fri5xfOGYU8ix^>6Ow@ z#Ip^doTNAm%hlN!qTe2icntvM3=v!cXdd1KmooN+*r@=j1hCrOPBnxGLehv24X2(F zDUSs|V|1G$_{e9YZq5i#ax?j4hP>oR~e2N2kbC~xFnK?bckb*G<`H^(Kb&hapl@bSa<>&!G;06FU;O`mxO6*h+ z=K;7JKr_bx;!DJTqEG=!{2cKed{*)@c>9iaini%wnq$`NF@WXtpR#ZEF>47xw&$Pe zA^;XC>)blj5tbu)f`DOXR98?Zk?G7FOW0 z;7xEUChoxidIaz|dX%;25lTnNbg8k49?o5MuAXFlPj^#wGvR|q9Uc0OF7bJi_47I# b3$c$;07&Ds6D#`SF8=5W?ro>y#60{5FoO)@ delta 2056 zcma)7U2GIp6h3$Ev|BbUb@_2ie`pnI7qxW$e-bUh7h`l4h!TO6GCOysR?{tkZBv@I z=@da08`IrO6nIkOo6)qL7hfd4Xn6FI5dRVg`X&!ZDm7j2o!xCK_MwwKb9U}I=ljk* z_sp5;Z-nWq!d!D49zyxrv#|GfjN9>Yh^Fu3rro#!KLIi52H~pEj6O#aEJ8P)DI84V zKxn2@pE!HcOLzWGFWrT*=KrhDeC;m4L=(kRPItv#`mf)e5&%A(Odz!D9BOY95kg#O zVd`*#c`_>p<_bo4&<`h_Bzs)pYb#aZwux=DVbU?!(o$ua>#D3Uj?u<74pHPBNQ8HW z&*u6ydTP*kP8=N?>L(*ZL+5f8%>W*8qDM@Yxo{$OohbxaVWNeWK6d1?IodpTs|edP z;5fU*@J+x=_(yyn-^735-|($4AueM2U1M!8O2&8=fObS$gvLl?Xo<7{&5=gX6ls8M zH4IU}(NVQ5oX+FI9I1T@v&H7Hv^`c=Z()22TlgZrjlW(99ta|ygnfk|g=G3w`+oXj zd*{(-ghoJ^ZC&6$PG1K=0P%!7stN#giQF%8TJuA5Rga24b7X;gG3{;NyVxPt#}ST- z^kk)f(9W>bGZ|w<;gor-F6H?;aaEsKnl5L2M^Y?_Sca_Vx-40erV(4$b=S4R(t(<~ zDp*qmOh^iguhojR_dqxc_X@%7hVyZ>1yCp2i7pHR4c_jhGbdVUe!M>HIM#yd=FpK&^%l!1mhhuox)Z?Exh}JV+hTp zVQ|P9@cI=YYV?P!7kg8Nsb^G^c#chE*U@#!P-Rz^iD9U=?dhH`Im9s}LVp<4XmL2p zP|=2{@+#`kfqlA96vtCM;wh%<8LDJuh^PAsE4peKn(O(dW!av9=*>ZeD(?=rcfy9K zQW^Cxp6j!U1mGRW?b9WO_sl}RbY$nLGXsSssM<+r{yv$ zrsbH9Mr7hTu1W}TGnTE`wnD6os@T41__FURepF^9n=R%HS;O3dlh!<`z?%-ui0#qb&Uiv0j90fK$RD zGy>NOK|Yl~j1z#8Y?6s$5+U}g7vF&4tkz+DSL8}7`%E)7leemUa&&!TD614#!_5zkh~j$G8DY)zGDh$(_$6 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 diff --git a/src/onedb/test/test.sh b/src/onedb/test/test.sh index 4af12bc809..274e293b9a 100755 --- a/src/onedb/test/test.sh +++ b/src/onedb/test/test.sh @@ -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 "" -e "" -e "NAME>" results/xml_files/host-pool.xml) <(grep -v -e "" -e "" -e "NAME>" results/xml_files/host-pool-upgraded.xml) > results/diff_files/host-pool.diff +diff <(grep -v -e "" -e "" results/xml_files/image-pool.xml) <(grep -v -e "" -e "" results/xml_files/image-pool-upgraded.xml) > results/diff_files/image-pool.diff +diff <(grep -v -e "" -e "TIME>" -e "" -e "" -e "" results/xml_files/vm-pool.xml) <(grep -v -e "" -e "TIME>" -e "" -e "" -e "" 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 "" -e "" -e "NAME>" results/xml_files/host-$i.xml) <(grep -v -e "" -e "" -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 "" -e "" results/xml_files/image-$i.xml) <(grep -v -e "" -e "" results/xml_files/image-$i-upgraded.xml) > results/diff_files/image-$i.diff - diff <(grep -v -e "" -e "TIME>" -e "" -e "" -e "" results/xml_files/vm-$i.xml) <(grep -v -e "" -e "TIME>" -e "" -e "" -e "" results/xml_files/vm-$i-upgraded.xml) > results/diff_files/vm-$i.diff + diff <(grep -v -e "" -e "TIME>" -e "" -e "" -e "" -e "" results/xml_files/vm-$i.xml) <(grep -v -e "" -e "TIME>" -e "" -e "" -e "" -e "" 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