Mercurial > repos > yating-l > gonramp_apollo_tools
annotate apolloUserManager.py @ 0:ce4f91831680 draft default tip
planemo upload for repository https://github.com/Yating-L/suite_gonramp_apollo.git commit 5367a00befb467f162d1870edb91f9face72e894
| author | yating-l | 
|---|---|
| date | Fri, 16 Feb 2018 10:57:13 -0500 | 
| parents | |
| children | 
| rev | line source | 
|---|---|
| 0 
ce4f91831680
planemo upload for repository https://github.com/Yating-L/suite_gonramp_apollo.git commit 5367a00befb467f162d1870edb91f9face72e894
 yating-l parents: diff
changeset | 1 #!/usr/bin/env python | 
| 
ce4f91831680
planemo upload for repository https://github.com/Yating-L/suite_gonramp_apollo.git commit 5367a00befb467f162d1870edb91f9face72e894
 yating-l parents: diff
changeset | 2 import os | 
| 
ce4f91831680
planemo upload for repository https://github.com/Yating-L/suite_gonramp_apollo.git commit 5367a00befb467f162d1870edb91f9face72e894
 yating-l parents: diff
changeset | 3 import sys | 
| 
ce4f91831680
planemo upload for repository https://github.com/Yating-L/suite_gonramp_apollo.git commit 5367a00befb467f162d1870edb91f9face72e894
 yating-l parents: diff
changeset | 4 import argparse | 
| 
ce4f91831680
planemo upload for repository https://github.com/Yating-L/suite_gonramp_apollo.git commit 5367a00befb467f162d1870edb91f9face72e894
 yating-l parents: diff
changeset | 5 import json | 
| 
ce4f91831680
planemo upload for repository https://github.com/Yating-L/suite_gonramp_apollo.git commit 5367a00befb467f162d1870edb91f9face72e894
 yating-l parents: diff
changeset | 6 import logging | 
| 
ce4f91831680
planemo upload for repository https://github.com/Yating-L/suite_gonramp_apollo.git commit 5367a00befb467f162d1870edb91f9face72e894
 yating-l parents: diff
changeset | 7 import socket | 
| 
ce4f91831680
planemo upload for repository https://github.com/Yating-L/suite_gonramp_apollo.git commit 5367a00befb467f162d1870edb91f9face72e894
 yating-l parents: diff
changeset | 8 from apollo.ApolloInstance import ApolloInstance | 
| 
ce4f91831680
planemo upload for repository https://github.com/Yating-L/suite_gonramp_apollo.git commit 5367a00befb467f162d1870edb91f9face72e894
 yating-l parents: diff
changeset | 9 from apollo.ApolloUser import ApolloUser | 
| 
ce4f91831680
planemo upload for repository https://github.com/Yating-L/suite_gonramp_apollo.git commit 5367a00befb467f162d1870edb91f9face72e894
 yating-l parents: diff
changeset | 10 from util.Reader import Reader | 
| 
ce4f91831680
planemo upload for repository https://github.com/Yating-L/suite_gonramp_apollo.git commit 5367a00befb467f162d1870edb91f9face72e894
 yating-l parents: diff
changeset | 11 from util.Logger import Logger | 
| 
ce4f91831680
planemo upload for repository https://github.com/Yating-L/suite_gonramp_apollo.git commit 5367a00befb467f162d1870edb91f9face72e894
 yating-l parents: diff
changeset | 12 | 
| 
ce4f91831680
planemo upload for repository https://github.com/Yating-L/suite_gonramp_apollo.git commit 5367a00befb467f162d1870edb91f9face72e894
 yating-l parents: diff
changeset | 13 | 
| 
ce4f91831680
planemo upload for repository https://github.com/Yating-L/suite_gonramp_apollo.git commit 5367a00befb467f162d1870edb91f9face72e894
 yating-l parents: diff
changeset | 14 def main(argv): | 
| 
ce4f91831680
planemo upload for repository https://github.com/Yating-L/suite_gonramp_apollo.git commit 5367a00befb467f162d1870edb91f9face72e894
 yating-l parents: diff
