Commit Graph

128 Commits

Author SHA1 Message Date
Steffen Vogel
e93cc83d58 remove unused imports 2020-04-16 12:12:22 +02:00
Greg
d126baa443 remove diaeresis
Signed-off-by: Greg <werner.greg@gmail.com>
2020-01-17 09:43:46 -05:00
Min RK
ff283ae636 address review
and fix a mis-applied GitHub suggestion

suggestions can only replace one line
2019-03-07 10:33:37 +01:00
Carol Willing
2fbcb16190 docstring formatting
Co-Authored-By: minrk <benjaminrk@gmail.com>
2019-03-07 10:27:54 +01:00
Carol Willing
49b9a9f017 spacing
Co-Authored-By: minrk <benjaminrk@gmail.com>
2019-03-07 10:26:53 +01:00
Carol Willing
aa60d948bb docstring formatting
Co-Authored-By: minrk <benjaminrk@gmail.com>
2019-03-07 10:26:19 +01:00
Min RK
0c028c7186 import parsing of Accept header
used to determine if a request expects JSON or not
2019-02-25 13:44:10 +01:00
Min RK
5e60582ef3 run autoformat
apologies to anyone finding this commit via git blame or log

run the autoformatting by

    pre-commit run --all-files
2019-02-19 17:00:10 +01:00
Min RK
8c76f2b30c Merge pull request #2414 from minrk/threads
add an additional case for idle ThreadPoolExecutor threads
2019-02-15 11:16:30 +01:00
Min RK
5e77e448bd add an additional case for idle ThreadPoolExecutor threads
this is what they look like in Python 3.7
2019-02-12 16:00:07 +01:00
Min RK
d8d1b6c149 test activity api 2019-02-11 16:17:23 +01:00
Min RK
fe5ca1a67e Merge branch 'master' into jupyter_2105 2018-10-19 09:31:45 +02:00
tuhina2020
e449b9c193 fix the condiiton for authentation 2018-10-17 10:39:00 +05:30
Min RK
eb7648abc2 consolidate trusted alt names
- trust subdomain_host by default
- JupyterHub.trusted_alt_names is inherited by Spawners by default. Do we need Spawner.ssl_alt_names to be separately configurable?
2018-10-16 15:46:50 +02:00
tuhina2020
1a6b16d493 fix metrics_authentication method 2018-10-15 11:27:11 +05:30
tuhina2020
ac7ff491e1 Add tests for metrics API 2018-10-12 09:26:52 +05:30
tuhina2020
b0b7e8d25d add metrics_authentication decorator to /metrics API 2018-10-07 13:38:32 +05:30
Min RK
f29354e0f4 Merge branch 'master' into end-to-end-ssl 2018-10-02 11:15:53 +02:00
Carol Willing
56601d93c3 Merge pull request #2149 from minrk/deprecate-maybe-future
stop using deprecated `gen.maybe_future`
2018-09-17 20:08:57 -07:00
Min RK
35a95b5f0c stop using deprecated gen.maybe_future
we already covered supported cases since we are using tornado 5,
so handle the scalar case ourselves, as recommended in the deprecation
2018-09-14 14:13:31 +02:00
Min RK
d79a99323e make .get_current_user async
- `.get_current_user` is called in the `prepare` stage for all handlers
- use `.current_user` to access current user in methods
- adds Authenticator.refresh_user for refreshing user auth (unused at this point)
2018-09-13 10:16:13 +02:00
Thomas Mendoza
373c3f82dd SSL setup for testing
Setup general ssl request, not just to api

Basic tests comprised of non-ssl test copies

Create the context only when request is http

Refactor ssl key, cert, ca names

Configure the AsyncHTTPClient at app start

Change tests to import existing ones with ssl on

Override __new__ in MockHub to turn on SSL
2018-07-23 13:41:09 -07:00
Thomas Mendoza
f7f4759bde Build ssl_context as util, wait_up with context 2018-07-18 16:02:57 -07:00
Min RK
5002ab2990 Python 3.5.1 cannot close async iterators
so provide a null aclosing async context manager that does nothing
2018-06-06 11:43:33 +02:00
Min RK
a189196855 ensure async generators are properly closed
only terminate with iterate_until in handler, not Spawner._generate_events
2018-04-09 13:03:18 +02:00
Min RK
31d3f7a20b allow isoformat(None)
simplifies "if timestamp is None" cases when we are just using it to serialize nullable timestamps to JSON
2018-04-05 11:32:34 +02:00
Min RK
707b300bd6 add iterate_until utility
allows iterating through an async generator, yielding items until another Future resolves

