From cc79cb3958b943b755a9b11b3e87ce820058ccaa Mon Sep 17 00:00:00 2001 From: Emanuele Giuseppe Esposito Date: Fri, 14 Jan 2022 16:41:47 +0100 Subject: [PATCH 4/6] Update dscheck_VMware's rpctool check (#970) RH-Author: Emanuele Giuseppe Esposito RH-MergeRequest: 43: Datasource for VMware RH-Commit: [4/6] 6f4d732c55c521869210d8aeedfa1150ea5a92f8 RH-Bugzilla: 2040704 RH-Acked-by: Mohamed Gamal Morsy RH-Acked-by: Eduardo Otubo commit 7781dec3306e9467f216cfcb36b7e10a8b38547a Author: Shreenidhi Shedi <53473811+sshedi@users.noreply.github.com> Date: Fri Aug 13 00:40:39 2021 +0530 Update dscheck_VMware's rpctool check (#970) This patch updates the dscheck_VMware function's use of "vmware-rpctool". When checking to see if a "guestinfo" property is set. Because a successful exit code can occur even if there is an empty string returned, it is possible that the VMware datasource will be loaded as a false-positive. This patch ensures that in addition to validating the exit code, the emitted output is also examined to ensure a non-empty value is returned by rpctool before returning "${DS_FOUND}" from "dscheck_VMware()". Signed-off-by: Emanuele Giuseppe Esposito --- tools/ds-identify | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/tools/ds-identify b/tools/ds-identify index c01eae3d..0e12298f 100755 --- a/tools/ds-identify +++ b/tools/ds-identify @@ -141,6 +141,7 @@ error() { debug 0 "$@" stderr "$@" } + warn() { set -- "WARN:" "$@" debug 0 "$@" @@ -344,7 +345,6 @@ geom_label_status_as() { return $ret } - read_fs_info_freebsd() { local oifs="$IFS" line="" delim="," local ret=0 labels="" dev="" label="" ftype="" isodevs="" @@ -404,7 +404,6 @@ cached() { [ -n "$1" ] && _RET="$1" && return || return 1 } - detect_virt() { local virt="${UNAVAILABLE}" r="" out="" if [ -d /run/systemd ]; then @@ -450,7 +449,7 @@ detect_virt() { read_virt() { cached "$DI_VIRT" && return 0 detect_virt - DI_VIRT=${_RET} + DI_VIRT="$(echo "${_RET}" | tr '[:upper:]' '[:lower:]')" } is_container() { @@ -1370,16 +1369,20 @@ vmware_has_rpctool() { command -v vmware-rpctool >/dev/null 2>&1 } +vmware_rpctool_guestinfo() { + vmware-rpctool "info-get guestinfo.${1}" 2>/dev/null | grep "[[:alnum:]]" +} + vmware_rpctool_guestinfo_metadata() { - vmware-rpctool "info-get guestinfo.metadata" + vmware_rpctool_guestinfo "metadata" } vmware_rpctool_guestinfo_userdata() { - vmware-rpctool "info-get guestinfo.userdata" + vmware_rpctool_guestinfo "userdata" } vmware_rpctool_guestinfo_vendordata() { - vmware-rpctool "info-get guestinfo.vendordata" + vmware_rpctool_guestinfo "vendordata" } dscheck_VMware() { -- 2.27.0