Revision 2f14c43c tools/migrate-users

b/tools/migrate-users
36 36
from lib.migrate import Migration
37 37

  
38 38
from sqlalchemy import Table
39
from pithos.aai.models import PithosUser
39
from pithos.im.models import User
40 40

  
41 41
import base64
42 42

  
......
46 46
        self.gss_users = Table('gss_user', self.metadata, autoload=True)
47 47
    
48 48
    def execute(self):
49
        s = self.gss_users.select()
50
        users = self.conn.execute(s).fetchall()
51
        l = []
52
        for u in users:
53
            user = PithosUser()
49
        for u in self.retrieve_users():
50
            user = User()
54 51
            user.pk = u['id']
55 52
            user.uniq = u['username']
56 53
            user.realname = u['name']
57
            user.is_admin = False
58 54
            user.affiliation = u['homeorganization'] if u['homeorganization'] else ''
59 55
            user.auth_token = base64.b64encode(u['authtoken'])
60 56
            user.auth_token_created = u['creationdate']
61 57
            user.auth_token_expires = u['authtokenexpirydate']
62 58
            user.created = u['creationdate']
63 59
            user.updated = u['modificationdate']
60
            user.email = u['email']
61
            user.active = 'ACTIVE' if u['active'] else 'SUSPENDED'
64 62
            print '#', user
65 63
            user.save(update_timestamps=False)
64
    
65
    def retrieve_users(self):
66
        s = self.gss_users.select()
67
        rp = self.conn.execute(s)
68
        user = rp.fetchone()
69
        while user:
70
            yield user
71
            user = rp.fetchone()
72
        rp.close()
66 73

  
67 74
if __name__ == "__main__":
68
    db = 'postgresql://gss@localhost/pithos'
75
    db = 'postgresql://gss@127.0.0.1/pithos'
69 76
    m = UserMigration(db)
70 77
    m.execute()

Also available in: Unified diff