~azzar1/unity/add-show-desktop-key

« back to all changes in this revision

Viewing changes to bin/ivle-remakeuser

  • Committer: William Grant
  • Date: 2009-01-22 04:47:42 UTC
  • mfrom: (1080.1.93 storm)
  • Revision ID: grantw@unimelb.edu.au-20090122044742-sa8gnww0ma2bm2rv
Merge Storm branch. ivle.db is dead. Watch out for the schema change.

Show diffs side-by-side

added added

removed removed

Lines of Context:
29
29
import optparse
30
30
import logging
31
31
 
32
 
import ivle.db
 
32
import ivle.database
33
33
import ivle.makeuser
34
34
 
35
35
p = optparse.OptionParser()
48
48
                          os.path.basename(sys.argv[0])
49
49
    sys.exit(1)
50
50
 
51
 
try:
52
 
    db = ivle.db.DB()
53
 
    if options.all:
54
 
        list = db.get_users()
55
 
    else:
56
 
        if len(arguments) == 0:
57
 
            print >> sys.stderr, "must be run with -a or a username"
58
 
            sys.exit(1)
59
 
        list = [db.get_user(arguments[0])]
60
 
    res = db.get_all('login', ['login', 'unixid'])
61
 
    def repack(flds):
62
 
        return (flds['login'], flds['unixid'])
63
 
    uids = dict(map(repack,res))
64
 
except Exception, message:
65
 
    logging.error(str(message))
66
 
    sys.exit(1)
 
51
store = ivle.database.get_store()
 
52
 
 
53
if options.all:
 
54
    users = store.find(ivle.database.User).order_by(ivle.database.User.login)
 
55
else:
 
56
    if len(arguments) == 0:
 
57
        print >> sys.stderr, "must be run with -a or a username"
 
58
        sys.exit(1)
 
59
    users = [ivle.database.User.get_by_login(store, arguments[0])]
67
60
 
68
61
logging.info("rebuild started")
69
62
 
70
 
list.sort(key=lambda user: user.login)
71
 
for user in list:
72
 
    login = user.login
73
 
 
 
63
for user in users:
74
64
    try:
75
 
        # Resolve the user's login into a UID
76
 
        try:
77
 
            uid = uids[login]
78
 
        except KeyError:
79
 
            raise Exception("user %s does not have a unixid in the database"
80
 
                % login)
81
 
        # Remake the user's jail
82
 
        ivle.makeuser.make_jail(login, uid)
 
65
        ivle.makeuser.make_jail(user)
83
66
    except Exception, message:
84
67
        logging.warning(str(message))
85
68
        continue
86
69
 
87
 
    logging.debug("recreated user %s's jail." % login)
 
70
    logging.debug("recreated user %s's jail." % user.login)
88
71
    
89
72
logging.info("rebuild completed successfully")