Bug 53564 - Don't log catched exception traces in ucs-school-importer
Don't log catched exception traces in ucs-school-importer
Status: NEW
Product: UCS@school
Classification: Unclassified
Component: Import scripts
UCS@school 4.4
Other Linux
: P5 normal (vote)
: ---
Assigned To: UCS@school maintainers
:
Depends on:
Blocks:
  Show dependency treegraph
 
Reported: 2021-07-12 12:03 CEST by Florian Best
Modified: 2021-08-30 17:34 CEST (History)
0 users

See Also:
What kind of report is it?: Development Internal
What type of bug is this?: ---
Who will be affected by this bug?: ---
How will those affected feel about the bug?: ---
User Pain:
Enterprise Customer affected?:
School Customer affected?:
ISV affected?:
Waiting Support:
Flags outvoted (downgraded) after PO Review:
Ticket number:
Bug group (optional):
Max CVSS v3 score:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Florian Best univentionstaff 2021-07-12 12:03:13 CEST
The following exception stack traces are logged during every Jenkins-Test run of UCS@school.
The exceptions seems to be caught but logged nevertheless.
→ We should not write them to log files if they are handled correctly but log only a WARN or ERROR message.

Traceback (most recent call last):
  File "/usr/lib/python2.7/dist-packages/ucsschool/importer/mass_import/user_import.py", line 117, in read_input
    import_user = self.reader.next()
  File "/usr/lib/python2.7/dist-packages/ucsschool/importer/reader/base_reader.py", line 89, in next
    input_dict = self.import_users.next()
  File "/usr/lib/python2.7/dist-packages/ucsschool/importer/reader/csv_reader.py", line 191, in read
    missing_columns, self.fieldnames
ConfigurationError: Columns configured in csv:mapping missing: [u'bkcgimsaxp']. Header found: ['E-Mail', 'Gruppen', 'Vor', 'role', 'Beschreibung', 'OUs', 'Benutzername', 'recordUID', 'Nach']
ConfigurationError: Columns configured in csv:mapping missing: [u'Grundschulen']. Header found: ['Gruppen', 'Nach', 'role', 'E-Mail', 'Benutzername', 'recordUID', 'Vor', 'OUs', 'Beschreibung']
ConfigurationError: Columns configured in csv:mapping missing: [u'fsseqe214c']. Header found: ['E-Mail', 'Benutzername', 'recordUID', 'Beschreibung', 'Vor', 'OUs', 'Gruppen', 'Nach', 'role']
ConfigurationError: Columns configured in csv:mapping missing: [u'pnfz3j7e4f']. Header found: ['Benutzername', 'Nach', 'E-Mail', 'Vor', 'OUs', 'Gruppen', 'Beschreibung', 'recordUID', 'role']

Traceback (most recent call last):
  File "/usr/lib/python2.7/dist-packages/ucsschool/importer/frontend/cmdline.py", line 247, in main
    self.do_import()
  File "/usr/lib/python2.7/dist-packages/ucsschool/importer/frontend/cmdline.py", line 170, in do_import
    six.reraise(etype, exc, etraceback)
  File "/usr/lib/python2.7/dist-packages/ucsschool/importer/frontend/cmdline.py", line 156, in do_import
    importer.mass_import()
  File "/usr/lib/python2.7/dist-packages/ucsschool/importer/mass_import/mass_import.py", line 91, in mass_import
    self.import_users()
  File "/usr/lib/python2.7/dist-packages/ucsschool/importer/mass_import/mass_import.py", line 148, in import_users
    raise exc
Exception: Empty user.input_data.

Traceback (most recent call last):
  File "/usr/lib/python2.7/dist-packages/ucsschool/importer/mass_import/user_import.py", line 225, in create_and_modify_users
    success = user.modify(lo=self.connection)
  File "/usr/lib/python2.7/dist-packages/ucsschool/importer/models/import_user.py", line 1061, in modify
    res = super(ImportUser, self).modify(lo, validate, move_if_necessary)
  File "/usr/lib/python2.7/dist-packages/ucsschool/lib/models/base.py", line 674, in modify
    success = self.modify_without_hooks(lo, validate, move_if_necessary)
  File "/usr/lib/python2.7/dist-packages/ucsschool/importer/models/import_user.py", line 1097, in modify_without_hooks
    return super(ImportUser, self).modify_without_hooks(lo, validate, move_if_necessary)
  File "/usr/lib/python2.7/dist-packages/ucsschool/lib/models/base.py", line 689, in modify_without_hooks
    self.validate(lo, validate_unlikely_changes=True)
  File "/usr/lib/python2.7/dist-packages/ucsschool/importer/models/import_user.py", line 1306, in validate
    import_user=self,
