def loadcert(self, cert, load_user=1): log_debug(4, cert) # certificate is presumed to be already verified if not isinstance(cert, Certificate): return -1 # reload the whole thing based on the cert data server = cert["system_id"] row = server_lib.getServerID(server) if row is None: return -1 sid = row["id"] # standard reload based on an ID ret = self.reload(sid) if not ret == 0: return ret # the reload() will never be able to fill in the username. It # would require from the database standpoint insuring that for # a given server we can have only one owner at any given time. # cert includes it and it's valid because it has been verified # through checksuming before we got here self.user = None # Load the user if at all possible. If it's not possible, # self.user will be None, which should be a handled case wherever # self.user is used. if load_user: # Load up the username associated with this profile self.user = rhnUser.search(cert["username"]) # 4/27/05 wregglej - Commented out this block because it was causing problems # with rhn_check/up2date when the user that registered the system was deleted. # if not self.user: # log_error("Invalid username for server id", # cert["username"], server, cert["profile_name"]) # raise rhnFault(9, "Invalid username '%s' for server id %s" %( # cert["username"], server)) # XXX: make sure that the database thinks that the server # registrnt is the same as this certificate thinks. The # certificate passed checksum checks, but it never hurts to be # too careful now with satellites and all. return 0