Пример #1
0
  def updateRequest( self, requestName, requestString ):
    """ update request given its name and xml serilised string

    :param str requestName: Requests.RequestName
    :param str requestString: request serilised to xml
    """
    request = RequestContainer( request = requestString )
    requestTypes = ['transfer', 'register', 'removal', 'stage', 'diset', 'logupload']
    requestID = request.getRequestID()['Value']
    updateRequestFailed = False
    for requestType in requestTypes:
      res = request.getNumSubRequests( requestType )
      if res['OK']:
        numRequests = res['Value']
        for ind in range( numRequests ):
          res = request.getSubRequestAttributes( ind, requestType )
          if res['OK']:
            subRequestDict = res['Value']
            if 'SubRequestID' in subRequestDict:
              subRequestID = res['Value']['SubRequestID']
              res = self.__updateSubRequestFiles( ind, requestType, subRequestID, request )
              if res['OK']:
                if request.isSubRequestDone( ind, requestType )['Value']:
                  res = self._setSubRequestAttribute( requestID, subRequestID, 'Status', 'Done' )
                else:
                  res = self._setSubRequestAttribute( requestID, subRequestID, 'Status', 'Waiting' )
                if not res['OK']:
                  updateRequestFailed = True
              else:
                updateRequestFailed = True
              if "Error" in subRequestDict:
                result = self._setSubRequestAttribute( requestID, subRequestID, 
                                                       'Error', subRequestDict['Error'] )
                if not result['OK']:
                  updateRequestFailed = True
            else:
              updateRequestFailed = True
          else:
            updateRequestFailed = True
      else:
        updateRequestFailed = True
    if updateRequestFailed:
      errStr = 'Failed to update request %s.' % requestID
      return S_ERROR( errStr )
    else:
      requestStatus = self.getRequestStatus( requestID )
      if not requestStatus["OK"]:
        return requestStatus
      requestStatus = requestStatus["Value"]
      if requestStatus["SubRequestStatus"] not in ( "Waiting", "Assigned" ):
        res = self._setRequestAttribute( requestID, 'Status', 'Done' )
        if not res['OK']:
          errStr = 'Failed to update request status of %s to Done.' % requestID
          return S_ERROR( errStr )

      return S_OK()
Пример #2
0
 def updateRequest(self, requestName, requestString):
     request = RequestContainer(request=requestString)
     requestTypes = [
         'transfer', 'register', 'removal', 'stage', 'diset', 'logupload'
     ]
     requestID = request.getRequestID()['Value']
     updateRequestFailed = False
     for requestType in requestTypes:
         res = request.getNumSubRequests(requestType)
         if res['OK']:
             numRequests = res['Value']
             for ind in range(numRequests):
                 res = request.getSubRequestAttributes(ind, requestType)
                 if res['OK']:
                     subRequestDict = res['Value']
                     if 'SubRequestID' in subRequestDict:
                         subRequestID = res['Value']['SubRequestID']
                         res = self.__updateSubRequestFiles(
                             ind, requestType, subRequestID, request)
                         if res['OK']:
                             if request.isSubRequestDone(
                                     ind, requestType)['Value']:
                                 res = self._setSubRequestAttribute(
                                     requestID, subRequestID, 'Status',
                                     'Done')
                             else:
                                 res = self._setSubRequestAttribute(
                                     requestID, subRequestID, 'Status',
                                     'Waiting')
                             if not res['OK']:
                                 updateRequestFailed = True
                         else:
                             updateRequestFailed = True
                         if "Error" in subRequestDict:
                             result = self._setSubRequestAttribute(
                                 requestID, subRequestID, 'Error',
                                 subRequestDict['Error'])
                             if not result['OK']:
                                 updateRequestFailed = True
                     else:
                         updateRequestFailed = True
                 else:
                     updateRequestFailed = True
         else:
             updateRequestFailed = True
     if updateRequestFailed:
         errStr = 'Failed to update request %s.' % requestID
         return S_ERROR(errStr)
     else:
         if request.isRequestDone()['Value']:
             res = self._setRequestAttribute(requestID, 'Status', 'Done')
             if not res['OK']:
                 errStr = 'Failed to update request status of %s to Done.' % requestID
                 return S_ERROR(errStr)
         return S_OK()
Пример #3
0
 def updateRequest( self, requestName, requestString ):
   request = RequestContainer( request = requestString )
   requestTypes = ['transfer', 'register', 'removal', 'stage', 'diset', 'logupload']
   requestID = request.getRequestID()['Value']
   updateRequestFailed = False
   for requestType in requestTypes:
     res = request.getNumSubRequests( requestType )
     if res['OK']:
       numRequests = res['Value']
       for ind in range( numRequests ):
         res = request.getSubRequestAttributes( ind, requestType )
         if res['OK']:
           subRequestDict = res['Value']
           if 'SubRequestID' in subRequestDict:
             subRequestID = res['Value']['SubRequestID']
             res = self.__updateSubRequestFiles( ind, requestType, subRequestID, request )
             if res['OK']:
               if request.isSubRequestDone( ind, requestType )['Value']:
                 res = self._setSubRequestAttribute( requestID, subRequestID, 'Status', 'Done' )
               else:
                 res = self._setSubRequestAttribute( requestID, subRequestID, 'Status', 'Waiting' )
               if not res['OK']:
                 updateRequestFailed = True
             else:
               updateRequestFailed = True
             if "Error" in subRequestDict:
               result = self._setSubRequestAttribute( requestID, subRequestID, 'Error', subRequestDict['Error'] )
               if not result['OK']:
                 updateRequestFailed = True
           else:
             updateRequestFailed = True
         else:
           updateRequestFailed = True
     else:
       updateRequestFailed = True
   if updateRequestFailed:
     errStr = 'Failed to update request %s.' % requestID
     return S_ERROR( errStr )
   else:
     if request.isRequestDone()['Value']:
       res = self._setRequestAttribute( requestID, 'Status', 'Done' )
       if not res['OK']:
         errStr = 'Failed to update request status of %s to Done.' % requestID
         return S_ERROR( errStr )
     return S_OK()