We store countries in the DB by 2 letters. If you try to call system.setDetails to set the country and pass in something greater than 2 letters, you get an odd traceback because an uncaught oracle exception was thrown. We need to check to see if it's greater than 2 letters and throw a verbose exception if it is.
f5911db..346398b
Verified against: Satellite-5.3.0-RHEL5-re20081223.1-i386-embedded-oracle.iso Example of the error message returned: redstone.xmlrpc.XmlRpcFault: The specified country code 'USAA' is not recognized. Countries are specified using their two letter abbreviations.
import xmlrpclib server = xmlrpclib.Server("http://saturl/rpc/api", verbose = 0) key = server.auth.login("sayli", "redhat") result = server.system.setDetails(key, 1000013080, {"country":"fdhks"}) print result >>> xmlrpclib.Fault: <Fault 2280: "redstone.xmlrpc.XmlRpcFault: The specified country code 'fdhks' is not recognized. Countries are specified using their two letter abbreviations."> Moving to release_pending.
An advisory has been issued which should help the problem described in this bug report. This report is therefore being closed with a resolution of ERRATA. For more information on therefore solution and/or where to find the updated files, please follow the link below. You may reopen this bug report if the solution does not work for you. http://rhn.redhat.com/errata/RHEA-2009-1434.html