~bladernr/checkbox/1095713-set-pipefail-on-sleep-jobs

« back to all changes in this revision

Viewing changes to hwtest/device.py

  • Committer: David Murphy
  • Date: 2007-09-18 15:26:03 UTC
  • Revision ID: david.murphy@canonical.com-20070918152603-wqjqtdyqftleulho
Initial release

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
from dbus import Interface, SystemBus
 
2
 
 
3
 
 
4
class Device(object):
 
5
 
 
6
    def __init__(self, hal_device):
 
7
        self._children = []
 
8
        self._device = hal_device
 
9
        self.properties = hal_device.GetAllProperties()
 
10
        self.udi = self.properties["info.udi"]
 
11
        self.parent = None
 
12
 
 
13
    def add_child(self, device):
 
14
        self._children.append(device)
 
15
        device.parent = self
 
16
 
 
17
    def get_children(self):
 
18
        return self._children
 
19
 
 
20
 
 
21
class DeviceManager(object):
 
22
 
 
23
    def __init__(self, bus=None):
 
24
        self._bus = bus or SystemBus()
 
25
        manager = self._bus.get_object("org.freedesktop.Hal",
 
26
                                       "/org/freedesktop/Hal/Manager")
 
27
        self._manager = Interface(manager, "org.freedesktop.Hal.Manager")
 
28
 
 
29
    def get_devices(self):
 
30
        devices = []
 
31
        for udi in self._manager.GetAllDevices():
 
32
            hal_device = self._bus.get_object("org.freedesktop.Hal", udi)
 
33
            hal_device = Interface(hal_device, "org.freedesktop.Hal.Device")
 
34
            device = Device(hal_device)
 
35
            devices.append(device)
 
36
 
 
37
        return devices