Mercurial > repos > eric-rasche > apollo
diff create_or_update_organism.py @ 5:7610987e0c48 draft
planemo upload for repository https://github.com/TAMU-CPT/galaxy-webapollo commit 29795b77c0d5c7894219b018a92c5ee7818096c3
author | eric-rasche |
---|---|
date | Wed, 01 Mar 2017 22:39:58 -0500 |
parents | d4ae83dedb14 |
children | f9a6e151b3b4 |
line wrap: on
line diff
--- a/create_or_update_organism.py Thu Jan 12 11:53:44 2017 -0500 +++ b/create_or_update_organism.py Wed Mar 01 22:39:58 2017 -0500 @@ -1,4 +1,5 @@ #!/usr/bin/env python +import sys import json import argparse import time @@ -9,7 +10,7 @@ if __name__ == '__main__': - parser = argparse.ArgumentParser(description='Sample script to add an attribute to a feature via web services') + parser = argparse.ArgumentParser(description='Create or update an organism in an Apollo instance') WAAuth(parser) parser.add_argument('jbrowse', help='JBrowse Data Directory') @@ -18,6 +19,7 @@ parser.add_argument('--genus', help='Organism Genus') parser.add_argument('--species', help='Organism Species') parser.add_argument('--public', action='store_true', help='Make organism public') + parser.add_argument('--group', help='Give access to a user group') args = parser.parse_args() wa = WebApolloInstance(args.apollo, args.username, args.password) @@ -35,8 +37,17 @@ except Exception: org = None - # TODO: Check ownership if org: + has_perms = False + for user_owned_organism in gx_user.organismPermissions: + if 'WRITE' in user_owned_organism['permissions']: + has_perms = True + break + + if not has_perms: + print("Naming Conflict. You do not have permissions to access this organism. Either request permission from the owner, or choose a different name for your organism.") + sys.exit(2) + log.info("\tUpdating Organism") data = wa.organisms.updateOrganismInfo( org['id'], @@ -47,6 +58,8 @@ species=args.species, public=args.public ) + time.sleep(2) + data = [wa.organisms.findOrganismById(org['id'])] else: # New organism log.info("\tAdding Organism") @@ -68,5 +81,12 @@ read=True, ) + # Group access + if args.group: + group = wa.groups.loadGroupByName(name=args.group) + res = wa.groups.updateOrganismPermission(group, org_cn, + administrate=False, write=True, read=True, + export=True) + data = [o for o in data if o['commonName'] == org_cn] - print json.dumps(data, indent=2) + print(json.dumps(data, indent=2))