Skip to content

Instantly share code, notes, and snippets.

@ximenesuk
Created June 27, 2012 09:50
Show Gist options
  • Save ximenesuk/3003031 to your computer and use it in GitHub Desktop.
Save ximenesuk/3003031 to your computer and use it in GitHub Desktop.
Script to add large numbers of Groups & Users
from omero.gateway import BlitzGateway
import omero
from omero.rtypes import rstring
from omero_model_ExperimenterI import ExperimenterI
from omero_model_ExperimenterGroupI import ExperimenterGroupI
from omero_model_PermissionsI import PermissionsI
####################################################
# Remember to set the correct host before running! #
####################################################
rootpassw = "omero"
#host='gretzky.openmicroscopy.org.uk'
host='localhost'
conn = BlitzGateway('root', rootpassw, host=host)
conn.connect()
admin = conn.getAdminService()
uuid = admin.getEventContext().sessionUuid
uuid = "" # for real
#uuid = "_%s" % uuid # for testing the script itself
userpassw = "ome"
passw = rstring(userpassw)
emailsuff = "@example.com"
numgroups = 50
numusers = 50
# existing groups
userGroup = admin.lookupGroup("user")
####################
# Create groups
####################
glist = []
for gr in range(numgroups):
# Create a group object
group = ExperimenterGroupI()
group.name = rstring("mgroup_" + str(gr) + uuid)
group.details.permissions = PermissionsI("rwra--")
gid = admin.createGroup(group)
glist.append(admin.getGroup(gid))
glist.append(userGroup)
####################
# Create users
####################
for usr in range(numusers):
# Create an experimenter object
user = ExperimenterI()
name = "muser_" + str(usr) + uuid
user.omeName = rstring(name)
user.firstName = rstring(name)
user.lastName = rstring(name)
user.email = rstring(name + emailsuff)
admin.createExperimenterWithPassword(user, passw, glist[0], glist)
conn.seppuku()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment