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

« back to all changes in this revision

Viewing changes to bin/ivle-remakeuser

  • Committer: matt.giuca
  • Date: 2009-01-18 23:03:54 UTC
  • Revision ID: svn-v3-trunk0:2b9c9e99-6f39-0410-b283-7f802c844ae2:trunk:1166
setup.install: Merged change from Storm branch (should have been committed
    directly to trunk). Small bugfix.

Show diffs side-by-side

added added

removed removed

Lines of Context:
28
28
import os
29
29
import optparse
30
30
import logging
31
 
import traceback
32
31
 
33
 
import ivle.config
34
 
import ivle.database
 
32
import ivle.db
35
33
import ivle.makeuser
36
34
 
37
35
p = optparse.OptionParser()
50
48
                          os.path.basename(sys.argv[0])
51
49
    sys.exit(1)
52
50
 
53
 
config = ivle.config.Config()
54
 
store = ivle.database.get_store(config)
55
 
 
56
 
if options.all:
57
 
    users = store.find(ivle.database.User).order_by(ivle.database.User.login)
58
 
else:
59
 
    if len(arguments) == 0:
60
 
        print >> sys.stderr, "must be run with -a or a username"
61
 
        sys.exit(1)
62
 
    users = [ivle.database.User.get_by_login(store, arguments[0])]
 
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)
63
67
 
64
68
logging.info("rebuild started")
65
69
 
66
 
for user in users:
 
70
list.sort(key=lambda user: user.login)
 
71
for user in list:
 
72
    login = user.login
 
73
 
67
74
    try:
68
 
        ivle.makeuser.make_jail(user, config)
 
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)
69
83
    except Exception, message:
70
 
        logging.error("Failed to recreate jail for %s.\n%s" % 
71
 
                      (user.login, traceback.format_exc()))
 
84
        logging.warning(str(message))
72
85
        continue
73
86
 
74
 
    logging.debug("recreated user %s's jail." % user.login)
 
87
    logging.debug("recreated user %s's jail." % login)
75
88
    
76
89
logging.info("rebuild completed successfully")