Show More
@@ -16,6 +16,8 b' __docformat__ = "restructuredtext en"' | |||
|
16 | 16 | #------------------------------------------------------------------------------- |
|
17 | 17 | |
|
18 | 18 | import os |
|
19 | from os.path import join as pjoin | |
|
20 | ||
|
19 | 21 | from IPython.genutils import get_home_dir, get_ipython_dir |
|
20 | 22 | from IPython.external.configobj import ConfigObj |
|
21 | 23 | |
@@ -53,7 +55,7 b' class ConfigObjManager(object):' | |||
|
53 | 55 | |
|
54 | 56 | def write_default_config_file(self): |
|
55 | 57 | ipdir = get_ipython_dir() |
|
56 |
fname = ipdir |
|
|
58 | fname = pjoin(ipdir, self.filename) | |
|
57 | 59 | if not os.path.isfile(fname): |
|
58 | 60 | print "Writing the configuration file to: " + fname |
|
59 | 61 | self.write_config_obj_to_file(fname) |
@@ -87,11 +89,11 b' class ConfigObjManager(object):' | |||
|
87 | 89 | |
|
88 | 90 | # In ipythondir if it is set |
|
89 | 91 | if ipythondir is not None: |
|
90 |
trythis = ipythondir |
|
|
92 | trythis = pjoin(ipythondir, filename) | |
|
91 | 93 | if os.path.isfile(trythis): |
|
92 | 94 | return trythis |
|
93 | 95 | |
|
94 |
trythis = get_ipython_dir() |
|
|
96 | trythis = pjoin(get_ipython_dir(), filename) | |
|
95 | 97 | if os.path.isfile(trythis): |
|
96 | 98 | return trythis |
|
97 | 99 |
@@ -995,6 +995,22 b' def get_ipython_dir():' | |||
|
995 | 995 | os.path.join(home_dir,ipdir_def))) |
|
996 | 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 | 1015 | # strings and text |
|
1000 | 1016 |
@@ -15,17 +15,15 b' __docformat__ = "restructuredtext en"' | |||
|
15 | 15 | # Imports |
|
16 | 16 | #------------------------------------------------------------------------------- |
|
17 | 17 | |
|
18 | from os.path import join as pjoin | |
|
19 | ||
|
18 | 20 | from IPython.external.configobj import ConfigObj |
|
19 | 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 | 24 | default_kernel_config = ConfigObj() |
|
23 | 25 | |
|
24 | try: | |
|
25 | ipython_dir = get_ipython_dir() + '/' | |
|
26 | except: | |
|
27 | # This will defaults to the cwd | |
|
28 | ipython_dir = '' | |
|
26 | security_dir = get_security_dir() | |
|
29 | 27 | |
|
30 | 28 | #------------------------------------------------------------------------------- |
|
31 | 29 | # Engine Configuration |
@@ -33,7 +31,7 b' except:' | |||
|
33 | 31 | |
|
34 | 32 | engine_config = dict( |
|
35 | 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 | 67 | port = 0, # 0 means pick a port for me |
|
70 | 68 | location = '', # Empty string means try to set automatically |
|
71 | 69 | secure = True, |
|
72 |
cert_file = |
|
|
70 | cert_file = pjoin(security_dir, 'ipcontroller-engine.pem'), | |
|
73 | 71 | ), |
|
74 | 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 | 75 | controller_interfaces = dict( |
|
78 | 76 | # multiengine = dict( |
@@ -83,12 +81,12 b' controller_config = dict(' | |||
|
83 | 81 | task = dict( |
|
84 | 82 | controller_interface = 'IPython.kernel.task.ITaskController', |
|
85 | 83 | fc_interface = 'IPython.kernel.taskfc.IFCTaskController', |
|
86 |
furl_file = |
|
|
84 | furl_file = pjoin(security_dir, 'ipcontroller-tc.furl') | |
|
87 | 85 | ), |
|
88 | 86 | multiengine = dict( |
|
89 | 87 | controller_interface = 'IPython.kernel.multiengine.IMultiEngine', |
|
90 | 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 | 95 | port = 0, # 0 means pick a port for me |
|
98 | 96 | location = '', # Empty string means try to set automatically |
|
99 | 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 | 106 | client_config = dict( |
|
109 | 107 | client_interfaces = dict( |
|
110 | 108 | task = dict( |
|
111 |
furl_file = |
|
|
109 | furl_file = pjoin(security_dir, 'ipcontroller-tc.furl') | |
|
112 | 110 | ), |
|
113 | 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 | 105 | # register_engine to tell the controller we are ready to do work |
|
106 | 106 | engine_connector = EngineConnector(tub_service) |
|
107 | 107 | furl_file = kernel_config['engine']['furl_file'] |
|
108 | log.msg("Using furl file: %s" % furl_file) | |
|
108 | 109 | d = engine_connector.connect_to_controller(engine_service, furl_file) |
|
109 | 110 | d.addErrback(lambda _: reactor.stop()) |
|
110 | 111 |
General Comments 0
You need to be logged in to leave comments.
Login now