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
10
12 if connection == None:
13 return getConnection("Unix")
14 elif type(connection) in types.StringTypes and hasattr(Settings, connection):
15 print >> sys.stderr, "Using connection", connection
16 return getConnection(getattr(Settings, connection))
17
18 else:
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
23 print >> sys.stderr, "New local connection", Parameters.toString(connection)
24 else:
25 print >> sys.stderr, "New remote connection:", Parameters.toString(connection)
26
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
34
35
36
37
38
39
40
41