Show More
@@ -16,6 +16,8 b' __docformat__ = "restructuredtext en"' | |||||
16 | #------------------------------------------------------------------------------- |
|
16 | #------------------------------------------------------------------------------- | |
17 |
|
17 | |||
18 | import os |
|
18 | import os | |
|
19 | from os.path import join as pjoin | |||
|
20 | ||||
19 | from IPython.genutils import get_home_dir, get_ipython_dir |
|
21 | from IPython.genutils import get_home_dir, get_ipython_dir | |
20 | from IPython.external.configobj import ConfigObj |
|
22 | from IPython.external.configobj import ConfigObj | |
21 |
|
23 | |||
@@ -53,7 +55,7 b' class ConfigObjManager(object):' | |||||
53 |
|
55 | |||
54 | def write_default_config_file(self): |
|
56 | def write_default_config_file(self): | |
55 | ipdir = get_ipython_dir() |
|
57 | ipdir = get_ipython_dir() | |
56 |
fname = ipdir |
|
58 | fname = pjoin(ipdir, self.filename) | |
57 | if not os.path.isfile(fname): |
|
59 | if not os.path.isfile(fname): | |
58 | print "Writing the configuration file to: " + fname |
|
60 | print "Writing the configuration file to: " + fname | |
59 | self.write_config_obj_to_file(fname) |
|
61 | self.write_config_obj_to_file(fname) | |
@@ -87,11 +89,11 b' class ConfigObjManager(object):' | |||||
87 |
|
89 | |||
88 | # In ipythondir if it is set |
|
90 | # In ipythondir if it is set | |
89 | if ipythondir is not None: |
|
91 | if ipythondir is not None: | |
90 |
trythis = ipythondir |
|
92 | trythis = pjoin(ipythondir, filename) | |
91 | if os.path.isfile(trythis): |
|
93 | if os.path.isfile(trythis): | |
92 | return trythis |
|
94 | return trythis | |
93 |
|
95 | |||
94 |
trythis = get_ipython_dir() |
|
96 | trythis = pjoin(get_ipython_dir(), filename) | |
95 | if os.path.isfile(trythis): |
|
97 | if os.path.isfile(trythis): | |
96 | return trythis |
|
98 | return trythis | |
97 |
|
99 |
@@ -995,6 +995,22 b' def get_ipython_dir():' | |||||
995 | os.path.join(home_dir,ipdir_def))) |
|
995 | os.path.join(home_dir,ipdir_def))) | |
996 | return ipdir |
|
996 | return ipdir | |
997 |
|
997 | |||
|
998 | def get_security_dir(): | |||
|
999 | """Get the IPython security directory. | |||
|
1000 | ||||
|
1001 | This directory is the default location for all security related files, | |||
|
1002 | including SSL/TLS certificates and FURL files. | |||
|
1003 | ||||
|
1004 | If the directory does not exist, it is created with 0700 permissions. | |||
|
1005 | If it exists, permissions are set to 0700. | |||
|
1006 | """ | |||
|
1007 | security_dir = os.path.join(get_ipython_dir(), 'security') | |||
|
1008 | if not os.path.isdir(security_dir): | |||
|
1009 | os.mkdir(security_dir, 0700) | |||
|
1010 | else: | |||
|
1011 | os.chmod(security_dir, 0700) | |||
|
1012 | return security_dir | |||
|
1013 | ||||
998 | #**************************************************************************** |
|
1014 | #**************************************************************************** | |
999 | # strings and text |
|
1015 | # strings and text | |
1000 |
|
1016 |
@@ -15,17 +15,15 b' __docformat__ = "restructuredtext en"' | |||||
15 | # Imports |
|
15 | # Imports | |
16 | #------------------------------------------------------------------------------- |
|
16 | #------------------------------------------------------------------------------- | |
17 |
|
17 | |||
|
18 | from os.path import join as pjoin | |||
|
19 | ||||
18 | from IPython.external.configobj import ConfigObj |
|
20 | from IPython.external.configobj import ConfigObj | |
19 | from IPython.config.api import ConfigObjManager |
|
21 | from IPython.config.api import ConfigObjManager | |
20 | from IPython.genutils import get_ipython_dir |
|
22 | from IPython.genutils import get_ipython_dir, get_security_dir | |
21 |
|
23 | |||
22 | default_kernel_config = ConfigObj() |
|
24 | default_kernel_config = ConfigObj() | |
23 |
|
25 | |||
24 | try: |
|
26 | security_dir = get_security_dir() | |
25 | ipython_dir = get_ipython_dir() + '/' |
|
|||
26 | except: |
|
|||
27 | # This will defaults to the cwd |
|
|||
28 | ipython_dir = '' |
|
|||
29 |
|
27 | |||
30 | #------------------------------------------------------------------------------- |
|
28 | #------------------------------------------------------------------------------- | |
31 | # Engine Configuration |
|
29 | # Engine Configuration | |
@@ -33,7 +31,7 b' except:' | |||||
33 |
|
31 | |||
34 | engine_config = dict( |
|
32 | engine_config = dict( | |
35 | logfile = '', # Empty means log to stdout |
|
33 | logfile = '', # Empty means log to stdout | |
36 |
furl_file = |
|
34 | furl_file = pjoin(security_dir, 'ipcontroller-engine.furl') | |
37 | ) |
|
35 | ) | |
38 |
|
36 | |||
39 | #------------------------------------------------------------------------------- |
|
37 | #------------------------------------------------------------------------------- | |
@@ -69,10 +67,10 b' controller_config = dict(' | |||||
69 | port = 0, # 0 means pick a port for me |
|
67 | port = 0, # 0 means pick a port for me | |
70 | location = '', # Empty string means try to set automatically |
|
68 | location = '', # Empty string means try to set automatically | |
71 | secure = True, |
|
69 | secure = True, | |
72 |
cert_file = |
|
70 | cert_file = pjoin(security_dir, 'ipcontroller-engine.pem'), | |
73 | ), |
|
71 | ), | |
74 | engine_fc_interface = 'IPython.kernel.enginefc.IFCControllerBase', |
|
72 | engine_fc_interface = 'IPython.kernel.enginefc.IFCControllerBase', | |
75 |
engine_furl_file = |
|
73 | engine_furl_file = pjoin(security_dir, 'ipcontroller-engine.furl'), | |
76 |
|
74 | |||
77 | controller_interfaces = dict( |
|
75 | controller_interfaces = dict( | |
78 | # multiengine = dict( |
|
76 | # multiengine = dict( | |
@@ -83,12 +81,12 b' controller_config = dict(' | |||||
83 | task = dict( |
|
81 | task = dict( | |
84 | controller_interface = 'IPython.kernel.task.ITaskController', |
|
82 | controller_interface = 'IPython.kernel.task.ITaskController', | |
85 | fc_interface = 'IPython.kernel.taskfc.IFCTaskController', |
|
83 | fc_interface = 'IPython.kernel.taskfc.IFCTaskController', | |
86 |
furl_file = |
|
84 | furl_file = pjoin(security_dir, 'ipcontroller-tc.furl') | |
87 | ), |
|
85 | ), | |
88 | multiengine = dict( |
|
86 | multiengine = dict( | |
89 | controller_interface = 'IPython.kernel.multiengine.IMultiEngine', |
|
87 | controller_interface = 'IPython.kernel.multiengine.IMultiEngine', | |
90 | fc_interface = 'IPython.kernel.multienginefc.IFCSynchronousMultiEngine', |
|
88 | fc_interface = 'IPython.kernel.multienginefc.IFCSynchronousMultiEngine', | |
91 |
furl_file = |
|
89 | furl_file = pjoin(security_dir, 'ipcontroller-mec.furl') | |
92 | ) |
|
90 | ) | |
93 | ), |
|
91 | ), | |
94 |
|
92 | |||
@@ -97,7 +95,7 b' controller_config = dict(' | |||||
97 | port = 0, # 0 means pick a port for me |
|
95 | port = 0, # 0 means pick a port for me | |
98 | location = '', # Empty string means try to set automatically |
|
96 | location = '', # Empty string means try to set automatically | |
99 | secure = True, |
|
97 | secure = True, | |
100 |
cert_file = |
|
98 | cert_file = pjoin(security_dir, 'ipcontroller-client.pem') | |
101 | ) |
|
99 | ) | |
102 | ) |
|
100 | ) | |
103 |
|
101 | |||
@@ -108,10 +106,10 b' controller_config = dict(' | |||||
108 | client_config = dict( |
|
106 | client_config = dict( | |
109 | client_interfaces = dict( |
|
107 | client_interfaces = dict( | |
110 | task = dict( |
|
108 | task = dict( | |
111 |
furl_file = |
|
109 | furl_file = pjoin(security_dir, 'ipcontroller-tc.furl') | |
112 | ), |
|
110 | ), | |
113 | multiengine = dict( |
|
111 | multiengine = dict( | |
114 |
furl_file = |
|
112 | furl_file = pjoin(security_dir, 'ipcontroller-mec.furl') | |
115 | ) |
|
113 | ) | |
116 | ) |
|
114 | ) | |
117 | ) |
|
115 | ) |
@@ -105,6 +105,7 b' def start_engine():' | |||||
105 | # register_engine to tell the controller we are ready to do work |
|
105 | # register_engine to tell the controller we are ready to do work | |
106 | engine_connector = EngineConnector(tub_service) |
|
106 | engine_connector = EngineConnector(tub_service) | |
107 | furl_file = kernel_config['engine']['furl_file'] |
|
107 | furl_file = kernel_config['engine']['furl_file'] | |
|
108 | log.msg("Using furl file: %s" % furl_file) | |||
108 | d = engine_connector.connect_to_controller(engine_service, furl_file) |
|
109 | d = engine_connector.connect_to_controller(engine_service, furl_file) | |
109 | d.addErrback(lambda _: reactor.stop()) |
|
110 | d.addErrback(lambda _: reactor.stop()) | |
110 |
|
111 |
General Comments 0
You need to be logged in to leave comments.
Login now