Am 08.09.2009 22:00, schrieb Cliff:
Michael Kefeder wrote:
Hi List

we recently ran into some problems with systems whose smbios
information with rhnreg_ks was None. Here's our call and the errorlog:

# rhnreg_ks --serverUrl=http://spacewalk.ourdomain.com/XMLRPC
--activationkey=1-server

log:

exceptions.TypeError: cannot marshal None unless allow_none is enabled

There is also a warning:

up2date Warning: haldaemon or messagebus service not running. Cannot
probe hardware and DMI information.

This warning popped up on every machine, but it didn't cause any
troubles on almost every of our systems. A few however died with the
error message from above.

I think the best fix would be to raise the errorlevel of
get_hal_smbios()s exception message from debug to fatal or something,
because else it'll return None and keep the system from registering
with spacewalk without really informing the user why it did not work.
Starting haldaemon fixes the problem, but since it is only mentioned
as a warning, that also shows on every other machine, it didn't occur
to us that this was the problem.

Suggested fix:

/usr/share/rhn/up2date_client/hardware.py

def get_hal_smbios():
try:
computer = get_hal_computer()
props = computer.GetAllProperties()
except:
log = up2dateLog.initLog()
msg = "Error reading smbios information: %s\n" % (sys.exc_type)
log.log_me(msg)
return
smbios = {}
for key in props:
if key.startswith('smbios'):
smbios[str(key)] = props[str(key)]
return smbios


I think we already fixed this. Are you using the newest client code?

http://git.fedorahosted.org/git/spacewalk.git?p=spacewalk.git;a=blob;f=client/rhel/rhn-client-tools/src/up2date_client/hardware.py;h=d9f4269fbbba97cd702b1e6b0c0ded916a10765d;hb=7f971c06de2ac869c138791252dd70d1496a3c78


878 def get_hal_smbios():
879 try:
880 computer = get_hal_computer()
881 props = computer.GetAllProperties()
882 except:
883 log = up2dateLog.initLog()
884 msg = "Error reading smbios information: %s\n" % (sys.exc_type)
885 log.log_debug(msg)
886 return {}
887 smbios = {}
888 for key in props:
889 if key.startswith('smbios'):
890 smbios[str(key)] = props[str(key)]
891 return smbios

Thanks,
Cliff


hrhr, the "886 return {}" fix was my first solution, but then I figured it'd be better if hardware info was actually collected (starting haldaemon helps) instead of returning an empty dict.

We were not using recent client code, but it's great that you guys fixed that - I'll let the admin fetch the newest version.

Thanks
 Mike

_______________________________________________
Spacewalk-devel mailing list
[email protected]
https://www.redhat.com/mailman/listinfo/spacewalk-devel

Reply via email to