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

Collapse All | Expand All

(-)a/ucs-school-4.0/ucs-school-umc-users/umc/python/schoolusers/__init__.py (-10 / +1 lines)
 Lines 48-62   import notifier.popen Link Here 
48
48
49
_ = Translation( 'ucs-school-umc-schoolusers' ).translate
49
_ = Translation( 'ucs-school-umc-schoolusers' ).translate
50
50
51
## FIXME: remove in UCS@school 3.2, replace by str(e): Bug #27940, 30089, 30088
52
def get_exception_msg(e):
53
	msg = getattr(e, 'message', '')
54
	if e.args:
55
		if e.args[0] != msg or len(e.args) != 1:
56
			for arg in e.args:
57
				msg += ' %s' % (arg)
58
	return msg
59
60
class Instance( SchoolBaseModule ):
51
class Instance( SchoolBaseModule ):
61
	@LDAP_Connection()
52
	@LDAP_Connection()
62
	def query( self, request, ldap_user_read = None, ldap_position = None, search_base = None ):
53
	def query( self, request, ldap_user_read = None, ldap_position = None, search_base = None ):
 Lines 108-114   class Instance( SchoolBaseModule ): Link Here 
108
			MODULE.process( '_reset_passwords: dn=%s' % ur.dn )
99
			MODULE.process( '_reset_passwords: dn=%s' % ur.dn )
109
			MODULE.process( '_reset_passwords: exception=%s' % str( e.__class__ ) )
100
			MODULE.process( '_reset_passwords: exception=%s' % str( e.__class__ ) )
110
			MODULE.process( '_reset_passwords: exception=%s' % str( e.message ) )
101
			MODULE.process( '_reset_passwords: exception=%s' % str( e.message ) )
111
			return '%s' % (get_exception_msg(e))
102
			return '%s' % (e,)
112
103
113
	@LDAP_Connection( USER_READ, USER_WRITE )
104
	@LDAP_Connection( USER_READ, USER_WRITE )
114
	def password_reset( self, request, ldap_user_read = None, ldap_user_write = None, ldap_position = None, search_base = None ):
105
	def password_reset( self, request, ldap_user_read = None, ldap_user_write = None, ldap_position = None, search_base = None ):
(-)a/ucs-school-4.0/ucs-school-umc-wizards/umc/python/schoolwizards/__init__.py (-11 / +2 lines)
 Lines 52-66   _ = Translation('ucs-school-umc-wizards').translate Link Here 
52
ucr = ConfigRegistry()
52
ucr = ConfigRegistry()
53
ucr.load()
53
ucr.load()
54
54
55
# TODO: remove once this is implemented in uexceptions, see Bug #30088
56
def get_exception_msg(e):
57
	msg = getattr(e, 'message', '')
58
	if getattr(e, 'args', False):
59
		if e.args[0] != msg or len(e.args) != 1:
60
			for arg in e.args:
61
				msg += ' ' + arg
62
	return msg
63
64
def get_user_class(user_type):
55
def get_user_class(user_type):
65
	if user_type == 'student':
56
	if user_type == 'student':
66
		return Student
57
		return Student
 Lines 198-204   class Instance(SchoolBaseModule, SchoolImport): Link Here 
198
				else:
189
				else:
199
					ret.append({'result' : {'message' : _('"%s" already exists!') % obj.name}})
190
					ret.append({'result' : {'message' : _('"%s" already exists!') % obj.name}})
200
			except uldapBaseException as exc:
191
			except uldapBaseException as exc:
201
				ret.append({'result' : {'message' : get_exception_msg(exc)}})
192
				ret.append({'result' : {'message' : str(exc)}})
202
		return ret
193
		return ret
203
194
204
	@LDAP_Connection( USER_READ, USER_WRITE )
195
	@LDAP_Connection( USER_READ, USER_WRITE )
 Lines 218-224   class Instance(SchoolBaseModule, SchoolImport): Link Here 
218
			try:
209
			try:
219
				obj.modify(ldap_user_write, validate=False)
210
				obj.modify(ldap_user_write, validate=False)
220
			except uldapBaseException as exc:
211
			except uldapBaseException as exc:
221
				ret.append({'result' : {'message' : get_exception_msg(exc)}})
212
				ret.append({'result' : {'message' : str(exc)}})
222
			else:
213
			else:
223
				ret.append(True) # no changes? who cares?
214
				ret.append(True) # no changes? who cares?
224
		return ret
215
		return ret
225
   Bug #30088: move get_exception_msg() logic into base.__str__
216
   Bug #30088: move get_exception_msg() logic into base.__str__
(-)a/ucs-4.0-0/management/univention-directory-manager-modules/modules/univention/admin/uexceptions.py (-3 / +11 lines)
 Lines 30-36    Link Here 
30
# /usr/share/common-licenses/AGPL-3; if not, see
30
# /usr/share/common-licenses/AGPL-3; if not, see
31
# <http://www.gnu.org/licenses/>.
31
# <http://www.gnu.org/licenses/>.
32
32
33
import exceptions
34
import univention.admin.localization
33
import univention.admin.localization
35
from univention.admin import configRegistry
34
from univention.admin import configRegistry
36
35
 Lines 38-45   translation=univention.admin.localization.translation('univention/admin') Link Here 
