Source code for ldapper.exceptions

[docs]class LdapperError(Exception): """Base class for exceptions in this module. A msg MUST be provided. """ def __str__(self): return '(%s) %s' % (self.__class__.__name__, self.msg)
[docs]class AddDNFailed(LdapperError): """Exception raised when we failed to add a DN to the LDAP Attributes: dn -- DN that failed to be added msg -- explanation of the error """ def __init__(self, dn): self.dn = dn self.msg = 'Unable to add the DN %s to LDAP' % dn
[docs]class ArgumentError(LdapperError): """Exception raised when the arguments to a function are invalid Attributes: msg -- explanation of the error """ def __init__(self, msg): self.msg = msg
[docs]class DuplicateValue(LdapperError): """Tried to write a duplicate value to the LDAP Attributes: attr -- Attribute name value -- Attribute value """ def __init__(self, attr, value): self.attr = attr self.original_value = value if isinstance(value, list): dups = [x for x in value if value.count(x) >= 2] self.offending_values = list(set(dups)) else: # I'm not sure when something other than a list could have a # duplicate value, but just in case... self.offending_values = value self.msg = 'Attribute "%s" has duplicate value(s): %s' % ( attr, self.offending_values)
[docs]class NoSuchAttrValue(LdapperError): """Exception raised when a DN does not have a given value. Attributes: dn -- the DN that did not exist attribute -- the attribute that is not present value -- the value that the attribute was expected to have msg -- explanation of the error """ def __init__(self, dn, attribute, value): self.dn = dn self.attribute = attribute self.value = value self.msg = 'DN %s does not have %s %s' % (dn, attribute, value)
[docs]class NoSuchDN(LdapperError): """Exception raised when a DN does not exist. Attributes: dn -- the DN that did not exist msg -- explanation of the error """ def __init__(self, dn): self.dn = dn self.msg = 'DN %s does not exist.' % dn
[docs]class InvalidDN(LdapperError): """Exception raised when a DN does not meet RFC 4514 syntax Attributes: dn -- the invalid dn msg -- explanation of the error """ def __init__(self, obj, name, dn): self.obj = obj self.name = name self.dn = dn if self.obj and self.name: self.msg = '%s %s has an invalid dn format: %s' % (obj, name, dn) else: self.msg = 'Invalid DN format: %s' % dn