From c6c09e2eb5531922e7980f974782c72328566923 Mon Sep 17 00:00:00 2001 From: Thierry Parmentelat Date: Fri, 3 Nov 2023 18:58:59 +0100 Subject: [PATCH] adopt more verbose guest_ipv4 --- lbuild-initvm.sh | 19 +++++++++++++------ lbuild-nightly.sh | 15 +++++++++++---- 2 files changed, 24 insertions(+), 10 deletions(-) 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 () { diff --git a/lbuild-nightly.sh b/lbuild-nightly.sh index 3d609010..42db238a 100755 --- a/lbuild-nightly.sh +++ b/lbuild-nightly.sh @@ -60,10 +60,17 @@ function logfile () { function guest_ipv4() { lxc=$1; shift - 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;}' + 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 } # wrap a quick summary of suspicious stuff -- 2.43.0