@cryptotaxi247 / netdata-1 / commits / 78d5eb937

fix: keep virtualization unknown if all used commands are not available (#12964)

Ilya Mashchenko committed May 20, 2022 at 10:40 UTC 78d5eb937a81d0818df35ae710bb11ff5a4c2dcf
1 file changed +14 -12
daemon/system-info.sh
+14 -12
@@ -30,28 +30,30 @@ if [ -z "${VIRTUALIZATION}" ]; then
30 VIRTUALIZATION="unknown"
31 VIRT_DETECTION="none"
32
33 - if [ -n "$(command -v systemd-detect-virt 2> /dev/null)" ]; then
33 + if command -v systemd-detect-virt >/dev/null 2>&1; then
34 VIRTUALIZATION="$(systemd-detect-virt -v)"
35 VIRT_DETECTION="systemd-detect-virt"
36 CONTAINER=${CONTAINER:-$(systemd-detect-virt -c)}
37 CONT_DETECTION="systemd-detect-virt"
38 - else
39 - if command -v lscpu >/dev/null 2>&1; then
40 - VIRTUALIZATION=$(lscpu | grep "Hypervisor vendor" | cut -d: -f 2 | awk '{$1=$1};1')
41 - VIRT_DETECTION="lscpu"
42 - elif [ -n "$(command -v dmidecode)" ] && dmidecode -s system-product-name 2> /dev/null | grep -q "VMware\|Virtual\|KVM\|Bochs"; then
43 - VIRTUALIZATION="$(dmidecode -s system-product-name)"
44 - VIRT_DETECTION="dmidecode"
45 - else
46 - VIRTUALIZATION="none"
47 - fi
38 + elif command -v lscpu >/dev/null 2>&1; then
39 + VIRTUALIZATION=$(lscpu | grep "Hypervisor vendor:" | cut -d: -f 2 | awk '{$1=$1};1')
40 + [ -n "$VIRTUALIZATION" ] && VIRT_DETECTION="lscpu"
41 + [ -z "$VIRTUALIZATION" ] && lscpu | grep -q "Virtualization:" && VIRTUALIZATION="none"
42 + elif command -v dmidecode >/dev/null 2>&1; then
43 + VIRTUALIZATION=$(dmidecode -s system-product-name 2>/dev/null | grep "VMware\|Virtual\|KVM\|Bochs")
44 + [ -n "$VIRTUALIZATION" ] && VIRT_DETECTION="dmidecode"
45 + fi
46 +
47 + if [ -z "${VIRTUALIZATION}" ] && [ "${KERNEL_NAME}" = "FreeBSD" ]; then
48 + VIRTUALIZATION=$(sysctl kern.vm_guest 2>/dev/null | cut -d: -f 2 | awk '{$1=$1};1')
49 + [ -n "$VIRTUALIZATION" ] && VIRT_DETECTION="sysctl"
50 fi
51
52 if [ -z "${VIRTUALIZATION}" ]; then
53 # Output from the command is outside of spec
54 VIRTUALIZATION="unknown"
55 VIRT_DETECTION="none"
54 - else
56 + elif [ "$VIRTUALIZATION" != "none" ] && [ "$VIRTUALIZATION" != "unknown" ]; then
57 VIRTUALIZATION=$(virtualization_normalize_name $VIRTUALIZATION)
58 fi
59 else