InvalidBirthday: Birthday has invalid format: '1908-0706' error: time data '1908-0706' does not match format '%Y-%m-%d'.

Traceback (most recent call last):
  File "/usr/lib/python2.7/dist-packages/ucsschool/importer/mass_import/mass_import.py", line 124, in import_users
    user_import.delete_users(users_to_delete)  # 0% - 10%
  File "/usr/lib/python2.7/dist-packages/ucsschool/importer/mass_import/user_import.py", line 480, in delete_users
    success = self.do_delete(user)
  File "/usr/lib/python2.7/dist-packages/ucsschool/importer/mass_import/user_import.py", line 581, in do_delete
    success = self.delete_user_now(user)
  File "/usr/lib/python2.7/dist-packages/ucsschool/importer/mass_import/user_import.py", line 654, in delete_user_now
    return user.remove(self.connection)
  File "/usr/lib/python2.7/dist-packages/ucsschool/importer/models/import_user.py", line 1158, in remove
    return super(ImportUser, self).remove(lo)
  File "/usr/lib/python2.7/dist-packages/ucsschool/lib/models/base.py", line 816, in remove
    self.call_hooks("pre", "remove", lo)
  File "/usr/lib/python2.7/dist-packages/ucsschool/importer/models/import_user.py", line 277, in call_hooks
    func(self)
  File "/usr/share/ucs-school-import/pyhooks/test228_input_data_pyhook.py", line 14, in pre_remove
    raise Exception('Empty user.input_data.')
Exception: Empty user.input_data.

Traceback (most recent call last):
  File "/usr/lib/python2.7/dist-packages/ucsschool/importer/mass_import/mass_import.py", line 125, in import_users
    user_import.create_and_modify_users(imported_users)  # 90% - 100%
  File "/usr/lib/python2.7/dist-packages/ucsschool/importer/mass_import/user_import.py", line 276, in create_and_modify_users
    self._add_error(exc)
  File "/usr/lib/python2.7/dist-packages/ucsschool/importer/mass_import/user_import.py", line 781, in _add_error
    "More than {} errors.".format(self.config["tolerate_errors"]), self.errors
TooManyErrors: More than 0 errors.

Traceback (most recent call last):
  File "/usr/lib/python2.7/dist-packages/ucsschool/importer/mass_import/user_import.py", line 210, in create_and_modify_users
    success = user.create(lo=self.connection)
  File "/usr/lib/python2.7/dist-packages/ucsschool/importer/models/import_user.py", line 398, in create
    res = super(ImportUser, self).create(lo, validate)
  File "/usr/lib/python2.7/dist-packages/ucsschool/lib/models/base.py", line 608, in create
    success = self.create_without_hooks(lo, validate)
  File "/usr/lib/python2.7/dist-packages/ucsschool/lib/models/base.py", line 621, in create_without_hooks
    self.validate(lo)
  File "/usr/lib/python2.7/dist-packages/ucsschool/importer/models/import_user.py", line 1306, in validate
    import_user=self,
InvalidBirthday: Birthday has invalid format: '190706-05' error: time data '190706-05' does not match format '%Y-%m-%d'.

Traceback (most recent call last):
  File "/usr/lib/python2.7/dist-packages/ucsschool/importer/mass_import/mass_import.py", line 122, in import_users
    imported_users = user_import.read_input()
  File "/usr/lib/python2.7/dist-packages/ucsschool/importer/mass_import/user_import.py", line 125, in read_input
    self._add_error(exc)
  File "/usr/lib/python2.7/dist-packages/ucsschool/importer/mass_import/user_import.py", line 781, in _add_error
    "More than {} errors.".format(self.config["tolerate_errors"]), self.errors
TooManyErrors: More than 0 errors.

