def task(request, task_id): task = Task.objects.select_related().get(id=task_id) user = request.user if task.user != user and not user.has_perm('apps.list_all_task'): raise PermissionDenied if request.method == 'POST': method = request.POST.get("method", "") if method == 'save': controller = TaskController(task) controller.export() #xg.sendTaskToMaster() return HttpResponse('ok') elif method == "del_site": site_id = request.POST.get("id", 0) try: site = Site.objects.get(id=int(site_id)) except Site.DoesNotExist: return HttpResponse("not exist") site.delete() return HttpResponse('ok') else: if not user.has_perm("apps.change_task"): raise PermissionDenied form = TaskForm(request.POST, instance=task) if form.is_valid(): new_task = form.save() return HttpResponseRedirect(reverse("task", args=(new_task.pk,))) sites = task.sites.all() form = TaskForm(instance=task) return render_to_response('task.html', { 'post_url':reverse('task', args=(task.pk,)), 'form':form, 'task':task, 'sites':sites, 'user':user }, RequestContext(request))
def api(request): user = request.user if not user: username = request.POST.get("username", "") password = request.POST.get("password", "") user = authenticate(username= username, password=password) if user is not None and user.has_perm("apps.add_task"): method = request.POST.get("method") if method == "create_task": task_data = request.POST.get("task", "") sites_data = request.POST.get("sites", "") try: task = Task(**json.loads(task_data)) task.user = user task.clean_fields() sites = [] sites_data = json.loads(sites_data) for site_data in sites_data: site = Site(**site_data) site.clean_fields(exclude=['task']) sites.append(site) task.save() for site in sites: site.task = task site.save() rule = Rule(**Constants.DEFAULT_RULE) rule.site = site rule.save() controller = TaskController(task) controller.runTask() ret = {"status":"ok", "task":task.id} except Exception, e: ret = {"status":"InputError", "error_details":str(e)} elif method == "run_task": try: id = request.POST.get("id") task = Task.objects.get(id=id) controller = TaskController(task) controller.runTask() ret = {"status":"ok"} except Exception, e: ret = {"status":"RunError", "error_details":str(e)}
except Exception, e: ret = {"status":"InputError", "error_details":str(e)} elif method == "run_task": try: id = request.POST.get("id") task = Task.objects.get(id=id) controller = TaskController(task) controller.runTask() ret = {"status":"ok"} except Exception, e: ret = {"status":"RunError", "error_details":str(e)} elif method == "pause_task": try: id = request.POST.get("id") task = Task.objects.get(id=id) controller = TaskController(task) controller.pauseTask() ret = {"status":"ok"} except Exception, e: ret = {"status":"RunError", "error_details":str(e)} elif method == "get_task_info": id = int(request.POST.get("id")) task = Task.objects.get(id=id) ret = { "status":"ok", "task":{ "id":task.id, "status":task.status, #"server":task.server } }