def submit(request, username=None): errorMessage = '' if request.method == 'POST': form = SubmitScriptForm(request.POST) if form.is_valid(): script = __handleForm(form, username) #creates file script scriptFile = None try: scriptFile = open(script['scriptName'], 'w', 0744) temp = string.replace(script['executionCommands'], '\r\n', '\n') temp = string.replace(temp, '\r', '\n') scriptFile.write(temp) except Exception as err: server_logger.error(str(err)) errorMessage = str(err) finally: if scriptFile is not None: scriptFile.close() result = TorqueService.submitScript(script) if result["Result"] == "OK": return HttpResponseRedirect('/user/' + username + '/monitor') else: server_logger.error(str(result['Message'])) errorMessage = str(result['Message']) else: form = SubmitScriptForm() return render_to_response('pytorque/submit.html', RequestContext(request, {'userName': username, 'form': form, 'errorMessage': errorMessage}))
def get_jobs(request, username=None): resultJSON = {} if request.method == 'POST': try: jobs = TorqueService.getJobs() resultJSON['Result'] = 'OK' resultJSON['Records'] = jobs except Exception as exc: server_logger.error(exc) else: resultJSON['Result'] = 'ERROR' resultJSON['Message'] = 'Use \'POST\' request, please' return HttpResponse(jsonpickle.encode(resultJSON, unpicklable=False), content_type="application/json")
def submit(request, username=None): errorMessage = '' if request.method == 'POST': form = SubmitScriptForm(request.POST) if form.is_valid(): script = __handleForm(form, username) #creates file script scriptFile = None try: scriptFile = open(script['scriptName'], 'w', 0744) temp = string.replace(script['executionCommands'], '\r\n', '\n') temp = string.replace(temp, '\r', '\n') scriptFile.write(temp) except Exception as err: server_logger.error(str(err)) errorMessage = str(err) finally: if scriptFile is not None: scriptFile.close() result = TorqueService.submitScript(script) if result["Result"] == "OK": return HttpResponseRedirect('/user/' + username + '/monitor') else: server_logger.error(str(result['Message'])) errorMessage = str(result['Message']) else: form = SubmitScriptForm() return render_to_response( 'pytorque/submit.html', RequestContext(request, { 'userName': username, 'form': form, 'errorMessage': errorMessage }))
def handle(self, *args, **options): currentTime = datetime.now() try: pbsServers = TorqueService.getModelServers() for pbsServer in pbsServers: pbsServer.time = currentTime pbsServer.save() pbsQueues = TorqueService.getModelQueues(pbsServer) for pbsQueue in pbsQueues: pbsQueue.time = currentTime pbsQueue.save() pbsJobs = TorqueService.getModelJobs() TorqueService.mapJobsToQueue(pbsQueues, pbsJobs) users = User.objects.all() TorqueService.mapJobsToUser(users, pbsJobs) for pbsJob in pbsJobs: pbsJob.time = currentTime pbsJob.save() #make raw query, fill user_stat pUserQuerySet = User.objects.raw( 'SELECT auth_user.*, COUNT(DISTINCT pytorque_pbsjob.jobId) as jobCount FROM pytorque_pbsjob, auth_user\ WHERE pytorque_pbsjob.user_id = auth_user.id\ GROUP BY auth_user.username') for rowQuerySet in pUserQuerySet: userStat = PBSUserStat() userStat.jobCount = rowQuerySet.jobCount userStat.username = rowQuerySet.username userStat.time = currentTime userStat.save() except Exception as exc: server_logger.error( "An unexpected error occurred while running cron task: %s" % str(exc))