Exemple #1
0
def getRequest(requestId, reverseTypes=None, reverseStatus=None):
    """
    _getRequest_


    retrieve a request based on the request id,
    return a ReqMgr.DataStructs.Request instance containing
    the information

    """
    factory = DBConnect.getConnection()
    reqGet = factory(classname = "Request.Get")
    reqData = reqGet.execute(requestId)
    requestName = reqData['request_name']

    if not reverseTypes or not reverseStatus:
        reverseTypes, reverseStatus = reverseLookups()

    getGroup = factory(classname = "Group.GetGroupFromAssoc")
    groupData = getGroup.execute(reqData['requestor_group_id'])

    getUser = factory(classname = "Requestor.GetUserFromAssoc")
    userData = getUser.execute(reqData['requestor_group_id'])
    request = Request()
    request["ReqMgrRequestID"] = reqData['request_id']
    request["RequestName"] = requestName
    request["RequestType"] = reverseTypes[reqData['request_type']]
    request["RequestStatus"] = reverseStatus[reqData['request_status']]
    request["RequestPriority"] = reqData['request_priority']
    request["ReqMgrRequestBasePriority"] = reqData['request_priority']
    request["RequestWorkflow"] = reqData['workflow']
    request["RequestSizeEvents"] = reqData['request_size_events']
    request["RequestSizeFiles"] = reqData['request_size_files']

    request["Group"] = groupData['group_name']
    request["ReqMgrGroupID"] = groupData['group_id']
    request["ReqMgrGroupBasePriority"] = \
                        groupData['group_base_priority']
    request["Requestor"] = userData['requestor_hn_name']
    request["ReqMgrRequestorID"] = userData['requestor_id']
    request["ReqMgrRequestorBasePriority"] = \
                                userData['requestor_base_priority']
    request["RequestPriority"] = \
      request['RequestPriority'] + groupData['group_base_priority']
    request["RequestPriority"] = \
      request['RequestPriority'] + userData['requestor_base_priority']

    updates = ChangeState.getProgress(requestName)
    request['percent_complete'], request['percent_success'] = percentages(updates)
    sqDeps = factory(classname = "Software.GetByAssoc")
    swVers = sqDeps.execute(requestId)
    request['SoftwareVersions'] = swVers.values()
    getDatasetsIn = factory(classname = "Datasets.GetInput")
    getDatasetsOut = factory(classname = "Datasets.GetOutput")
    datasetsIn = getDatasetsIn.execute(requestId)
    datasetsOut = getDatasetsOut.execute(requestId)
    request['InputDatasetTypes'] = datasetsIn
    request['InputDatasets'] = datasetsIn.keys()
    request['OutputDatasets'] = datasetsOut
    return request
Exemple #2
0
def getRequestDetails(requestName):
    """ Return a dict with the intimate details of the request """
    requestId = requestID(requestName)
    request = getRequest(requestId)
    request['Assignments'] = getAssignmentsByName(requestName)
    request['RequestMessages'] = ChangeState.getMessages(requestName)
    request['RequestUpdates'] = ChangeState.getProgress(requestName)
    return request
Exemple #3
0
def getRequestDetails(requestName):
    """ Return a dict with the intimate details of the request """
    requestId = requestID(requestName)
    request = getRequest(requestId)
    request['Assignments'] = getAssignmentsByName(requestName)
    request['RequestMessages'] = ChangeState.getMessages(requestName)
    request['RequestUpdates'] = ChangeState.getProgress(requestName)
    return request
Exemple #4
0
def getRequestDetails(requestName):
    """ Return a dict with the intimate details of the request """
    request = getRequestByName(requestName)
    request['Assignments'] = getAssignmentsByName(requestName)
    # show the status and messages
    request['RequestMessages'] = ChangeState.getMessages(requestName)
    # updates
    request['RequestUpdates'] = ChangeState.getProgress(requestName)
    # it returns a datetime object, which I can't pass through
    request['percent_complete'] = 0
    request['percent_success'] = 0
    for update in request['RequestUpdates']:
        update['update_time'] = str(update['update_time'])
        if update.has_key('percent_complete'):
            request['percent_complete'] = update['percent_complete']
        if update.has_key('percent_success'):
            request['percent_success'] = update['percent_success']
    return request
Exemple #5
0
def getRequestDetails(requestName):
    """ Return a dict with the intimate details of the request """
    request = getRequestByName(requestName)
    request['Assignments'] = getAssignmentsByName(requestName)
    # show the status and messages
    request['RequestMessages'] = ChangeState.getMessages(requestName)
    # updates
    request['RequestUpdates'] = ChangeState.getProgress(requestName)
    # it returns a datetime object, which I can't pass through
    request['percent_complete'] = 0
    request['percent_success'] = 0
    for update in request['RequestUpdates']:
        update['update_time'] = str(update['update_time'])
        if update.has_key('percent_complete'):
            request['percent_complete'] = update['percent_complete']
        if update.has_key('percent_success'):
            request['percent_success'] = update['percent_success']
    return request
Exemple #6
0
def getRequest(requestId, reverseTypes=None, reverseStatus=None):
    """
    _getRequest_


    retrieve a request based on the request id,
    return a ReqMgr.DataStructs.Request instance containing
    the information

    """
    factory = DBConnect.getConnection()
    reqGet = factory(classname="Request.Get")
    reqData = reqGet.execute(requestId)
    requestName = reqData['request_name']

    if not reverseTypes or not reverseStatus:
        reverseTypes, reverseStatus = reverseLookups()

    getGroup = factory(classname="Group.GetGroupFromAssoc")
    groupData = getGroup.execute(reqData['requestor_group_id'])

    getUser = factory(classname="Requestor.GetUserFromAssoc")
    userData = getUser.execute(reqData['requestor_group_id'])
    request = Request()
    request["ReqMgrRequestID"] = reqData['request_id']
    request["RequestName"] = requestName
    request["RequestType"] = reverseTypes[reqData['request_type']]
    request["RequestStatus"] = reverseStatus[reqData['request_status']]
    request["RequestPriority"] = reqData['request_priority']
    request["ReqMgrRequestBasePriority"] = reqData['request_priority']
    request["RequestWorkflow"] = reqData['workflow']
    request["RequestNumEvents"] = reqData['request_num_events']
    request["RequestSizeFiles"] = reqData['request_size_files']
    request["RequestEventSize"] = reqData['request_event_size']

    request["Group"] = groupData['group_name']
    request["ReqMgrGroupID"] = groupData['group_id']
    request["ReqMgrGroupBasePriority"] = \
                        groupData['group_base_priority']
    request["Requestor"] = userData['requestor_hn_name']
    request["ReqMgrRequestorID"] = userData['requestor_id']
    request["ReqMgrRequestorBasePriority"] = \
                                userData['requestor_base_priority']
    request["RequestPriority"] = \
      request['RequestPriority'] + groupData['group_base_priority']
    request["RequestPriority"] = \
      request['RequestPriority'] + userData['requestor_base_priority']

    updates = ChangeState.getProgress(requestName)
    request['percent_complete'], request['percent_success'] = percentages(
        updates)
    sqDeps = factory(classname="Software.GetByAssoc")
    swVers = sqDeps.execute(requestId)
    if swVers == {}:
        request['SoftwareVersions'] = ['DEPRECATED']
    else:
        request['SoftwareVersions'] = swVers.values()

    getDatasetsIn = factory(classname="Datasets.GetInput")
    getDatasetsOut = factory(classname="Datasets.GetOutput")
    datasetsIn = getDatasetsIn.execute(requestId)
    datasetsOut = getDatasetsOut.execute(requestId)
    request['InputDatasetTypes'] = datasetsIn
    request['InputDatasets'] = datasetsIn.keys()
    request['OutputDatasets'] = datasetsOut
    return request
