diff --git a/flamenco_worker/__init__.py b/flamenco_worker/__init__.py index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..57d34b898c88fc2ab9869a0c75f6806f9bfc7106 100644 --- a/flamenco_worker/__init__.py +++ b/flamenco_worker/__init__.py @@ -0,0 +1 @@ +__version__ = '2.0-beta10-worker3' diff --git a/flamenco_worker/cli.py b/flamenco_worker/cli.py index 465b98e154edcbb7a5178964505fbd84ae5c67a8..731a8458975cfcfe3cfe76f413192ed816a72a4a 100644 --- a/flamenco_worker/cli.py +++ b/flamenco_worker/cli.py @@ -37,10 +37,11 @@ def main(): shutdown_future = loop.create_future() # Piece all the components together. - from . import runner, worker, upstream, upstream_update_queue, may_i_run + from . import runner, worker, upstream, upstream_update_queue, may_i_run, __version__ fmanager = upstream.FlamencoManager( manager_url=confparser.value('manager_url'), + flamenco_worker_version=__version__, ) tuqueue = upstream_update_queue.TaskUpdateQueue( diff --git a/flamenco_worker/upstream.py b/flamenco_worker/upstream.py index 4c19b4c5d20374dd91bd6b1cdc0839fdeb32e0a7..9759257327b56df420ed6608b60012d889bc9858 100644 --- a/flamenco_worker/upstream.py +++ b/flamenco_worker/upstream.py @@ -1,5 +1,6 @@ import attr import concurrent.futures +import functools import requests from . import attrs_extra @@ -11,6 +12,7 @@ HTTP_TIMEOUT = 3 # in seconds @attr.s class FlamencoManager: manager_url = attr.ib(validator=attr.validators.instance_of(str)) + flamenco_worker_version = attr.ib(validator=attr.validators.instance_of(str)) session = attr.ib(default=None, init=False) auth = attr.ib(default=None, init=False) # tuple (worker_id, worker_secret) @@ -34,6 +36,10 @@ class FlamencoManager: async def patch(self, *args, loop, **kwargs) -> requests.Response: return await self.client_request('PATCH', *args, loop=loop, **kwargs) + @functools.lru_cache(1) + def user_agent(self): + return 'Flamenco-Worker %s' % self.flamenco_worker_version + async def client_request(self, method, url, *, params=None, data=None, @@ -75,6 +81,10 @@ class FlamencoManager: else: self._log.debug('%s %s with JSON: %s', method, abs_url, json) + if headers is None: + headers = {} + headers['User-Agent'] = self.user_agent() + http_req = partial(self.session.request, method, abs_url, params=params, diff --git a/setup.py b/setup.py index 9f253f9a22975eb5debec23cb9b43c46601bb96d..dfffd3d9fe511cf4cbaa3c62996a7c387db7caf0 100755 --- a/setup.py +++ b/setup.py @@ -5,7 +5,7 @@ import setuptools if __name__ == '__main__': setuptools.setup( name='flamenco-worker', - version='2.0.0-beta10-worker3', + version='2.0-beta10-worker3', description='Flamenco Worker implementation', author='Sybren A. Stüvel', author_email='sybren@blender.studio', diff --git a/update_version.sh b/update_version.sh index 9c4b2b5348933c25ba19d8f241631e9e1fa78a28..21180780b305257bf88c21fb1d84ef3f4584bfb6 100755 --- a/update_version.sh +++ b/update_version.sh @@ -6,6 +6,7 @@ if [ -z "$1" ]; then fi sed "s/version='[^']*'/version='$1'/" -i setup.py +sed "s/__version__\s*=\s*'[^']*'/__version__ = '$1'/" -i flamenco_worker/__init__.py git diff echo