ucsschool.importer package

Contents

ucsschool.importer package#

Subpackages#

Submodules#

ucsschool.importer.configuration module#

Configuration classes.

ucsschool.importer.configuration.setup_configuration(conffiles: List[str], **kwargs: str) ReadOnlyDict[source]#
class ucsschool.importer.configuration.ConfigurationFile(filename: str)[source]#

Bases: object

read() Dict[str, Any][source]#
Raises:

InitialisationError – when the configuration file could not be read or when it contained invalid JSON

write(conf: str) None[source]#
update(conf: str) None[source]#
classmethod get_schema() Dict[str, Any][source]#
Raises:

InitialisationError – when the json schema cannot be read

validate(cf_obj: Dict[str, Any]) None[source]#
Raises:

InitialisationError – when cf_obj does not conform to the json schema

class ucsschool.importer.configuration.ReadOnlyDict[source]#

Bases: dict

update([E, ]**F) None.  Update D from dict/iterable E and F.[source]#

If E is present and has a .keys() method, then does: for k in E: D[k] = E[k] If E is present and lacks a .keys() method, then does: for k, v in E: D[k] = v In either case, this is followed by: for k in F: D[k] = F[k]

check_mandatory_attributes(logger: Logger) None[source]#
close() None[source]#
class ucsschool.importer.configuration.Configuration(filenames: Type[Configuration] = None)[source]#

Bases: object

Singleton to the global configuration object.

ucsschool.importer.default_user_import_factory module#

Default implementation of the Abstract Factory.

class ucsschool.importer.default_user_import_factory.DefaultUserImportFactory[source]#

Bases: object

Default implementation of the Abstract Factory.

Subclass this and store the fully dotted class name in config[“factory”] to make the importer code use your classes.

static init_wrapper(klass)[source]#

This returns a function that tries to init a class with args and kwargs. If that does not work, it tries to do the same, but without any arguments.

load_methods_from_config() None[source]#

Overwrite the methods in this class with constructors or methods from the configuration file.

  • Configuration keys in the configuration “classes” dict are the names of the methods here

    without the prepended make_.

  • It will be checked if the configured classes are really subclasses as described in the

    documentation (/usr/share/doc/ucs-school-import/user_import_configuration_readme.txt).

  • Please update the documentation if classes/methods are added.

  • Take care to honor the signature of the methods, this cannot be checked.

make_reader(**kwargs: Any) ucsschool.importer.reader.csv_reader.CsvReader[source]#

Creates an input data reader.

Parameters:

kwarg (dict) – passed to the reader constructor

Returns:

a reader object

Return type:

BaseReader

make_import_user(cur_user_roles: Iterable, *arg: Any, **kwargs: Any) ImportUserTV[source]#

Creates a ImportUser [of specific type], depending on its roles.

Parameters:
  • cur_user_roles (list(str)) – [ucsschool.lib.roles, ..]

  • arg (tuple) – passed to constructor of created class

  • kwarg (dict) – passed to constructor of created class

Returns:

object of ImportUser subclass or ImportUser if cur_user_roles was empty

Return type:

ImportUser

make_mass_importer(dry_run: bool | None = True) ucsschool.importer.mass_import.mass_import.MassImport[source]#

Creates a MassImport object.

Parameters:

dry_run (bool) – set to False to actually commit changes to LDAP

Returns:

a MassImport object

Return type:

MassImport

make_password_exporter(*arg: Any, **kwargs: Any) ucsschool.importer.writer.new_user_password_csv_exporter.NewUserPasswordCsvExporter[source]#

Creates a ResultExporter object that can dump passwords to disk.

Parameters:
  • arg (tuple) – passed to constructor of created class

  • kwarg (dict) – passed to constructor of created class

Returns:

a ResultExporter object

Return type:

NewUserPasswordCsvExporter

make_result_exporter(*arg: Any, **kwargs: Any) ucsschool.importer.writer.user_import_csv_result_exporter.UserImportCsvResultExporter[source]#

Creates a ResultExporter object.

Parameters:
  • arg (tuple) – passed to constructor of created class

  • kwarg (dict) – passed to constructor of created class

Returns:

a ResultExporter object

Return type:

UserImportCsvResultExporter

