|
#!/usr/bin/env python2.4
|
|
|
|
import dbus
|
|
|
|
bus = dbus.SystemBus()
|
|
halService = bus.get_object('org.freedesktop.Hal',
|
|
'/org/freedesktop/Hal/Manager')
|
|
halManager = dbus.Interface(halService, 'org.freedesktop.Hal.Manager')
|
|
|
|
def getStorageDevice(udi):
|
|
for child in halManager.FindDeviceByCapability('storage'):
|
|
deviceObj = bus.get_object('org.freedesktop.Hal',
|
|
child)
|
|
deviceProperties = deviceObj.GetAllProperties(
|
|
dbus_interface = 'org.freedesktop.Hal.Device')
|
|
if deviceProperties['storage.physical_device'] == udi + '_if0':
|
|
return child
|
|
return None
|
|
|
|
def showVolumes(udi):
|
|
for volume in halManager.FindDeviceByCapability('volume'):
|
|
deviceObj = bus.get_object('org.freedesktop.Hal',
|
|
volume)
|
|
deviceProperties = deviceObj.GetAllProperties(
|
|
dbus_interface = 'org.freedesktop.Hal.Device')
|
|
if deviceProperties['block.storage_device'] != udi:
|
|
continue
|
|
print '%s\t\t%s' % (deviceProperties['block.device'],
|
|
deviceProperties['volume.uuid'])
|
|
|
|
def showProperties(udi):
|
|
storage = getStorageDevice(udi)
|
|
if storage is None:
|
|
return
|
|
print
|
|
deviceObj = bus.get_object('org.freedesktop.Hal',
|
|
udi)
|
|
deviceProperties = deviceObj.GetAllProperties(
|
|
dbus_interface = 'org.freedesktop.Hal.Device')
|
|
print 'Device %s' % udi
|
|
print 'Vendor: %s' % deviceProperties['usb_device.vendor']
|
|
print 'Product: %s' % deviceProperties['info.product']
|
|
print 'Serial Number: %s' % deviceProperties['usb_device.serial']
|
|
print
|
|
print 'Volume\t\t\tUUID'
|
|
showVolumes(storage)
|
|
|
|
bus = dbus.SystemBus()
|
|
halService = bus.get_object('org.freedesktop.Hal',
|
|
'/org/freedesktop/Hal/Manager')
|
|
halManager = dbus.Interface(halService, 'org.freedesktop.Hal.Manager')
|
|
|
|
print 'Scanning USB devices...'
|
|
for udi in halManager.FindDeviceStringMatch('info.bus', 'usb_device'):
|
|
deviceObj = bus.get_object('org.freedesktop.Hal',
|
|
udi)
|
|
showProperties(udi)
|