Changes since V2: - swap in / out / transmit / receive again Changes since V1: - new return format (use an arrayref instead of a hash to be JS compatible) - swap in / out / transmit / receive
Signed-off-by: Stefan Priebe <s.pri...@profihost.ag> --- API2/Nodes.pm | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) diff --git a/API2/Nodes.pm b/API2/Nodes.pm index 0dac6af..ee351c3 100644 --- a/API2/Nodes.pm +++ b/API2/Nodes.pm @@ -123,6 +123,7 @@ __PACKAGE__->register_method ({ { name => 'aplinfo' }, { name => 'startall' }, { name => 'stopall' }, + { name => 'netstat' }, ]; return $result; @@ -273,6 +274,53 @@ __PACKAGE__->register_method({ }}); __PACKAGE__->register_method({ + name => 'netstat', + path => 'netstat', + method => 'GET', + permissions => { + check => ['perm', '/nodes/{node}', [ 'Sys.Audit' ]], + }, + description => "Read tap/vm network device interface counters", + proxyto => 'node', + parameters => { + additionalProperties => 0, + properties => { + node => get_standard_option('pve-node'), + }, + }, + returns => { + type => "array", + items => { + type => "object", + properties => {}, + }, + }, + code => sub { + my ($param) = @_; + + my $res = [ ]; + + my $netdev = PVE::ProcFSTools::read_proc_net_dev(); + foreach my $dev (keys %$netdev) { + next if $dev !~ m/^tap([1-9]\d*)i(\d+)$/; + my $vmid = $1; + my $netid = $2; + + push( + @$res, + { + vmid => $vmid, + dev => "net$netid", + in => $netdev->{$dev}->{transmit}, + out => $netdev->{$dev}->{receive}, + } + ); + } + + return $res; + }}); + +__PACKAGE__->register_method({ name => 'node_cmd', path => 'status', method => 'POST', -- 1.7.10.4 _______________________________________________ pve-devel mailing list pve-devel@pve.proxmox.com http://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel