3
from twisted.internet.utils import getProcessOutput
5
from landscape.manager.plugin import ManagerPlugin
8
class HardwareInfo(ManagerPlugin):
9
"""A plugin to retrieve hardware information."""
11
message_type = "hardware-info"
12
run_interval = 60 * 60 * 24
13
run_immediately = True
14
command = "/usr/bin/lshw"
17
self.call_on_accepted(self.message_type, self.send_message)
18
return self.registry.broker.call_if_accepted(
19
self.message_type, self.send_message)
21
def send_message(self):
22
result = getProcessOutput(
23
self.command, args=["-xml", "-quiet"], env=os.environ, path=None)
24
return result.addCallback(self._got_output)
26
def _got_output(self, output):
27
message = {"type": self.message_type, "data": output}
28
return self.registry.broker.send_message(message)