Commit 72eb5b9f authored by Stefan Priebe's avatar Stefan Priebe Committed by Dietmar Maurer

implement node netstat call to get current tap network counters

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: 's avatarStefan Priebe <s.priebe@profihost.ag>
parent 849b37a1
......@@ -124,6 +124,7 @@ __PACKAGE__->register_method ({
{ name => 'aplinfo' },
{ name => 'startall' },
{ name => 'stopall' },
{ name => 'netstat' },
];
return $result;
......@@ -273,6 +274,53 @@ __PACKAGE__->register_method({
return $res;
}});
__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',
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment