def _handleNoStatusUpdate(self, workload, request_args, dn): """ For no-status update, we only support the following parameters: 1. RequestPriority 2. Global workqueue statistics, while acquiring a workflow """ if 'RequestPriority' in request_args: # Yes, we completely ignore any other arguments posted by the user (web UI case) request_args = {'RequestPriority': request_args['RequestPriority']} # must update three places: GQ elements, workload_cache and workload spec self.gq_service.updatePriority(workload.name(), request_args['RequestPriority']) report = self.reqmgr_db_service.updateRequestProperty( workload.name(), request_args, dn) workload.setPriority(request_args['RequestPriority']) workload.saveCouchUrl(workload.specUrl()) cherrypy.log('Updated priority of "%s" to %s' % (workload.name(), request_args['RequestPriority'])) elif workqueue_stat_validation(request_args): report = self.reqmgr_db_service.updateRequestStats( workload.name(), request_args) else: msg = "There are invalid arguments for no-status update: %s" % request_args raise InvalidSpecParameterValue(msg) return report
def _handleNoStatusUpdate(self, workload, request_args): """ For no-status update, we only support the following parameters: 1. RequestPriority 2. Global workqueue statistics, while acquiring a workflow """ if 'RequestPriority' in request_args and len(request_args) == 1: # must update three places: GQ elements, workload_cache and workload spec self.gq_service.updatePriority(workload.name(), request_args['RequestPriority']) report = self.reqmgr_db_service.updateRequestProperty(workload.name(), request_args) workload.setPriority(request_args['RequestPriority']) workload.saveCouchUrl(workload.specUrl()) elif workqueue_stat_validation(request_args): report = self.reqmgr_db_service.updateRequestStats(workload.name(), request_args) else: msg = "There are invalid arguments for no-status update: %s" % request_args raise InvalidSpecParameterValue(msg) return report