Commit Graph

396 Commits

Author SHA1 Message Date
Min RK
9ded491c97 Merge pull request #7708 from SylvainCorlay/allow_none
allow_none=False for all trait types but Instance and Type
2015-03-20 09:48:40 -04:00
Scott Sanderson
e21b99900d MAINT: Remove unused import. 2015-03-19 18:35:02 -04:00
Scott Sanderson
257c7296c9 TEST: Move test_escape_root to TestFileContentsManager
`root_dir` is specific to the FileContentsManager implementation.
2015-03-19 18:13:08 -04:00
Min RK
62e4a5d072 contents: double check that os_path is always within root
check based on tornado `StaticFileHandler.validate_absolute_path`

I haven't been able to actually escape root, but we should have this check anyway.
2015-03-05 17:25:06 -08:00
Thomas Kluyver
2b95955079 Merge pull request #7906 from minrk/skip-perm-test-windows
skip permission error -> 403 test on Windows
2015-02-28 13:17:30 -08:00
Matthias Bussonnier
709126542a Merge pull request #7832 from minrk/default-secure-session
remove default_secure, make Session secure by default
2015-02-28 12:59:14 -08:00
Min RK
0bc4549d25 skip permission -> 403 test on Windows
The test actually passes on my VM (Win 7),
but not on Jenkins (Server 2012).

I haven't figured out how to identify the subset of Windows systems where it won't work,
but since the problem appears to be in the test,
not the tested code, skipping on Windows seems the right way to go.
2015-02-28 11:52:52 -08:00
Min RK
d9f01671ae make it clearer that we adapt to old messages
> Adapting to protocol vX for kernel Y

instead of

> Kernel Y speaks protocol version X

some have interpreted the "Kernel speaks" statement was an error message;
this should be clearer about what's happening,
and that there is no error.
2015-02-28 11:35:37 -08:00
Min RK
109ee00ebb get session.key from kernel manager
in kernel channel handlers

we were accidentally relying on loading Session.key from config set via the default_secure decorator,
which forced the key to be the same for every kernel.
2015-02-28 11:22:19 -08:00
Fernando Perez
50c8c5feed Merge pull request #7852 from minrk/open-perm
Catch IOError in addition to OSError.

Closes #7848
2015-02-27 17:07:53 -08:00
Thomas Kluyver
80b931897c Fix some formatting for config options help 2015-02-25 14:24:25 -08:00
Thomas Kluyver
0dd26a9b32 Merge pull request #7855 from minrk/no-extra-contents-manager
don't force instantiation of extra, unused contents manager
2015-02-25 09:58:38 -08:00
Min RK
ce7e03bc61 make sure SessionManager tests have a ContentsManager 2015-02-24 17:00:38 -08:00
Thomas Kluyver
193ecc9d22 Merge pull request #7858 from takluyver/i7857
Dump frontend config JSON with an indent
2015-02-24 16:01:01 -08:00
Thomas Kluyver
8e4514d88b Dump frontend config JSON with an indent
Fixes gh-7857
2015-02-24 14:56:14 -08:00
Min RK
94656735f3 don't force instantiation of contents manager by default
this is never used and never needed, and results in the instantiation of a contents manager that is immediately discarded.
2015-02-24 14:16:24 -08:00
Min RK
b83a9383a6 test that FileContentsManager.open turns permission error into 403 2015-02-24 13:14:24 -08:00
Min RK
4e6805c408 catch IOError in addition to OSError
IOError is a subclass of OSError on py3, but not py2
2015-02-24 12:59:25 -08:00
Jason Grout
512187ac10 Fix contentsmanager api error message to give the path name 2015-02-24 20:45:20 +00:00
Sylvain Corlay
5c16ffe559 removing redundant allow_none=False 2015-02-20 18:53:09 -05:00
Min RK
121d495424 protect websocket against errant messages
- message handler being triggered after stream is closed (no channels)
- messages sent to invalid channels
2015-01-26 11:11:13 -08:00
Min RK
ad83e79ea5 allow requesting contents without body
adds `?content=0` to only fetch the metadata in the model.

The REST API now exposes all arguments to ContentsManager.get.
2015-01-24 12:46:15 -08:00
Brian E. Granger
ab83599d36 Merge pull request #7389 from minrk/one-websocket
use single WebSocket connection for all channels
2015-01-09 11:37:51 -08:00
Min RK
3cf6eacc86 Merge pull request #7324 from quantopian/separate-checkpoint-manager
DEV: Refactor checkpoint logic out of FileContentsManager into a separate class.
2015-01-09 10:17:15 -08:00
Scott Sanderson
64e5c49608 DEV: Break get_checkpoint into separate methods.
One for notebooks and one for checkpoints.
2015-01-08 17:00:53 -05:00
Scott Sanderson
2569c3069d STY: s/CheckpointManager/Checkpoints
It's easy to confuse CheckpointManager and ContentsManager.
2015-01-08 14:41:46 -05:00
Scott Sanderson
021e2da495 DEV: Separate FileCheckpointManager and GenericFileCheckpointManager.
- Adds a `GenericCheckpointMixin` as a helper for implementing the two
  boundary-traversing Checkpoint API methods, `create_checkpoint` and
  `restore_checkpoint`.

- `GenericFileCheckpointManager` is implemented as a subclass of
  `FileCheckpointManager` using `GenericCheckpointMixin`.  Note that
  this is the safe subtyping relationship because of method
  signature *contra*variance: `FileCheckpointManager` accepts
  `FileContentsManager` in its method signatures type, whereas
  `GenericFileCheckpointManager` accepts any `ContentsManager`.

