simple dbus & python query.

John (J5) Palmieri johnp at redhat.com
Mon Jul 31 10:12:46 PDT 2006


You are using the 0.2x API.  The newer API looks like this:

bus = dbus.SystemBus()
hal_manager_obj = self.bus.get_object("org.freedesktop.Hal",
                                                               
"/org/freedesktop/Hal/Manager")
hal_manager_iface = dbus.Interface(self.hal_manager_obj,
                                                           
"org.freedesktop.Hal.Manager")


dennis wrote:
> 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)
> _______________________________________________
> dbus mailing list
> dbus at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/dbus



More information about the dbus mailing list