Exemple #1
0
 def Delete(self, dn):
     logger.querylog("Delete %s" % dn)
     try:
         self.execute(self.ldap.delete_s, dn.encode('utf8'))
         return True
     except Exception as e:
         self.raiseException(e, "Delete")
Exemple #2
0
 def Delete(self, dn):
   logger.querylog("Delete %s" % dn)
   try:
     self.execute(self.ldap.delete_s, dn.encode('utf8'))
     return True
   except Exception as e:
     self.raiseException(e, "Delete")
Exemple #3
0
    def _search(self, base, filter, scope, attrs):
        """
    _search(base, filter, scope)

    result:
    (dn, valueDict) utf-encoded str
    """
        def _searchAsync(base, scope, filter, attrs):
            msgid = self.ldap.search(base.encode('utf8'), scope,
                                     filter.encode('utf8'), map(str, attrs))
            response = self.ldap.result(msgid, 1, self.ldap.timeout)
            return response[1]

        err = None
        try:
            result = self.execute(_searchAsync, base, scope, filter, attrs)
        except (ldap.NO_SUCH_OBJECT, ldap.NO_SUCH_ATTRIBUTE,
                ldap.INSUFFICIENT_ACCESS) as e:
            result = None
            err = type(e).__name__

        logger.querylog(
            "%s %s base=%s, scope=%s" %
            (filter, str(attrs), base, ['BASE', 'ONE', 'SUB'][scope]), None,
            err)
        return result
Exemple #4
0
 def Rename(self, dn, newRdn, newParentDn=None):
   logger.querylog("Rename %s to %s %s" % (dn, newRdn, newParentDn))
   if newParentDn:
     newParentDn=newParentDn.encode('utf8')
   try:
     self.execute(self.ldap.rename_s, dn.encode('utf8'), newRdn.encode('utf8'), newParentDn)
     return True
   except Exception as e:
     self.raiseException(e, "Rename")
Exemple #5
0
 def Rename(self, dn, newRdn, newParentDn=None):
     logger.querylog("Rename %s to %s %s" % (dn, newRdn, newParentDn))
     if newParentDn:
         newParentDn = newParentDn.encode('utf8')
     try:
         self.execute(self.ldap.rename_s, dn.encode('utf8'),
                      newRdn.encode('utf8'), newParentDn)
         return True
     except Exception as e:
         self.raiseException(e, "Rename")
Exemple #6
0
 def ExecuteSet(self, cmd, args=None):
   frame=adm.StartWaiting()
   try:
     self.execute(cmd, args)
     self.wait("ExecuteSet")
     rowset=pgRowset(self)
     logger.querylog(self.cursor.query, result="%d rows" % rowset.GetRowcount())
     adm.StopWaiting(frame)
     return rowset
   except Exception as e:
     adm.StopWaiting(frame, e.error)
     raise e
Exemple #7
0
    def Add(self, dn, addList):
        mods = []
        addList = self._chkLst(addList)
        logger.querylog("Add %s: %s" % (dn, map(str, addList)))
        for attr in addList:
            mods.append((attr.name, attr.value))

        try:
            self.execute(self.ldap.add_s, dn.encode('utf8'), mods)
            return True
        except Exception as e:
            self.raiseException(e, "Add")
Exemple #8
0
  def Add(self, dn, addList):
    mods=[]
    addList=self._chkLst(addList)
    logger.querylog("Add %s: %s" % (dn, map(str, addList)))
    for attr in addList:
      mods.append( (attr.name, attr.value) )

    try:
      self.execute(self.ldap.add_s, dn.encode('utf8'), mods)
      return True
    except Exception as e:
      self.raiseException(e, "Add")
Exemple #9
0
 def ExecuteSet(self, cmd, args=None):
     frame = adm.StartWaiting()
     try:
         self.execute(cmd, args)
         self.wait("ExecuteSet")
         rowset = pgRowset(self)
         logger.querylog(self.cursor.query,
                         result="%d rows" % rowset.GetRowcount())
         adm.StopWaiting(frame)
         return rowset
     except Exception as e:
         adm.StopWaiting(frame, e.error)
         raise e
Exemple #10
0
 def Execute(self, cmd, args=None, spot=None):
   frame=adm.StartWaiting()
   try:
     self.execute(cmd, args)
     self.wait("Execute")
     adm.StopWaiting(frame)
   except Exception as e:
     adm.StopWaiting(frame, e)
     raise e
   rc=self.GetRowcount()
   if spot: spot += " "
   else: spot=""
     
   logger.querylog(self.cursor.query, result=spot+ xlt("%d rows") % rc)
   return rc
Exemple #11
0
    def Execute(self, cmd, args=None, spot=None):
        frame = adm.StartWaiting()
        try:
            self.execute(cmd, args)
            self.wait("Execute")
            adm.StopWaiting(frame)
        except Exception as e:
            adm.StopWaiting(frame, e)
            raise e
        rc = self.GetRowcount()
        if spot: spot += " "
        else: spot = ""

        logger.querylog(self.cursor.query, result=spot + xlt("%d rows") % rc)
        return rc
Exemple #12
0
    def ExecuteRow(self, cmd, args=None):
        frame = adm.StartWaiting()
        try:
            self.execute(cmd, args)
            self.wait("ExecuteRow")
            row = self.cursor.fetchone()
            adm.StopWaiting(frame)
        except Exception as e:
            adm.StopWaiting(frame, e)
            raise e

        if row:
            row = pgRow(self, row)
            logger.querylog(self.cursor.query, result=unicode(row))
            return row
        return None
