From 49ce20cada8c1cb237eafb350e607a0efc195e9a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?C=C3=B4me=20Chilliet?= <come@opensides.be>
Date: Tue, 9 Aug 2016 10:20:41 +0200
Subject: [PATCH] Fixes #5012 Deleting old printers once migrated

---
 contrib/bin/fusiondirectory-setup | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/contrib/bin/fusiondirectory-setup b/contrib/bin/fusiondirectory-setup
index af3aa67c0..7a7b390fb 100644
--- a/contrib/bin/fusiondirectory-setup
+++ b/contrib/bin/fusiondirectory-setup
@@ -1604,8 +1604,11 @@ sub migrate_printers {
 
     if (ask_yn_question("Migrate these entries to fdPrinter objectClass?")) {
       foreach my $entry (@entries) {
-        $mesg = $ldap->moddn($entry->dn(), newrdn => "cn=".$entry->get_value('cn')."+ipHostNumber=".$entry->get_value('ipHostNumber'));
+        my $newrdn = "cn=".$entry->get_value('cn')."+ipHostNumber=".$entry->get_value('ipHostNumber');
+        $mesg = $ldap->moddn($entry->dn(), newrdn => $newrdn);
         $mesg->code && print $entry->dn().": ".$mesg->error."\n";
+        my $dn_old = $entry->dn();
+        $dn_old =~ s/^[^,]+,/$newrdn,/;
         my @replace = ('ieee802Device', 'ipHost', 'fdPrinter');
         my @classes = $entry->get_value('objectClass');
         foreach my $class (@classes) {
@@ -1617,6 +1620,8 @@ sub migrate_printers {
         $mesg = $ldap->add($entry);
         $mesg->code && print $entry->dn().": ".$mesg->error."\n";
         undef @replace;
+        $mesg = $ldap->delete($dn_old);
+        $mesg->code && print $dn_old.": ".$mesg->error."\n";
       }
     }
   }
-- 
GitLab