]> Frank Brehm's Git Trees - pixelpark/ldap-migration.git/commitdiff
Display of not migrated items
authorFrank Brehm <frank.brehm@pixelpark.com>
Fri, 4 Dec 2020 15:50:42 +0000 (16:50 +0100)
committerFrank Brehm <frank.brehm@pixelpark.com>
Fri, 4 Dec 2020 15:50:42 +0000 (16:50 +0100)
lib/ldap_migration/__init__.py

index 830b0229df23c51ec1b6be57307fbf1d2ee4a9e8..756d03094ab097156fac1c54101ec4962c13f07c 100644 (file)
@@ -45,7 +45,7 @@ from .config import LDAPMigrationConfiguration
 from .idict import CaseInsensitiveDict
 from .istringset import CaseInsensitiveStringSet
 
-__version__ = '0.8.4'
+__version__ = '0.8.5'
 
 LOG = logging.getLogger(__name__)
 CFG_BASENAME = 'ldap-migration.ini'
@@ -215,6 +215,7 @@ class LDAPMigrationApplication(BaseApplication):
         self.struct_dns = CaseInsensitiveDict()
         self.migrated_entries = CaseInsensitiveDict()
         self.integer_attribute_types = CaseInsensitiveStringSet([])
+        self.src_items_not_found = CaseInsensitiveStringSet([])
 
         super(LDAPMigrationApplication, self).__init__(
             appname=appname, verbose=verbose, version=version, base_dir=base_dir,
@@ -1115,6 +1116,8 @@ class LDAPMigrationApplication(BaseApplication):
             except ReadLDAPItemError as e:
                 msg = "Could not get source item: " + str(e)
                 LOG.error(msg)
+                self.write_result_file(fh, src_dn, '!')
+                self.src_items_not_found.add(src_dn)
                 continue
 
         print()
@@ -1463,11 +1466,18 @@ class LDAPMigrationApplication(BaseApplication):
             self.get_structural_dns()
             self.migrate_entries()
             if self.verbose > 1:
-                mlist = []
+                print()
+                print(self.colored('Migrated items:', 'GREEN'))
+                print(self.colored('###############', 'GREEN'))
                 for key in self.migrated_entries:
-                    dn = self.migrated_entries[key]
-                    mlist.append(dn)
-                LOG.debug("Migrated items:\n{}".format(pp(mlist)))
+                    print(self.colored(' * {!r}'.format(key), 'GREEN'))
+                if len(self.src_items_not_found):
+                    print()
+                    print(self.colored('Not migrated items:', 'CYAN'))
+                    print(self.colored('###################', 'CYAN'))
+                    for dn in self.src_items_not_found:
+                        print(self.colored(' * {!r}'.format(dn), 'CYAN'))
+
         finally:
             self.disconnect()