[pve-devel] [RFC manager 1/2] node: add journal api

Dominik Csapak d.csapak at proxmox.com
Mon May 13 14:49:21 CEST 2019


this uses the new journalreader instead of journalctl, which is a bit
faster and can read from/to cursor and returns a start/end cursor

also you can give an unix epoch as time parameters

Signed-off-by: Dominik Csapak <d.csapak at proxmox.com>
---
 PVE/API2/Nodes.pm | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 52 insertions(+)

diff --git a/PVE/API2/Nodes.pm b/PVE/API2/Nodes.pm
index df47be1f..7f13f809 100644
--- a/PVE/API2/Nodes.pm
+++ b/PVE/API2/Nodes.pm
@@ -699,6 +699,58 @@ __PACKAGE__->register_method({
 	return $lines;
     }});
 
+__PACKAGE__->register_method({
+    name => 'journal',
+    path => 'journal',
+    method => 'GET',
+    description => "Read Journal",
+    proxyto => 'node',
+    permissions => {
+	check => ['perm', '/nodes/{node}', [ 'Sys.Syslog' ]],
+    },
+    protected => 1,
+    parameters => {
+	additionalProperties => 0,
+	properties => {
+	    node => get_standard_option('pve-node'),
+	    since => {
+		type=> 'number',
+		description => "Display all log since this UNIX epoch.",
+		optional => 1,
+	    },
+	    until => {
+		type=> 'number',
+		description => "Display all log until this UNIX epoch.",
+		optional => 1,
+	    },
+	    lastentries => {
+		type => 'integer',
+		optional => 1,
+	    },
+	    startcursor => {
+		type => 'string',
+		optional => 1,
+	    },
+	    endcursor => {
+		type => 'string',
+		optional => 1,
+	    },
+	},
+    },
+    returns => {
+	type => 'array',
+    },
+    code => sub {
+	my ($param) = @_;
+
+	my $rpcenv = PVE::RPCEnvironment::get();
+	my $user = $rpcenv->get_user();
+
+	return PVE::Tools::read_journal($param->{since}, $param->{until},
+	    $param->{last}, $param->{startcursor}, $param->{endcursor});
+
+    }});
+
 my $sslcert;
 
 my $shell_cmd_map = {
-- 
2.11.0





More information about the pve-devel mailing list