Package TEES :: Package Utils :: Package Connection :: Module Connection
[hide private]

Source Code for Module TEES.Utils.Connection.Connection

 1  import sys, os 
 2  sys.path.append(os.path.normpath(os.path.abspath(os.path.dirname(__file__))+"/../..")) 
 3  import Utils.Settings as Settings 
 4  import Utils.Parameters as Parameters 
 5  import types 
 6  from UnixConnection import UnixConnection 
 7  from LSFConnection import LSFConnection 
 8  from SLURMConnection import SLURMConnection 
 9  #import LSF.LSFConnection 
10   
11 -def getConnection(connection): #, account=None, workDirBase=None, remoteSettingsPath=None):
12 if connection == None: # return a "dummy" local connection 13 return getConnection("Unix") 14 elif type(connection) in types.StringTypes and hasattr(Settings, connection): # connection is a Settings key 15 print >> sys.stderr, "Using connection", connection 16 return getConnection(getattr(Settings, connection)) 17 #return getConnection(*getattr(Settings, connection)) 18 else: # connection is a parameter string or dictionary 19 connection = Parameters.get(connection, valueListKey="connection", defaults=["connection", "account", "workdir", "settings", "memory", "cores", "modules", "wallTime"]) 20 if connection["account"] == None: 21 assert connection["workdir"] == None 22 #assert remoteSettingsPath == None 23 print >> sys.stderr, "New local connection", Parameters.toString(connection) 24 else: 25 print >> sys.stderr, "New remote connection:", Parameters.toString(connection) 26 # Make the connection 27 exec "ConnectionClass = " + connection["connection"] + "Connection" 28 connectionArgs = {} 29 for key in connection: 30 if key != "connection" and connection[key] != None: 31 connectionArgs[key] = connection[key] 32 return ConnectionClass(**connectionArgs) 33 # if connection == "Unix": 34 # return UnixConnection(account, workDirBase, remoteSettingsPath) 35 # elif connection == "LSF": 36 # return LSFConnection(account, workDirBase, remoteSettingsPath) 37 # elif connection == "SLURM": 38 # return SLURMConnection(account, workDirBase, remoteSettingsPath) 39 # else: 40 # assert False, connection 41