diff options
author | Chris Lumens <clumens@redhat.com> | 2008-01-29 14:15:34 -0500 |
---|---|---|
committer | Chris Lumens <clumens@redhat.com> | 2008-01-29 14:15:34 -0500 |
commit | 553f494dea845b8d3ae30af5977619ad05084af2 (patch) | |
tree | be25c7872c8555f01c7542b2b68b9352ac079141 | |
parent | 6321f34ef68972e7e1ce3126fa69c7f493eb25f3 (diff) | |
download | anaconda-553f494dea845b8d3ae30af5977619ad05084af2.tar.gz anaconda-553f494dea845b8d3ae30af5977619ad05084af2.tar.xz anaconda-553f494dea845b8d3ae30af5977619ad05084af2.zip |
Don't traceback trying to raise an exception when making users (#430772).
Since we are chrooted when adding a user, it's impossible to find the
glade files in the installation environment. It looks like the only
thing we can really do is log an error message and keep going.
-rw-r--r-- | users.py | 62 |
1 files changed, 33 insertions, 29 deletions
@@ -80,46 +80,50 @@ class Users: if not childpid: os.chroot(root) - if self.admin.lookupUserByName(name): - os._exit(1) + try: + if self.admin.lookupUserByName(name): + os._exit(1) - userEnt = self.admin.initUser(name) - groupEnt = self.admin.initGroup(name) + userEnt = self.admin.initUser(name) + groupEnt = self.admin.initGroup(name) - grpLst = filter(lambda grp: grp, - map(lambda name: self.admin.lookupGroupByName(name), groups)) - userEnt.set(libuser.GIDNUMBER, [groupEnt.get(libuser.GIDNUMBER)[0]] + - map(lambda grp: grp.get(libuser.GIDNUMBER)[0], grpLst)) + grpLst = filter(lambda grp: grp, + map(lambda name: self.admin.lookupGroupByName(name), groups)) + userEnt.set(libuser.GIDNUMBER, [groupEnt.get(libuser.GIDNUMBER)[0]] + + map(lambda grp: grp.get(libuser.GIDNUMBER)[0], grpLst)) - if not homedir: - homedir = "/home/" + name + if not homedir: + homedir = "/home/" + name - userEnt.set(libuser.HOMEDIRECTORY, homedir) + userEnt.set(libuser.HOMEDIRECTORY, homedir) - if shell: - userEnt.set(libuser.LOGINSHELL, shell) + if shell: + userEnt.set(libuser.LOGINSHELL, shell) - if uid >= 0: - userEnt.set(libuser.UIDNUMBER, uid) + if uid >= 0: + userEnt.set(libuser.UIDNUMBER, uid) - self.admin.addUser(userEnt) - self.admin.addGroup(groupEnt) + self.admin.addUser(userEnt) + self.admin.addGroup(groupEnt) - if password: - if isCrypted: - self.admin.setpassUser(userEnt, password, isCrypted) - else: - self.admin.setpassUser(userEnt, cryptPassword(password, True), isCrypted) + if password: + if isCrypted: + self.admin.setpassUser(userEnt, password, isCrypted) + else: + self.admin.setpassUser(userEnt, cryptPassword(password, True), isCrypted) - if lock: - self.admin.lockUser(userEnt) + if lock: + self.admin.lockUser(userEnt) - # Add the user to all the groups they should be part of. - for grp in grpLst: - grp.add(libuser.MEMBERNAME, name) - self.admin.modifyGroup(grp) + # Add the user to all the groups they should be part of. + for grp in grpLst: + grp.add(libuser.MEMBERNAME, name) + self.admin.modifyGroup(grp) - os._exit(0) + os._exit(0) + except Exception, e: + log.critical("Error when creating new user: %s" % str(e)) + os._exit(1) try: (pid, status) = os.waitpid(childpid, 0) |