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