Exemple #13
0
 def ExecuteRow(self, cmd, args=None):
   frame=adm.StartWaiting()
   try:
     self.execute(cmd, args)
     self.wait("ExecuteRow")
     row=self.cursor.fetchone()
     adm.StopWaiting(frame)
   except Exception as e:
     adm.StopWaiting(frame, e)
     raise e
   
   if row:
     row=pgRow(self, row)
     logger.querylog(self.cursor.query, result=unicode(row))
     return row
   return None
Exemple #14
0
  def Modify(self, dn, chgList, addList=None, delList=None):
    chgList=self._chkLst(chgList)
    addList=self._chkLst(addList)
    delList=self._chkLst(delList)
    logger.querylog("Modify %s: Chg %s, Add %s, Del %s" % (dn, map(str, chgList), map(str, addList), map(str, delList)))

    mods=[]
    for attr in delList:
      mods.append( (ldap.MOD_DELETE, attr.name, attr.value) )
    for attr in addList:
      mods.append( (ldap.MOD_ADD, attr.name, attr.value) )
    for attr in chgList:
      mods.append( (ldap.MOD_REPLACE, attr.name, attr.value) )

    try:
      self.execute(self.ldap.modify_s, dn.encode('utf8'), mods)
      return True
    except Exception as e:
      self.raiseException(e, "Modify")
Exemple #15
0
    def _handleException(self, exception):
        if self.cursor and self.cursor.query:
            cmd = self.cursor.query
        else:
            cmd = None

        exception.message = errlines = exception.message.decode('utf8')
        logger.querylog(cmd, error=errlines)

        if self.trapSqlException:
            self.lastError = errlines
            if self.pool:
                self.pool.lastError = errlines

        adm.StopWaiting(adm.mainframe)
        if self.conn and self.conn.closed:
            self.disconnect()
        if self.trapSqlException:
            raise SqlException(cmd, errlines)
        else:
            raise exception
Exemple #16
0
  def _handleException(self, exception):
    if self.cursor and self.cursor.query:
      cmd=self.cursor.query
    else:
      cmd=None

    exception.message=errlines=exception.message.decode('utf8')
    logger.querylog(cmd, error=errlines)

    if self.trapSqlException:
      self.lastError=errlines
      if self.pool:
        self.pool.lastError=errlines
        
    adm.StopWaiting(adm.mainframe)
    if self.conn and self.conn.closed:
      self.disconnect()
    if self.trapSqlException:
      raise SqlException(cmd, errlines)
    else:
      raise exception
Exemple #17
0
 def ExecuteSingle(self, cmd, args=None):
     frame = adm.StartWaiting()
     try:
         self.execute(cmd, args)
         self.wait("ExecuteSingle")
         try:
             row = self.cursor.fetchone()
         except Exception as _e:
             #print e
             row = None
         adm.StopWaiting(frame)
     except Exception as e:
         adm.StopWaiting(frame, e)
         raise e
     if row:
         result = row[0]
         logger.querylog(self.cursor.query, result="%s" % result)
         return result
     else:
         logger.querylog(self.cursor.query, result=xlt("no result"))
         return None
Exemple #18
0
    def Modify(self, dn, chgList, addList=None, delList=None):
        chgList = self._chkLst(chgList)
        addList = self._chkLst(addList)
        delList = self._chkLst(delList)
        logger.querylog(
            "Modify %s: Chg %s, Add %s, Del %s" %
            (dn, map(str, chgList), map(str, addList), map(str, delList)))

        mods = []
        for attr in delList:
            mods.append((ldap.MOD_DELETE, attr.name, attr.value))
        for attr in addList:
            mods.append((ldap.MOD_ADD, attr.name, attr.value))
        for attr in chgList:
            mods.append((ldap.MOD_REPLACE, attr.name, attr.value))

        try:
            self.execute(self.ldap.modify_s, dn.encode('utf8'), mods)
            return True
        except Exception as e:
            self.raiseException(e, "Modify")
Exemple #19
0
 def ExecuteSingle(self, cmd, args=None):
   frame=adm.StartWaiting()
   try:
     self.execute(cmd, args)
     self.wait("ExecuteSingle")
     try:
       row=self.cursor.fetchone()
     except Exception as _e:
       #print e
       row=None
     adm.StopWaiting(frame)
   except Exception as e:
     adm.StopWaiting(frame, e)
     raise e
   if row:
     result=row[0]
     logger.querylog(self.cursor.query, result="%s" % result)
     return result
   else:
     logger.querylog(self.cursor.query, result=xlt("no result"))
     return None
Exemple #20
0
  def _search(self, base, filter, scope, attrs):
    """
    _search(base, filter, scope)

    result:
    (dn, valueDict) utf-encoded str
    """

    def _searchAsync(base, scope, filter, attrs):
      msgid=self.ldap.search(base.encode('utf8'), scope, filter.encode('utf8'), map(str, attrs))
      response=self.ldap.result(msgid, 1, self.ldap.timeout)
      return response[1]
    
    err=None
    try:
      result=self.execute(_searchAsync, base, scope, filter, attrs)
    except (ldap.NO_SUCH_OBJECT,ldap.NO_SUCH_ATTRIBUTE, ldap.INSUFFICIENT_ACCESS) as e:
      result=None
      err=type(e).__name__
      
    logger.querylog("%s %s base=%s, scope=%s" % (filter, str(attrs), base, ['BASE','ONE','SUB'][scope]), None, err)
    return result
Exemple #21
0
 def __init__(self, sql, error):
   logger.querylog(sql, error=error)
   self.error=error
   self.sql=sql
   Exception.__init__(self, sql, error)
Exemple #22
0
 def __init__(self, sql, error):
     logger.querylog(sql, error=error)
     self.error = error
     self.sql = sql
     Exception.__init__(self, sql, error)