diff apollo/ApolloInstance.py @ 31:127037c49bc8 draft

planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 691e5366893905d30943a3cb8cdfb6341f0f5362-dirty
author yating-l
date Mon, 16 Oct 2017 18:03:58 -0400
parents 2191bd0798a9
children
line wrap: on
line diff
--- a/apollo/ApolloInstance.py	Fri Oct 13 16:19:03 2017 -0400
+++ b/apollo/ApolloInstance.py	Mon Oct 16 18:03:58 2017 -0400
@@ -1,23 +1,52 @@
 #!/usr/bin/env python
+import os
 import json
+import shutil
+import tempfile
 import logging
 from util import subtools
+from mako.lookup import TemplateLookup
+
 
 class ApolloInstance(object):
-    def __init__(self, apollo_host):
+    def __init__(self, apollo_host, tool_directory, user_email):
         self.apollo_host = apollo_host
+        self.tool_directory = tool_directory
+        self.default_user = user_email
         self.logger = logging.getLogger(__name__)
+        self.apolloTemplate = self._getApolloTemplate()
+        self._arrow_init()
+    
+    def _arrow_init(self):
+        arrow_config = tempfile.NamedTemporaryFile(bufsize=0)
+        with open(arrow_config.name, 'w') as conf:
+            htmlMakoRendered = self.apolloTemplate.render(
+            apollo_host = self.apollo_host,
+            admin_user = self.default_user,
+            admin_pw = '1234'
+        )
+            conf.write(htmlMakoRendered)
+
+        home_dir = os.path.expanduser('~')
+        arrow_config_dir = os.path.join(home_dir, '.apollo-arrow.yml')
+        shutil.copyfile(arrow_config.name, arrow_config_dir)
+        self.logger.debug("Initated arrow: apollo-arrow.yml= %s", arrow_config_dir)
+
+
+    def _getApolloTemplate(self):
+        mylookup = TemplateLookup(directories=[os.path.join(self.tool_directory, 'templates')],
+                                  output_encoding='utf-8', encoding_errors='replace')
+        apolloTemplate = mylookup.get_template("apollo-arrow.yml")
+        return apolloTemplate
 
     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:
+        user_info = json.loads(p)
+        user_id = user_info.get('userId')
+        if 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))