make_user_importer(dry_run: bool | None = True) ucsschool.importer.mass_import.user_import.UserImport[source]#

Creates a user importer.

Parameters:

dry_run (bool) – set to False to actually commit changes to LDAP

Returns:

a UserImport object

Return type:

UserImport

make_ucr() univention.config_registry.ConfigRegistry[source]#

Get a initialized UCR instance.

Returns:

ConfigRegistry object

Return type:

univention.config_registry.ConfigRegistry

make_unique_email_handler(max_length: int | None = 254, dry_run: bool | None = True) ucsschool.importer.utils.username_handler.EmailHandler[source]#

Get a EmailHandler instance.

Parameters:
  • max_length (int) – created email adresses must not be longer than this

  • dry_run (bool) – set to False to actually commit changes to LDAP

Returns:

an EmailHandler object

Return type:

EmailHandler

make_username_handler(max_length: int, dry_run: bool | None = True) ucsschool.importer.utils.username_handler.UsernameHandler[source]#

Get a UsernameHandler instance.

Parameters:
  • max_length (int) – created usernames must not be longer than this

  • dry_run (bool) – set to False to actually commit changes to LDAP

Returns:

a UsernameHandler object

Return type:

UsernameHandler

make_user_writer(*arg: Any, **kwargs: Any) ucsschool.importer.writer.csv_writer.CsvWriter[source]#

Creates a user writer object.

Parameters:
  • arg (tuple) – passed to constructor of created class

  • kwarg (dict) – passed to constructor of created class

Returns:

a ucsschool.importer.writer.BaseWriter object

Return type:

CsvWriter

ucsschool.importer.exceptions module#

All exceptions raised by code in ucsschool.importer.

exception ucsschool.importer.exceptions.UcsSchoolImportError(*args, **kwargs)[source]#

Bases: Exception

is_fatal = False#
is_countable = True#
exception ucsschool.importer.exceptions.UcsSchoolImportFatalError(*args, **kwargs)[source]#

Bases: UcsSchoolImportError

is_fatal = True#
exception ucsschool.importer.exceptions.UcsSchoolImportSkipImportRecord(*args, **kwargs)[source]#

Bases: UcsSchoolImportError

is_countable = False#
exception ucsschool.importer.exceptions.BadPassword(*args, **kwargs)[source]#

Bases: UcsSchoolImportError

exception ucsschool.importer.exceptions.BadValueStored(*args, **kwargs)[source]#

Bases: UcsSchoolImportFatalError

exception ucsschool.importer.exceptions.ComputerImportError[source]#

Bases: Exception

exception ucsschool.importer.exceptions.ConfigurationError(*args, **kwargs)[source]#

Bases: UcsSchoolImportFatalError

exception ucsschool.importer.exceptions.CreationError(*args, **kwargs)[source]#

Bases: UcsSchoolImportError

exception ucsschool.importer.exceptions.DeletionError(*args, **kwargs)[source]#

Bases: UcsSchoolImportError

exception ucsschool.importer.exceptions.FormatError(msg, scheme, data, *args, **kwargs)[source]#

Bases: UcsSchoolImportError

exception ucsschool.importer.exceptions.EmptyFormatResultError(msg, scheme, data, *args, **kwargs)[source]#

Bases: FormatError

exception ucsschool.importer.exceptions.EmptyMandatoryAttribute(msg, attr_name, *args, **kwargs)[source]#

Bases: UcsSchoolImportError

exception ucsschool.importer.exceptions.InitialisationError(msg, log_traceback=True, *args, **kwargs)[source]#

Bases: UcsSchoolImportFatalError

exception ucsschool.importer.exceptions.InvalidBirthday(*args, **kwargs)[source]#

Bases: UcsSchoolImportError

exception ucsschool.importer.exceptions.InvalidClassName(*args, **kwargs)[source]#

Bases: UcsSchoolImportError

exception ucsschool.importer.exceptions.InvalidEmail(*args, **kwargs)[source]#

Bases: UcsSchoolImportError

exception ucsschool.importer.exceptions.InvalidSchoolClasses(*args, **kwargs)[source]#

Bases: UcsSchoolImportError

exception ucsschool.importer.exceptions.InvalidSchools(*args, **kwargs)[source]#

Bases: UcsSchoolImportError

