View | Details | Raw Unified | Return to bug 41294 | Differences between
and this patch

Collapse All | Expand All

(-)a/management/univention-directory-manager-modules/modules/univention/admin/handlers/__init__.py (-17 / +20 lines)
 Lines 33-41    Link Here 
33
import copy
33
import copy
34
import types
34
import types
35
import re
35
import re
36
import sys
36
import time
37
import time
37
import ldap
38
import ldap
38
import ipaddr
39
import ipaddr
40
import traceback
39
41
40
import univention.debug
42
import univention.debug
41
43
 Lines 795-820   def _create(self): Link Here 
795
		al.append( ( 'objectClass', [ 'univentionObject', ] ) )
797
		al.append( ( 'objectClass', [ 'univentionObject', ] ) )
796
		al.append( ( 'univentionObjectType', [ self.module, ] ) )
798
		al.append( ( 'univentionObjectType', [ self.module, ] ) )
797
799
798
		self.lo.add(self.dn, al)
800
		# if anything goes wrong we need to remove the already created object, otherwise we run into 'already exists' errors
799
801
		try:
800
		if hasattr(self,'_ldap_post_create'):
802
			added = False
801
			# if anything goes wrong we need to remove the already created object, otherwise we run into 'already exists' errors
803
			self.lo.add(self.dn, al)
802
			try:
804
			added = True
805
			if hasattr(self,'_ldap_post_create'):
803
				self._ldap_post_create()
806
				self._ldap_post_create()
807
		except:
808
			# ensure that there is no lock left
809
			exc = sys.exc_info()
810
			univention.debug.debug(univention.debug.ADMIN, univention.debug.ERROR, "Create operation failed: %s" % (traceback.format_exc(),))
811
			try:
812
				self.cancel()
804
			except:
813
			except:
805
				# ensure that there is no lock left
814
				univention.debug.debug(univention.debug.ADMIN, univention.debug.ERROR, "create: cancel() failed: %s" % (traceback.format_exc(),))
806
				import traceback, sys
815
			try:
807
				exc = sys.exc_info()
816
				if added:
808
				univention.debug.debug(univention.debug.ADMIN, univention.debug.ERROR, "Post-Create operation failed: %s" % (traceback.format_exc(),))
809
				try:
810
					self.cancel()
811
				except:
812
					univention.debug.debug(univention.debug.ADMIN, univention.debug.ERROR, "Post-create: cancel() failed: %s" % (traceback.format_exc(),))
813
				try:
814
					self.remove()
817
					self.remove()
815
				except:
818
			except:
816
					univention.debug.debug(univention.debug.ADMIN, univention.debug.ERROR, "Post-create: remove() failed: %s" % (traceback.format_exc(),))
819
				univention.debug.debug(univention.debug.ADMIN, univention.debug.ERROR, "create: remove() failed: %s" % (traceback.format_exc(),))
817
				raise exc[0], exc[1], exc[2]
820
			raise exc[0], exc[1], exc[2]
818
821
819
		self.call_udm_property_hook('hook_ldap_post_create', self)
822
		self.call_udm_property_hook('hook_ldap_post_create', self)
820
823

Return to bug 41294