Skip to content
Snippets Groups Projects
Commit f9c85d8b authored by Sybren A. Stüvel's avatar Sybren A. Stüvel
Browse files

Worker: set nickname to hostname upon registration

parent 9f91ee3f
No related branches found
No related tags found
No related merge requests found
...@@ -110,11 +110,13 @@ class FlamencoWorker: ...@@ -110,11 +110,13 @@ class FlamencoWorker:
async def register_at_manager(self, *, may_retry_loop: bool): async def register_at_manager(self, *, may_retry_loop: bool):
import requests import requests
import socket
self._log.info('Registering at manager') self._log.info('Registering at manager')
self.worker_secret = generate_secret() self.worker_secret = generate_secret()
platform = detect_platform() platform = detect_platform()
hostname = socket.gethostname()
while True: while True:
try: try:
...@@ -124,6 +126,7 @@ class FlamencoWorker: ...@@ -124,6 +126,7 @@ class FlamencoWorker:
'secret': self.worker_secret, 'secret': self.worker_secret,
'platform': platform, 'platform': platform,
'supported_job_types': self.job_types, 'supported_job_types': self.job_types,
'nickname': hostname,
}, },
auth=None, # explicitly do not use authentication auth=None, # explicitly do not use authentication
loop=self.loop, loop=self.loop,
......
...@@ -61,12 +61,14 @@ class WorkerStartupTest(AbstractFWorkerTest): ...@@ -61,12 +61,14 @@ class WorkerStartupTest(AbstractFWorkerTest):
self.manager.post.assert_not_called() self.manager.post.assert_not_called()
self.tuqueue.queue.assert_not_called() self.tuqueue.queue.assert_not_called()
@unittest.mock.patch('socket.gethostname')
@unittest.mock.patch('flamenco_worker.config.merge_with_home_config') @unittest.mock.patch('flamenco_worker.config.merge_with_home_config')
def test_startup_registration(self, mock_merge_with_home_config): def test_startup_registration(self, mock_merge_with_home_config, mock_gethostname):
from flamenco_worker.worker import detect_platform from flamenco_worker.worker import detect_platform
from mock_responses import JsonResponse, CoroMock from mock_responses import JsonResponse, CoroMock
self.worker.worker_id = None self.worker.worker_id = None
mock_gethostname.return_value = 'ws-unittest'
self.manager.post = CoroMock(return_value=JsonResponse({ self.manager.post = CoroMock(return_value=JsonResponse({
'_id': '5555', '_id': '5555',
...@@ -85,19 +87,22 @@ class WorkerStartupTest(AbstractFWorkerTest): ...@@ -85,19 +87,22 @@ class WorkerStartupTest(AbstractFWorkerTest):
'platform': detect_platform(), 'platform': detect_platform(),
'supported_job_types': ['sleep', 'unittest'], 'supported_job_types': ['sleep', 'unittest'],
'secret': self.worker.worker_secret, 'secret': self.worker.worker_secret,
'nickname': 'ws-unittest',
}, },
auth=None, auth=None,
loop=self.asyncio_loop, loop=self.asyncio_loop,
) )
@unittest.mock.patch('socket.gethostname')
@unittest.mock.patch('flamenco_worker.config.merge_with_home_config') @unittest.mock.patch('flamenco_worker.config.merge_with_home_config')
def test_startup_registration_unhappy(self, mock_merge_with_home_config): def test_startup_registration_unhappy(self, mock_merge_with_home_config, mock_gethostname):
"""Test that startup is aborted when the worker can't register.""" """Test that startup is aborted when the worker can't register."""
from flamenco_worker.worker import detect_platform, UnableToRegisterError from flamenco_worker.worker import detect_platform, UnableToRegisterError
from mock_responses import JsonResponse, CoroMock from mock_responses import JsonResponse, CoroMock
self.worker.worker_id = None self.worker.worker_id = None
mock_gethostname.return_value = 'ws-unittest'
self.manager.post = CoroMock(return_value=JsonResponse({ self.manager.post = CoroMock(return_value=JsonResponse({
'_id': '5555', '_id': '5555',
...@@ -116,6 +121,7 @@ class WorkerStartupTest(AbstractFWorkerTest): ...@@ -116,6 +121,7 @@ class WorkerStartupTest(AbstractFWorkerTest):
'platform': detect_platform(), 'platform': detect_platform(),
'supported_job_types': ['sleep', 'unittest'], 'supported_job_types': ['sleep', 'unittest'],
'secret': self.worker.worker_secret, 'secret': self.worker.worker_secret,
'nickname': 'ws-unittest',
}, },
auth=None, auth=None,
loop=self.asyncio_loop, loop=self.asyncio_loop,
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment