From be2eb8da2eb8d476601b65478265085c6702f0cc Mon Sep 17 00:00:00 2001 From: Unknown Author Date: Fri, 8 Aug 2008 23:30:15 +0000 Subject: [PATCH] Replaced hard coded IP address (of permitted analysis clients to from end) with the use of dicionary vars, defined in the settings.py. --- gaworkflow/frontend/exp_track/main.py | 92 +++++++++++++++++++++++++++ 1 file changed, 92 insertions(+) create mode 100644 gaworkflow/frontend/exp_track/main.py diff --git a/gaworkflow/frontend/exp_track/main.py b/gaworkflow/frontend/exp_track/main.py new file mode 100644 index 0000000..bc79479 --- /dev/null +++ b/gaworkflow/frontend/exp_track/main.py @@ -0,0 +1,92 @@ +# some core functions of analysis manager module +from django.http import HttpResponse +from datetime import datetime +from string import * +import re +from gaworkflow.frontend import settings +from gaworkflow.frontend.analys_track.models import Task, Project +from django.core.exceptions import ObjectDoesNotExist + +def updStatus(request): + ClIP = request.META['REMOTE_ADDR'] + #Check client access permission + granted = False + if (settings.ALLOWED_ANALYS_IPS.has_key(ClIP)): granted = True + if not granted: return HttpResponse("access denied.") + + output='' + taskid=-1; + # Check required param + if request.has_key('taskid'): taskid = request['taskid'] + else: return HttpResponse('missing param task id') + + try: + rec = Task.objects.get(id=taskid) + mytimestamp = datetime.now().__str__() + mytimestamp = re.sub(pattern=":[^:]*$",repl="",string=mytimestamp) + if request.has_key('msg'): + rec.task_status += ", "+request['msg']+" ("+mytimestamp+")" + else : + rec.task_status = "Registered ("+mytimestamp+")" + rec.save() + output = "Hello "+ALLOWED_ANALYS_IPS[ClIP]+". Updated status for task "+taskid + except ObjectDoesNotExist: + output = "entry not found: taskid=" + + return HttpResponse(output) + + +def getProjects(request): + ClIP = request.META['REMOTE_ADDR'] + #Check client access permission + granted = False + if (settings.ALLOWED_ANALYS_IPS.has_key(ClIP)): granted = True + if not granted: return HttpResponse("access denied.") + + outputfile = '' + + All=False + if (request.has_key('mode')): + if request['mode']=='all': + All=True + + try: + if(All): + rec = Project.objects.all().distinct() + else: + rec = Project.objects.filter(tasks__task_status__exact='defined').distinct() + + outputfile = '' + outputfile += '\n' + for p in rec: + outputfile += '\n' + outputfile += '\n' + prj_tasks = p.tasks.all() + for t in prj_tasks: + outputfile += '\n' + if (t.apply_calc == 'QuEST' or t.apply_calc == 'WingPeaks' or t.apply_calc == 'MACS'): + outputfile += '\n' + outputfile += '\n' + outputfile += '\n' + outputfile += '\n' + + if (t.apply_calc == 'ProfileReads' or t.apply_calc == 'qPCR'): + outputfile += '\n<'+t.apply_calc+' TaskId="'+t.id.__str__()+'" Name="'+t.task_name+'" Genome="'+t.subject1.library_species.use_genome_build+'" Library="'+t.subject1.library_id+'"/>' + + if (t.apply_calc == 'CompareLibs'): + outputfile += '\n' + outputfile += '\n' + outputfile += '\n' + outputfile += '\n' + + #if (t.apply_calc == 'ComparePeakCalls'): + # + # outputfile += '\n' + # TO DO: Define these new fields in Task: PCaller1 (QuEST,WingPeaks), PCaller2, Set1(FK to self), Set2 (FK..) ALL NULL=TRUE + + outputfile += '\n' + outputfile += '\n' + except ObjectDoesNotExist: + outputfile = "" + + return HttpResponse(outputfile) -- 2.30.2