DIRAC.RequestManagementSystem.Client.Request.Request.JobID

Here are the examples of the python api DIRAC.RequestManagementSystem.Client.Request.Request.JobID taken from open source projects. By voting up you can indicate which examples are most useful and appropriate.

2 Examples 7

Example 1

Project: DIRAC Source File: RequestDB.py
  def getRequestIDsForJobs( self, jobIDs ):
    """ read request ids for jobs given jobIDs

    :param list jobIDs: list of jobIDs
    """
    self.log.debug( "getRequestIDsForJobs: got %s jobIDs to check" % str( jobIDs ) )
    if not jobIDs:
      return S_ERROR( "Must provide jobID list as argument." )
    if isinstance( jobIDs,( long, int ) ):
      jobIDs = [ jobIDs ]
    jobIDs = set( jobIDs )

    reqDict = { "Successful": {}, "Failed": {} }

    session = self.DBSession()

    try:
      ret = session.query( Request.JobID, Request.RequestID )\
                   .filter( Request.JobID.in_( jobIDs ) )\
                  .all()

      reqDict['Successful'] = dict( ( jobId, reqID ) for jobId, reqID in ret )
      reqDict['Failed'] = dict( (jobid, 'Request not found') for jobid in jobIDs - set(reqDict['Successful']))
    except Exception as e:
      self.log.exception( "getRequestIDsForJobs: unexpected exception", lException = e )
      return S_ERROR( "getRequestIDsForJobs: unexpected exception : %s" % e )
    finally:
      session.close()

    return S_OK( reqDict )

Example 2

Project: DIRAC Source File: RequestDB.py
  def readRequestsForJobs( self, jobIDs = None ):
    """ read request for jobs

    :param list jobIDs: list of JobIDs
    :return: S_OK( "Successful" : { jobID1 : Request, jobID2: Request, ... }
                   "Failed" : { jobID3: "error message", ... } )
    """
    self.log.debug( "readRequestForJobs: got %s jobIDs to check" % str( jobIDs ) )
    if not jobIDs:
      return S_ERROR( "Must provide jobID list as argument." )
    if isinstance( jobIDs, ( long, int ) ):
      jobIDs = [ jobIDs ]
    jobIDs = set( jobIDs )

    reqDict = { "Successful": {}, "Failed": {} }

    # expire_on_commit is set to False so that we can still use the object after we close the session
    session = self.DBSession( expire_on_commit = False )

    try:
      ret = session.query( Request.JobID, Request )\
                   .options( joinedload_all( '__operations__.__files__' ) )\
                   .filter( Request.JobID.in_( jobIDs ) ).all()

      reqDict['Successful'] = dict( ( jobId, reqObj ) for jobId, reqObj in ret )

      reqDict['Failed'] = dict( ( jobid, 'Request not found' ) for jobid in jobIDs - set( reqDict['Successful'] ) )
      session.expunge_all()
    except Exception as e:
      self.log.exception( "readRequestsForJobs: unexpected exception", lException = e )
      return S_ERROR( "readRequestsForJobs: unexpected exception : %s" % e )
    finally:
      session.close()

    return S_OK( reqDict )