load-pratic-ldif: report validation errors
This commit is contained in:
parent
08703e196d
commit
20200c0216
|
@ -1,3 +1,4 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
import logging
|
||||
from optparse import make_option
|
||||
from datetime import datetime
|
||||
|
@ -6,6 +7,7 @@ from itertools import chain
|
|||
import ldif
|
||||
|
||||
from django.core.management.base import BaseCommand
|
||||
from django.core.exceptions import ValidationError
|
||||
from django.db import transaction
|
||||
from django.utils.timezone import get_default_timezone, make_aware
|
||||
|
||||
|
@ -19,6 +21,8 @@ from authentic2_pratic.models import (Service, Collectivity, ServiceInstance,
|
|||
class PraticLDIFParser(ldif.LDIFParser):
|
||||
def __init__(self, *args, **kwargs):
|
||||
self.services = {}
|
||||
for s in Service.objects.all():
|
||||
self.services[s.slug] = s
|
||||
self.service_instances = {}
|
||||
for si in ServiceInstance.objects.all():
|
||||
self.service_instances[(si.collectivity.slug, si.slug)] = si
|
||||
|
@ -90,7 +94,11 @@ class PraticLDIFParser(ldif.LDIFParser):
|
|||
}
|
||||
others = self.resolve_mapping(mapping, entry)
|
||||
collectivity = Collectivity(name=name, slug=slug, **others)
|
||||
collectivity.clean()
|
||||
try:
|
||||
collectivity.clean()
|
||||
except ValidationError, e:
|
||||
print 'Impossible de charger la collectivité', dn, ':', e
|
||||
raise SystemExit
|
||||
self.collectivities[dn] = collectivity
|
||||
|
||||
def handle_service(self, dn, entry):
|
||||
|
@ -120,7 +128,11 @@ class PraticLDIFParser(ldif.LDIFParser):
|
|||
is_global=is_global,
|
||||
service_url=service_url,
|
||||
metadata_url=metadata_url)
|
||||
service.clean()
|
||||
try:
|
||||
service.clean()
|
||||
except ValidationError, e:
|
||||
print 'Impossible de charger le service', dn, ':', e
|
||||
raise SystemExit
|
||||
self.services[slug] = service
|
||||
|
||||
def handle_service_instance(self, dn, entry):
|
||||
|
@ -140,7 +152,11 @@ class PraticLDIFParser(ldif.LDIFParser):
|
|||
collectivity=collectivity,
|
||||
service=service,
|
||||
**others)
|
||||
service_instance.clean()
|
||||
try:
|
||||
service_instance.clean()
|
||||
except ValidationError, e:
|
||||
print 'Impossible de charger l\'instance de service', dn, ':', e
|
||||
raise SystemExit
|
||||
return service_instance
|
||||
self.service_instances[(collectivity.slug, others['slug'])] = resolve
|
||||
|
||||
|
|
Reference in New Issue