- Moved Checkpoint-related classes to their own files.
2015-01-08 14:07:17 -05:00
Scott Sanderson
12fe97e2af DEV: Allow CheckpointManagers to optimize for shared backends.
On `create_checkpoint` and `restore_checkpoint`, pass a path and a
`ContentsManager` to `CheckpointManager` instead of an already-loaded
model.

The `CheckpointManager` base class provides a correct implementation of
these methods that's generic across any ContentsManager, but subclasses
are free to specialize when the storage backend of `ContentsManager` is
shared.
2015-01-07 21:23:55 -05:00
Scott Sanderson
55d4e20aaf DEV: Remove ContentsManager.walk. 2015-01-07 16:13:42 -05:00
Scott Sanderson
2b73f1e620 DEV: Implement os.walk analog for ContentsManagers. 2015-01-06 23:59:31 -05:00
Scott Sanderson
1e2e86dcca MAINT: Return dicts from CheckpointManager.get_checkpoint.
The output is going to get converted to a dict anyway, and this makes it
easier to pipe output from a CheckpointManager directly to a
ContentsManager.
2015-01-06 14:28:59 -05:00
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
Scott Sanderson
7030a8717a DEV: Add full support for non-notebook checkpoints. 2015-01-01 20:52:00 -05:00
Scott Sanderson
23837e9ad4 DEV: Remove unnecessary notary calls. 2015-01-01 20:49:35 -05:00
Min RK
67abf3ddab update kernelspec test
to expect Python display name
2014-12-30 13:23:05 -08:00
Scott Sanderson
631a68d83e TEST: Test separate roots for Contents and Checkpoints. 2014-12-29 07:01:39 -05:00
Scott Sanderson
f71f216880 DEV: More checkpoint API refactoring.
Changed the public checkpoint API to:
- `create_checkpoint(self, nb, path)`
- `get_checkpoint_content(self, checkpoint_id, path)`
- `rename_checkpoint(self, checkpoint_id, old_path, new_path)`
- `delete_checkpoint(self, checkpoint_id, path)`
- `list_checkpoints(self, path)`

All paths in the above are API-style paths, and the `nb` argument to
`create_checkpoint` is a dictionary suitable for passing to
`nbformat.write`.

The new `get_checkpoint_content` method returns an unvalidated notebook
content dictionary.  It is used by `ContentManager.restore_checkpoint`
to load content to be written via `save`.
2014-12-29 07:00:30 -05:00
Matthias Bussonnier
c1d9f4d436 Merge pull request #7283 from minrk/kernel-spec-model
add resource URLs to kernelspec model
2014-12-28 16:38:50 +01:00
Scott Sanderson
dc295f67bd MAINT: Add missing config=Trues. 2014-12-27 00:48:57 -05:00
Scott Sanderson
4da8a30f20 DEV: Refactor checkpoint logic from FileContentsManager.
- Add a `CheckpointManager` base class and infrastructure for creating a
  `checkpoint_manager` instance attribute on `ContentsManager`.

- Provide default implementations of `delete` and `rename` in the base
  `ContentsManager` class.  `ContentsManager` subclasses are now
  required to implement `delete_file` and `rename_file`.  These methods
  no longer need to manage checkpoints.

- Move checkpoint-related functionality from `FileContentsManager` to a
  dedicated `FileCheckpointManager` subclass.

- Move shared filesystem interaction logic into `FileManagerMixin`
  used by both `FileContentsManager` and `FileCheckpointManager`.

- Minor tweaks to ContentsManager tests to get methods from the right
  object.

The purpose of this change is to provide an API for users to replace
just the checkpoint logic associated with a particular
`ContentsManager`.  In particular, this change makes it possible to
easily support remote storage of checkpoints while otherwise retaining
normal filesystem interactions.
2014-12-27 00:23:14 -05:00
Scott Sanderson
9aad3c631f MAINT: Move update from FileContentsManager to ContentsManager.
The implementation in FileContentsManager is written entirely in terms
of the required API, and is sensible for other ContentsManager
implementations.
2014-12-25 13:17:10 -05:00
Min RK
e7b6d5dec3 update kernelspec model tests 2014-12-21 14:59:55 -08:00
Min RK
a417785c5e add resource URLs to kernelspec model
- move kernelspec itself to model.spec
- add resources top-level key with resource URLs
- no more 404s or HEAD requests under normal circumstances
2014-12-21 14:41:12 -08:00
Min RK
ad995dfdb8 Merge pull request #7244 from minrk/rm-signature
don't store signatures in notebooks
2014-12-20 16:47:05 -08:00
Min RK
db5147998d docstring on test_dir 2014-12-19 12:26:16 -08:00
Min RK
00e4ad59c0 add counter to new notebooks in test_manager
ensures brand new notebooks are untrusted

previously, all new notebooks were identical,
so once one was trusted, they would all start trusted.
2014-12-17 14:27:38 -08:00
Scott Sanderson
a1ad9abe51 MAINT: Unicode literal in assertDictContainsSubset 2014-12-17 11:38:46 -08:00
Scott Sanderson
4a2149d1c3 TEST: Add a non-notebook file to directory test. 2014-12-17 11:38:46 -08:00
Scott Sanderson
af7d1cdb50 STY: Define dirs as a single expression. 2014-12-17 11:38:46 -08:00
Scott Sanderson
f7cf204b25 BUG: Convert to bytes before comparing binary blobs. 2014-12-17 11:38:46 -08:00