X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=lbuild-initvm.sh;fp=lbuild-initvm.sh;h=73590e241b64e6259dba1c08c58da5521b5f284d;hb=c6c09e2eb5531922e7980f974782c72328566923;hp=14cb32506e95fbf49e973118da737b2218d41573;hpb=672ad567d30d1d9232d7b3bd5050c6c8168e0475;p=build.git diff --git a/lbuild-initvm.sh b/lbuild-initvm.sh index 14cb3250..73590e24 100755 --- a/lbuild-initvm.sh +++ b/lbuild-initvm.sh @@ -873,12 +873,19 @@ EOF # however this was too fragile, would not work for fedora14 containers # WARNING: this code is duplicated in lbuild-nightly.sh function guest_ipv4() { - local lxc=$1; shift - - local mac=$(virsh -c lxc:/// domiflist $lxc | egrep 'network|bridge' | awk '{print $5;}') - # sanity check - [ -z "$mac" ] && return 0 - arp -en | grep "$mac" | awk '{print $1;}' + lxc=$1; shift + + mac=$(virsh -c lxc:/// domiflist $lxc | grep -E 'network|bridge' | awk '{print $5;}') + [ -z "$mac" ] && { echo 1>&2 guest_ipv4_old cannot find mac; return 1; } + ip=$(arp -en | grep "$mac" | awk '{print $1;}') + # if not known: run a ping and try again + if [ -z $ip ]; then + ping -c1 -w1 -W1 $lxc >& /dev/null + ping -c1 -w1 -W1 $lxc.pl.sophia.inria.fr >& /dev/null + ip=$(arp -en | grep "$mac" | awk '{print $1;}') + fi + [ -z "$ip" ] && { echo 1>&2 guest_ipv4_old cannot find ip; return 1; } + echo $ip } function wait_for_ssh () {