def add_project(project): keystone = client.Client(username=username, password=password, tenant_name=tenant_name, auth_url=auth_url) db = DataBase.acctDB() users = researchers.findprojlogins(db, project) # sanity check if len(users) == 0: print "That project has no users." return title = session.query(Projects, Projects.title).filter_by(project=project)[0].title # get tenant by name is bugged at the moment # https://bugs.launchpad.net/keystone/+bug/1055763 tenants = keystone.tenants.list() t = [t for t in tenants if t.name == project] if len(t) == 0: print "making project " + project + " with description '" + title + "'" keystone.tenants.create(project, description=title, enabled=True) tenants = keystone.tenants.list() tenant = [t for t in tenants if t.name == project][0] existingusers = [k for k in keystone.users.list()] existingusernames = [k.name for k in existingusers] for user in users: existinguser = [u for u in existingusers if u.name == user] if len(existinguser) == 1: existinguser = existinguser[0] print "adding member roles to " + user keystone.roles.add_user_role(existinguser.id, role=memberRole, tenant=tenant.id) else: print "adding " + user userpw = str(base64.encodestring(sha.new( randpasswd()).digest())).replace('=', '-')[:-1] pid = researchers.get_personid(db, user) # some users don't have email addresses ppl = session.query(People.email).filter_by(personid=pid) for p in ppl: email = p.email break keystone.users.create(name=user, password=userpw, email=email, tenant_id=tenant.id, enabled=True) create_cred_file(user, userpw, tenant.name)
def add_project(project): keystone = client.Client(username=username, password=password, tenant_name=tenant_name, auth_url=auth_url) db = DataBase.acctDB() users = researchers.findprojlogins(db, project) # sanity check if len(users) == 0: print "That project has no users." return title = session.query(Projects, Projects.title).filter_by(project=project)[0].title # get tenant by name is bugged at the moment # https://bugs.launchpad.net/keystone/+bug/1055763 tenants = keystone.tenants.list() t = [t for t in tenants if t.name==project] if len(t) == 0: print "making project " + project + " with description '" + title + "'" keystone.tenants.create(project, description=title, enabled=True) tenants = keystone.tenants.list() tenant = [t for t in tenants if t.name==project][0] existingusers = [k for k in keystone.users.list()] existingusernames = [k.name for k in existingusers] for user in users: existinguser = [u for u in existingusers if u.name == user] if len(existinguser) == 1: existinguser = existinguser[0] print "adding member roles to " + user keystone.roles.add_user_role(existinguser.id, role=memberRole, tenant=tenant.id) else: print "adding " + user userpw = str(base64.encodestring(sha.new(randpasswd()).digest())).replace('=','-')[:-1] pid = researchers.get_personid(db, user) # some users don't have email addresses ppl = session.query(People.email).filter_by(personid=pid) for p in ppl: email = p.email break keystone.users.create(name=user, password=userpw, email=email, tenant_id=tenant.id, enabled=True) create_cred_file(user, userpw, tenant.name)
def add_user_to_tenant(user, tenant): keystone = client.Client(username=username, password=password, tenant_name=tenant_name, auth_url=auth_url) db = DataBase.acctDB()