Skip to content

Commit 9f7701a

Browse files
Changli HanHCharlie
authored andcommitted
MLX-1204 add options to cull named servers and default servers only
1 parent 691d27a commit 9f7701a

File tree

1 file changed

+25
-1
lines changed

1 file changed

+25
-1
lines changed

jupyterhub_idle_culler/__init__.py

Lines changed: 25 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,8 @@ async def cull_idle(
8787
internal_certs_location="",
8888
cull_admin_users=True,
8989
api_page_size=0,
90+
cull_default_servers=True,
91+
cull_named_servers=True,
9092
):
9193
"""Shutdown idle single-user servers
9294
@@ -235,7 +237,7 @@ async def handle_server(user, server_name, server, max_age, inactive_limit):
235237
# inactive_limit = server['state']['culltime']
236238

237239
should_cull = (
238-
inactive is not None and inactive.total_seconds() >= inactive_limit
240+
inactive is not None and inactive.total_seconds() >= inactive_limit and ((cull_default_servers and server_name == "") or (cull_named_servers and server_name))
239241
)
240242
if should_cull:
241243
app_log.info(
@@ -561,6 +563,26 @@ def main():
561563
"""
562564
).strip(),
563565
)
566+
define(
567+
"cull_default_servers",
568+
type=bool,
569+
default=True,
570+
help=dedent(
571+
"""
572+
Whether default servers should be culled (only if --cull-default-servers=true).
573+
"""
574+
).strip(),
575+
)
576+
define(
577+
"cull_named_servers",
578+
type=bool,
579+
default=True,
580+
help=dedent(
581+
"""
582+
Whether named servers should be culled (only if --cull-named-servers=true).
583+
"""
584+
).strip(),
585+
)
564586

565587
parse_command_line()
566588
if not options.cull_every:
@@ -589,6 +611,8 @@ def main():
589611
internal_certs_location=options.internal_certs_location,
590612
cull_admin_users=options.cull_admin_users,
591613
api_page_size=options.api_page_size,
614+
cull_default_servers=options.cull_default_servers,
615+
cull_named_servers=options.cull_named_servers,
592616
)
593617
# schedule first cull immediately
594618
# because PeriodicCallback doesn't start until the end of the first interval

0 commit comments

Comments
 (0)