class LDAP(TestObject): def __init__(self, handler=None): super(self.__class__, self).__init__(handler) self._name = "LDAP" self.freenas_ldap = FreeNAS_LDAP(flags=FLAGS_DBINIT) def Enabled(self): return ldap_enabled() def Test(self): try: self.freenas_ldap.open() if self.freenas_ldap._handle.whoami_s(): return self._handler.Pass("LDAP") else: return self._handler.Fail("LDAP", "Unable to query the server.") except LDAPError as e: # LDAPError is dumb, it returns a list with one element for goodness knows what reason e = e[0] error = "" if 'desc' in e: error = e['desc'] if 'info' in e: error = "{0}, {1}".format(error, e['info']) else: # LDAPError may have desc and info or just info so making a case that handles just info if 'info' in e: error = e['info'] else: error = str(e) return self._handler.Fail("LDAP", error) except Exception as e: return self._handler.Fail("LDAP", str(e))
def ldap_status(self): ret = False try: f = FreeNAS_LDAP(flags=FLAGS_DBINIT) f.open() if f.isOpen(): ret = True f.close() except: pass return ret
class LDAP(TestObject): def __init__(self, handler=None): super(self.__class__, self).__init__(handler) self._name = "LDAP" self.freenas_ldap = FreeNAS_LDAP(flags=FLAGS_DBINIT) def Enabled(self): return ldap_enabled() def Test(self): try: self.freenas_ldap.open() if self.freenas_ldap._handle.whoami_s(): return self._handler.Pass("LDAP") else: return self._handler.Fail("LDAP", "Unable to query the server.") except Exception as e: return self._handler.Fail("LDAP", str(e))
class LDAP(TestObject): def __init__(self, handler=None): super(self.__class__, self).__init__(handler) self._name = "LDAP" self.freenas_ldap = FreeNAS_LDAP(flags=FLAGS_DBINIT) def Enabled(self): return ldap_enabled() def Test(self): try: self.freenas_ldap.open() if self.freenas_ldap._handle.whoami_s(): return self._handler.Pass("LDAP") else: return self._handler.Fail("LDAP", "Unable to query the server.") except LDAPError as e: # LDAPError is dumb, it returns a list with one element for goodness knows what reason e = e[0] error = [] desc = e.get('desc') info = e.get('info') if desc: error.append(desc) if info: error.append(info) if error: error = ', '.join(error) else: error = str(e) return self._handler.Fail("LDAP", error) except Exception as e: return self._handler.Fail("LDAP", str(e))