From 04fe768a3a6f802783013412ee3cb6b8a16571a5 Mon Sep 17 00:00:00 2001 From: Frank Brehm Date: Wed, 6 Jan 2021 18:08:56 +0100 Subject: [PATCH] Handling some entries without structural objectclasses --- lib/ldap_migration/__init__.py | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/lib/ldap_migration/__init__.py b/lib/ldap_migration/__init__.py index d184f6d..8300be0 100644 --- a/lib/ldap_migration/__init__.py +++ b/lib/ldap_migration/__init__.py @@ -45,7 +45,7 @@ from fb_tools.collections import CIStringSet, CIDict from .config import LDAPMigrationConfiguration -__version__ = '0.9.5' +__version__ = '0.9.6' LOG = logging.getLogger(__name__) CFG_BASENAME = 'ldap-migration.ini' @@ -834,7 +834,13 @@ class LDAPMigrationApplication(BaseApplication): 'extensions': object_class.extensions, 'experimental': object_class.experimental, 'raw_definition': object_class.raw_definition, + 'structural': False, + 'abstract': False, } + if object_class.kind.lower() == 'abstract': + oc['abstract'] = True + elif object_class.kind.lower() == 'structural': + oc['structural'] = True self.object_classes[oc_name] = oc else: oc_name = object_class.name @@ -850,7 +856,13 @@ class LDAPMigrationApplication(BaseApplication): 'extensions': object_class.extensions, 'experimental': object_class.experimental, 'raw_definition': object_class.raw_definition, + 'structural': False, + 'abstract': False, } + if object_class.kind.lower() == 'abstract': + oc['abstract'] = True + elif object_class.kind.lower() == 'structural': + oc['structural'] = True self.object_classes[oc_name] = oc LOG.debug("Found {} ObjectClasses.".format(len(self.object_classes))) @@ -1390,6 +1402,16 @@ class LDAPMigrationApplication(BaseApplication): used_classes.add('organizationalUnit') object_classes.append('organizationalUnit') + has_structural = False + for oc in used_classes: + if self.object_classes[oc]['structural']: + has_structural = True + break + if not has_structural: + if 'mailRecipient' in used_classes: + used_classes.add('inetResource') + object_classes.append('inetResource') + return (object_classes, target_entry) # ------------------------------------------------------------------------- -- 2.39.5