Commit Graph

56 Commits

Author SHA1 Message Date
Min RK
1cac03528b use single WebSocket connection for all channels
multiplex on a 'channel' key in message,
rather than separate websockets.

Unlike zmq, there aren't different message patterns that require the channels to be separate.

Reduces FD count by factor of 3 and connection complexity in js.
2015-01-06 11:15:15 -08:00
Matthias Bussonnier
de52775797 Merge pull request #7078 from takluyver/kernelpath
Rework get_kernel_path logic
2014-12-04 16:59:54 +01:00
Kyle Kelley
7a48687929 Update CSP tests for new default. 2014-12-02 15:12:14 -06:00
Kyle Kelley
0c22c140c3 Turn x-frame-options tests into CSP tests 2014-12-02 15:12:14 -06:00
Thomas Kluyver
d273b56044 Clean up get_kernel_path logic 2014-12-02 11:54:19 -08:00
Thomas Kluyver
8252f56b00 Allow FileContentsManager and MappingKernelManager to be used outside NotebookApp 2014-11-18 17:41:21 -08:00
Thomas Kluyver
6d776a5292 Allow starting the server with both file_to_run and notebook_dir
file_to_run and notebook_dir would collide, with possible dictionary
ordering randomness depending on how they were passed.

With this change, the default value of notebook_dir is pulled from
file_to_run, instead of pushing the value when file_to_run is changed.
This makes it possible to specify both and have the server behave as
expected.
2014-11-18 17:41:21 -08:00
Min RK
a62a9abdef update MappingKernelManager module docstring 2014-11-18 13:29:44 -08:00
Min RK
1914e27cff Don't pass IPython-specific args to non-IPython kernels
add a few FIXME notes that the IPython-kernel special treatment
will probably want to be removed in the Jupyter explosion.
2014-11-17 11:17:08 -08:00
Min RK
3e82ea8319 actually send only one kernel_info request
store the Future for the initial request,
allowing subsequent requests to wait on the same pending reply.

Previously, any incoming requests that arrived while waiting for the first reply would send their own request.
2014-11-01 13:38:55 -07:00
Min RK
e5b135a905 debugging websocket connections
- add debug statement at the very beginning of a web socket request
- add debug statement in open, indicating that the connection has been accepted
- add timeout, so failed or slow kernel_info doesn't cause the request to never get a response
- don't send kernel_info_request before authenticating the request

The last one required some icky coroutine shenanigans,
because of our subclass structure, but it should work fine.
2014-10-29 09:17:52 -07:00
MinRK
a5a43e2746 Don't resend kernel info requests if a bad reply is received 2014-10-26 19:06:48 -07:00
MinRK
94d6196ef9 add websocket workarounds for tornado 3
WebSocketHandler.get is new in tornado 4
2014-10-26 19:06:48 -07:00
MinRK
769fe38789 cache kernel_info reply for protocol adaptation
WebSocket connections will not open until kernel_info is retrieved,
removing a race condition waiting for the reply to indicate adaptation,
which could result in a v5 message being sent to a v4 kernel.
The reply is cached, so that it need not be requested on each new connection.
2014-10-26 14:48:55 -07:00
MinRK
3693ac83ae support binary message from javascript 2014-10-15 12:23:32 -07:00
MinRK
c9c131ebf9 s/unserialize/deserialize 2014-10-15 12:23:32 -07:00
MinRK
7da61bfc13 use default kernel name in kernels service
matches sessions API
2014-10-12 14:59:03 -07:00
MinRK
624f0071a2 remove on_first_message authentication
in ZMQStreams. No need for weird, special first message.

- use regular cookie auth
- use url param for session id
2014-10-09 15:12:20 -07:00
MinRK
bd5a88e954 handle undefined or closed zmq_stream in on_message
can happen if a message is waiting in a pipe and the web socket is closed before the message is handled.

And give ZMQChannels a nice repr with their kernel ID
2014-08-13 21:51:52 -07:00
rgbkrk
88e52b2746 Only allow iframe embedding on same origin. 2014-07-12 00:20:24 -05:00
Thomas Kluyver
ae6309c122 Add support for different kernel specs to kernels REST API 2014-07-10 23:50:00 -05:00
MinRK
44d2a5b62a only use zmq.jsonapi when talking to zmq sockets
use stdlib json otherwise
2014-06-18 13:41:40 -07:00
MinRK
336f47c126 update message spec adapter per review
- docs and comments
- adapt complete_reply with `end=null`, `start=-len(matched_text)`
- remove some incorrect `status` fields
- add `handle_reply_status_error` for handling `status=error` replies (no-op, currently)
2014-05-09 12:04:08 -07:00
MinRK
b06f382e9b interrogate kernel_info to get protocol version for adaptation 2014-05-09 12:04:08 -07:00
Thomas Kluyver
c4e0ef142b Merge pull request #5759 from minrk/travis-3.4
test with Python 3.4 on Travis
2014-05-05 10:20:56 -07:00
MinRK
191cd44c4d cleanup socket cleanup
- set linger on sockets (avoid hang on exit)
- actually close sockets, not just zmq streams (blame pyzmq, aka me)

