X-Git-Url: http://git.annexia.org/?p=libguestfs.git;a=blobdiff_plain;f=inspector%2Fvirt-inspector.pl;h=b2983b3d35664d74a8ef3d26c39ef3d6c3340f4f;hp=c8c045e12f02728fcab59259e3cb4f4597f697fb;hb=e4733575efff31742444b180cdcfbc2504b144c8;hpb=6f2929c4635c3f2af4a9211981d9edd1f58cce69 diff --git a/inspector/virt-inspector.pl b/inspector/virt-inspector.pl index c8c045e..b2983b3 100755 --- a/inspector/virt-inspector.pl +++ b/inspector/virt-inspector.pl @@ -566,12 +566,6 @@ if ($output !~ /.*fish$/) { check_for_applications ($root_dev); check_for_kernels ($root_dev); - # umount_all in libguestfs is buggy - it doesn't unmount - # filesystems in the correct order. So let's unmount them - # in reverse first before calling umount_all as a last resort. - foreach (sort { $b cmp $a } keys %$mounts) { - eval "\$g->umount ('$_')"; - } $g->umount_all (); } } @@ -625,24 +619,97 @@ elsif ($output eq "perl") { # Plain text output (the default). elsif ($output eq "text") { - # XXX text output. + output_text (); +} +# XML output. +elsif ($output eq "xml") { + output_xml (); +} +sub output_text +{ + output_text_os ($oses{$_}) foreach sort keys %oses; +} +sub output_text_os +{ + my $os = shift; + print $os->{os}, " " if exists $os->{os}; + print $os->{distro}, " " if exists $os->{distro}; + print $os->{version}, " " if exists $os->{version}; + print "on ", $os->{root_device}, ":\n"; -} + print " Mountpoints:\n"; + my $mounts = $os->{mounts}; + foreach (sort keys %$mounts) { + printf " %-30s %s\n", $mounts->{$_}, $_ + } -# XML output. -elsif ($output eq "xml") { - # XXX XML output. + print " Filesystems:\n"; + my $filesystems = $os->{filesystems}; + foreach (sort keys %$filesystems) { + print " $_:\n"; + print " label: $filesystems->{$_}{label}\n" + if exists $filesystems->{$_}{label}; + print " UUID: $filesystems->{$_}{uuid}\n" + if exists $filesystems->{$_}{uuid}; + print " type: $filesystems->{$_}{fstype}\n" + if exists $filesystems->{$_}{fstype}; + print " content: $filesystems->{$_}{content}\n" + if exists $filesystems->{$_}{content}; + } + # XXX Applications. + # XXX Kernel. +} +sub output_xml +{ + print "\n"; + output_xml_os ($oses{$_}) foreach sort keys %oses; + print "\n"; +} +sub output_xml_os +{ + my $os = shift; + print "\n"; + print "", $os->{os}, "\n" if exists $os->{os}; + print "", $os->{distro}, "\n" if exists $os->{distro}; + print "", $os->{version}, "\n" if exists $os->{version}; + print "", $os->{root_device}, "\n"; + print "\n"; + my $mounts = $os->{mounts}; + foreach (sort keys %$mounts) { + printf "%s\n", + $mounts->{$_}, $_ + } + print "\n"; + + print "\n"; + my $filesystems = $os->{filesystems}; + foreach (sort keys %$filesystems) { + print "\n"; + print "\n" + if exists $filesystems->{$_}{label}; + print "$filesystems->{$_}{uuid}\n" + if exists $filesystems->{$_}{uuid}; + print "$filesystems->{$_}{fstype}\n" + if exists $filesystems->{$_}{fstype}; + print "$filesystems->{$_}{content}\n" + if exists $filesystems->{$_}{content}; + print "\n"; + } + print "\n"; + # XXX Applications. + # XXX Kernel. + print "\n"; } =head1 SEE ALSO