exception ucsschool.importer.exceptions.LDAPWriteAccessDenied(msg=None, *args, **kwargs)[source]#

Bases: UcsSchoolImportFatalError

exception ucsschool.importer.exceptions.MissingMandatoryAttribute(msg, mandatory_attributes, *args, **kwargs)[source]#

Bases: UcsSchoolImportError

exception ucsschool.importer.exceptions.MissingMailDomain(*args, **kwargs)[source]#

Bases: UcsSchoolImportError

exception ucsschool.importer.exceptions.MissingSchoolName(*args, **kwargs)[source]#

Bases: UcsSchoolImportError

exception ucsschool.importer.exceptions.MissingUid(*args, **kwargs)[source]#

Bases: UcsSchoolImportError

exception ucsschool.importer.exceptions.ModificationError(*args, **kwargs)[source]#

Bases: UcsSchoolImportError

exception ucsschool.importer.exceptions.MoveError(*args, **kwargs)[source]#

Bases: UcsSchoolImportError

exception ucsschool.importer.exceptions.NameKeyExists(*args, **kwargs)[source]#

Bases: UcsSchoolImportFatalError

exception ucsschool.importer.exceptions.NoRole(*args, **kwargs)[source]#

Bases: UcsSchoolImportError

exception ucsschool.importer.exceptions.NotSupportedError(*args, **kwargs)[source]#

Bases: UcsSchoolImportError

exception ucsschool.importer.exceptions.NoUsernameAtAll(*args, **kwargs)[source]#

Bases: UcsSchoolImportFatalError

exception ucsschool.importer.exceptions.NoValueStored(*args, **kwargs)[source]#

Bases: UcsSchoolImportFatalError

exception ucsschool.importer.exceptions.ReadOnlyConfiguration(*args, **kwargs)[source]#

Bases: UcsSchoolImportFatalError

exception ucsschool.importer.exceptions.TooManyErrors(msg, errors, *args, **kwargs)[source]#

Bases: UcsSchoolImportFatalError

exception ucsschool.importer.exceptions.UDMError(*args, **kwargs)[source]#

Bases: UcsSchoolImportError

exception ucsschool.importer.exceptions.UDMValueError(*args, **kwargs)[source]#

Bases: UDMError

exception ucsschool.importer.exceptions.UnknownAction(*args, **kwargs)[source]#

Bases: UcsSchoolImportError

exception ucsschool.importer.exceptions.UnknownDisabledSetting(*args, **kwargs)[source]#

Bases: UcsSchoolImportError

exception ucsschool.importer.exceptions.UnknownProperty(*args, **kwargs)[source]#

Bases: UcsSchoolImportError

exception ucsschool.importer.exceptions.UnknownRole(*args, **kwargs)[source]#

Bases: UcsSchoolImportError

exception ucsschool.importer.exceptions.UnknownSchoolName(*args, **kwargs)[source]#

Bases: UcsSchoolImportError

exception ucsschool.importer.exceptions.UniqueIdError(*args, **kwargs)[source]#

Bases: UcsSchoolImportError

exception ucsschool.importer.exceptions.UsernameToLong(*args, **kwargs)[source]#

Bases: UcsSchoolImportError

exception ucsschool.importer.exceptions.UserValidationError(msg, validation_error, *args, **kwargs)[source]#

Bases: UcsSchoolImportError

Wraps ucsschool.lib.models.attributes.ValidationError

exception ucsschool.importer.exceptions.WrongUserType(msg, *args, **kwargs)[source]#

Bases: UcsSchoolImportError

Wraps ucsschool.lib.models.base.WrongObjectType

ucsschool.importer.factory module#

Singleton to the factory currently in use.

ucsschool.importer.factory.setup_factory(factory_cls_name: str) DefaultUserImportFactory[source]#

Create import factory.

Parameters:

factory_cls_name (str) – full dotted name of class

Returns:

Factory object

Return type:

Factory

ucsschool.importer.factory.load_class(dotted_class_name: str) type[source]#

Load class from its full dotted name.

Parameters:

dotted_class_name – str: full dotted name of class

Returns:

class

Return type:

type

class ucsschool.importer.factory.Factory(factory: Type[Factory] = None)[source]#

Bases: object

Singleton to the global abstract factory object.