matomo: manage secondary instances (#37576)

This commit is contained in:
Nicolas Roche 2019-11-12 20:49:22 +01:00
parent b6237a23df
commit dc55cfa090
2 changed files with 92 additions and 3 deletions

View File

@ -89,11 +89,12 @@ def put_tracking_js(tracking_js):
def get_tenant_name_and_public_urls():
"""get an alias for our matomo's id and urls to monitor"""
tenant_name = None
services = [x for x in Combo.objects.all() if 'portal-user' in x.template_name]
services = [x for x in Combo.objects.all()
if 'portal-user' in x.template_name and not x.secondary]
if services != [] and services[0] != '':
tenant_name = urlparse.urlparse(services[0].base_url).netloc
services += [x for x in Wcs.objects.all()]
services += [x for x in Fargo.objects.all()]
services += [x for x in Wcs.objects.all() if not x.secondary]
services += [x for x in Fargo.objects.all() if not x.secondary]
site_urls = [x.base_url for x in services if x.base_url != '']
return tenant_name, site_urls

View File

@ -230,6 +230,94 @@ def test_get_tenant_name_and_public_urls():
'https://wcs.dev.publik.love/',
'https://fargo.dev.publik.love/']
def test_get_tenant_name_and_public_urls_on_primary():
Hobo.objects.create(base_url='https://hobo.ville1.love',
slug='hobo-ville1')
Hobo.objects.create(base_url='https://hobo.ville2.love',
slug='hobo-ville2')
Combo.objects.create(base_url='https://combo.agglo.love',
template_name='...portal-user...',
slug='portal')
Combo.objects.create(base_url='https://combo.ville1.love',
template_name='...portal-user...',
slug='_hobo-ville1_portal',
secondary=True)
Combo.objects.create(base_url='https://combo.ville2.love',
template_name='...portal-user...',
slug='_hobo-ville2_portal',
secondary=True)
Combo.objects.create(base_url='https://agent-combo.agglo.love',
template_name='...portal-agent...',
slug='portal-agent')
Combo.objects.create(base_url='https://agent-combo.ville1.love',
template_name='...portal-agent...',
slug='_hobo-ville1_portal-agent',
secondary=True)
Combo.objects.create(base_url='https://agent-combo.ville2.love',
template_name='...portal-agent...',
slug='_hobo-ville2_portal-agent',
secondary=True)
Wcs.objects.create(base_url='https://wcs.agglo.love',
slug='eservices')
Wcs.objects.create(base_url='https://wcs.ville1.love',
slug='_hobo-ville1_eservices',
secondary=True)
Wcs.objects.create(base_url='https://wcs.ville2.love',
slug='_hobo-ville2_eservices',
secondary=True)
Fargo.objects.create(base_url='https://fargo.agglo.love',
slug='porte-doc')
Fargo.objects.create(base_url='https://fargo.ville1.love',
slug='_hobo-ville1_porte-doc',
secondary=True)
Fargo.objects.create(base_url='https://fargo.ville2.love',
slug='_hobo-ville2_porte-doc',
secondary=True)
tenant_name, site_urls = get_tenant_name_and_public_urls()
assert tenant_name == 'combo.agglo.love'
assert site_urls == ['https://combo.agglo.love/',
'https://wcs.agglo.love/',
'https://fargo.agglo.love/']
def test_get_tenant_name_and_public_urls_on_secondary():
Hobo.objects.create(base_url='https://hobo.agglo.love',
slug='_interco_hobo')
Hobo.objects.create(base_url='https://hobo.ville1.love',
slug='_interco_hobo-ville1')
Hobo.objects.create(base_url='https://hobo.ville2.love',
slug='_interco_hobo-ville2')
Combo.objects.create(base_url='https://combo.agglo.love',
template_name='...portal-user...',
slug='_interco_portal',
secondary=True)
Combo.objects.create(base_url='https://combo.ville2.love',
template_name='...portal-user...',
slug='portal')
Combo.objects.create(base_url='https://agent-combo.agglo.love',
template_name='...portal-agent...',
slug='_interco_portal-agent',
secondary=True)
Combo.objects.create(base_url='https://agent-combo.ville2.love',
template_name='...portal-agent...',
slug='portal-agent')
Wcs.objects.create(base_url='https://wcs.agglo.love',
slug='_interco_eservices',
secondary=True)
Wcs.objects.create(base_url='https://wcs.ville2.love',
slug='eservices')
Fargo.objects.create(base_url='https://fargo.agglo.love',
slug='_interco_porte-doc',
secondary=True)
Fargo.objects.create(base_url='https://fargo.ville2.love',
slug='porte-doc')
tenant_name, site_urls = get_tenant_name_and_public_urls()
assert tenant_name == 'combo.ville2.love'
assert site_urls == ['https://combo.ville2.love/',
'https://wcs.ville2.love/',
'https://fargo.ville2.love/']
def test_matomo_constructor():
"""build the matomo webservice object"""
with override_settings(MATOMO_SERVER=CONFIG):