changeset 2:4be6fcac4bf2 draft default tip

planemo upload for repository https://github.com/Yating-L/suite_gonramp_apollo.git commit 5367a00befb467f162d1870edb91f9face72e894
author yating-l
date Wed, 29 Nov 2017 15:39:32 -0500
parents 78af01d73add
children
files apollo/ApolloOrganism.py apolloUserManager.py jbrowsehubToApollo.py jbrowsehubToApollo.xml util/subtools.py
diffstat 5 files changed, 41 insertions(+), 41 deletions(-) [+]
line wrap: on
line diff
--- a/apollo/ApolloOrganism.py	Tue Nov 28 12:43:22 2017 -0500
+++ b/apollo/ApolloOrganism.py	Wed Nov 29 15:39:32 2017 -0500
@@ -12,7 +12,7 @@
         self.logger = logging.getLogger(__name__)
 
     def addOrganism(self):
-        exist = self.getOrganism(self.organism_name)
+        exist = subtools.arrow_get_organism(self.organism_name)
         if not exist:
             self.logger.debug("The organism does not exist.")
             p = subtools.arrow_add_organism(self.organism_name, self.organism_dir)
@@ -29,11 +29,11 @@
 
     #TODO: the JSON dictionary return by deleteOrganism still contains the deleted organism. Improve the API.
     def deleteOrganism(self):
-        organism_id = self.getOrganism(self.organism_name)
+        organism_id = subtools.arrow_get_organism(self.organism_name)
         if organism_id:
             self.logger.debug("Deleting the organism %s", self.organism_name)
             subtools.arrow_delete_organism(organism_id)
-            if not self.getOrganism(self.organism_name):
+            if not subtools.arrow_get_organism(self.organism_name):
                 self.logger.debug("Organism %s has been deleted", self.organism_name)
             else:
                 self.logger.error("Organism %s cannot be deleted", self.organism_name)
@@ -42,13 +42,6 @@
             self.logger.error("Organism %s doesn't exist", self.organism_name)
             exit(-1)
 
-    #TODO: filtering by commonName doesn't work. Improve the API.
-    @staticmethod
-    def getOrganism(organism_name):
-        p = subtools.arrow_get_organism(organism_name)
-        if p:
-            return str(p)
-
     #TODO: API update_organism not working. Improve the API to enable updating directory.
     def overwriteOrganism(self):
         self.deleteOrganism()
--- a/apolloUserManager.py	Tue Nov 28 12:43:22 2017 -0500
+++ b/apolloUserManager.py	Wed Nov 29 15:39:32 2017 -0500
@@ -48,9 +48,15 @@
     # Set up apollo
     apollo = ApolloInstance(apollo_host, apollo_admin_user, toolDirectory) 
     apollo.manageApolloUser(operations_dictionary)
-    
+    outHtml(outputFile, apollo_host)
     logging.info('#### Apollo User Manager: Congratulation! ####\n')
 
+def outHtml(outputFile, host_name):
+    with open(outputFile, 'w') as htmlfile:
+        htmlstr = 'The Apollo User Manager has done with operations on Apollo: <br>'
+        jbrowse_hub = '<li><a href = "%s" target="_blank">View JBrowse Hub on Apollo</a></li>' % host_name
+        htmlstr += jbrowse_hub
+        htmlfile.write(htmlstr)     
         
 
 if __name__ == "__main__":
--- a/jbrowsehubToApollo.py	Tue Nov 28 12:43:22 2017 -0500
+++ b/jbrowsehubToApollo.py	Wed Nov 29 15:39:32 2017 -0500
@@ -25,6 +25,7 @@
 
     # Begin init variables
     extra_files_path = reader.getExtFilesPath()
+    jbrowse_hub = reader.getJBrowseHubDir()
     #user_email = reader.getUserEmail() 
     species_name = reader.getSpeciesName() 
     #apollo_host = reader.getApolloHost()
