]> git.proxmox.com Git - pve-common.git/blobdiff - src/PVE/Tools.pm
new helper dump_journal to view systemd journal
[pve-common.git] / src / PVE / Tools.pm
index 8e18087ab788634307ae24f69b5b836e75b3a2c5..a7bcd355f95c690348c4822f6ee56bf9b7435519 100644 (file)
@@ -988,6 +988,37 @@ sub dump_logfile {
     return ($count, $lines);
 }
 
+sub dump_journal {
+    my ($start, $limit, $filter) = @_;
+
+    my $lines = [];
+    my $count = 0;
+    
+    $start = 0 if !$start;
+    $limit = 50 if !$limit;
+
+    my $parser = sub {
+       my $line = shift;
+
+        return if $count++ < $start;
+       return if $limit <= 0;
+       push @$lines, { n => int($count), t => $line};
+       $limit--;
+    };
+
+    my $cmd = ['journalctl', '-o', 'short', '--no-pager'];
+    run_command($cmd, outfunc => $parser);
+
+    # HACK: ExtJS store.guaranteeRange() does not like empty array
+    # so we add a line
+    if (!$count) {
+       $count++;
+       push @$lines, { n => $count, t => "no content"};
+    }
+
+    return ($count, $lines);
+}
+
 sub dir_glob_regex {
     my ($dir, $regex) = @_;