if/when that deadline Future resolves, ready items will continue to be yielded until there is one that actually needs to wait
at which point the iteration will halt
2018-04-05 11:22:00 +02:00
Min RK
fd40e27be4 indicate that REST API timestamps are UTC
use iso8601 Z suffix for UTC timestamps

use dateutil to parse dates from proxy, as well

even though CHP uses iso8601 UTC timestamps, we no longer assume CHP, so use more general parsing

in our db we are stuck with naïve datetime objects, so use those internally.
But ensure we put 'Z' on timestamps we ship externally
2018-04-03 15:14:47 +02:00
Min RK
dad26be2c6 call it our own maybe_future
our version of gen.maybe_future that's fully tornado- and asyncio-compatible
2018-03-12 18:18:47 +01:00
Min RK
b6f634368c add utils.awaitable replacement for gen.maybe_future
gen.maybe_future doesn't accept asyncio coroutines
and asyncio.ensure_future doesn't accept *tornado* coroutines, so do our own thing
2018-03-12 18:18:46 +01:00
Min RK
7b4de150cc add awaitable wrapper
to replace gen.maybe_future
2018-03-12 18:18:46 +01:00
Min RK
7a268c94b0 bulk find/replace async def and await
- `@gen.coroutine def` -> `async def`
- `yield future` -> `await future`

needs some fine tuning, but this is the big one
2018-03-12 18:18:46 +01:00
Min RK
773973825f also show asyncio task stacks
which are nicely formatted on their own

there won't be many yet, but if we transition to async def,
we will get lots more useful info
2018-03-01 14:39:11 +01:00
Min RK
a184d372f4 add SIGINFO handler
send SIGINFO (ctrl-T) to jupyterhub and it will dump
process info

- if psutil is available, show cpu, memory, FD counts
- always show stacks of non-idle threads
2018-03-01 14:37:46 +01:00
Min RK
5f7ffaf1f6 allow default (empty) server name with named servers
remove generated names behavior because it doesn't work
2017-09-17 11:47:17 +02:00
Alex Ding
932689f2f8 Pass timeout value to exponential_backoff in wait functions 2017-08-29 17:45:21 -07:00
Carol Willing
da10a8e7dd Edit docstring and comments 2017-07-26 13:00:16 -07:00
Min RK
8de38b1708 add some jitter to the deadline itself
so that we don't re-align a bunch of timing out calls once the deadline is reached.

(±10% of timeout by default)
2017-07-26 14:12:28 +02:00
Min RK
6db987972a exponential backoff
- apply jitter to first iteration
- due to jitter, double start_wait to 0.2 so that <first wait> is still 0.1
- keep scaling by start_wait, rather than previous dt
- limit last wait to deadline so timeout is not overshot
2017-07-26 14:06:07 +02:00
yuvipanda
9f8033a147 Move exponential backoff into a function
Also use the 'Full Jitter' jitter algorithm from
https://www.awsarchitectureblog.com/2015/03/backoff.html
2017-07-26 14:06:07 +02:00
Min RK
e28f3947bd Merge branch 'master' into named_servers 2017-07-21 15:43:09 +02:00
Min RK
a2e94b8493 create Spawners table
for named servers

removes User.servers
2017-07-18 14:28:31 +02:00
Min RK
efa6a33b0a variables for exponential falloff 2017-07-17 10:27:42 +02:00
Min RK
8e3c4b1925 apply exponential backoff to all waits
Waiting for servers to come up and shut down was polled at an even interval of 100ms. If things are slow and busy, this is a lot if waiting events. exponential backoff reduces the number of callbacks triggered by slow spawners.

This may improve the load a bit when there’s a bunch of outstanding spawns.
2017-07-15 12:56:47 +02:00
Min RK
cdcc7fc3c1 return http response from wait_for_http_server 2017-06-28 21:55:15 +01:00
Min RK
a5fbc0351f close socket when testing connections
rather than relying on garbage collection
2017-06-08 15:28:02 +02:00
Min RK
acc31b8441 remove Hub, Proxy from database
These are in-memory-only objects, no need for a table with one row
2017-05-04 11:05:58 +02:00
Christian Barra
f4a7e28aa5 add default_server_name, change spawn start 2017-02-24 00:37:40 +01:00
Carol Willing
0fe3aacb4d Update punctuation per @minrk 2017-02-09 06:48:15 -08:00
Carol Willing
13ae12b57d Correct style spacing 2017-02-08 21:18:12 -08:00