#!/usr/bin/env python import json import argparse from webapollo import WAAuth, WebApolloInstance, AssertUser, accessible_organisms if __name__ == "__main__": parser = argparse.ArgumentParser( description="List all organisms available in an Apollo instance") WAAuth(parser) parser.add_argument("email", help="User Email") args = parser.parse_args() wa = WebApolloInstance(args.apollo, args.username, args.password) gx_user = AssertUser(wa.users.loadUsers(email=args.email)) all_orgs = wa.organisms.findAllOrganisms() orgs = accessible_organisms(gx_user, all_orgs) cleanedOrgs = [] for organism in all_orgs: org = { "name": organism["commonName"], "id": organism["id"], "annotations": organism["annotationCount"], "sequences": organism["sequences"], } cleanedOrgs.append(org) print(json.dumps(cleanedOrgs, indent=2))
OrgOrGuess(parser) args = parser.parse_args() wa = WebApolloInstance(args.apollo, args.username, args.password) # User must have an account gx_user = AssertUser(wa.users.loadUsers(email=args.email)) # Get organism org_cn = GuessOrg(args, wa)[0] # Fetch all organisms all_orgs = wa.organisms.findAllOrganisms() # Figure out which are accessible to the user # filter out common names orgs = [d[0] for d in accessible_organisms(gx_user, all_orgs)] # This user MUST be allowed to access an organism before they can # modify permissions on it. assert org_cn in orgs org = wa.organisms.findOrganismByCn(org_cn) # The other person must already be an apollo user other_user = AssertUser( wa.users.loadUsers(email=args.share_with.replace("__at__", "@"))) wa.users.updateOrganismPermission( other_user, org_cn, administrate=False,