Traceback (most recent call last):
  File "/usr/lib/python2.7/dist-packages/ucsschool/importer/mass_import/user_import.py", line 210, in create_and_modify_users
    success = user.create(lo=self.connection)
  File "/usr/lib/python2.7/dist-packages/ucsschool/importer/models/import_user.py", line 398, in create
    res = super(ImportUser, self).create(lo, validate)
  File "/usr/lib/python2.7/dist-packages/ucsschool/lib/models/base.py", line 607, in create
    self.call_hooks("pre", "create", lo)
  File "/usr/lib/python2.7/dist-packages/ucsschool/importer/models/import_user.py", line 277, in call_hooks
    func(self)
  File "/usr/share/ucs-school-import/pyhooks/test236_skip_exception.py", line 15, in pre_create
    import_user=user
UcsSchoolImportSkipImportRecord: Skipping user u'Mundum2t7j' with firstname starting with "m"
UcsSchoolImportSkipImportRecord: Skipping user u'M0lni920lr' with firstname starting with "m"
UcsSchoolImportSkipImportRecord: Skipping user u'Mk8vs453kb' with firstname starting with "m"
UcsSchoolImportSkipImportRecord: Skipping user u'My888ye5qu' with firstname starting with "m"

Traceback (most recent call last):
  File "/usr/lib/python2.7/dist-packages/ucsschool/importer/mass_import/user_import.py", line 168, in create_and_modify_users
    user = self.determine_add_modify_action(imported_user)
  File "/usr/lib/python2.7/dist-packages/ucsschool/importer/mass_import/user_import.py", line 361, in determine_add_modify_action
    user = self.school_move(imported_user, user)
  File "/usr/lib/python2.7/dist-packages/ucsschool/importer/mass_import/user_import.py", line 514, in school_move
    user = self.do_school_move(imported_user, user)
  File "/usr/lib/python2.7/dist-packages/ucsschool/importer/mass_import/user_import.py", line 552, in do_school_move
    import_user=imported_user,
MoveError: Error moving ImportTeachersAndStaff(name=u'to7yfstk5y', school='NoSchool', dn=u'uid=to7yfstk5y,cn=lehrer und mitarbeiter,cn=users,ou=NoSchool,dc=autotest201,dc=local', old_dn=u'uid=to7yfstk5y,cn=lehrer und mitarbeiter,cn=users,ou=testou4210,dc=autotest201,dc=local') from school 'NoSchool' to 'testou2512'.
MoveError: Error moving ImportStudent(name=u'uovcao3ygr', school='NoSchool', dn=u'uid=uovcao3ygr,cn=schueler,cn=users,ou=NoSchool,dc=autotest201,dc=local', old_dn=u'uid=uovcao3ygr,cn=schueler,cn=users,ou=testou6679,dc=autotest201,dc=local') from school 'NoSchool' to 'testou6384'.
MoveError: Error moving ImportTeachersAndStaff(name=u'opiknrskxz', school='NoSchool', dn=u'uid=opiknrskxz,cn=lehrer und mitarbeiter,cn=users,ou=NoSchool,dc=autotest201,dc=local', old_dn=u'uid=opiknrskxz,cn=lehrer und mitarbeiter,cn=users,ou=testou4089,dc=autotest201,dc=local') from school 'NoSchool' to 'testou8493'.
MoveError: Error moving ImportTeacher(name=u'uuyimz06ix', school='NoSchool', dn=u'uid=uuyimz06ix,cn=lehrer,cn=users,ou=NoSchool,dc=autotest201,dc=local', old_dn=u'uid=uuyimz06ix,cn=lehrer,cn=users,ou=testou3949,dc=autotest201,dc=local') from school 'NoSchool' to 'testou4204'.
Comment 1 Florian Best univentionstaff 2021-08-16 14:53:00 CEST
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/ucsschool/importer/frontend/cmdline.py", line 246, in main
    self.prepare_import()
  File "/usr/lib/python3/dist-packages/ucsschool/importer/frontend/cmdline.py", line 200, in prepare_import
    self.setup_config()
  File "/usr/lib/python3/dist-packages/ucsschool/importer/frontend/cmdline.py", line 132, in setup_config
    raise exc 
  File "/usr/lib/python3/dist-packages/ucsschool/importer/frontend/cmdline.py", line 122, in setup_config
    self.config = setup_configuration(configs, **self.args.settings)
  File "/usr/lib/python3/dist-packages/ucsschool/importer/configuration.py", line 69, in setup_configuration
    run_configuration_checks(config)
  File "/usr/lib/python3/dist-packages/ucsschool/importer/utils/configuration_checks.py", line 128, in run_configuration_checks
    method()
  File "/usr/share/ucs-school-import/checks/defaults.py", line 104, in test_username_max_length
    role, username_max_length, int(ucr_username_max_length)
