diff options
author | Richard W.M. Jones <rjones@redhat.com> | 2010-10-28 13:41:12 +0100 |
---|---|---|
committer | Richard W.M. Jones <rjones@redhat.com> | 2010-10-28 15:48:16 +0100 |
commit | 0353688577a27749f40bcc060e5703102c5a9649 (patch) | |
tree | a31d811c9625cb0142cbca640887d44c8ea273c1 /tools/virt-list-filesystems | |
parent | 756c23997b864aa3e559172c01d247a9a9236b5d (diff) | |
download | libguestfs-0353688577a27749f40bcc060e5703102c5a9649.tar.gz libguestfs-0353688577a27749f40bcc060e5703102c5a9649.tar.xz libguestfs-0353688577a27749f40bcc060e5703102c5a9649.zip |
list-filesystems: Use core list-filesystems API (RHBZ#642933).
Change virt-list-filesystems to use the core inspection API
instead of the deprecated Sys::Guestfs::Lib::get_partitions
function.
Diffstat (limited to 'tools/virt-list-filesystems')
-rwxr-xr-x | tools/virt-list-filesystems | 54 |
1 files changed, 12 insertions, 42 deletions
diff --git a/tools/virt-list-filesystems b/tools/virt-list-filesystems index 5f545cf0..945a8619 100755 --- a/tools/virt-list-filesystems +++ b/tools/virt-list-filesystems @@ -1,6 +1,6 @@ #!/usr/bin/perl -w # virt-list-filesystems -# Copyright (C) 2009 Red Hat Inc. +# Copyright (C) 2009-2010 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 @@ -20,7 +20,7 @@ use warnings; use strict; use Sys::Guestfs; -use Sys::Guestfs::Lib qw(open_guest get_partitions); +use Sys::Guestfs::Lib qw(open_guest); use Pod::Usage; use Getopt::Long; use Locale::TextDomain 'libguestfs'; @@ -148,49 +148,19 @@ if ($uri) { $g->launch (); -# List of partitions, LVs etc. -my @partitions = get_partitions ($g); - -my @fses; -my @not_mountable; -my $dev; - -# Try and mount each one, to see what's mountable. -foreach $dev (@partitions) { - eval { $g->mount_ro ($dev, "/"); }; - my $mountable = $@ ? 0 : 1; - $g->umount_all (); - if ($mountable) { - push @fses, $dev; - } else { - push @not_mountable, $dev; - } -} +# List of filesystems. +my %fses = $g->list_filesystems (); -foreach $dev (@fses) { - print canonicalize($dev); - if ($long) { - my $fstype; - eval { $fstype = $g->vfs_type ($dev); }; - if ($fstype) { - print " $fstype"; - } else { - print " unknown"; - } - } - print "\n"; -} +my ($dev, $fstype); +foreach $dev (sort keys %fses) { + $fstype = $fses{$dev}; -# If asked, look in the not_mountable list for potential swap devices. -if ($all) { - foreach $dev (@not_mountable) { - my $file; - eval { $file = $g->file ($dev); }; - if ($file && $file =~ /\bswap\b/) { - print canonicalize($dev); - print " swap" if $long; - print "\n" + if ($all || ($fstype ne "swap" && $fstype ne "unknown")) { + print canonicalize($dev); + if ($long) { + print " $fstype"; } + print "\n"; } } |