general: add support for lingo (#65372)
gitea-wip/hobo/pipeline/head There was a failure building this commit Details
gitea/hobo/pipeline/head Something is wrong with the build of this commit Details

This commit is contained in:
Frédéric Péters 2022-05-17 22:52:47 +02:00
parent 5e55e3cda7
commit 8da569728c
8 changed files with 97 additions and 3 deletions

View File

@ -24,6 +24,7 @@ PASSERELLE_MANAGE_COMMAND = 'sudo -u passerelle /usr/bin/passerelle-manage'
FARGO_MANAGE_COMMAND = 'sudo -u fargo /usr/bin/fargo-manage'
WELCO_MANAGE_COMMAND = 'sudo -u welco /usr/bin/welco-manage'
CHRONO_MANAGE_COMMAND = 'sudo -u chrono /usr/bin/chrono-manage'
LINGO_MANAGE_COMMAND = 'sudo -u lingo /usr/bin/lingo-manage'
BIJOE_MANAGE_COMMAND = 'sudo -u bijoe /usr/bin/bijoe-manage'
HOBO_MANAGE_COMMAND = 'sudo -u hobo /usr/bin/hobo-manage'

View File

@ -165,6 +165,13 @@ class Hobo(BaseService):
tenants_dirs = [settings.HOBO_TENANTS_DIRECTORY]
class Lingo(BaseService):
service_id = 'lingo'
service_manage_cmd = settings.LINGO_MANAGE_COMMAND
service_manage_try_cmd = settings.LINGO_MANAGE_TRY_COMMAND
tenants_dirs = [settings.LINGO_TENANTS_DIRECTORY]
class Welco(BaseService):
service_id = 'welco'
service_manage_cmd = settings.WELCO_MANAGE_COMMAND

View File

@ -24,6 +24,7 @@ PASSERELLE_MANAGE_COMMAND = '/usr/lib/passerelle/manage.py'
FARGO_MANAGE_COMMAND = '/usr/bin/fargo-manage'
WELCO_MANAGE_COMMAND = '/usr/bin/welco-manage'
CHRONO_MANAGE_COMMAND = '/usr/bin/chrono-manage'
LINGO_MANAGE_COMMAND = '/usr/bin/lingo-manage'
HOBO_MANAGE_COMMAND = '/usr/bin/hobo-manage'
BIJOE_MANAGE_COMMAND = '/usr/bin/bijoe-manage'
@ -33,6 +34,7 @@ COMBO_MANAGE_TRY_COMMAND = COMBO_MANAGE_COMMAND
PASSERELLE_MANAGE_TRY_COMMAND = PASSERELLE_MANAGE_COMMAND
FARGO_MANAGE_TRY_COMMAND = FARGO_MANAGE_COMMAND
CHRONO_MANAGE_TRY_COMMAND = CHRONO_MANAGE_COMMAND
LINGO_MANAGE_TRY_COMMAND = LINGO_MANAGE_COMMAND
WELCO_MANAGE_TRY_COMMAND = WELCO_MANAGE_COMMAND
HOBO_MANAGE_TRY_COMMAND = HOBO_MANAGE_COMMAND
BIJOE_MANAGE_TRY_COMMAND = BIJOE_MANAGE_COMMAND
@ -43,6 +45,7 @@ AUTHENTIC_TENANTS_DIRECTORY = '/var/lib/authentic2-multitenant/tenants'
CHRONO_TENANTS_DIRECTORY = '/var/lib/chrono/tenants'
COMBO_TENANTS_DIRECTORY = '/var/lib/combo/tenants'
FARGO_TENANTS_DIRECTORY = '/var/lib/fargo/tenants'
LINGO_TENANTS_DIRECTORY = '/var/lib/lingo/tenants'
WELCO_TENANTS_DIRECTORY = '/var/lib/welco/tenants'
BIJOE_TENANTS_DIRECTORY = '/var/lib/bijoe/tenants'
HOBO_TENANTS_DIRECTORY = '/var/lib/hobo/tenants'

View File

@ -21,7 +21,7 @@ from django.http import HttpResponseRedirect
from django.template.defaultfilters import slugify
from django.utils.translation import ugettext_lazy as _
from .models import Authentic, BiJoe, Chrono, Combo, Fargo, Hobo, Passerelle, Variable, Wcs, Welco
from .models import Authentic, BiJoe, Chrono, Combo, Fargo, Hobo, Lingo, Passerelle, Variable, Wcs, Welco
from .utils import get_variable
from .validators import validate_service_url
@ -141,6 +141,12 @@ class ChronoForm(BaseForm):
exclude = EXCLUDED_FIELDS
class LingoForm(BaseForm):
class Meta:
model = Lingo
exclude = EXCLUDED_FIELDS
class BiJoeForm(BaseForm):
class Meta:
model = BiJoe

View File

@ -42,6 +42,7 @@ from hobo.environment.models import (
Combo,
Fargo,
Hobo,
Lingo,
Passerelle,
Variable,
Wcs,
@ -236,6 +237,9 @@ class Command(BaseCommand):
def create_chrono(self, url, title, slug=None, template_name='', variables=None, **kwargs):
return self.create_site(Chrono, url, title, slug, template_name, variables)
def create_lingo(self, url, title, slug=None, template_name='', variables=None, **kwargs):
return self.create_site(Lingo, url, title, slug, template_name, variables)
def create_bijoe(self, url, title, slug=None, template_name='', variables=None, **kwargs):
return self.create_site(BiJoe, url, title, slug, template_name, variables)

View File

@ -0,0 +1,49 @@
# Generated by Django 3.2.13 on 2022-05-17 21:02
import django.contrib.postgres.fields.jsonb
import django.core.validators
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('environment', '0025_legacy_urls'),
]
operations = [
migrations.CreateModel(
name='Lingo',
fields=[
(
'id',
models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'),
),
('title', models.CharField(max_length=50, verbose_name='Title')),
('slug', models.SlugField(verbose_name='Slug')),
(
'base_url',
models.CharField(
max_length=200,
validators=[django.core.validators.URLValidator()],
verbose_name='Base URL',
),
),
(
'legacy_urls',
django.contrib.postgres.fields.jsonb.JSONField(blank=True, default=list, null=True),
),
('secret_key', models.CharField(max_length=60, verbose_name='Secret Key')),
('template_name', models.CharField(blank=True, max_length=60, verbose_name='Template')),
('secondary', models.BooleanField(default=False, verbose_name='Secondary Service')),
('last_operational_check_timestamp', models.DateTimeField(null=True)),
('last_operational_success_timestamp', models.DateTimeField(null=True)),
('last_update_timestamp', models.DateTimeField(auto_now=True, null=True)),
],
options={
'verbose_name': 'Lingo Billing and Payment',
'verbose_name_plural': 'Lingo Billing and Payment',
'ordering': ['title'],
},
),
]

View File

@ -523,4 +523,25 @@ class BiJoe(ServiceBase):
return self.get_base_url_path() + 'manage/menu.json'
AVAILABLE_SERVICES = [Authentic, Wcs, Passerelle, Combo, Fargo, Welco, Chrono, BiJoe, Hobo]
class Lingo(ServiceBase):
class Meta:
verbose_name = _('Lingo Billing and Payment')
verbose_name_plural = _('Lingo Billing and Payment')
ordering = ['title']
class Extra:
service_id = 'lingo'
service_label = _('Lingo')
service_default_slug = 'payment'
def get_admin_zones(self):
return [Zone(self.title, 'bankcard', self.get_base_url_path())]
def get_saml_sp_metadata_url(self):
return self.get_base_url_path() + 'accounts/mellon/metadata/'
def get_backoffice_menu_url(self):
return self.get_base_url_path() + 'manage/menu.json'
AVAILABLE_SERVICES = [Authentic, Wcs, Passerelle, Combo, Fargo, Welco, Chrono, BiJoe, Hobo, Lingo]

View File

@ -16,6 +16,7 @@ from hobo.environment.models import (
Combo,
Fargo,
Hobo,
Lingo,
Passerelle,
ServiceBase,
Variable,
@ -374,8 +375,9 @@ def test_create_services():
command.create_welco('url', 'title')
command.create_chrono('url', 'title')
command.create_bijoe('url', 'title')
command.create_lingo('url', 'title')
assert len(command.create_site.mock_calls) == 8
assert len(command.create_site.mock_calls) == 9
assert command.create_site.mock_calls == [
call(Authentic, 'url', 'title', None, '', None),
call(Combo, 'url', 'title', None, '', None),
@ -385,6 +387,7 @@ def test_create_services():
call(Welco, 'url', 'title', None, '', None),
call(Chrono, 'url', 'title', None, '', None),
call(BiJoe, 'url', 'title', None, '', None),
call(Lingo, 'url', 'title', None, '', None),
]