Server : Apache/2.4.18 (Ubuntu) System : Linux canvaswebdesign 3.13.0-71-generic #114-Ubuntu SMP Tue Dec 1 02:34:22 UTC 2015 x86_64 User : oppastar ( 1041) PHP Version : 7.0.33-0ubuntu0.16.04.15 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,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, Directory : /usr/lib/python2.7/dist-packages/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 scope = "network" 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}