@@ -34,31 +35,22 @@
     #apollo_user = reader.getApolloUser()
     apollo_admin_user = reader.getAdminUser()
     toolDirectory = reader.getToolDir()
-    #jbrowse_hub = reader.getJBrowseHubDir()
     debug_mode = reader.getDebugMode()
     action = reader.getAction()
 
     #### Logging management ####
     # If we are in Debug mode, also print in stdout the debug dump
-    log = Logger(tool_directory=toolDirectory, debug=debug_mode)
+    log = Logger(tool_directory=toolDirectory, debug=debug_mode, extra_files_path=extra_files_path)
     log.setup_logging()
 
-<<<<<<< HEAD
     logging.info("#### JBrowsehub To Apollo: Start to %s JBrowse Hub to Apollo instance: %s #### ", action, apollo_host)
-=======
-    logging.info("#### JBrowseArchiveCreator: Start to %s JBrowse Hub to Apollo instance: %s #### ", action, apollo_host)
->>>>>>> 8b9a3b41d4dd4689764592d278ec2d67f67fbca4
     logging.debug('JSON parameters: %s\n\n', json.dumps(reader.args))
 
     # Set up apollo
     apollo = ApolloInstance(apollo_host, apollo_admin_user, toolDirectory) 
-    jbrowse_hub_dir = _getHubDir(extra_files_path)
-<<<<<<< HEAD
+    jbrowse_hub_dir = _getHubDir(jbrowse_hub)
     apollo.manageApolloOrganism(species_name, jbrowse_hub_dir, action)  
-=======
-    apollo.loadHubToApollo(species_name, jbrowse_hub_dir, action) 
->>>>>>> 8b9a3b41d4dd4689764592d278ec2d67f67fbca4
-    outHtml(outputFile, apollo_host, species_name)
+    outHtml(outputFile, apollo_host, species_name, action)
 
     logging.info('#### JBrowsehub To Apollo: Congratulation! JBrowse Hub is uploaded! ####\n')
     
@@ -71,9 +63,12 @@
     logging.error("Cannot find jbrowsehub")
     exit(-1)
 
-def outHtml(outputFile, host_name, species_name):
+def outHtml(outputFile, host_name, species_name, action):
     with open(outputFile, 'w') as htmlfile:
-        htmlstr = 'The new Organism "%s" is created on Apollo: <br>' % species_name
+        if action == "add":
+            htmlstr = 'The Organism "%s" is added on Apollo: <br>' % species_name
+        elif action == "overwrite":
+            htmlstr = 'The Organism "%s" is overwritten on Apollo: <br>' % species_name
         jbrowse_hub = '<li><a href = "%s" target="_blank">View JBrowse Hub on Apollo</a></li>' % host_name
         htmlstr += jbrowse_hub
         htmlfile.write(htmlstr)     