changeset | 15 parser = argparse.ArgumentParser(description='Upload a hub to display on Apollo.') | 
| 
ce4f91831680
planemo upload for repository https://github.com/Yating-L/suite_gonramp_apollo.git commit 5367a00befb467f162d1870edb91f9face72e894
 yating-l parents: diff
changeset | 16 parser.add_argument('-j', '--data_json', help='JSON file containing the metadata of the inputs') | 
| 
ce4f91831680
planemo upload for repository https://github.com/Yating-L/suite_gonramp_apollo.git commit 5367a00befb467f162d1870edb91f9face72e894
 yating-l parents: diff
changeset | 17 parser.add_argument('-o', '--output', help='HTML output') | 
| 
ce4f91831680
planemo upload for repository https://github.com/Yating-L/suite_gonramp_apollo.git commit 5367a00befb467f162d1870edb91f9face72e894
 yating-l parents: diff
changeset | 18 | 
| 
ce4f91831680
planemo upload for repository https://github.com/Yating-L/suite_gonramp_apollo.git commit 5367a00befb467f162d1870edb91f9face72e894
 yating-l parents: diff
changeset | 19 # Get the args passed in parameter | 
| 
ce4f91831680
planemo upload for repository https://github.com/Yating-L/suite_gonramp_apollo.git commit 5367a00befb467f162d1870edb91f9face72e894
 yating-l parents: diff
changeset | 20 args = parser.parse_args() | 
| 
ce4f91831680
planemo upload for repository https://github.com/Yating-L/suite_gonramp_apollo.git commit 5367a00befb467f162d1870edb91f9face72e894
 yating-l parents: diff
changeset | 21 json_inputs_data = args.data_json | 
| 
ce4f91831680
planemo upload for repository https://github.com/Yating-L/suite_gonramp_apollo.git commit 5367a00befb467f162d1870edb91f9face72e894
 yating-l parents: diff
changeset | 22 outputFile = args.output | 
| 
ce4f91831680
planemo upload for repository https://github.com/Yating-L/suite_gonramp_apollo.git commit 5367a00befb467f162d1870edb91f9face72e894
 yating-l parents: diff
changeset | 23 | 
| 
ce4f91831680
planemo upload for repository https://github.com/Yating-L/suite_gonramp_apollo.git commit 5367a00befb467f162d1870edb91f9face72e894
 yating-l parents: diff
changeset | 24 ##Parse JSON file with Reader | 
| 
ce4f91831680
planemo upload for repository https://github.com/Yating-L/suite_gonramp_apollo.git commit 5367a00befb467f162d1870edb91f9face72e894
 yating-l parents: diff
changeset | 25 reader = Reader(json_inputs_data) | 
| 
ce4f91831680
planemo upload for repository https://github.com/Yating-L/suite_gonramp_apollo.git commit 5367a00befb467f162d1870edb91f9face72e894
 yating-l parents: diff
changeset | 26 | 
| 
ce4f91831680
planemo upload for repository https://github.com/Yating-L/suite_gonramp_apollo.git commit 5367a00befb467f162d1870edb91f9face72e894
 yating-l parents: diff
changeset | 27 # Begin init variables | 
| 
ce4f91831680
planemo upload for repository https://github.com/Yating-L/suite_gonramp_apollo.git commit 5367a00befb467f162d1870edb91f9face72e894
 yating-l parents: diff
changeset | 28 | 
| 
ce4f91831680
planemo upload for repository https://github.com/Yating-L/suite_gonramp_apollo.git commit 5367a00befb467f162d1870edb91f9face72e894
 yating-l parents: diff
changeset | 29 apollo_port = reader.getPortNum() | 
| 
ce4f91831680
planemo upload for repository https://github.com/Yating-L/suite_gonramp_apollo.git commit 5367a00befb467f162d1870edb91f9face72e894
 yating-l parents: diff
changeset | 30 apollo_host = "http://localhost:"+ apollo_port + "/apollo" | 
| 
ce4f91831680
planemo upload for repository https://github.com/Yating-L/suite_gonramp_apollo.git commit 5367a00befb467f162d1870edb91f9face72e894
 yating-l parents: diff
changeset | 31 apollo_admin_user = reader.getAdminUser() | 
| 
ce4f91831680
planemo upload for repository https://github.com/Yating-L/suite_gonramp_apollo.git commit 5367a00befb467f162d1870edb91f9face72e894
 yating-l parents: diff
