summaryrefslogtreecommitdiffstats
path: root/tools/virt-list-filesystems
diff options
context:
space:
mode:
authorRichard W.M. Jones <rjones@redhat.com>2010-10-28 13:41:12 +0100
committerRichard W.M. Jones <rjones@redhat.com>2010-10-28 15:48:16 +0100
commit0353688577a27749f40bcc060e5703102c5a9649 (patch)
treea31d811c9625cb0142cbca640887d44c8ea273c1 /tools/virt-list-filesystems
parent756c23997b864aa3e559172c01d247a9a9236b5d (diff)
downloadlibguestfs-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-xtools/virt-list-filesystems54
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";
}
}