The function can get ip when domain has a non-default virual
network
---
utils/ipget.sh | 7 ++++++-
utils/utils.py | 7 +++++--
2 files changed, 11 insertions(+), 3 deletions(-)
diff --git a/utils/ipget.sh b/utils/ipget.sh
index 8d44b14..c2e0983 100755
--- a/utils/ipget.sh
+++ b/utils/ipget.sh
@@ -1,17 +1,22 @@
#!/bin/sh
mac=$1
+br=$2
if [[ -z $mac ]]; then
echo "mac address is null."
exit 1
fi
+if [[ -z $br ]]; then
+ echo "bridge name is null."
+ exit 1
+fi
if ! type nmap >/dev/null 2>&1; then
echo "nmap package needs to be installed."
exit 1
fi
-ipaddr=`ip route |grep virbr0 |sed -n 1p|awk {'print $1'}`
+ipaddr=`ip route |grep $br |sed -n 1p|awk {'print $1'}`
#if lsmod | grep kvm > /dev/null ;then
# ipaddr=`ip route |grep switch |sed -n 1p|awk {'print $1'}`
diff --git a/utils/utils.py b/utils/utils.py
index 147c1ef..f841c27 100644
--- a/utils/utils.py
+++ b/utils/utils.py
@@ -349,7 +349,7 @@ def locate_utils():
result = re.search('(.*)libvirt-test-API(.*)', pwd)
return result.group(0) + "/utils"
-def mac_to_ip(mac, timeout):
+def mac_to_ip(mac,br,timeout):
"""Map mac address to ip
Return None on FAILURE and the mac address on SUCCESS
@@ -357,10 +357,13 @@ def mac_to_ip(mac, timeout):
if not mac:
return None
+ if not br:
+ return None
+
if timeout < 10:
timeout = 10
- cmd = "sh " + locate_utils() + "/ipget.sh " + mac
+ cmd = "sh " + locate_utils() + "/ipget.sh " + mac + " "
+ br
while timeout > 0:
(ret, out) = commands.getstatusoutput(cmd)
--
1.8.3.1