inspector: Don't crash if $os->{kernels} does not exist.
[libguestfs.git] / inspector / virt-inspector
index 071f0b0..707825e 100755 (executable)
@@ -54,10 +54,6 @@ para-virtualized (PV), what applications are installed and more.
 Virt-inspector can produce output in several formats, including a
 readable text report, and XML for feeding into other programs.
 
-Virt-inspector should only be run on I<inactive> virtual machines.
-The program tries to determine that the machine is inactive and will
-refuse to run if it thinks you are trying to inspect a running domain.
-
 In the normal usage, use C<virt-inspector domname> where C<domname> is
 the libvirt domain (see: C<virsh list --all>).
 
@@ -411,13 +407,15 @@ sub output_text_os
         print "    $_->{name} $_->{version}\n"
     }
 
-    print __"  Kernels:\n";
-    my @kernels = @{$os->{kernels}};
-    foreach (@kernels) {
-        print "    $_->{version} ($_->{arch})\n";
-        my @modules = @{$_->{modules}};
-        foreach (@modules) {
-            print "      $_\n";
+    if ($os->{kernels}) {
+        print __"  Kernels:\n";
+        my @kernels = @{$os->{kernels}};
+        foreach (@kernels) {
+            print "    $_->{version} ($_->{arch})\n";
+            my @modules = @{$_->{modules}};
+            foreach (@modules) {
+                print "      $_\n";
+            }
         }
     }
 
@@ -523,7 +521,10 @@ sub output_xml_os
     foreach (@apps) {
         $xml->startTag("application");
         $xml->dataElement("name", $_->{name});
+        $xml->dataElement("epoch", $_->{epoch}) if defined $_->{epoch};
         $xml->dataElement("version", $_->{version});
+        $xml->dataElement("release", $_->{release});
+        $xml->dataElement("arch", $_->{arch});
         $xml->endTag("application");
     }
     $xml->endTag("applications");