예제 #1
0
 def _update( self, cmd, conn=False ):
   """ Update MPIJob Database
   """ 
   print "DB4"
   start = Time.time()
   ret = DB._update( self, cmd, conn )
   if DEBUG:
     print >> debugFile, Time.time() - start, cmd.replace('\n','')
     debugFile.flush()
   print ret
   return ret
예제 #2
0
파일: MPIJobDB.py 프로젝트: hamar/EELADIRAC
 def _update(self, cmd, conn=False):
     """ Update MPIJob Database
 """
     print "DB4"
     start = Time.time()
     ret = DB._update(self, cmd, conn)
     if DEBUG:
         print >> debugFile, Time.time() - start, cmd.replace('\n', '')
         debugFile.flush()
     print ret
     return ret
예제 #3
0
 def _query( self, cmd, conn=False ):
   """ Make queries to MPIJob DB
   """
   print "DB3"
   start = Time.time()
   ret = DB._query( self, cmd, conn )
   if DEBUG:
     print >> debugFile, Time.time() - start, cmd.replace('\n','')
     debugFile.flush()
   print ret
   return ret
예제 #4
0
파일: MPIJobDB.py 프로젝트: hamar/EELADIRAC
 def _query(self, cmd, conn=False):
     """ Make queries to MPIJob DB
 """
     print "DB3"
     start = Time.time()
     ret = DB._query(self, cmd, conn)
     if DEBUG:
         print >> debugFile, Time.time() - start, cmd.replace('\n', '')
         debugFile.flush()
     print ret
     return ret
예제 #5
0
 def updateRing(self,updDict):
   """ Update Ring port and status attributes after master of MPICH2 starts
       Inputs: {Port, RingID, JobID}
       Output: {RingID, Status, JobID}
   """ 
   print "DB15"
   port = updDict['Port']
   ringID = updDict['RingID']
   jobID = updDict['JobID']
   status = 'RingInit'
   timeUpd = Time.time()
   req = "UPDATE Rings SET Port=%s, LastTimeUpdate=UTC_TIMESTAMP(), Status=\'%s\' WHERE RingID=%s AND JobID=%s" % (port,status,ringID,jobID)
   result = self._query(req)
   if not result['OK']:
     print "DB16"
     self.log.info ('UPDATE PORT ERROR')
     return S_OK(result)
   dict = {'RingID': ringID, 'JobID': jobID}
   result = self.selectRings(dict)
   values = result['Value']
   result ={}
   keys = ['RingID', 'Status', 'JobID']
   for x,y,t in values:
         z = int(str(x).strip('L'))
         v = int(str(t).strip('L'))
         result.setdefault('RingID',z)
         result.setdefault('Status',y)
         result.setdefault('JobID',v)
   print result
   return S_OK(result)
예제 #6
0
  def updateProcessors(self, updDict):
    """ Update number of ring processors than are part of particular ring. 
        Input: {RingID, JobID}
        Output:{RingID}
    """ 
    print "DB23"
    ringID = updDict['RingID']
    jobID = updDict['JobID']
    req = ('SELECT NumberOfProcessorsRing, NumberOfProcessorsJob FROM Rings WHERE RingID=%s AND JobID=%s') % (ringID,jobID)
    result = self._query(req)
    if not result['OK']:
      print "DB24"
      return S_OK(result)
    value ={}
    temp = result['Value']
    for x,y in temp:
      v = temp[0]
      z = int(str(x).strip('L'))
      value.setdefault('numProce',z)
      value.setdefault('numProceJ',y)

    numProc=int(value['numProce'])+1
    timeUpd = Time.time()
    cmd = 'UPDATE Rings SET NumberOfProcessorsRing=%s, LastTimeUpdate=UTC_TIMESTAMP() WHERE RingID=%s AND JobID=%s' % (numProc, ringID,jobID)
    result = self._update(cmd)
    print "RESULT SELF UPDATE", result
    if not result['OK']:
      print "Result no OK", result
      print "DB25"
      return S_ERROR(result['Message'])
    matchDict = {'RingID':ringID}
    result = self.selectRing(matchDict)
    #result = ringID
    print "VH >>>>>>>>>>>>>  ELIMINE", result
    return S_OK(result)
예제 #7
0
파일: MPIJobDB.py 프로젝트: hamar/EELADIRAC
 def updateRing(self, updDict):
     """ Update Ring port and status attributes after master of MPICH2 starts
     Inputs: {Port, RingID, JobID}
     Output: {RingID, Status, JobID}
 """
     print "DB15"
     port = updDict['Port']
     ringID = updDict['RingID']
     jobID = updDict['JobID']
     status = 'RingInit'
     timeUpd = Time.time()
     req = "UPDATE Rings SET Port=%s, LastTimeUpdate=UTC_TIMESTAMP(), Status=\'%s\' WHERE RingID=%s AND JobID=%s" % (
         port, status, ringID, jobID)
     result = self._query(req)
     if not result['OK']:
         print "DB16"
         self.log.info('UPDATE PORT ERROR')
         return S_OK(result)
     dict = {'RingID': ringID, 'JobID': jobID}
     result = self.selectRings(dict)
     values = result['Value']
     result = {}
     keys = ['RingID', 'Status', 'JobID']
     for x, y, t in values:
         z = int(str(x).strip('L'))
         v = int(str(t).strip('L'))
         result.setdefault('RingID', z)
         result.setdefault('Status', y)
         result.setdefault('JobID', v)
     print result
     return S_OK(result)
예제 #8
0
파일: MPIJobDB.py 프로젝트: hamar/EELADIRAC
    def updateProcessors(self, updDict):
        """ Update number of ring processors than are part of particular ring. 
        Input: {RingID, JobID}
        Output:{RingID}
    """
        print "DB23"
        ringID = updDict['RingID']
        jobID = updDict['JobID']
        req = (
            'SELECT NumberOfProcessorsRing, NumberOfProcessorsJob FROM Rings WHERE RingID=%s AND JobID=%s'
        ) % (ringID, jobID)
        result = self._query(req)
        if not result['OK']:
            print "DB24"
            return S_OK(result)
        value = {}
        temp = result['Value']
        for x, y in temp:
            v = temp[0]
            z = int(str(x).strip('L'))
            value.setdefault('numProce', z)
            value.setdefault('numProceJ', y)

        numProc = int(value['numProce']) + 1
        timeUpd = Time.time()
        cmd = 'UPDATE Rings SET NumberOfProcessorsRing=%s, LastTimeUpdate=UTC_TIMESTAMP() WHERE RingID=%s AND JobID=%s' % (
            numProc, ringID, jobID)
        result = self._update(cmd)
        print "RESULT SELF UPDATE", result
        if not result['OK']:
            print "Result no OK", result
            print "DB25"
            return S_ERROR(result['Message'])
        matchDict = {'RingID': ringID}
        result = self.selectRing(matchDict)
        #result = ringID
        print "VH >>>>>>>>>>>>>  ELIMINE", result
        return S_OK(result)