def changePriority(requestName, priority, wmstatUrl = None): """ Changes the priority that's stored in the workload. Takes the current priority stored in the workload and adds to it the input priority value. """ request = requestDetails(requestName) # change in Oracle newPrior = int(priority) ChangeState.changeRequestPriority(requestName, newPrior) # change in workload (spec) helper = loadWorkload(request) helper.data.request.priority = newPrior saveWorkload(helper, request['RequestWorkflow'], wmstatUrl) # change priority in CouchDB couchDb = Database(request["CouchWorkloadDBName"], request["CouchURL"]) fields = {"RequestPriority": newPrior} couchDb.updateDocument(requestName, "ReqMgr", "updaterequest", fields=fields) # push the change to the WorkQueue response = ProdManagement.getProdMgr(requestName) if response == [] or response[0] is None or response[0] == "": # Request must not be assigned yet, we are safe here return workqueue = WorkQueue.WorkQueue(response[0]) workqueue.updatePriority(requestName, priority) return
def changePriority(requestName, priority, wmstatUrl=None): """ Changes the priority that's stored in the workload. Takes the current priority stored in the workload and adds to it the input priority value. """ request = requestDetails(requestName) # change in Oracle newPrior = int(priority) ChangeState.changeRequestPriority(requestName, newPrior) # change in workload (spec) helper = loadWorkload(request) helper.data.request.priority = newPrior saveWorkload(helper, request['RequestWorkflow'], wmstatUrl) # change priority in CouchDB couchDb = Database(request["CouchWorkloadDBName"], request["CouchURL"]) fields = {"RequestPriority": newPrior} couchDb.updateDocument(requestName, "ReqMgr", "updaterequest", fields=fields, useBody=True) # push the change to the WorkQueue gqURL = "%s/workqueue" % request["CouchURL"] workqueue = WorkQueue.WorkQueue(gqURL) workqueue.updatePriority(requestName, priority) return
def abortRequest(requestName): """ Changes the state of the request to "aborted", and asks the work queue to cancel its work """ response = ProdManagement.getProdMgr(requestName) if response == [] or response[0] == None or response[0] == "": msg = "Cannot find ProdMgr for request %s\n " % requestName msg += "Request may not be known to WorkQueue. If aborted immediately after assignment, ignore this." raise cherrypy.HTTPError(400, msg) workqueue = WorkQueue.WorkQueue(response[0]) workqueue.cancelWorkflow(requestName) return