aws: Detect AWS from dmidecode information.
authorRichard W.M. Jones <rjones@redhat.com>
Wed, 31 Oct 2018 15:04:24 +0000 (15:04 +0000)
committerRichard W.M. Jones <rjones@redhat.com>
Wed, 31 Oct 2018 15:09:15 +0000 (15:09 +0000)
Move the AWS detection out from under Xen.  AWS runs on KVM and
baremetal these days.  The dmidecode information for KVM and baremetal
is a little bit different so we also need to adjust the test for that
case.

Typical SMBIOS info for Xen:

BIOS Information
        Vendor: Xen
        Version: 4.2.amazon

Typical SMBIOS info for KVM and baremetal:

BIOS Information
        Vendor: Amazon EC2
        Version: 1.0

Thanks: Vitaly Kuznetsov, Jon Masters.

virt-what.in
virt-what.pod

index a2f8f19..f685461 100644 (file)
@@ -233,10 +233,6 @@ fi
 if [ "$cpuid" = "XenVMMXenVMM" ] &&
     ! echo "$dmi" | grep -q 'No SMBIOS nor DMI entry point found, sorry'; then
     echo xen; echo xen-hvm
-    # Check for AWS
-    if echo "$dmi" | grep -q 'Version: [0-9]\.[0-9]\.amazon'; then
-        echo aws
-    fi
     skip_qemu_kvm=true
 elif [ -d "${root}/proc/xen" ]; then
     echo xen
@@ -392,3 +388,12 @@ if [ "${arch#sparc}" != "$arch" ] && [ -e "${root}/dev/mdesc" ]; then
         fi
     fi
 fi
+
+# Check for AWS.
+# AWS on Xen.
+if echo "$dmi" | grep -q 'Version: [0-9]\.[0-9]\.amazon'; then
+    echo aws
+# AWS on baremetal or KVM.
+elif echo "$dmi" | grep -q 'Vendor: Amazon EC2'; then
+    echo aws
+fi
index ebfc190..5a0bdfc 100644 (file)
@@ -27,9 +27,13 @@ don't know about or cannot detect.
 
 =item B<aws>
 
-Amazon Web Services cloud guest.
+Amazon Web Services.
 
-Status: contributed by Qi Guo.
+Note that virt-what will print this fact for baremetal AWS instances,
+which you might not consider to be true virtualization.  In this case
+other facts (eg. C<kvm> or C<xen>) would I<not> be present.
+
+Status: contributed by Qi Guo, Vitaly Kuznetsov, confirmed by RWMJ.
 
 =item B<bhyve>