/usr/share/pyshared/udevdiscover/device/net.py is in udev-discover 0.2.2-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 | # -*- coding: utf-8 -*-
# vim: ts=4
###
#
# Copyright (c) 2010 J. Félix Ontañón
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 3 as
# published by the Free Software Foundation
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
# Authors : J. Félix Ontañón <fontanon@emergya.es>
#
import os
from udevdiscover.device import Device
KB = 1024.0
MB = KB * 1024.0
GB = MB * 1024.0
def size_for_display(size):
if not size: return None
size = int(size)
if size < MB:
return "%.1f KB" % (size / KB)
elif size < GB:
return "%.1f MB" % (size / MB)
else:
return "%.1f GB" % (size / GB)
def get_device_object(device):
return NetDevice(device)
class NetDevice(Device):
DEFAULT_ICON = 'network-wired'
def get_summary(self):
def read_sysfs_file(filepath):
if os.path.exists(filepath):
f = open(filepath, 'r')
cont = f.read()
f.close()
if cont[-1] == '\n': cont = cont[:-1]
return cont
return None
return (
('interface', self.device.get_property('INTERFACE') or 'n/a'),
('mac address', read_sysfs_file(os.path.join(self.path,
'address')) or 'n/a'),
('operation state', read_sysfs_file(os.path.join(self.path,
'operstate')) or 'n/a'),
('rx bytes', size_for_display(read_sysfs_file(os.path.join(self.path,
'statistics/rx_bytes'))) or 'n/a'),
('tx bytes', size_for_display(read_sysfs_file(os.path.join(self.path,
'statistics/tx_bytes'))) or 'n/a'),
)
@property
def nice_label(self):
if self.device.get_devtype() == 'wlan':
return _('Wireless Network Device')
else:
return _('Network Device')
@property
def icon(self):
if self.device.get_devtype() == 'wlan':
return 'network-wireless'
else:
return self.DEFAULT_ICON
@property
def vendor_name(self):
return self.device.get_property('ID_VENDOR_FROM_DATABASE')
@property
def model_name(self):
return self.device.get_property('ID_MODEL_FROM_DATABASE')
|