def list(self, args): c = self.ctx.conn(args) iadmin = c.sf.getAdminService() from omero.rtypes import unwrap from omero.util.text import TableBuilder list_of_dn_user_maps = unwrap(iadmin.lookupLdapAuthExperimenters()) if list_of_dn_user_maps is None: return count = 0 tb = TableBuilder("#") if args.style: tb.set_style(args.style) tb.cols(["Id", "OmeName", "DN"]) for map in list_of_dn_user_maps: for dn, id in map.items(): try: exp = iadmin.getExperimenter(id) except: self.ctx.err("Bad experimenter: %s" % id) tb.row(count, *(id, exp.omeName.val, dn)) count += 1 self.ctx.out(str(tb.build()))
def list(self, args): c = self.ctx.conn(args) groups = c.sf.getAdminService().lookupGroups() from omero.util.text import TableBuilder # Sort groups if args.sort_by_name: groups.sort(key=lambda x: x.name.val) elif args.sort_by_id: groups.sort(key=lambda x: x.id.val) if args.long: tb = TableBuilder("id", "name", "perms", "owner ids", "member ids") else: tb = TableBuilder("id", "name", "perms", "# of owners", "# of members") if args.style: tb.set_style(args.style) for group in groups: row = [group.id.val, group.name.val, str(group.details.permissions)] ownerids = self.getownerids(group) memberids = self.getmemberids(group) if args.long: row.append(",".join(sorted([str(x) for x in ownerids]))) row.append(",".join(sorted([str(x) for x in memberids]))) else: row.append(len(ownerids)) row.append(len(memberids)) tb.row(*tuple(row)) self.ctx.out(str(tb.build()))
def list(self, args): c = self.ctx.conn(args) iadmin = c.sf.getAdminService() from omero.rtypes import unwrap from omero.util.text import TableBuilder list_of_dn_user_maps = unwrap(iadmin.lookupLdapAuthExperimenters()) if list_of_dn_user_maps is None: return count = 0 tb = TableBuilder("#") if args.style: tb.set_style(args.style) tb.cols(["Id", "OmeName", "DN"]) for map in list_of_dn_user_maps: for dn, id in list(map.items()): try: exp = iadmin.getExperimenter(id) except: self.ctx.err("Bad experimenter: %s" % id) tb.row(count, *(id, exp.omeName.val, dn)) count += 1 self.ctx.out(str(tb.build()))
def list(self, args): c = self.ctx.conn(args) groups = c.sf.getAdminService().lookupGroups() from omero.util.text import TableBuilder # Sort groups if args.sort_by_name: groups.sort(key=lambda x: x.name.val) elif args.sort_by_id: groups.sort(key=lambda x: x.id.val) if args.long: tb = TableBuilder("id", "name", "perms", "owner ids", "member ids") else: tb = TableBuilder("id", "name", "perms", "# of owners", "# of members") if args.style: tb.set_style(args.style) for group in groups: row = [ group.id.val, group.name.val, str(group.details.permissions) ] ownerids = self.getownerids(group) memberids = self.getmemberids(group) if args.long: row.append(",".join(sorted([str(x) for x in ownerids]))) row.append(",".join(sorted([str(x) for x in memberids]))) else: row.append(len(ownerids)) row.append(len(memberids)) tb.row(*tuple(row)) self.ctx.out(str(tb.build()))
def _table(self, args): """ """ from omero.util.text import TableBuilder tb = TableBuilder("#") if args.style: tb.set_style(args.style) return tb
def display(self, rv, cols=None, style=None, idsonly=False): import omero.all import omero.rtypes from omero.util.text import TableBuilder has_details = [] tb = TableBuilder("#") if style: tb.set_style(style) for idx, object_list in enumerate(rv): klass = "Null" id = "" values = {} # Handling for simple lookup if not idsonly and len(object_list) == 1 and \ isinstance(object_list[0], omero.rtypes.RObjectI): has_details.append(idx) o = object_list[0].val if o: tb.cols(["Class", "Id"]) klass = o.__class__.__name__ id = o.id.val for k, v in list(o.__dict__.items()): values[k] = self.unwrap(v) values = self.filter(values) tb.cols(list(values.keys())) tb.row(idx, klass, id, **values) # Handling for true projections else: indices = list(range(1, len(object_list) + 1)) if cols is not None: tb.cols(cols) else: tb.cols(["Col%s" % x for x in indices]) values = tuple([self.unwrap(x) for x in object_list]) tb.row(idx, *values) self.ctx.out(str(tb.build())) return has_details
def display(self, rv, cols=None, style=None, idsonly=False): import omero.all import omero.rtypes from omero.util.text import TableBuilder has_details = [] tb = TableBuilder("#") if style: tb.set_style(style) for idx, object_list in enumerate(rv): klass = "Null" id = "" values = {} # Handling for simple lookup if not idsonly and len(object_list) == 1 and \ isinstance(object_list[0], omero.rtypes.RObjectI): has_details.append(idx) o = object_list[0].val if o: tb.cols(["Class", "Id"]) klass = o.__class__.__name__ id = o.id.val for k, v in o.__dict__.items(): values[k] = self.unwrap(v) values = self.filter(values) tb.cols(values.keys()) tb.row(idx, klass, id, **values) # Handling for true projections else: indices = range(1, len(object_list) + 1) if cols is not None: tb.cols(cols) else: tb.cols(["Col%s" % x for x in indices]) values = tuple([self.unwrap(x) for x in object_list]) tb.row(idx, *values) self.ctx.out(str(tb.build())) return has_details
def _detailed_usage_report(self, req, rsp, status, args): """ Print a breakdown of disk usage in table form, including user, group and component information according to the args. """ from omero.util.text import TableBuilder sum_by = ("user", "group", "component") if args.sum_by is not None: sum_by = args.sum_by showCols = list(sum_by) showCols.extend(["size", "files"]) align = 'l'*len(sum_by) align += 'rr' tb = TableBuilder(*showCols) tb.set_align(align) if args.style: tb.set_style(args.style) subtotals = {} if "component" in sum_by: for userGroup in rsp.bytesUsedByReferer.keys(): for (element, size) in rsp.bytesUsedByReferer[ userGroup].items(): files = rsp.fileCountByReferer[userGroup][element] keyList = [] if "user" in sum_by: keyList.append(userGroup.first) if "group" in sum_by: keyList.append(userGroup.second) keyList.append(element) key = tuple(keyList) if key in subtotals.keys(): subtotals[key][0] += size subtotals[key][1] += files else: subtotals[key] = [size, files] else: for userGroup in rsp.totalBytesUsed.keys(): size = rsp.totalBytesUsed[userGroup] files = rsp.totalFileCount[userGroup] keyList = [] if "user" in sum_by: keyList.append(userGroup.first) if "group" in sum_by: keyList.append(userGroup.second) key = tuple(keyList) if key in subtotals.keys(): subtotals[key][0] += size subtotals[key][1] += files else: subtotals[key] = [size, files] for key in subtotals.keys(): row = list(key) row.extend(subtotals[key]) tb.row(*tuple(row)) # Since an order in the response is not guaranteed if not sort keys # are specified then sort by the first column at least. if args.sort_by: keys = [] for col in args.sort_by: try: pos = showCols.index(col) keys.append(pos) except: pass else: keys = [0] tb.sort(cols=keys, reverse=args.reverse) # Format the size column after sorting. if args.units: col = tb.get_col("size") col = [self._to_units(val, args.units) for val in col] tb.replace_col("size", col) tb.replace_header("size", "size (%siB)" % args.units) elif args.human_readable: col = tb.get_col("size") col = [filesizeformat(val) for val in col] tb.replace_col("size", col) else: tb.replace_header("size", "size (bytes)") self.ctx.out(str(tb.build()))
def list(self, args): c = self.ctx.conn(args) a = c.sf.getAdminService() users = a.lookupExperimenters() roles = a.getSecurityRoles() user_group = roles.userGroupId sys_group = roles.systemGroupId from omero.util.text import TableBuilder if args.count: tb = TableBuilder("id", "login", "first name", "last name", "email", "active", "admin", "# group memberships", "# group ownerships") else: tb = TableBuilder("id", "login", "first name", "last name", "email", "active", "admin", "member of", "owner of") if args.style: tb.set_style(args.style) # Sort users if args.sort_by_login: users.sort(key=lambda x: x.omeName.val) elif args.sort_by_first_name: users.sort(key=lambda x: x.firstName.val) elif args.sort_by_last_name: users.sort(key=lambda x: x.lastName.val) elif args.sort_by_email: users.sort(key=lambda x: (x.email and x.email.val or "")) elif args.sort_by_id: users.sort(key=lambda x: x.id.val) for user in users: row = [user.id.val, user.omeName.val, user.firstName.val, user.lastName.val] row.append(user.email and user.email.val or "") active = "" admin = "" member_of = [] leader_of = [] for x in user.copyGroupExperimenterMap(): if not x: continue gid = x.parent.id.val if user_group == gid: active = "Yes" elif sys_group == gid: admin = "Yes" elif x.owner.val: leader_of.append(str(gid)) else: member_of.append(str(gid)) row.append(active) row.append(admin) if member_of: if args.count: row.append(len(member_of)) else: row.append(",".join(member_of)) else: row.append("") if leader_of: if args.count: row.append(len(leader_of)) else: row.append(",".join(leader_of)) else: row.append("") tb.row(*tuple(row)) self.ctx.out(str(tb.build()))
def _detailed_usage_report(self, req, rsp, status, args): """ Print a breakdown of disk usage in table form, including user, group and component information according to the args. """ from omero.util.text import TableBuilder sum_by = ("user", "group", "component") if args.sum_by is not None: sum_by = args.sum_by showCols = list(sum_by) showCols.extend(["size", "files"]) align = "l" * len(sum_by) align += "rr" tb = TableBuilder(*showCols) tb.set_align(align) if args.style: tb.set_style(args.style) subtotals = {} if "component" in sum_by: for userGroup in rsp.bytesUsedByReferer.keys(): for (element, size) in rsp.bytesUsedByReferer[userGroup].items(): files = rsp.fileCountByReferer[userGroup][element] keyList = [] if "user" in sum_by: keyList.append(userGroup.first) if "group" in sum_by: keyList.append(userGroup.second) keyList.append(element) key = tuple(keyList) if key in subtotals.keys(): subtotals[key][0] += size subtotals[key][1] += files else: subtotals[key] = [size, files] else: for userGroup in rsp.totalBytesUsed.keys(): size = rsp.totalBytesUsed[userGroup] files = rsp.totalFileCount[userGroup] keyList = [] if "user" in sum_by: keyList.append(userGroup.first) if "group" in sum_by: keyList.append(userGroup.second) key = tuple(keyList) if key in subtotals.keys(): subtotals[key][0] += size subtotals[key][1] += files else: subtotals[key] = [size, files] for key in subtotals.keys(): row = list(key) row.extend(subtotals[key]) tb.row(*tuple(row)) # Since an order in the response is not guaranteed if not sort keys # are specified then sort by the first column at least. if args.sort_by: keys = [] for col in args.sort_by: try: pos = showCols.index(col) keys.append(pos) except: pass else: keys = [0] tb.sort(cols=keys, reverse=args.reverse) # Format the size column after sorting. if args.units: col = tb.get_col("size") col = [self._to_units(val, args.units) for val in col] tb.replace_col("size", col) tb.replace_header("size", "size (%siB)" % args.units) elif args.human_readable: col = tb.get_col("size") col = [filesizeformat(val) for val in col] tb.replace_col("size", col) else: tb.replace_header("size", "size (bytes)") self.ctx.out(str(tb.build()))
def list(self, args): c = self.ctx.conn(args) a = c.sf.getAdminService() users = a.lookupExperimenters() roles = a.getSecurityRoles() user_group = roles.userGroupId sys_group = roles.systemGroupId from omero.util.text import TableBuilder if args.count: tb = TableBuilder("id", "login", "first name", "last name", "email", "active", "admin", "# group memberships", "# group ownerships") else: tb = TableBuilder("id", "login", "first name", "last name", "email", "active", "admin", "member of", "owner of") if args.style: tb.set_style(args.style) # Sort users if args.sort_by_login: users.sort(key=lambda x: x.omeName.val) elif args.sort_by_first_name: users.sort(key=lambda x: x.firstName.val) elif args.sort_by_last_name: users.sort(key=lambda x: x.lastName.val) elif args.sort_by_email: users.sort(key=lambda x: (x.email and x.email.val or "")) elif args.sort_by_id: users.sort(key=lambda x: x.id.val) for user in users: row = [ user.id.val, user.omeName.val, user.firstName.val, user.lastName.val ] row.append(user.email and user.email.val or "") active = "" admin = "" member_of = [] leader_of = [] for x in user.copyGroupExperimenterMap(): if not x: continue gid = x.parent.id.val if user_group == gid: active = "Yes" elif sys_group == gid: admin = "Yes" elif x.owner.val: leader_of.append(str(gid)) else: member_of.append(str(gid)) row.append(active) row.append(admin) if member_of: if args.count: row.append(len(member_of)) else: row.append(",".join(member_of)) else: row.append("") if leader_of: if args.count: row.append(len(leader_of)) else: row.append(",".join(leader_of)) else: row.append("") tb.row(*tuple(row)) self.ctx.out(str(tb.build()))