remove_dc.py: Abort transaction before throwing an exception
authorGary Lockyer <gary@catalyst.net.nz>
Thu, 18 Jan 2018 20:16:04 +0000 (09:16 +1300)
committerAndrew Bartlett <abartlet@samba.org>
Mon, 5 Mar 2018 19:50:15 +0000 (20:50 +0100)
Signed-off-by: Gary Lockyer <gary@catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
python/samba/remove_dc.py

index da3b628ae9f75e2bc046b2de575535fa2f57d28e..6b86a554efad4ba74e79db8830fa2e7400bc470b 100644 (file)
@@ -394,6 +394,7 @@ def remove_dc(samdb, logger, dc_name):
                                   % (dc_name, samdb.domain_dns_name()), estr)
 
         if (len(server_msgs) == 0):
+            samdb.transaction_cancel()
             raise DemoteException("%s is not an AD DC in %s"
                                   % (dc_name, samdb.domain_dns_name()))
         server_dn = server_msgs[0].dn
@@ -412,6 +413,7 @@ def remove_dc(samdb, logger, dc_name):
             ntds_msgs = []
             pass
         else:
+            samdb.transaction_cancel()
             raise DemoteException("Failure checking if %s is an NTDS DSA in %s: "
                                   % (ntds_dn, samdb.domain_dns_name()), estr)
 
@@ -419,6 +421,7 @@ def remove_dc(samdb, logger, dc_name):
     # object, just remove the server object located above
     if (len(ntds_msgs) == 0):
         if server_dn is None:
+            samdb.transaction_cancel()
             raise DemoteException("%s is not an AD DC in %s"
                                   % (dc_name, samdb.domain_dns_name()))