From 3252785cd0204803288970c32220ec9f5dba06d0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20P=C3=A9ters?= Date: Mon, 7 Jun 2021 10:48:46 +0200 Subject: [PATCH] agent: look for wcs tenant in both old and new directories (#54614) --- hobo/agent/worker/services.py | 30 +++++++++++++------------- tests_multitenant/test_agent_worker.py | 2 +- 2 files changed, 16 insertions(+), 16 deletions(-) diff --git a/hobo/agent/worker/services.py b/hobo/agent/worker/services.py index b7306f7..3960f58 100644 --- a/hobo/agent/worker/services.py +++ b/hobo/agent/worker/services.py @@ -31,7 +31,7 @@ from . import settings class BaseService(object): - tenants_dir = None + tenants_dirs = None def __init__(self, base_url, title, secret_key, **kwargs): self.base_url = base_url @@ -40,9 +40,9 @@ class BaseService(object): @classmethod def get_actual_tenants(cls): - if cls.tenants_dir and os.path.exists(cls.tenants_dir): - return os.listdir(cls.tenants_dir) - return None + for tenants_dir in cls.tenants_dirs: + if os.path.exists(tenants_dir): + yield from os.listdir(tenants_dir) @classmethod def is_for_us(cls, url): @@ -91,8 +91,8 @@ class BaseService(object): def notify(cls, data): if not os.path.exists(cls.service_manage_try_cmd): return - tenants = cls.get_actual_tenants() - if tenants is not None: + tenants = list(cls.get_actual_tenants()) + if tenants: for audience in data.get('audience', []): parsed_url = urlparse.urlsplit(audience) netloc = parsed_url.netloc.split(':')[0] @@ -116,21 +116,21 @@ class Passerelle(BaseService): service_id = 'passerelle' service_manage_cmd = settings.PASSERELLE_MANAGE_COMMAND service_manage_try_cmd = settings.PASSERELLE_MANAGE_TRY_COMMAND - tenants_dir = settings.PASSERELLE_TENANTS_DIRECTORY + tenants_dirs = [settings.PASSERELLE_TENANTS_DIRECTORY] class Wcs(BaseService): service_id = 'wcs' service_manage_cmd = settings.WCS_MANAGE_COMMAND service_manage_try_cmd = settings.WCS_MANAGE_TRY_COMMAND - tenants_dir = settings.WCS_TENANTS_DIRECTORY + tenants_dirs = [settings.WCS_TENANTS_DIRECTORY, os.path.join(settings.WCS_TENANTS_DIRECTORY, 'tenants')] class Authentic(BaseService): service_id = 'authentic' service_manage_cmd = settings.AUTHENTIC_MANAGE_COMMAND service_manage_try_cmd = settings.AUTHENTIC_MANAGE_TRY_COMMAND - tenants_dir = settings.AUTHENTIC_TENANTS_DIRECTORY + tenants_dirs = [settings.AUTHENTIC_TENANTS_DIRECTORY] @classmethod def notify(cls, data): @@ -141,42 +141,42 @@ class Chrono(BaseService): service_id = 'chrono' service_manage_cmd = settings.CHRONO_MANAGE_COMMAND service_manage_try_cmd = settings.CHRONO_MANAGE_TRY_COMMAND - tenants_dir = settings.CHRONO_TENANTS_DIRECTORY + tenants_dirs = [settings.CHRONO_TENANTS_DIRECTORY] class Combo(BaseService): service_id = 'combo' service_manage_cmd = settings.COMBO_MANAGE_COMMAND service_manage_try_cmd = settings.COMBO_MANAGE_TRY_COMMAND - tenants_dir = settings.COMBO_TENANTS_DIRECTORY + tenants_dirs = [settings.COMBO_TENANTS_DIRECTORY] class Fargo(BaseService): service_id = 'fargo' service_manage_cmd = settings.FARGO_MANAGE_COMMAND service_manage_try_cmd = settings.FARGO_MANAGE_TRY_COMMAND - tenants_dir = settings.FARGO_TENANTS_DIRECTORY + tenants_dirs = [settings.FARGO_TENANTS_DIRECTORY] class Hobo(BaseService): service_id = 'hobo' service_manage_cmd = settings.HOBO_MANAGE_COMMAND service_manage_try_cmd = settings.HOBO_MANAGE_TRY_COMMAND - tenants_dir = settings.HOBO_TENANTS_DIRECTORY + tenants_dirs = [settings.HOBO_TENANTS_DIRECTORY] class Welco(BaseService): service_id = 'welco' service_manage_cmd = settings.WELCO_MANAGE_COMMAND service_manage_try_cmd = settings.WELCO_MANAGE_TRY_COMMAND - tenants_dir = settings.WELCO_TENANTS_DIRECTORY + tenants_dirs = [settings.WELCO_TENANTS_DIRECTORY] class BiJoe(BaseService): service_id = 'bijoe' service_manage_cmd = settings.BIJOE_MANAGE_COMMAND service_manage_try_cmd = settings.BIJOE_MANAGE_TRY_COMMAND - tenants_dir = settings.BIJOE_TENANTS_DIRECTORY + tenants_dirs = [settings.BIJOE_TENANTS_DIRECTORY] def deploy(environment): diff --git a/tests_multitenant/test_agent_worker.py b/tests_multitenant/test_agent_worker.py index 600dc93..5379f08 100644 --- a/tests_multitenant/test_agent_worker.py +++ b/tests_multitenant/test_agent_worker.py @@ -137,7 +137,7 @@ def test_deploy_host_with_agent_patterns(mocked_subprocess, mocked_exists, local @mock.patch('hobo.agent.worker.services.subprocess') def test_notify(mocked_subprocess, mocked_listdir, mocked_exists): def listdir(path): - return '%s.dev.publik.love' % path.split('/')[3] + return ['%s.dev.publik.love' % path.split('/')[3]] mocked_listdir.side_effect = listdir mocked_communicate = mock.Mock(return_value=('', ''))