--- a/jbrowsehubToApollo.xml	Tue Nov 28 12:43:22 2017 -0500
+++ b/jbrowsehubToApollo.xml	Wed Nov 29 15:39:32 2017 -0500
@@ -11,7 +11,7 @@
     </stdio>
 
     <command detect_errors="exit_code"><![CDATA[
-
+        mkdir -p $output.extra_files_path;
         ## Dump the tool parameters into a JSON file 
         python $json_file parameters.json;
         python $__tool_directory__/jbrowsehubToApollo.py --data_json parameters.json -o $output
@@ -24,11 +24,13 @@
 file_path = sys.argv[1]
 #set global data_parameter_dict = {}
 #silent $data_parameter_dict.update({"action": str($action)})
+#silent $data_parameter_dict.update({"action": str($action)})
 #silent $data_parameter_dict.update({"species_name": str($species_name)})
 #set apollo_admin = {"user_email": str($admin_username), "password": str($admin_password)}
 #silent $data_parameter_dict.update({"apollo_admin": $apollo_admin})
 #silent $data_parameter_dict.update({"tool_directory": str($__tool_directory__)})
-#silent $data_parameter_dict.update({"extra_files_path": str($jbrowse_hub.extra_files_path)})
+#silent $data_parameter_dict.update({"extra_files_path": str($output.extra_files_path)})
+#slient $data_parameter_dict.update({"jbrowse_hub": str($jbrowse_hub.extra_files_path)})
 #silent $data_parameter_dict.update({"port": str($advanced_options.port)})
 #silent $data_parameter_dict.update({"debug_mode": str($advanced_options.debug_mode)})
 with open(file_path, 'w') as f:
--- a/util/subtools.py	Tue Nov 28 12:43:22 2017 -0500
+++ b/util/subtools.py	Wed Nov 29 15:39:32 2017 -0500
@@ -115,8 +115,8 @@
     if "userId" in j:
         return j['userId']
     elif "error" in j:
-        logging.error("User %s already exist", user_email)
-        raise Exception(j['error'])
+        logging.error("Got error message: %s", j['error'])
+        exit(-1)
         
         
 def arrow_delete_user(user_email):
@@ -124,7 +124,8 @@
     p = _handleExceptionAndCheckCall(array_call)
     j = json.loads(p)
     if "error" in j:
-        raise Exception(j['error'])
+        logging.error("Got error message: %s", j['error'])
+        exit(-1)
 
 def arrow_add_to_group(groupname, user_email):
     if not arrow_get_groups(groupname):
@@ -133,19 +134,22 @@
     p = _handleExceptionAndCheckCall(array_call)
     j = json.loads(p)
     if j != dict():
-        raise Exception("Error add user %s to group %s", user_email, groupname)
+        logging.error("Error add user %s to group %s. The user doesn't exist", user_email, groupname)
 
 
 def arrow_remove_from_group(groupname, user_email):
     if arrow_get_groups(groupname):
         array_call = ['arrow', 'users', 'remove_from_group', groupname, user_email]
         p = _handleExceptionAndCheckCall(array_call)
+        j = json.loads(p)
+        if j != dict():
+            logging.error("Error remove user %s to group %s. The user doesn't exist", user_email, groupname)
     else:
-        raise Exception("Group %s doesn't exist. Check if you spell the name correctly", groupname)
+        logging.error("Group %s doesn't exist. Check if you spell the name correctly", groupname)
 
 def arrow_create_group(groupname):
     if arrow_get_groups(groupname):
-        raise Exception("Group %s already exist. Create a group with another name.", groupname)
+        logging.error("Group %s already exist. Create a group with another name.", groupname)
     array_call = ['arrow', 'groups', 'create_group', groupname]
     p = _handleExceptionAndCheckCall(array_call)
 
@@ -179,22 +183,22 @@
     array_call = ['arrow', 'users', 'get_users']
     p = _handleExceptionAndCheckCall(array_call)
     all_users = json.loads(p)
-    for d  in all_users:
+    for d in all_users:
         if d['username'] == user_email:
             return d['userId']
     logging.error("Cannot find user %s", user_email)
 
 def arrow_get_organism(organism_name):
-    array_call= ['arrow', 'organisms', 'get_organisms']
+    array_call= ['arrow', 'organisms', 'get_organisms', '--common_name', organism_name]
     p = _handleExceptionAndCheckCall(array_call)
-    all_organisms = json.loads(p)
-    for org in all_organisms:
-        if org['commonName'] == organism_name:
-            return org['id']
-    
+    org = json.loads(p)
+    if 'error' not in org:
+        return org[0]['id']
+    else:
+        logging.debug("Got error msg %s when look for organism %s.", org['error'], organism_name)
 
 def arrow_delete_organism(organism_id):
-    array_call = ['arrow', 'organisms', 'delete_organism', organism_id]
+    array_call = ['arrow', 'organisms', 'delete_organism', str(organism_id)]
     p = _handleExceptionAndCheckCall(array_call)
     return p