~ahasenack/landscape-client/landscape-client-1.5.5.1-0ubuntu0.10.10.0

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
"""
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)
        self.registry.reactor.call_on("resynchronize", self._resynchronize)

    def _resynchronize(self):
        """Resynchronize active network device information."""
        self._persist.set("data", [])

    def get_data(self):
        return self._device_info()