38
_=translation.translate
37
_=translation.translate
39
38
40
39
41
class base(exceptions.Exception):
40
class base(Exception):
42
	pass
41
	message = ''
42
43
	def __str__(self):
44
		msg = self.message
45
		for arg in self.args:
46
			if arg != self.message:
47
				if isinstance(arg, unicode):
48
					arg = arg.encode('utf-8')
49
				msg = '%s %s' % (msg, arg)
50
		return msg
43
51
44
class objectExists(base):
52
class objectExists(base):
45
	message=_('Object exists.')
53
	message=_('Object exists.')
(-)a/ucs-4.0-0/management/univention-management-console-module-udm/umc/python/udm/udm_ldap.py (-16 / +7 lines)
 Lines 69-83   udm_modules.update() Link Here 
69
_user_dn = None
69
_user_dn = None
70
_password = None
70
_password = None
71
71
72
73
def get_exception_msg(e):
74
	msg = getattr(e, 'message', '')
75
	if getattr(e, 'args', False):
76
		if e.args[0] != msg or len(e.args) != 1:
77
			for arg in e.args:
78
				msg += ' ' + arg
79
	return msg
80
81
def set_credentials( dn, passwd ):
72
def set_credentials( dn, passwd ):
82
	global _user_dn, _password
73
	global _user_dn, _password
83
	_user_dn = dn
74
	_user_dn = dn
 Lines 382-388   class UDM_Module( object ): Link Here 
382
			obj.create()
373
			obj.create()
383
		except udm_errors.base, e:
374
		except udm_errors.base, e:
384
			MODULE.warn( 'Failed to create LDAP object: %s: %s' % ( e.__class__.__name__, str( e ) ) )
375
			MODULE.warn( 'Failed to create LDAP object: %s: %s' % ( e.__class__.__name__, str( e ) ) )
385
			raise UDM_Error( get_exception_msg(e), obj.dn )
376
			raise UDM_Error('%s' % (e,), obj.dn )
386
377
387
		return obj.dn
378
		return obj.dn
388
379
 Lines 401-407   class UDM_Module( object ): Link Here 
401
			return dest
392
			return dest
402
		except udm_errors.base, e:
393
		except udm_errors.base, e:
403
			MODULE.warn( 'Failed to move LDAP object %s: %s: %s' % ( ldap_dn, e.__class__.__name__, str( e ) ) )
394
			MODULE.warn( 'Failed to move LDAP object %s: %s: %s' % ( ldap_dn, e.__class__.__name__, str( e ) ) )
404
			raise UDM_Error( get_exception_msg( e ) )
395
			raise UDM_Error('%s' % (e,))
405
396
406
	@LDAP_Connection
397
	@LDAP_Connection
407
	def remove( self, ldap_dn, cleanup = False, recursive = False, ldap_connection = None, ldap_position = None ):
398
	def remove( self, ldap_dn, cleanup = False, recursive = False, ldap_connection = None, ldap_position = None ):
 Lines 416-422   class UDM_Module( object ): Link Here 
416
				udm_objects.performCleanup( obj )
407
				udm_objects.performCleanup( obj )
417
		except udm_errors.base, e:
408
		except udm_errors.base, e:
418
			MODULE.warn( 'Failed to remove LDAP object %s: %s: %s' % ( ldap_dn, e.__class__.__name__, str( e ) ) )
409
			MODULE.warn( 'Failed to remove LDAP object %s: %s: %s' % ( ldap_dn, e.__class__.__name__, str( e ) ) )
419
			raise UDM_Error( get_exception_msg( e ) )
410
			raise UDM_Error('%s' % (e,))
420
411
421
	@LDAP_Connection
412
	@LDAP_Connection
422
	def modify( self, ldap_object, ldap_connection = None, ldap_position = None ):
413
	def modify( self, ldap_object, ldap_connection = None, ldap_position = None ):
 Lines 442-448   class UDM_Module( object ): Link Here 
442
			obj.modify()
433
			obj.modify()
443
		except udm_errors.base, e:
434
		except udm_errors.base, e:
444
			MODULE.warn( 'Failed to modify LDAP object %s: %s: %s' % ( obj.dn, e.__class__.__name__, str( e ) ) )
435
			MODULE.warn( 'Failed to modify LDAP object %s: %s: %s' % ( obj.dn, e.__class__.__name__, str( e ) ) )
445
			raise UDM_Error( get_exception_msg(e) )
436
			raise UDM_Error('%s' % (e,) )
446
437
447
	@LDAP_Connection
438
	@LDAP_Connection
448
	def search( self, container = None, attribute = None, value = None, superordinate = None, scope = 'sub', filter = '', simple = False, simple_attrs = None, ldap_connection = None, ldap_position = None, hidden=True ):
