alibaba-cloud: Make the test more robust
authorRichard W.M. Jones <rjones@redhat.com>
Wed, 3 Aug 2022 17:37:23 +0000 (17:37 +0000)
committerRichard W.M. Jones <rjones@redhat.com>
Wed, 3 Aug 2022 17:43:02 +0000 (18:43 +0100)
This test worked by trying to make an HTTP connection to a path under
100.100.100.200, which if successful would indicate that it's an
Alibaba cloud instance.  We only try the connection if SM-BIOS
information indicates the hardware OEM is Alibaba.

However 'make check' would hang if 100.100.100.200 doesn't immediately
reject the connection.  I found that GCE is such an environment where
connecting to this address would hang rather than reject.  GCE does
not have Alibaba hardware of course, but when doing 'make check' we
fake dmidecode data.

Make the test more robust by only trying to connect when we know we're
not in 'make check'.

Fixes: commit b7cc3d93a613ef6d0ac5ccd6e32cc3d66e057243

virt-what.in

index 550de00..ad82e22 100644 (file)
@@ -116,7 +116,7 @@ arch=$(uname -m | sed -e 's/i.86/i386/' | sed -e 's/arm.*/arm/')
 # Check for Alibaba Cloud
 if echo "$dmi" | grep -q 'Manufacturer: Alibaba'; then
     # Check for Alibaba Cloud ECS Bare Metal (EBM) Instance
-    if ( { echo -e "GET /latest/meta-datainstance/instance-type HTTP/1.0\r\nHost: 100.100.100.200\r\n\r" >&3; grep -sq 'ebm' <&3 ; } 3<> /dev/tcp/100.100.100.200/80 ) 2>/dev/null ; then
+    if [ "x$root" = "x" ] && ( { echo -e "GET /latest/meta-datainstance/instance-type HTTP/1.0\r\nHost: 100.100.100.200\r\n\r" >&3; grep -sq 'ebm' <&3 ; } 3<> /dev/tcp/100.100.100.200/80 ) 2>/dev/null ; then
         echo "alibaba_cloud-ebm"
     else
         echo "alibaba_cloud"