Exemple #7
0
def getRequest(requestId, reverseTypes=None, reverseStatus=None):
    """
    _getRequest_


    retrieve a request based on the request id,
    return a ReqMgr.DataStructs.Request instance containing
    the information

    """
    factory = DBConnect.getConnection()
    reqGet = factory(classname = "Request.Get")
    reqData = reqGet.execute(requestId)
    requestName = reqData['request_name']

    if not reverseTypes or not reverseStatus:
        reverseTypes, reverseStatus = reverseLookups()

    getGroup = factory(classname = "Group.GetGroupFromAssoc")
    groupData = getGroup.execute(reqData['requestor_group_id'])

    getUser = factory(classname = "Requestor.GetUserFromAssoc")
    userData = getUser.execute(reqData['requestor_group_id'])
    request = Request()
    request["RequestName"] = requestName
    request["RequestType"] = reverseTypes[reqData['request_type']]
    request["RequestStatus"] = reverseStatus[reqData['request_status']]
    request["RequestPriority"] = reqData['request_priority']
    request["RequestWorkflow"] = reqData['workflow']
    request["RequestNumEvents"] = reqData['request_num_events']
    request["RequestSizeFiles"] = reqData['request_size_files']
    # there used to be RequestEventSize argument, but then SizePerEvent
    # got introduce and got adopted so this is replacing it, presenting
    # this nomenclature inconsistency on Oracle level
    request["SizePerEvent"] = reqData['request_event_size']
    request["PrepID"] = reqData['prep_id']
    
    request["Group"] = groupData['group_name']
    request["Requestor"] = userData['requestor_hn_name']

    updates = ChangeState.getProgress(requestName)
    request['percent_complete'], request['percent_success'] = percentages(updates)
    sqDeps = factory(classname = "Software.GetByAssoc")
    swVers = sqDeps.execute(requestId)
    if swVers == {}:
        request['SoftwareVersions'] = ['DEPRECATED']
    else:
        request['SoftwareVersions'] = swVers.values()

    getDatasetsIn = factory(classname = "Datasets.GetInput")
    getDatasetsOut = factory(classname = "Datasets.GetOutput")
    datasetsIn = getDatasetsIn.execute(requestId)
    datasetsOut = getDatasetsOut.execute(requestId)
    request['InputDatasetTypes'] = datasetsIn
    request['InputDatasets'] = datasetsIn.keys()
    request['OutputDatasets'] = datasetsOut
    
    # fetch AcquisitionEra from spec, it's not stored in Oracle at all
    import WMCore.HTTPFrontEnd.RequestManager.ReqMgrWebTools as Utilities
    try:
        helper = Utilities.loadWorkload(request)
        request["AcquisitionEra"] = str(helper.getAcquisitionEra())
        # add ProcessingVersion and ProcessingString in the response (#4561)
        request["ProcessingVersion"] = str(helper.getProcessingVersion())
        request["ProcessingString"] = str(helper.getProcessingString())
    except Exception, ex:
        logging.error("Could not check workload for %s, reason: %s" %
                      (request["RequestName"], ex))
Exemple #8
0
def getRequest(requestId, reverseTypes=None, reverseStatus=None):
    """
    _getRequest_


    retrieve a request based on the request id,
    return a ReqMgr.DataStructs.Request instance containing
    the information

    """
    factory = DBConnect.getConnection()
    reqGet = factory(classname="Request.Get")
    reqData = reqGet.execute(requestId)
    requestName = reqData['request_name']

    if not reverseTypes or not reverseStatus:
        reverseTypes, reverseStatus = reverseLookups()

    getGroup = factory(classname="Group.GetGroupFromAssoc")
    groupData = getGroup.execute(reqData['requestor_group_id'])

    getUser = factory(classname="Requestor.GetUserFromAssoc")
    userData = getUser.execute(reqData['requestor_group_id'])
    request = Request()
    request["RequestName"] = requestName
    request["RequestType"] = reverseTypes[reqData['request_type']]
    request["RequestStatus"] = reverseStatus[reqData['request_status']]
    request["RequestPriority"] = reqData['request_priority']
    request["RequestWorkflow"] = reqData['workflow']
    request["RequestNumEvents"] = reqData['request_num_events']
    request["RequestSizeFiles"] = reqData['request_size_files']
    # there used to be RequestEventSize argument, but then SizePerEvent
    # got introduce and got adopted so this is replacing it, presenting
    # this nomenclature inconsistency on Oracle level
    request["SizePerEvent"] = reqData['request_event_size']
    request["PrepID"] = reqData['prep_id']

    request["Group"] = groupData['group_name']
    request["Requestor"] = userData['requestor_hn_name']

    updates = ChangeState.getProgress(requestName)
    request['percent_complete'], request['percent_success'] = percentages(
        updates)
    sqDeps = factory(classname="Software.GetByAssoc")
    swVers = sqDeps.execute(requestId)
    if swVers == {}:
        request['SoftwareVersions'] = ['DEPRECATED']
    else:
        request['SoftwareVersions'] = swVers.values()

    getDatasetsIn = factory(classname="Datasets.GetInput")
    getDatasetsOut = factory(classname="Datasets.GetOutput")
    datasetsIn = getDatasetsIn.execute(requestId)
    datasetsOut = getDatasetsOut.execute(requestId)
    request['InputDatasetTypes'] = datasetsIn
    request['InputDatasets'] = datasetsIn.keys()
    request['OutputDatasets'] = datasetsOut

    # fetch AcquisitionEra from spec, it's not stored in Oracle at all
    import WMCore.HTTPFrontEnd.RequestManager.ReqMgrWebTools as Utilities
    try:
        helper = Utilities.loadWorkload(request)
        request["AcquisitionEra"] = str(helper.getAcquisitionEra())
        # add ProcessingVersion and ProcessingString in the response (#4561)
        request["ProcessingVersion"] = str(helper.getProcessingVersion())
        request["ProcessingString"] = str(helper.getProcessingString())
    except Exception, ex:
        logging.error("Could not check workload for %s, reason: %s" %
                      (request["RequestName"], ex))