ucsschool.importer.exceptions.InitialisationError: Configuration value of username:max_length:default is 21, but must not be higher than UCR variable ucsschool/username/max_length (20).
ucsschool.importer.exceptions.InitialisationError: Configuration value of username:max_length:default is 26, but must not be higher than UCR variable ucsschool/username/max_length (20).

Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/ucsschool/importer/frontend/cmdline.py", line 246, in main
    self.prepare_import()
  File "/usr/lib/python3/dist-packages/ucsschool/importer/frontend/cmdline.py", line 200, in prepare_import
    self.setup_config()
  File "/usr/lib/python3/dist-packages/ucsschool/importer/frontend/cmdline.py", line 132, in setup_config
    raise exc
  File "/usr/lib/python3/dist-packages/ucsschool/importer/frontend/cmdline.py", line 122, in setup_config
    self.config = setup_configuration(configs, **self.args.settings)
  File "/usr/lib/python3/dist-packages/ucsschool/importer/configuration.py", line 69, in setup_configuration
    run_configuration_checks(config)
  File "/usr/lib/python3/dist-packages/ucsschool/importer/utils/configuration_checks.py", line 128, in run_configuration_checks                                                                                                               
    method()
  File "/usr/share/ucs-school-import/checks/defaults.py", line 76, in test_deprecated_user_deletion
    "The 'user_deletion' configuration key is deprecated. Please set "
ucsschool.importer.exceptions.InitialisationError: The 'user_deletion' configuration key is deprecated. Please set 'deletion_grace_period'. 

Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/ucsschool/importer/frontend/cmdline.py", line 246, in main
    self.prepare_import()
  File "/usr/lib/python3/dist-packages/ucsschool/importer/frontend/cmdline.py", line 200, in prepare_import
    self.setup_config()
  File "/usr/lib/python3/dist-packages/ucsschool/importer/frontend/cmdline.py", line 132, in setup_config
    raise exc
  File "/usr/lib/python3/dist-packages/ucsschool/importer/frontend/cmdline.py", line 122, in setup_config
    self.config = setup_configuration(configs, **self.args.settings)
  File "/usr/lib/python3/dist-packages/ucsschool/importer/configuration.py", line 69, in setup_configuration
    run_configuration_checks(config)
  File "/usr/lib/python3/dist-packages/ucsschool/importer/utils/configuration_checks.py", line 128, in run_configuration_checks                                                                                                               
    method()
  File "/usr/share/ucs-school-import/checks/test238_custom_conf_check.py", line 9, in test_forbidden_birthday
    raise InitialisationError('Thou shalt not import birthdays!')
ucsschool.importer.exceptions.InitialisationError: Thou shalt not import birthdays!

Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/ucsschool/importer/frontend/cmdline.py", line 246, in main
    self.prepare_import()
  File "/usr/lib/python3/dist-packages/ucsschool/importer/frontend/cmdline.py", line 200, in prepare_import
    self.setup_config()
  File "/usr/lib/python3/dist-packages/ucsschool/importer/frontend/cmdline.py", line 132, in setup_config
    raise exc
  File "/usr/lib/python3/dist-packages/ucsschool/importer/frontend/cmdline.py", line 122, in setup_config
    self.config = setup_configuration(configs, **self.args.settings)
  File "/usr/lib/python3/dist-packages/ucsschool/importer/configuration.py", line 69, in setup_configuration
    run_configuration_checks(config)
  File "/usr/lib/python3/dist-packages/ucsschool/importer/utils/configuration_checks.py", line 128, in run_configuration_checks
    method()
  File "/usr/share/ucs-school-import/checks/defaults.py", line 199, in test_scheme_valid_format
    "Deprecated configuration key 'scheme:username:allow_rename'."
