From 37ea6cc858e5f884d2595a0e7e2c0b380b348d2d Mon Sep 17 00:00:00 2001
From: Andre Anjos <andre.anjos@idiap.ch>
Date: Fri, 20 May 2016 10:03:35 +0200
Subject: [PATCH] [scripts] Improved worker detection and error reporting

---
 beat/web/scripts/worker.py | 13 +++++++++++--
 1 file changed, 11 insertions(+), 2 deletions(-)

diff --git a/beat/web/scripts/worker.py b/beat/web/scripts/worker.py
index 1c0bd4d23..c4a257ce3 100644
--- a/beat/web/scripts/worker.py
+++ b/beat/web/scripts/worker.py
@@ -115,6 +115,17 @@ def main(user_input=None):
     from ..backend import utils
     from ..backend.models import Worker
 
+    try:
+        worker = Worker.objects.get(name=arguments['--name'])
+    except Worker.DoesNotExist:
+        logger.error("Cannot find worker `%s' in database, aborting",
+            arguments['--name'])
+        sys.exit(1)
+    else:
+        logger.info("Found worker `%s' in database, proceeding...",
+            arguments['--name'])
+
+    # figure out paths to programs I need to use
     from beat.core.async import resolve_cpulimit_path
     cpulimit = resolve_cpulimit_path(arguments['--cpulimit'])
     logger.debug("(path) cpulimit: `%s'", cpulimit)
@@ -128,8 +139,6 @@ def main(user_input=None):
     environments = utils.find_environments(paths)
     logger.debug("Environments: %s", ", ".join(environments))
 
-    worker = Worker.objects.get(name=arguments['--name'])
-
     # check environments
     missing, unused = worker.check_environments(environments)
     if unused:
-- 
GitLab