| Server IP : 61.19.30.66 / Your IP : 216.73.216.15 Web Server : Apache/2.2.22 (Ubuntu) System : Linux klw 3.11.0-15-generic #25~precise1-Ubuntu SMP Thu Jan 30 17:39:31 UTC 2014 x86_64 User : www-data ( 33) PHP Version : 5.3.10-1ubuntu3.48 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority, MySQL : ON | cURL : OFF | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : OFF Directory : /usr/share/pyshared/landscape/monitor/ |
Upload File : |
"""
A monitor plugin that collects data on a machine's network devices.
"""
from landscape.monitor.plugin import DataWatcher
from landscape.lib.network import get_active_device_info
class NetworkDevice(DataWatcher):
message_type = "network-device"
message_key = "devices"
persist_name = message_type
def __init__(self, device_info=get_active_device_info):
super(NetworkDevice, self).__init__()
self._device_info = device_info
def register(self, registry):
super(NetworkDevice, self).register(registry)
self.call_on_accepted(self.message_type, self.exchange, True)
def get_message(self):
device_data = self._device_info()
# Persist if the info is new.
if self._persist.get("network-device-data") != device_data:
self._persist.set("network-device-data", device_data)
# We need to split the message in two top-level keys (see bug)
device_speeds = []
for device in device_data:
speed_entry = {"interface": device["interface"]}
speed_entry["speed"] = device.pop("speed")
speed_entry["duplex"] = device.pop("duplex")
device_speeds.append(speed_entry)
return {"type": self.message_type,
"devices": device_data,
"device-speeds": device_speeds}