ucsschool.importer.exceptions.InitialisationError: Deprecated configuration key 'scheme:username:allow_rename'.
Comment 2 Florian Best univentionstaff 2021-08-16 15:05:22 CEST
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/ucsschool/importer/frontend/cmdline.py", line 246, in main
    self.prepare_import()
  File "/usr/lib/python3/dist-packages/ucsschool/importer/frontend/cmdline.py", line 200, in prepare_import
    self.setup_config()
  File "/usr/lib/python3/dist-packages/ucsschool/importer/frontend/cmdline.py", line 132, in setup_config
    raise exc
  File "/usr/lib/python3/dist-packages/ucsschool/importer/frontend/cmdline.py", line 122, in setup_config
    self.config = setup_configuration(configs, **self.args.settings)
  File "/usr/lib/python3/dist-packages/ucsschool/importer/configuration.py", line 69, in setup_configuration
    run_configuration_checks(config)
  File "/usr/lib/python3/dist-packages/ucsschool/importer/utils/configuration_checks.py", line 128, in run_configuration_checks
    method()
  File "/usr/share/ucs-school-import/checks/defaults.py", line 213, in test_scheme_valid_format
    raise InitialisationError("Value of 'scheme:{}' must be a string.".format(name))
ucsschool.importer.exceptions.InitialisationError: Value of 'scheme:description' must be a string.
ucsschool.importer.exceptions.InitialisationError: Value of 'scheme:employeeNumber' must be a string.
ucsschool.importer.exceptions.InitialisationError: Value of 'scheme:firstname' must be a string.
ucsschool.importer.exceptions.InitialisationError: Value of 'scheme:lastname' must be a string.
ucsschool.importer.exceptions.InitialisationError: Value of 'scheme:displayName' must be a string.
Comment 3 Florian Best univentionstaff 2021-08-16 15:50:11 CEST
I will ignore these tracebacks now in the 99_end test cases:

ucs-test (10.0.6-23)
56152f532131 | Bug #53564: ignore UCS@school Test import tracebacks
Comment 4 Florian Best univentionstaff 2021-08-20 11:39:53 CEST
Maybe also:

Traceback (most recent call last):
  File "/usr/lib/python2.7/dist-packages/celery/worker/consumer.py", line 279, in start
    blueprint.start(self)
  File "/usr/lib/python2.7/dist-packages/celery/bootsteps.py", line 123, in start
    step.start(parent)
  File "/usr/lib/python2.7/dist-packages/celery/worker/consumer.py", line 838, in start
    c.loop(*c.loop_args())
  File "/usr/lib/python2.7/dist-packages/celery/worker/loops.py", line 76, in asynloop
    next(loop)
  File "/usr/lib/python2.7/dist-packages/kombu/async/hub.py", line 340, in create_loop
    cb(*cbargs)
  File "/usr/lib/python2.7/dist-packages/kombu/transport/base.py", line 164, in on_readable
    reader(loop)
  File "/usr/lib/python2.7/dist-packages/kombu/transport/base.py", line 146, in _read
    drain_events(timeout=0)
  File "/usr/lib/python2.7/dist-packages/amqp/connection.py", line 324, in drain_events
    return amqp_method(channel, args)
  File "/usr/lib/python2.7/dist-packages/amqp/connection.py", line 527, in _close
    self._x_close_ok()
  File "/usr/lib/python2.7/dist-packages/amqp/connection.py", line 555, in _x_close_ok
    self._send_method((10, 51))
  File "/usr/lib/python2.7/dist-packages/amqp/abstract_channel.py", line 56, in _send_method
    self.channel_id, method_sig, args, content,
  File "/usr/lib/python2.7/dist-packages/amqp/method_framing.py", line 221, in write_method
    write_frame(1, channel, payload)
  File "/usr/lib/python2.7/dist-packages/amqp/transport.py", line 182, in write_frame
    frame_type, channel, size, payload, 0xce,
  File "/usr/lib/python2.7/socket.py", line 228, in meth
    return getattr(self._sock,name)(*args)
error: [Errno 104] Connection reset by peer