439
	def search( self, container = None, attribute = None, value = None, superordinate = None, scope = 'sub', filter = '', simple = False, simple_attrs = None, ldap_connection = None, ldap_position = None, hidden=True ):
 Lines 479-485   class UDM_Module( object ): Link Here 
479
		except ( LDAPError, udm_errors.ldapError ), e:
470
		except ( LDAPError, udm_errors.ldapError ), e:
480
			raise e
471
			raise e
481
		except udm_errors.base, e:
472
		except udm_errors.base, e:
482
			raise UDM_Error( get_exception_msg( e ) )
473
			raise UDM_Error('%s' % (e,))
483
474
484
		# call the garbage collector manually as many parallel request may cause the
475
		# call the garbage collector manually as many parallel request may cause the
485
		# process to use too much memory
476
		# process to use too much memory
 Lines 504-510   class UDM_Module( object ): Link Here 
504
			raise e
495
			raise e
505
		except Exception, e:
496
		except Exception, e:
506
			MODULE.info( 'Failed to retrieve LDAP object: %s' % str( e ) )
497
			MODULE.info( 'Failed to retrieve LDAP object: %s' % str( e ) )
507
			raise UDM_Error( get_exception_msg( e ) )
498
			raise UDM_Error('%s' % (e,))
508
		return obj
499
		return obj
509
500
510
	def get_property( self, property_name ):
501
	def get_property( self, property_name ):
 Lines 1047-1053   def list_objects( container, object_type = None, ldap_connection = None, ldap_po Link Here 
1047
	except ( LDAPError, udm_errors.ldapError ), e:
1038
	except ( LDAPError, udm_errors.ldapError ), e:
1048
		raise e
1039
		raise e
1049
	except udm_errors.base, e:
1040
	except udm_errors.base, e:
1050
		raise UDM_Error( get_exception_msg( e ) )
1041
		raise UDM_Error('%s' % (e,))
1051
	objects = []
1042
	objects = []
1052
	for dn, attrs in result:
1043
	for dn, attrs in result:
1053
		modules = udm_modules.objectType( None, ldap_connection, dn, attrs )
1044
		modules = udm_modules.objectType( None, ldap_connection, dn, attrs )
1054
   Bug #35273: fix exception raising
1045
   Bug #35273: fix exception raising
(-)a/ucs-4.0-0/management/univention-directory-manager-modules/modules/univention/admin/handlers/__init__.py (-4 / +4 lines)
 Lines 1830-1837   class simpleComputer( simpleLdap ): Link Here 
1830
										( 'zoneName', univention.admin.uldap.explodeDn( zoneDn, 1 )[ 0 ]),\
1830
										( 'zoneName', univention.admin.uldap.explodeDn( zoneDn, 1 )[ 0 ]),\
1831
										( 'aAAARecord', [ ip ]),\
1831
										( 'aAAARecord', [ ip ]),\
1832
										( 'relativeDomainName', [ name ])])
1832
										( 'relativeDomainName', [ name ])])
1833
				except univention.admin.uexceptions.objectExists, dn:
1833
				except univention.admin.uexceptions.objectExists as exc:
1834
					raise univention.admin.uexceptions.dnsAliasRecordExists, dn
1834
					raise univention.admin.uexceptions.dnsAliasRecordExists(str(exc))
1835
				# TODO: check if zoneDn really a forwardZone, maybe it is a container under a zone
1835
				# TODO: check if zoneDn really a forwardZone, maybe it is a container under a zone
1836
				zone = univention.admin.handlers.dns.forward_zone.object( self.co, self.lo, self.position, zoneDn )
1836
				zone = univention.admin.handlers.dns.forward_zone.object( self.co, self.lo, self.position, zoneDn )
1837
				zone.open()
1837
				zone.open()
 Lines 1856-1863   class simpleComputer( simpleLdap ): Link Here 
1856
										( 'zoneName', univention.admin.uldap.explodeDn( zoneDn, 1 )[ 0 ]),\
1856
										( 'zoneName', univention.admin.uldap.explodeDn( zoneDn, 1 )[ 0 ]),\
1857
										( 'ARecord', [ ip ]),\
1857
										( 'ARecord', [ ip ]),\
1858
										( 'relativeDomainName', [ name ])])
1858
										( 'relativeDomainName', [ name ])])
1859
				except univention.admin.uexceptions.objectExists, dn:
1859
				except univention.admin.uexceptions.objectExists as exc:
1860
					raise univention.admin.uexceptions.dnsAliasRecordExists, dn
1860
					raise univention.admin.uexceptions.dnsAliasRecordExists(str(exc))
1861
				# TODO: check if zoneDn really a forwardZone, maybe it is a container under a zone
1861
				# TODO: check if zoneDn really a forwardZone, maybe it is a container under a zone
1862
				zone = univention.admin.handlers.dns.forward_zone.object( self.co, self.lo, self.position, zoneDn )
1862
				zone = univention.admin.handlers.dns.forward_zone.object( self.co, self.lo, self.position, zoneDn )
1863
				zone.open()
1863
				zone.open()

Return to bug 35273