X-Git-Url: http://git.annexia.org/?a=blobdiff_plain;f=inspector%2Fvirt-inspector;fp=inspector%2Fvirt-inspector;h=a53c76a91b894ce9ce04e666f62987d7fd345c2e;hb=237627df37b97c18362755f646bbe1c4b05ee692;hp=24501fb32647b5d17c6e68dccf2fa0eee0bc24cf;hpb=4c5ca903b52ccc785a3d879da8506be248b0d6f7;p=libguestfs.git diff --git a/inspector/virt-inspector b/inspector/virt-inspector index 24501fb..a53c76a 100755 --- a/inspector/virt-inspector +++ b/inspector/virt-inspector @@ -162,7 +162,7 @@ foreach $root (@roots) { $xml->startTag ("operatingsystem"); # Basic OS fields. - $xml->dataElement (root => $root); + $xml->dataElement (root => canonicalize ($root)); my ($s, $distro, $major_version); $s = $g->inspect_get_type ($root); @@ -210,7 +210,8 @@ sub output_mountpoints $xml->startTag ("mountpoints"); foreach (@$fskeys) { - $xml->dataElement ("mountpoint", $_, dev => $fshash->{$_}); + $xml->dataElement ("mountpoint", $_, + dev => canonicalize ($fshash->{$_})); } $xml->endTag ("mountpoints"); } @@ -224,7 +225,8 @@ sub output_filesystems my @fses = $g->inspect_get_filesystems ($root); foreach (@fses) { - $xml->startTag ("filesystem", dev => $_); + $xml->startTag ("filesystem", + dev => canonicalize ($_)); eval { my $type = $g->vfs_type ($_); @@ -347,6 +349,18 @@ sub output_applications_rpm } } +# The reverse of device name translation, see +# BLOCK DEVICE NAMING in guestfs(3). +sub canonicalize +{ + local $_ = shift; + + if (m{^/dev/[hv]d([a-z]\d)$}) { + return "/dev/sd$1"; + } + $_; +} + =head1 SHELL QUOTING Libvirt guest names can contain arbitrary characters, some of which