Traceback (most recent call last):
  File "/usr/bin/gunicorn", line 11, in <module>
    load_entry_point('gunicorn==19.6.0', 'console_scripts', 'gunicorn')()
  File "/usr/lib/python2.7/dist-packages/gunicorn/app/wsgiapp.py", line 74, in run
    WSGIApplication("%(prog)s [OPTIONS] [APP_MODULE]").run()
  File "/usr/lib/python2.7/dist-packages/gunicorn/app/base.py", line 192, in run
    super(Application, self).run()
  File "/usr/lib/python2.7/dist-packages/gunicorn/app/base.py", line 72, in run
    Arbiter(self).run()
  File "/usr/lib/python2.7/dist-packages/gunicorn/arbiter.py", line 218, in run
    self.halt(reason=inst.reason, exit_status=inst.exit_status)
  File "/usr/lib/python2.7/dist-packages/gunicorn/arbiter.py", line 331, in halt
    self.stop()
  File "/usr/lib/python2.7/dist-packages/gunicorn/arbiter.py", line 381, in stop
    time.sleep(0.1)
  File "/usr/lib/python2.7/dist-packages/gunicorn/arbiter.py", line 231, in handle_chld
    self.reap_workers()
  File "/usr/lib/python2.7/dist-packages/gunicorn/arbiter.py", line 506, in reap_workers
    raise HaltServer(reason, self.WORKER_BOOT_ERROR)
gunicorn.errors.HaltServer: <HaltServer 'Worker failed to boot.' 3>

Traceback (most recent call last):
  File "/usr/lib/python2.7/dist-packages/celery/worker/consumer.py", line 279, in start
  File "/usr/lib/python2.7/dist-packages/celery/bootsteps.py", line 123, in start
    return self.state_to_name[self.state or 0]
  File "/usr/lib/python2.7/dist-packages/celery/worker/consumer.py", line 838, in start
  File "/usr/lib/python2.7/dist-packages/celery/worker/loops.py", line 76, in asynloop
    state.should_stop, state.should_terminate,
  File "/usr/lib/python2.7/dist-packages/kombu/async/hub.py", line 340, in create_loop
  File "/usr/lib/python2.7/dist-packages/kombu/transport/base.py", line 164, in on_readable
    #: Redis (driver_type: 'redis'), etc...
  File "/usr/lib/python2.7/dist-packages/kombu/transport/base.py", line 146, in _read
    #: The :class:`~kombu.Connection` owning this instance.
  File "/usr/lib/python2.7/dist-packages/amqp/connection.py", line 324, in drain_events
    def transport(self):
  File "/usr/lib/python2.7/dist-packages/amqp/connection.py", line 530, in _close
    
ConnectionForced: (0, 0): (320) CONNECTION_FORCED - broker forced connection closure with reason 'shutdown'
Comment 5 Florian Best univentionstaff 2021-08-30 17:30:21 CEST
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/ucsschool/importer/mass_import/user_import.py", line 217, in create_and_modify_users
    self.connection, validate_unlikely_changes=True, check_username=False
  File "/usr/lib/python3/dist-packages/ucsschool/importer/models/import_user.py", line 1361, in validate
    self._check_username_uniqueness()
  File "/usr/lib/python3/dist-packages/ucsschool/importer/models/import_user.py", line 1373, in _check_username_uniqueness
    self.name, uut.dn, uut.source_uid, uut.record_uid
ucsschool.importer.exceptions.UniqueIdError: Username 'sfuthx7esa' is already in use by 'uid=sfuthx7esa,cn=lehrer,cn=users,ou=testou9335,dc=autotest201,dc=local' (source_uid: None, record_uid: None).
Comment 6 Florian Best univentionstaff 2021-08-30 17:34:10 CEST
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/ucsschool/importer/mass_import/user_import.py", line 241, in create_and_modify_users
    sys.exc_info()[2],
  File "/usr/lib/python3/dist-packages/six.py", line 692, in reraise
    raise value.with_traceback(tb)
  File "/usr/lib/python3/dist-packages/ucsschool/importer/mass_import/user_import.py", line 211, in create_and_modify_users
    success = user.create(lo=self.connection)
  File "/usr/lib/python3/dist-packages/ucsschool/importer/models/import_user.py", line 404, in create
    res = super(ImportUser, self).create(lo, validate)
  File "/usr/lib/python3/dist-packages/ucsschool/lib/models/base.py", line 622, in create
    success = self.create_without_hooks(lo, validate)
  File "/usr/lib/python3/dist-packages/ucsschool/lib/models/base.py", line 637, in create_without_hooks
    raise ValidationError(self.errors.copy())
ucsschool.importer.exceptions.UserValidationError: <unprintable UserValidationError object>