[Spacewalk-list] rhnreg_ks on F15

Miroslav Suchy msuchy at redhat.com
Wed Apr 13 20:07:16 UTC 2011


Dne 13.4.2011 16:26, Sandro "red" Mathys napsal(a):
> 2011/4/13 Miroslav Suchý<msuchy at redhat.com>:
>> On 04/13/2011 02:52 PM, Sandro "red" Mathys wrote:
>>> 2011/4/13 Miroslav Suchý<msuchy at redhat.com>:
>>>> It is some USB device. Can you run this python script in both %post
>>>> section of kickstart and after normal reboot? Check the diferences.
>>>> You should look for records with
>>>> XXX: None
>>>
>>> Lots of XXX: None found, actually it's always None!
>>
>> That is strange... aha, there is typo. It should be PRODUCT and not product.
>> Commited as ebd9948a92945026db88932eefd23c4c0c7738ea
>
> Next issue: ~4 lines later, "usb" is not defined:
> <type 'exceptions.UnboundLocalError'>: local variable 'usb' referenced
> before assignment
>
> If I add "usb = USB()" (as found in the first part of that
> if-elif-else construct) before that line, I get the next traceback:
> [Wed Apr 13 15:18:51 2011] up2date
> Traceback (most recent call last):
>    File "/usr/sbin/rhnreg_ks", line 213, in<module>
>      cli.run()
>    File "/usr/share/rhn/up2date_client/rhncli.py", line 74, in run
>      sys.exit(self.main() or 0)
>    File "/usr/sbin/rhnreg_ks", line 101, in main
>      hardwareList = hardware.Hardware()
>    File "/usr/share/rhn/up2date_client/hardware.py", line 674, in Hardware
>      allhw = get_devices()
>    File "/usr/share/rhn/up2date_client/hardware_gudev.py", line 45, in
> get_devices
>      'desc':     _get_device_desc(device),
>    File "/usr/share/rhn/up2date_client/hardware_gudev.py", line 311, in
> _get_device_desc
>      result = "%s|%s" % (usb.get_vendor(vendor_id),
> usb.get_device(vendor_id, device.get_property('ID_MODEL_ID')))
>    File "/usr/lib/python2.7/site-packages/hwdata.py", line 82, in get_device
>      device = device.lower()
> <type 'exceptions.AttributeError'>: 'NoneType' object has no attribute 'lower'


That is strange. Sandro, can you run this for me:
 >>> import gudev
 >>> import glib
 >>> def print_device(device):
...     print "subsystem", device.get_subsystem()
...     print "devtype", device.get_devtype()
...     print "name", device.get_name()
...     print "number", device.get_number()
...     print "sysfs_path:", device.get_sysfs_path()
...     print "driver:", device.get_driver()
...     print "action:", device.get_action()
...     print "seqnum:", device.get_seqnum()
...     print "device type:", device.get_device_type()
...     print "device number:", device.get_device_number()
...     print "device file:", device.get_device_file()
...     print "device file symlinks:", ", 
".join(device.get_device_file_symlinks())
...     for k in device.get_property_keys():
...        print "  %s = %s" % (k , device.get_property(k))
...
 >>> client = gudev.Client(["usb"])
 >>> devices = client.query_by_subsystem("usb")
 >>> for device in devices:
...     print_device(device)

Your traceback means that you have some device which has no ID_MODEL_ID. 
I can get this data from PRODUCT, but I'm really curious which device do 
not have ID_MODEL_ID. Only usb_interfaces do not have it AFAIK, but they 
are filtered few lines above...

Mirek




More information about the Spacewalk-list mailing list