Mercurial > repos > eric-rasche > apollo
diff create_or_update_organism.py @ 3:d4ae83dedb14 draft
planemo upload for repository https://github.com/TAMU-CPT/galaxy-webapollo commit 4ac38d0b6dba1183f3e78eb5c224c7051064b4a5
author | eric-rasche |
---|---|
date | Thu, 12 Jan 2017 11:52:28 -0500 |
parents | 6002cc0df04e |
children | 7610987e0c48 |
line wrap: on
line diff
--- a/create_or_update_organism.py Tue May 03 13:48:11 2016 -0400 +++ b/create_or_update_organism.py Thu Jan 12 11:52:28 2017 -0500 @@ -2,7 +2,7 @@ import json import argparse import time -from webapollo import WebApolloInstance +from webapollo import WAAuth, WebApolloInstance, OrgOrGuess, GuessOrg, AssertUser import logging logging.basicConfig(level=logging.INFO) log = logging.getLogger(__name__) @@ -10,41 +10,39 @@ if __name__ == '__main__': parser = argparse.ArgumentParser(description='Sample script to add an attribute to a feature via web services') - parser.add_argument('apollo', help='Complete Apollo URL') - parser.add_argument('username', help='WA Admin Username') - parser.add_argument('password', help='WA Admin Password') + WAAuth(parser) - parser.add_argument('cn', help='Organism Common Name') parser.add_argument('jbrowse', help='JBrowse Data Directory') parser.add_argument('email', help='User Email') - parser.add_argument('--blatdb', help='BlatDB Directory') + OrgOrGuess(parser) 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') args = parser.parse_args() - + wa = WebApolloInstance(args.apollo, args.username, args.password) - wa = WebApolloInstance(args.apollo, args.username, args.password) + org_cn = GuessOrg(args, wa) + if isinstance(org_cn, list): + org_cn = org_cn[0] + # User must have an account - gx_user = wa.users.loadUsers(email=args.email) - if len(gx_user) == 0: - raise Exception("Unknown user. Please register first") + gx_user = AssertUser(wa.users.loadUsers(email=args.email)) log.info("Determining if add or update required") try: - org = wa.organisms.findOrganismByCn(args.cn) + org = wa.organisms.findOrganismByCn(org_cn) except Exception: org = None + # TODO: Check ownership if org: log.info("\tUpdating Organism") data = wa.organisms.updateOrganismInfo( org['id'], - args.cn, + org_cn, args.jbrowse, # mandatory - blatdb=args.blatdb, genus=args.genus, species=args.species, public=args.public @@ -53,23 +51,22 @@ # New organism log.info("\tAdding Organism") data = wa.organisms.addOrganism( - args.cn, + org_cn, args.jbrowse, - blatdb=args.blatdb, genus=args.genus, species=args.species, public=args.public ) # Must sleep before we're ready to handle - time.sleep(1) - log.info("Updating permissions for %s on %s", gx_user[0], args.cn) + time.sleep(2) + log.info("Updating permissions for %s on %s", gx_user, org_cn) wa.users.updateOrganismPermission( - gx_user[0], args.cn, + gx_user, org_cn, write=True, export=True, read=True, ) - data = [o for o in data if o['commonName'] == args.cn] + data = [o for o in data if o['commonName'] == org_cn] print json.dumps(data, indent=2)