Commit 9f1ebad
committed
testscript: improve wait_for_ssh() network diagnosis and logging
This commit uses the new helpers in wait_for_ssh() to improve network
diagnosis and logging in the case of an error. We will be able to better
understand if a network issue is caused by the VM host or the VM.
More specifically, we will specifically see if a network issue is
caused by the host losing an IP on one of its interfaces for whatever
reason.
wait_for_ssh() now:
- checks if the host shares the same IPv4 net with the IP
- if the VM is pingable
- then tries to SSH into it
A possible missing IP in VM host error might be reported like this:
```
======================================================================
ERROR: test_hotplug (builtins.LibvirtTests.test_hotplug)
Tests device hot plugging with multiple devices of different types:
----------------------------------------------------------------------
Traceback (most recent call last):
File "<string>", line 391, in test_hotplug
File "<string>", line 2000, in wait_for_ssh
File "<string>", line 2285, in assert_ip_in_local_192_168_net24
RuntimeError: The VM host is not in the same network as IP 192.168.5.2! It may has lost a IP?!
networks: [IPv4Network('192.168.1.0/24'), IPv4Network('192.168.2.0/24'), IPv4Network('192.168.3.0/24'), IPv4Network('192.168.4.0/24'), IPv4Network('192.168.100.0/24')]
`ip a`:1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host noprefixroute
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 52:54:00:12:34:56 brd ff:ff:ff:ff:ff:ff
altname enp0s3
altname ens3
altname enx525400123456
inet 10.0.2.15/24 metric 1024 brd 10.0.2.255 scope global dynamic eth0
valid_lft 86360sec preferred_lft 86360sec
inet6 fec0::b396:b54d:c532:85b8/64 scope site temporary dynamic
valid_lft 86363sec preferred_lft 14363sec
inet6 fec0::5054:ff:fe12:3456/64 scope site dynamic mngtmpaddr noprefixroute
valid_lft 86363sec preferred_lft 14363sec
inet6 fe80::5054:ff:fe12:3456/64 scope link proto kernel_ll
valid_lft forever preferred_lft forever
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 52:54:00:12:01:02 brd ff:ff:ff:ff:ff:ff
altname enp0s9
altname ens9
altname enx525400120102
inet 192.168.100.1/24 brd 192.168.100.255 scope global eth1
valid_lft forever preferred_lft forever
inet6 fe80::5054:ff:fe12:102/64 scope link proto kernel_ll
valid_lft forever preferred_lft forever
4: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether 22:0b:45:80:ae:68 brd ff:ff:ff:ff:ff:ff
inet 192.168.1.1/24 brd 192.168.1.255 scope global br0
valid_lft forever preferred_lft forever
inet 192.168.2.1/24 brd 192.168.2.255 scope global br0
valid_lft forever preferred_lft forever
inet6 fe80::200b:45ff:fe80:ae68/64 scope link proto kernel_ll
valid_lft forever preferred_lft forever
5: br4: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether ea:27:4a:87:ff:89 brd ff:ff:ff:ff:ff:ff
inet 192.168.4.1/24 brd 192.168.4.255 scope global br4
valid_lft forever preferred_lft forever
inet6 fe80::e827:4aff:fe87:ff89/64 scope link proto kernel_ll
valid_lft forever preferred_lft forever
6: br3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc htb state UP group default qlen 1000
link/ether 52:54:00:be:b0:2c brd ff:ff:ff:ff:ff:ff
inet 192.168.3.1/24 brd 192.168.3.255 scope global br3
valid_lft forever preferred_lft forever
7: vtap0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel master br0 state UNKNOWN group default qlen 1000
link/ether fe:54:00:e5:b8:01 brd ff:ff:ff:ff:ff:ff
8: vtap1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel master br0 state UNKNOWN group default qlen 1000
link/ether fe:54:00:e5:b8:02 brd ff:ff:ff:ff:ff:ff
9: tap3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel master br3 state UNKNOWN group default qlen 1000
link/ether fe:54:00:e5:b8:03 brd ff:ff:ff:ff:ff:ff
inet6 fe80::fc54:ff:fee5:b803/64 scope link proto kernel_ll
valid_lft forever preferred_lft forever
10: tap4: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel master br4 state UNKNOWN group default qlen 1000
link/ether fe:54:00:e5:b8:04 brd ff:ff:ff:ff:ff:ff
inet6 fe80::fc54:ff:fee5:b804/64 scope link proto kernel_ll
valid_lft forever preferred_lft foreve
```
On-behalf-of: SAP philipp.schuster@sap.com
Signed-off-by: Philipp Schuster <philipp.schuster@cyberus-technology.de>1 parent 99683c6 commit 9f1ebad
1 file changed
+15
-6
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1983 | 1983 | | |
1984 | 1984 | | |
1985 | 1985 | | |
1986 | | - | |
1987 | | - | |
| 1986 | + | |
1988 | 1987 | | |
1989 | | - | |
1990 | | - | |
| 1988 | + | |
| 1989 | + | |
1991 | 1990 | | |
1992 | 1991 | | |
1993 | 1992 | | |
1994 | 1993 | | |
1995 | 1994 | | |
1996 | 1995 | | |
1997 | 1996 | | |
| 1997 | + | |
| 1998 | + | |
| 1999 | + | |
| 2000 | + | |
| 2001 | + | |
| 2002 | + | |
| 2003 | + | |
1998 | 2004 | | |
1999 | | - | |
| 2005 | + | |
2000 | 2006 | | |
2001 | 2007 | | |
2002 | 2008 | | |
2003 | 2009 | | |
2004 | | - | |
| 2010 | + | |
| 2011 | + | |
| 2012 | + | |
| 2013 | + | |
2005 | 2014 | | |
2006 | 2015 | | |
2007 | 2016 | | |
| |||
0 commit comments