Skip to content

Commit 63eb2d0

Browse files
committed
hub: use .save() with enable-worker so that ready state is refreshed
When enable-worker and disable-worker commands are used, they update the enabled field in Worker objects directly, bypassing the .save() method, which is the only place where the ready field is recalculated. This change uses .save() to make the enabled state change, so that ready state is recalculated. This fixes an issue where if a worker is disabled, then later re-enabled, it can get stuck in a non-ready state.
1 parent bf38e1b commit 63eb2d0

File tree

1 file changed

+12
-2
lines changed

1 file changed

+12
-2
lines changed

kobo/hub/xmlrpc/client.py

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,14 +39,24 @@ def shutdown_worker(request, worker_name, kill=False):
3939
def enable_worker(request, worker_name):
4040
"""enable_worker(worker_name): none
4141
"""
42-
models.Worker.objects.filter(name=worker_name).update(enabled=True)
42+
try:
43+
worker = models.Worker.objects.get(name=worker_name)
44+
worker.enabled = True
45+
worker.save()
46+
except ObjectDoesNotExist:
47+
pass
4348

4449

4550
@admin_required
4651
def disable_worker(request, worker_name):
4752
"""disable_worker(worker_name, kill): None
4853
"""
49-
models.Worker.objects.filter(name=worker_name).update(enabled=False)
54+
try:
55+
worker = models.Worker.objects.get(name=worker_name)
56+
worker.enabled = False
57+
worker.save()
58+
except ObjectDoesNotExist:
59+
pass
5060

5161
def get_worker_info(request, worker_name):
5262
try:

0 commit comments

Comments
 (0)