changeset | 32 toolDirectory = reader.getToolDir() | 
| 
ce4f91831680
planemo upload for repository https://github.com/Yating-L/suite_gonramp_apollo.git commit 5367a00befb467f162d1870edb91f9face72e894
 yating-l parents: diff
changeset | 33 extra_files_path = reader.getExtFilesPath() | 
| 
ce4f91831680
planemo upload for repository https://github.com/Yating-L/suite_gonramp_apollo.git commit 5367a00befb467f162d1870edb91f9face72e894
 yating-l parents: diff
changeset | 34 debug_mode = reader.getDebugMode() | 
| 
ce4f91831680
planemo upload for repository https://github.com/Yating-L/suite_gonramp_apollo.git commit 5367a00befb467f162d1870edb91f9face72e894
 yating-l parents: diff
changeset | 35 operations_dictionary = reader.getOperationList() | 
| 
ce4f91831680
planemo upload for repository https://github.com/Yating-L/suite_gonramp_apollo.git commit 5367a00befb467f162d1870edb91f9face72e894
 yating-l parents: diff
changeset | 36 | 
| 
ce4f91831680
planemo upload for repository https://github.com/Yating-L/suite_gonramp_apollo.git commit 5367a00befb467f162d1870edb91f9face72e894
 yating-l parents: diff
changeset | 37 | 
| 
ce4f91831680
planemo upload for repository https://github.com/Yating-L/suite_gonramp_apollo.git commit 5367a00befb467f162d1870edb91f9face72e894
 yating-l parents: diff
changeset | 38 | 
| 
ce4f91831680
planemo upload for repository https://github.com/Yating-L/suite_gonramp_apollo.git commit 5367a00befb467f162d1870edb91f9face72e894
 yating-l parents: diff
changeset | 39 | 
| 
ce4f91831680
planemo upload for repository https://github.com/Yating-L/suite_gonramp_apollo.git commit 5367a00befb467f162d1870edb91f9face72e894
 yating-l parents: diff
changeset | 40 #### Logging management #### | 
| 
ce4f91831680
planemo upload for repository https://github.com/Yating-L/suite_gonramp_apollo.git commit 5367a00befb467f162d1870edb91f9face72e894
 yating-l parents: diff
changeset | 41 # If we are in Debug mode, also print in stdout the debug dump | 
| 
ce4f91831680
planemo upload for repository https://github.com/Yating-L/suite_gonramp_apollo.git commit 5367a00befb467f162d1870edb91f9face72e894
 yating-l parents: diff
changeset | 42 log = Logger(tool_directory=toolDirectory, debug=debug_mode, extra_files_path=extra_files_path) | 
| 
ce4f91831680
planemo upload for repository https://github.com/Yating-L/suite_gonramp_apollo.git commit 5367a00befb467f162d1870edb91f9face72e894
 yating-l parents: diff
changeset | 43 log.setup_logging() | 
| 
ce4f91831680
planemo upload for repository https://github.com/Yating-L/suite_gonramp_apollo.git commit 5367a00befb467f162d1870edb91f9face72e894
 yating-l parents: diff
changeset | 44 | 
| 
ce4f91831680
planemo upload for repository https://github.com/Yating-L/suite_gonramp_apollo.git commit 5367a00befb467f162d1870edb91f9face72e894
 yating-l parents: diff
changeset | 45 logging.info("#### Apollo User Manager: Start on Apollo instance: %s #### ", apollo_host) | 
| 
ce4f91831680
planemo upload for repository https://github.com/Yating-L/suite_gonramp_apollo.git commit 5367a00befb467f162d1870edb91f9face72e894
 yating-l parents: diff
changeset | 46 logging.debug('JSON parameters: %s\n\n', json.dumps(reader.args)) | 
| 
ce4f91831680
planemo upload for repository https://github.com/Yating-L/suite_gonramp_apollo.git commit 5367a00befb467f162d1870edb91f9face72e894
 yating-l parents: diff
changeset | 47 | 
| 
ce4f91831680
planemo upload for repository https://github.com/Yating-L/suite_gonramp_apollo.git commit 5367a00befb467f162d1870edb91f9face72e894
 yating-l parents: diff
