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
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
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
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
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)
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)
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)
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)