Mercurial > repos > yating-l > jbrowsearchivecreator
view apollo/ApolloInstance.py @ 30:2191bd0798a9 draft
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 691e5366893905d30943a3cb8cdfb6341f0f5362-dirty
author | yating-l |
---|---|
date | Fri, 13 Oct 2017 16:19:03 -0400 |
parents | 31a41ce128cc |
children | 127037c49bc8 |
line wrap: on
line source
#!/usr/bin/env python import json import logging from util import subtools class ApolloInstance(object): def __init__(self, apollo_host): self.apollo_host = apollo_host self.logger = logging.getLogger(__name__) def getHost(self): return self.apollo_host def createApolloUser(self, apollo_user, admin=None): p = subtools.arrow_create_user(apollo_user.user_email, apollo_user.firstname, apollo_user.lastname, apollo_user.password, admin) print p if p: user_info = json.loads(p) user_id = user_info.get('userId') if not p or not user_id: self.logger.debug("Cannot create new user: %s; The user may already exist", apollo_user.user_email) user_id = subtools.arrow_get_users(apollo_user.user_email) self.logger.debug("Got user_id for new or existing user: user_id = %s", str(user_id)) return user_id def grantPermission(self, user_id, organism_id, **user_permissions): subtools.arrow_update_organism_permissions(user_id, organism_id, **user_permissions) self.logger.debug("Grant user %s permissions to organism %s, permissions = %s", str(user_id), str(organism_id), ','.join(user_permissions)) def addOrganism(self, organism_name, organism_dir): p = subtools.arrow_add_organism(organism_name, organism_dir) organism = json.loads(p) organism_id = organism['id'] self.logger.debug("Added new organism to Apollo instance, %s", p) return organism_id def loadHubToApollo(self, apollo_user, organism_name, organism_dir, admin_user=False, **user_permissions): user_id = self.createApolloUser(apollo_user, admin_user) organism_id = self.addOrganism(organism_name, organism_dir) self.grantPermission(user_id, organism_id, **user_permissions) self.logger.debug("Successfully load the hub to Apollo")