From 95b4f1374140ebf87806ae6843ccc5f79d71890a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Sybren=20A=2E=20St=C3=BCvel?= <sybren@stuvel.eu>
Date: Fri, 31 Mar 2017 16:04:18 +0200
Subject: [PATCH] =?UTF-8?q?Replaced=20job=5Ftypes=20=E2=86=92=20task=5Ftyp?=
 =?UTF-8?q?es?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

This allows a finer granularity of task selection for a given worker.
---
 flamenco-worker.cfg       |  2 +-
 flamenco_worker/cli.py    |  2 +-
 flamenco_worker/config.py |  2 +-
 flamenco_worker/worker.py |  4 ++--
 tests/test_worker.py      | 14 ++++++++------
 5 files changed, 13 insertions(+), 11 deletions(-)

diff --git a/flamenco-worker.cfg b/flamenco-worker.cfg
index 6f6034bb..90f153df 100644
--- a/flamenco-worker.cfg
+++ b/flamenco-worker.cfg
@@ -1,6 +1,6 @@
 [flamenco-worker]
 manager_url = http://localhost:8083/
-job_types = sleep blender-render
+task_types = sleep blender-render ffmpeg filemanage
 task_update_queue_db = flamenco-worker.db
 
 may_i_run_interval_seconds = 5
diff --git a/flamenco_worker/cli.py b/flamenco_worker/cli.py
index 731a8458..fd39d1e0 100644
--- a/flamenco_worker/cli.py
+++ b/flamenco_worker/cli.py
@@ -56,7 +56,7 @@ def main():
         manager=fmanager,
         trunner=trunner,
         tuqueue=tuqueue,
-        job_types=confparser.value('job_types').split(),
+        task_types=confparser.value('task_types').split(),
         worker_id=confparser.value('worker_id'),
         worker_secret=confparser.value('worker_secret'),
         loop=loop,
diff --git a/flamenco_worker/config.py b/flamenco_worker/config.py
index ad400a7b..d3481cd7 100644
--- a/flamenco_worker/config.py
+++ b/flamenco_worker/config.py
@@ -15,7 +15,7 @@ CONFIG_SECTION = 'flamenco-worker'
 DEFAULT_CONFIG = {
     'flamenco-worker': collections.OrderedDict([
         ('manager_url', 'http://flamenco-manager/'),
-        ('job_types', 'sleep blender_render_simple'),
+        ('task_types', 'unknown sleep blender-render'),
         ('task_update_queue_db', 'flamenco-worker.db'),
         ('may_i_run_interval_seconds', '5'),
         ('worker_id', ''),
diff --git a/flamenco_worker/worker.py b/flamenco_worker/worker.py
index 08e4bd52..1d67ee8c 100644
--- a/flamenco_worker/worker.py
+++ b/flamenco_worker/worker.py
@@ -33,7 +33,7 @@ class FlamencoWorker:
     manager = attr.ib(validator=attr.validators.instance_of(upstream.FlamencoManager))
     trunner = attr.ib()  # Instance of flamenco_worker.runner.TaskRunner
     tuqueue = attr.ib(validator=attr.validators.instance_of(upstream_update_queue.TaskUpdateQueue))
-    job_types = attr.ib(validator=attr.validators.instance_of(list))
+    task_types = attr.ib(validator=attr.validators.instance_of(list))
     worker_id = attr.ib(validator=attr.validators.instance_of(str))
     worker_secret = attr.ib(validator=attr.validators.instance_of(str))
 
@@ -132,7 +132,7 @@ class FlamencoWorker:
                     json={
                         'secret': self.worker_secret,
                         'platform': platform,
-                        'supported_job_types': self.job_types,
+                        'supported_task_types': self.task_types,
                         'nickname': hostname,
                     },
                     auth=None,  # explicitly do not use authentication
diff --git a/tests/test_worker.py b/tests/test_worker.py
index db93effa..c9f3b926 100644
--- a/tests/test_worker.py
+++ b/tests/test_worker.py
@@ -35,7 +35,7 @@ class AbstractFWorkerTest(AbstractWorkerTest):
             manager=self.manager,
             trunner=self.trunner,
             tuqueue=self.tuqueue,
-            job_types=['sleep', 'unittest'],
+            task_types=['sleep', 'unittest'],
             worker_id='1234',
             worker_secret='jemoeder',
             loop=self.asyncio_loop,
@@ -87,7 +87,7 @@ class WorkerStartupTest(AbstractFWorkerTest):
             '/register-worker',
             json={
                 'platform': detect_platform(),
-                'supported_job_types': ['sleep', 'unittest'],
+                'supported_task_types': ['sleep', 'unittest'],
                 'secret': self.worker.worker_secret,
                 'nickname': 'ws-unittest',
             },
@@ -121,7 +121,7 @@ class WorkerStartupTest(AbstractFWorkerTest):
             '/register-worker',
             json={
                 'platform': detect_platform(),
-                'supported_job_types': ['sleep', 'unittest'],
+                'supported_task_types': ['sleep', 'unittest'],
                 'secret': self.worker.worker_secret,
                 'nickname': 'ws-unittest',
             },
@@ -153,7 +153,8 @@ class TestWorkerTaskExecution(AbstractFWorkerTest):
             'name': 'sleep-14-26',
             'status': 'processing',
             'priority': 50,
-            'job_type': 'sleep',
+            'job_type': 'unittest',
+            'task_type': 'sleep',
             'commands': [
                 {'name': 'echo', 'settings': {'message': 'Preparing to sleep'}},
                 {'name': 'sleep', 'settings': {'time_in_seconds': 3}}
@@ -211,7 +212,8 @@ class TestWorkerTaskExecution(AbstractFWorkerTest):
             'name': 'sleep-14-26',
             'status': 'processing',
             'priority': 50,
-            'job_type': 'sleep',
+            'job_type': 'unittest',
+            'task_type': 'sleep',
             'commands': [
                 {'name': 'sleep', 'settings': {'time_in_seconds': 3}}
             ]
@@ -386,7 +388,7 @@ class WorkerShutdownTest(AbstractWorkerTest):
             manager=self.manager,
             trunner=self.trunner,
             tuqueue=self.tuqueue,
-            job_types=['sleep', 'unittest'],
+            task_types=['sleep', 'unittest'],
             worker_id='1234',
             worker_secret='jemoeder',
             loop=self.asyncio_loop,
-- 
GitLab