Univention Bugzilla – Bug 26478
Python-Schnittstelle für den Zugriff auf Import-Funktionalitäten
Last modified: 2016-09-30 11:53:12 CEST
Das Import-Skript kann derzeit nur über die CLI aufgerufen werden. In Bug 26344 werden für UMC-Module zum Anlegen von Benutzern, Gruppen/Klassen und Rechnern die selben Funktionalitäten benötigt. Ziel ist es daher, das sowohl das Import-Skript als auch die UMC-Module die gleichen Python-Funktionen verwenden können. Dazu ist es notwendig, das Import-Skript anzupassen, so dass es Funktionen bereitstellt, denen die entsprechenden Parameter zum Anlegen dieser Objekte direkt übergeben werden können (derzeit werden sie aus einer Datei ausgelesen). Ferner ist es notwendig, dass die entsprechenden Exceptions in der Methode nicht abgefangen werden.
Die Umstellung des Import Skript sollte zu einem späteren Zeitpunkt erfolgen. Hier sind größere Umbauten notwendig um daraus eine sinnvolle Bibliothek zu machen. Das UMC Modul sollte erst einmal die cmdline Schnittstelle des Import-Skript verwenden.
Derzeit werden im UMC-Modul für Arbeitsgruppen Gruppen-Shares manuelle angelegt und gelöscht. Teile des Codes aus den Import-Skripten wurden dazu übernommen. Idealerweise möchte man auch hier auf eine entsprechende Bibliothek zugreifen.
(In reply to comment #2) > Derzeit werden im UMC-Modul für Arbeitsgruppen Gruppen-Shares manuelle angelegt > und gelöscht. Teile des Codes aus den Import-Skripten wurden dazu übernommen. > Idealerweise möchte man auch hier auf eine entsprechende Bibliothek zugreifen. → Bug 28211
Dependency on Bug #41239 only valid, if ucs@school >= 4.1r2.
Not sure this fulfills all requirements, but here is an example what you can currently do with the new import-lib: from ucsschool.importer.utils.logging2udebug import get_logger, add_stdout_handler, add_file_handler from ucsschool.importer.configuration import setup_configuration from ucsschool.importer.factory import setup_factory from ucsschool.importer.models.import_user import ImportStaff, ImportStudent, ImportTeacher, ImportTeachersAndStaff from ucsschool.importer.utils.ldap_connection import get_admin_connection conffile = "/usr/share/ucs-school-import/configs/new.json" logger = get_logger() add_stdout_handler(logger) config = setup_configuration(conffile, sourceUID="my source", dry_run=False) add_file_handler(logger, config["logfile"]) factory = setup_factory(config["factory"]) user_import = factory.make_user_importer(config["dry_run"]) i1 = ImportStudent(name="Ameise", school="schule1", firstname="A", lastname="Meise", email="a.m@uni.dtr") i1.prepare_uids() i2 = ImportStudent(name="Bmeise", school="schule1", firstname="B", lastname="Meise", email="b.m@uni.dtr") i2.prepare_uids() imported_users = [i1, i2] user_import.create_and_modify_users(imported_users) users_to_delete = user_import.detect_users_to_delete() user_import.delete_users(users_to_delete)
Forget the last 2 lines - if you just want to add users they are not needed.
API is in ucsschool.importer.* in package ucs-school-import.