agent: look for wcs tenant in both old and new directories (#54614)

This commit is contained in:
Frédéric Péters 2021-06-07 10:48:46 +02:00
parent 0f8fe28274
commit 3252785cd0
2 changed files with 16 additions and 16 deletions

View File

@ -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):

View File

@ -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=('', ''))