simple dbus & python query.

dennis dbus at nomoreheroes.org.uk
Sat Jul 29 08:31:15 PDT 2006


Hi,

I have this sample python script from the hal sources, but it doesn't work
for me. This is despite other example python scripts I have to help me are
working fine. The problem is that this script is the closet to what it is
I actually want to learn to do.

My system: ubuntu 6.06 (inc. all updates) on a bog standard x86 P4 PC.

I've been googling on this one, and tried newsgroups too, to no avail. 
I'm a bit of a coding newbie, too, although I'm not totally new to all 
the important & relevant concepts.

Documentation on this stuff is extremely thin on the ground, so links to
any good resources other than those at freedesktop.org would be most
appreciated ... the "simpler" and easier to follow that they are the better.

For my current problem, the error is:

Traceback (most recent call last):
  File "./dbus-3.py", line 6, in ?
    hal_service = bus.get_service ('org.freedesktop.Hal')
AttributeError: 'SystemBus' object has no attribute 'get_service'


The script is as follows:

#!/usr/bin/python

import dbus

bus = dbus.Bus (dbus.Bus.TYPE_SYSTEM)
hal_service = bus.get_service ('org.freedesktop.Hal')
hal_manager = hal_service.get_object ('/org/freedesktop/Hal/Manager',
                                      'org.freedesktop.Hal.Manager')

volume_udi_list = hal_manager.FindDeviceByCapability ('volume')
for udi in volume_udi_list:
    volume = hal_service.get_object (udi, 'org.freedesktop.Hal.Device')
    device_file = volume.GetProperty ('block.device')
    fstype = volume.GetProperty ('volume.fstype')
    storage_udi = volume.GetProperty ('block.storage_device')
    storage = hal_service.get_object (storage_udi, 
'org.freedesktop.Hal.Device')
    drive_type = storage.GetProperty ('storage.drive_type')
    print 'udi=%s device_file=%s fstype=%s drive_type=%s'%(udi,
    device_file, fstype, drive_type)


More information about the dbus mailing list