seems to be necessary for js/notebook/shutdown test to avoid hanging on Python 3.4.
2014-05-01 16:06:59 -07:00
Spencer Nelson
925a58c0b4 Remove unused imports 2014-05-01 15:42:46 -07:00
Dale Jung
27a77dedbd API: Allow NotebookManagers to control kernel startup dir. #5468 2014-03-29 17:39:15 -04:00
MinRK
d37780c6a6 use config instead of App.instance to propagate notebook_dir
Should behave more logically (I hope).
2014-02-21 13:22:57 -08:00
MinRK
cb25736a24 reorganize who knows what about paths
- add NotebookApp.notebook_dir
- add KernelManager.root_dir
- remove NotebookManager.notebook_dir, move to FileNBM.notebook_dir

Default value for KM.root_dir and fNBM.notebook_dir is NotebookApp.notebook_dir, but they can be configured separately.

SessionManager passes the API path to KernelManager,
which is responsible for turning it into the kernel's cwd.
2014-02-21 13:22:56 -08:00
MinRK
37cb0fbdee remove websocket url
websockets should follow the kernel URL

(normal behavior is unchanged, only unused configurability is removed)
2014-02-20 22:54:36 -08:00
MinRK
a184724bdb remove base_kernel_url 2014-02-11 21:26:10 -08:00
MinRK
7ea311ad64 escape URLs in Location headers 2013-10-18 16:13:53 -07:00
Brian E. Granger
36aa39e3b7 Improving tests and setting of Location header. 2013-10-17 14:09:20 -07:00
Thomas Kluyver
d089f7749f Use assertEqual, not deprecated assertEquals 2013-10-17 14:09:19 -07:00
Thomas Kluyver
836ad5f388 Add tests for interrupting & restarting kernel
These are in an existing test method, as starting and stopping kernels
for individual tests is expensive.
2013-10-17 14:09:19 -07:00
Thomas Kluyver
06fa301908 Refactor tests for kernels REST API 2013-10-17 14:09:18 -07:00
Zachary Sailer
9e0beba86f adding to test_kernels_api.py
- Check all HTTP status code responses for requests
- Test invalid kernel IDs
- Check 'location' key in POST request to kernels
2013-10-17 14:09:12 -07:00
Zachary Sailer
97bc426bb7 add error catching to kernel manager
also, adding further tests to kernel manager
2013-10-17 14:09:11 -07:00
MinRK
5568cd5db0 ensure test_no_kernels runs first
since it expects a clean notebook server.
2013-10-17 14:09:11 -07:00
Zachary Sailer
27680dacb2 Code review changes.
Fixed handler issues and api tests from code review
from @minrk and @carreau.
2013-10-17 14:09:11 -07:00
Zachary Sailer
050a3098a8 review fixes on tests, add extra kernel api test 2013-10-17 14:09:10 -07:00
Zachary Sailer
e9ac1c2d37 add tests for session api 2013-10-17 14:09:10 -07:00
Brian E. Granger
136a19e5eb Added base class for Notebook API tests. 2013-10-17 14:09:09 -07:00
Zachary Sailer
483d16c8ed clean kernel manager 2013-10-17 14:09:09 -07:00
Zachary Sailer
8c2009874c session manager restructuring
Redid the sessionmanager, added tests for the session manager,
and added a sqlite database to hold kernel,session,nb mapping.
2013-10-17 14:09:09 -07:00
Zachary Sailer
8261ac2cb9 change standard money keys 2013-10-17 14:09:06 -07:00
Zachary Sailer
fd282698bc removing debug logs 2013-10-17 14:09:05 -07:00
Zachary Sailer
62ec52e276 fix restart/interrupt kernel buttons 2013-10-17 14:07:50 -07:00
Zachary Sailer
09c4ecbb10 manual rebase services/kernels/ 2013-10-17 14:07:49 -07:00