changeset | 48 # Set up apollo | 
| 
ce4f91831680
planemo upload for repository https://github.com/Yating-L/suite_gonramp_apollo.git commit 5367a00befb467f162d1870edb91f9face72e894
 yating-l parents: diff
changeset | 49 apollo = ApolloInstance(apollo_host, apollo_admin_user, toolDirectory) | 
| 
ce4f91831680
planemo upload for repository https://github.com/Yating-L/suite_gonramp_apollo.git commit 5367a00befb467f162d1870edb91f9face72e894
 yating-l parents: diff
changeset | 50 apollo.manageApolloUser(operations_dictionary) | 
| 
ce4f91831680
planemo upload for repository https://github.com/Yating-L/suite_gonramp_apollo.git commit 5367a00befb467f162d1870edb91f9face72e894
 yating-l parents: diff
changeset | 51 outHtml(outputFile, apollo_host) | 
| 
ce4f91831680
planemo upload for repository https://github.com/Yating-L/suite_gonramp_apollo.git commit 5367a00befb467f162d1870edb91f9face72e894
 yating-l parents: diff
changeset | 52 logging.info('#### Apollo User Manager: Congratulation! ####\n') | 
| 
ce4f91831680
planemo upload for repository https://github.com/Yating-L/suite_gonramp_apollo.git commit 5367a00befb467f162d1870edb91f9face72e894
 yating-l parents: diff
changeset | 53 | 
| 
ce4f91831680
planemo upload for repository https://github.com/Yating-L/suite_gonramp_apollo.git commit 5367a00befb467f162d1870edb91f9face72e894
 yating-l parents: diff
changeset | 54 def outHtml(outputFile, host_name): | 
| 
ce4f91831680
planemo upload for repository https://github.com/Yating-L/suite_gonramp_apollo.git commit 5367a00befb467f162d1870edb91f9face72e894
 yating-l parents: diff
changeset | 55 with open(outputFile, 'w') as htmlfile: | 
| 
ce4f91831680
planemo upload for repository https://github.com/Yating-L/suite_gonramp_apollo.git commit 5367a00befb467f162d1870edb91f9face72e894
 yating-l parents: diff
changeset | 56 htmlstr = 'The Apollo User Manager has done with operations on Apollo: <br>' | 
| 
ce4f91831680
planemo upload for repository https://github.com/Yating-L/suite_gonramp_apollo.git commit 5367a00befb467f162d1870edb91f9face72e894
 yating-l parents: diff
changeset | 57 jbrowse_hub = '<li><a href = "%s" target="_blank">View JBrowse Hub on Apollo</a></li>' % host_name | 
| 
ce4f91831680
planemo upload for repository https://github.com/Yating-L/suite_gonramp_apollo.git commit 5367a00befb467f162d1870edb91f9face72e894
 yating-l parents: diff
changeset | 58 htmlstr += jbrowse_hub | 
| 
ce4f91831680
planemo upload for repository https://github.com/Yating-L/suite_gonramp_apollo.git commit 5367a00befb467f162d1870edb91f9face72e894
 yating-l parents: diff
changeset | 59 htmlfile.write(htmlstr) | 
| 
ce4f91831680
planemo upload for repository https://github.com/Yating-L/suite_gonramp_apollo.git commit 5367a00befb467f162d1870edb91f9face72e894
 yating-l parents: diff
changeset | 60 | 
| 
ce4f91831680
planemo upload for repository https://github.com/Yating-L/suite_gonramp_apollo.git commit 5367a00befb467f162d1870edb91f9face72e894
 yating-l parents: diff
changeset | 61 | 
| 
ce4f91831680
planemo upload for repository https://github.com/Yating-L/suite_gonramp_apollo.git commit 5367a00befb467f162d1870edb91f9face72e894
 yating-l parents: diff
changeset | 62 if __name__ == "__main__": | 
| 
ce4f91831680
planemo upload for repository https://github.com/Yating-L/suite_gonramp_apollo.git commit 5367a00befb467f162d1870edb91f9face72e894
 yating-l parents: diff
changeset | 63 main(sys.argv) | 
