X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=system%2Flxc-driver.sh;h=23c8786cc6afca34380547ebb543d2bced4360dc;hb=af6722f87d9f36e7385421f9ce21e8861167d5ca;hp=ae4debd02cb7c44ddc16e0d30c2b97057d72f89d;hpb=c27e2966c8ef64f916ae56b23fd9257133d4f8a8;p=tests.git diff --git a/system/lxc-driver.sh b/system/lxc-driver.sh index ae4debd..23c8786 100755 --- a/system/lxc-driver.sh +++ b/system/lxc-driver.sh @@ -1,50 +1,54 @@ #!/bin/bash -function sense_all () { +path=/vservers - for i in $(lxc-ls -1|sort|uniq); do - [ "$(lxc-info -n $i | grep state| awk '{print $2;}' )" == "RUNNING" ] && echo "$i;$(lxc-info -n $i | grep pid | awk '{print $2;}');$(cat /var/lib/lxc/$i/$i.timestamp)" || : - done +function sense_all () { + virsh -c lxc:/// list 2> /dev/null | grep running | while read line; do + pid=$(echo $line | cut -d' ' -f1) + lxc_name=$(echo $line | cut -d' ' -f2) + timestamp=$(cat $path/$lxc_name/$lxc_name.timestamp 2> /dev/null) + echo "$lxc_name;$pid;$timestamp" + done } function start_all () { - - for i in $(lxc-ls -1|sort|uniq); do - [ "$(lxc-info -n $i | grep state| awk '{print $2;}' )" != "RUNNING" ] && lxc-start -d -n $i || : - done - - #sense_all + virsh -c lxc:/// list --inactive | grep " - "| while read line; do + lxc_name=$(echo $line | cut -d' ' -f2) + virsh -c lxc:/// start $lxc_name + done } function stop_all () { - - for i in $(lxc-ls -1|sort|uniq); do - [ "$(lxc-info -n $i | grep state| awk '{print $2;}' )" != "STOPPED" ] && lxc-stop -n $i - done - - #sense_all + virsh -c lxc:/// list | grep running | while read line; do + lxc_name=$(echo $line | cut -d' ' -f2) + virsh -c lxc:/// destroy $lxc_name + done } function sense_lxc () { - lxc=$1; shift - [ "$(lxc-info -n $lxc | grep state | awk '{print $2;}')" == "RUNNING" ] && echo "$lxc;$(lxc-info -n $lxc | grep pid | awk '{print $2;}');$(cat /var/lib/lxc/$lxc/$lxc.timestamp)" || : + lxc_name=$1; shift + if [ "$(virsh -c lxc:/// dominfo $lxc_name | grep State| cut -d' ' -f11)" == "running" ] ; then + pid=$(virsh -c lxc:/// dominfo $lxc_name| grep Id | cut -d' ' -f14) + timestamp=$(cat $path/$lxc_name/$lxc_name.timestamp) + echo "$lxc_name;$pid;$timestamp" + fi } function start_lxc () { - lxc=$1; shift - [ "$(lxc-info -n $lxc | grep state| awk '{print $2;}' )" != "RUNNING" ] && lxc-start -d -n $lxc ||: - - #sense_lxc $lxc + lxc_name=$1; shift + if [ "$(virsh -c lxc:/// dominfo $lxc_name | grep State| cut -d' ' -f11)" != "running" ] ; then + virsh -c lxc:/// start $lxc_name + fi } function stop_lxc () { - lxc=$1; shift - [ "$(lxc-info -n $lxc | grep state| awk '{print $2;}' )" != "STOPPED" ] && lxc-stop -n $lxc - - #sense_lxc $lxc + lxc_name=$1; shift + if [ "$(virsh -c lxc:/// dominfo $lxc_name | grep State| cut -d' ' -f11)" != "shut off" ] ; then + virsh -c lxc:/// destroy $lxc_name + fi } function restart_all () { @@ -55,25 +59,27 @@ function restart_all () { function restart_lxc () { - lxc=$1; shift - stop_lxc $lxc - start_lxc $lxc + lxc_name=$1; shift + stop_lxc $lxc_name + start_lxc $lxc_name } function destroy_all () { stop_all - for i in $(lxc-ls -1|sort|uniq); do - lxc-destroy -n $i + virsh -c lxc:/// list --all | while read line; do + lxc_name=$(echo $line | cut -d' ' -f2) + virsh -c lxc:/// undefine $lxc_name + rm -fr $path/$lxc_name done - } function destroy_lxc () { - lxc=$1; shift - stop_lxc $lxc - lxc-destroy -n $lxc + lxc_name=$1; shift + stop_lxc $lxc_name + virsh -c lxc:/// undefine $lxc_name + rm -fr $path/$lxc_name } function usage () { @@ -81,7 +87,7 @@ function usage () { echo "Description:" echo " This command is used to manage and retreive information on existing lxc containers " echo "lxc-driver.sh -c _all" - echo "lxc-driver.sh -c _lxc -l " + echo "lxc-driver.sh -c _lxc -n " echo " in {sense,start,stop,restart,destroy}" }