[pve-devel] [PATCH] [V3] implement node netstat call to get current tap network counters

Stefan Priebe - Profihost AG s.priebe at profihost.ag
Thu Apr 18 11:18:57 CEST 2013


*urg* sorry yes correct path is PVE/API2/Nodes.pm.

Am 18.04.2013 11:17, schrieb Dietmar Maurer:
> I am unable to apply that patch, I get
> 
> error: API2/Nodes.pm: does not exist in index
> 
> correct path is PVE/API2/Nodes.pm?
> 
>> -----Original Message-----
>> From: pve-devel-bounces at pve.proxmox.com [mailto:pve-devel-
>> bounces at pve.proxmox.com] On Behalf Of Stefan Priebe
>> Sent: Donnerstag, 18. April 2013 09:04
>> To: pve-devel at pve.proxmox.com
>> Subject: [pve-devel] [PATCH] [V3] 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: Stefan Priebe <s.priebe at 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 at pve.proxmox.com
>> http://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel
> 
> 


More information about the pve-devel mailing list