From 70b8f1244862687d23f9a834fabd3e7a5b457d66 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ville=20Skytt=C3=A4?= <ville.skytta@xxxxxxxxxxx> Date: Thu, 12 Jan 2023 11:43:04 +0200 Subject: [PATCH] Add support for UpCloud --- configure.ac | 2 + tests/upcloud/Makefile.am | 26 +++++ tests/upcloud/sbin/dmidecode | 124 ++++++++++++++++++++++ tests/upcloud/sbin/uname | 2 + tests/upcloud/sbin/virt-what-cpuid-helper | 2 + tests/upcloud/test.sh | 33 ++++++ virt-what.in | 5 + virt-what.pod | 6 ++ 8 files changed, 200 insertions(+) create mode 100644 tests/upcloud/Makefile.am create mode 100755 tests/upcloud/sbin/dmidecode create mode 100755 tests/upcloud/sbin/uname create mode 100755 tests/upcloud/sbin/virt-what-cpuid-helper create mode 100755 tests/upcloud/test.sh diff --git a/configure.ac b/configure.ac index a80a4b6..3a875c0 100644 --- a/configure.ac +++ b/configure.ac @@ -72,6 +72,7 @@ tests="\ rhel5-xen-domU-hvm-ia64 \ rhel5-xen-domU-pv \ rhev \ + upcloud \ vmm \ xen-arm \ zvm \ @@ -121,6 +122,7 @@ AC_CONFIG_FILES([Makefile tests/rhel5-xen-domU-hvm-ia64/Makefile tests/rhel5-xen-domU-pv/Makefile tests/rhev/Makefile + tests/upcloud/Makefile tests/vmm/Makefile tests/xen-arm/Makefile tests/zvm/Makefile diff --git a/tests/upcloud/Makefile.am b/tests/upcloud/Makefile.am new file mode 100644 index 0000000..798b7f6 --- /dev/null +++ b/tests/upcloud/Makefile.am @@ -0,0 +1,26 @@ +# Makefile for virt-what +# Copyright (C) 2008-2023 Red Hat Inc. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +CLEANFILES = *~ + +TESTS = test.sh + +EXTRA_DIST = \ + test.sh \ + sbin/dmidecode \ + sbin/uname \ + sbin/virt-what-cpuid-helper diff --git a/tests/upcloud/sbin/dmidecode b/tests/upcloud/sbin/dmidecode new file mode 100755 index 0000000..a1c65b9 --- /dev/null +++ b/tests/upcloud/sbin/dmidecode @@ -0,0 +1,124 @@ +#!/bin/sh - +cat <<'EOF' +# dmidecode 3.3 +Getting SMBIOS data from sysfs. +SMBIOS 2.8 present. +9 structures occupying 356 bytes. +Table at 0x00000000. + +Handle 0x0000, DMI type 0, 24 bytes +BIOS Information + Vendor: SeaBIOS + Version: 1.12.0-1 + Release Date: 04/01/2014 + Address: 0xE8000 + Runtime Size: 96 kB + ROM Size: 64 kB + Characteristics: + BIOS characteristics not supported + Targeted content distribution is supported + BIOS Revision: 0.0 + +Handle 0x0100, DMI type 1, 27 bytes +System Information + Manufacturer: UpCloud + Product Name: Cloud Server + Version: pc-i440fx-5.1 + Serial Number: Not Specified + UUID: 00000000-0000-0000-0000-000000000000 + Wake-up Type: Power Switch + SKU Number: Not Specified + Family: Not Specified + +Handle 0x0300, DMI type 3, 22 bytes +Chassis Information + Manufacturer: QEMU + Type: Other + Lock: Not Present + Version: pc-i440fx-5.1 + Serial Number: Not Specified + Asset Tag: Not Specified + Boot-up State: Safe + Power Supply State: Safe + Thermal State: Safe + Security Status: Unknown + OEM Information: 0x00000000 + Height: Unspecified + Number Of Power Cords: Unspecified + Contained Elements: 0 + SKU Number: Not Specified + +Handle 0x0400, DMI type 4, 42 bytes +Processor Information + Socket Designation: CPU 0 + Type: Central Processor + Family: Other + Manufacturer: QEMU + ID: 00 00 00 00 00 00 00 00 + Version: pc-i440fx-5.1 + Voltage: Unknown + External Clock: Unknown + Max Speed: 2000 MHz + Current Speed: 2000 MHz + Status: Populated, Enabled + Upgrade: Other + L1 Cache Handle: Not Provided + L2 Cache Handle: Not Provided + L3 Cache Handle: Not Provided + Serial Number: Not Specified + Asset Tag: Not Specified + Part Number: Not Specified + Core Count: 128 + Core Enabled: 128 + Thread Count: 1 + Characteristics: None + +Handle 0x1000, DMI type 16, 23 bytes +Physical Memory Array + Location: Other + Use: System Memory + Error Correction Type: Multi-bit ECC + Maximum Capacity: 1 GB + Error Information Handle: Not Provided + Number Of Devices: 1 + +Handle 0x1100, DMI type 17, 40 bytes +Memory Device + Array Handle: 0x1000 + Error Information Handle: Not Provided + Total Width: Unknown + Data Width: Unknown + Size: 1 GB + Form Factor: DIMM + Set: None + Locator: DIMM 0 + Bank Locator: Not Specified + Type: RAM + Type Detail: Other + Speed: Unknown + Manufacturer: QEMU + Serial Number: Not Specified + Asset Tag: Not Specified + Part Number: Not Specified + Rank: Unknown + Configured Memory Speed: Unknown + Minimum Voltage: Unknown + Maximum Voltage: Unknown + Configured Voltage: Unknown + +Handle 0x1300, DMI type 19, 31 bytes +Memory Array Mapped Address + Starting Address: 0x00000000000 + Ending Address: 0x0003FFFFFFF + Range Size: 1 GB + Physical Array Handle: 0x1000 + Partition Width: 1 + +Handle 0x2000, DMI type 32, 11 bytes +System Boot Information + Status: No errors detected + +Handle 0x7F00, DMI type 127, 4 bytes +End Of Table + +EOF diff --git a/tests/upcloud/sbin/uname b/tests/upcloud/sbin/uname new file mode 100755 index 0000000..ab0ec89 --- /dev/null +++ b/tests/upcloud/sbin/uname @@ -0,0 +1,2 @@ +#!/bin/sh - +echo x86_64 diff --git a/tests/upcloud/sbin/virt-what-cpuid-helper b/tests/upcloud/sbin/virt-what-cpuid-helper new file mode 100755 index 0000000..f52a9d7 --- /dev/null +++ b/tests/upcloud/sbin/virt-what-cpuid-helper @@ -0,0 +1,2 @@ +#!/bin/sh - +echo KVMKVMKVM diff --git a/tests/upcloud/test.sh b/tests/upcloud/test.sh new file mode 100755 index 0000000..bf822a4 --- /dev/null +++ b/tests/upcloud/test.sh @@ -0,0 +1,33 @@ +# Test for UpCloud +# Copyright (C) 2008-2023 Red Hat Inc. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +output="$(PATH=../..:$PATH virt-what --test-root=. 2>&1)" +expected="kvm +upcloud" + +if [ "$output" != "$expected" ]; then + echo "$0: test failed because output did not match expected" + echo "Expected output was:" + echo "----------------------------------------" + echo "$expected" + echo "----------------------------------------" + echo "But the actual output of the program was:" + echo "----------------------------------------" + echo "$output" + echo "----------------------------------------" + exit 1 +fi diff --git a/virt-what.in b/virt-what.in index 102e23f..1a1101d 100644 --- a/virt-what.in +++ b/virt-what.in @@ -457,3 +457,8 @@ if echo "$dmi" | grep -Eq 'Version: [0-9]+\.[0-9]+\.amazon'; then elif echo "$dmi" | grep -q 'Vendor: Amazon EC2'; then echo aws fi + +# UpCloud +if echo "$dmi" | grep -q 'Manufacturer: UpCloud'; then + echo upcloud +fi diff --git a/virt-what.pod b/virt-what.pod index 4246986..2d0ef4d 100644 --- a/virt-what.pod +++ b/virt-what.pod @@ -270,6 +270,12 @@ This is a User-Mode Linux (UML) guest. Status: contributed by Laurent Léonard +=item B<upcloud> + +This is running on UpCloud. + +Status: contributed by Ville Skyttä + =item B<virt> Some sort of virtualization appears to be present, but we are not sure -- 2.25.1