Pass software name + version in a User-Agent HTTP header
This header is included with each request, so that the Manager can handle software version bookkeeping however it sees fit.
This commit is contained in:
@@ -0,0 +1 @@
|
||||
__version__ = '2.0-beta10-worker3'
|
||||
|
||||
@@ -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(
|
||||
|
||||
@@ -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,
|
||||
|
||||
2
setup.py
2
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',
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user