def sch(request, pi_id): print("In sched") sch_id = request.POST['sch_id'] print repr(request.POST) action = request.POST['action'] schedule = Schedule.objects.get(pk=sch_id) print "Before action '%s'" % action be = Backend() print "Backend stat size: %s" % len(be.schedDict) if action == "stop": status = Const.STATUS_STOPPED # cancel currently running schedule and start new schedule_current = Schedule.objects.filter(Q(status=Const.STATUS_RUNNING) | Q(status=Const.STATUS_PLANNED)) if len(schedule_current) > 0: print "Got running schedule '%s'" % schedule_current[0] schedule_current[0].status = Const.STATUS_STOPPED schedule_current[0].save() print "Forcing stop scheduler" be.stop_schedule(schedule_current[0]) elif action == "start": status = Const.STATUS_RUNNING be.exec_schedule(schedule) print "Status switched to: %s" % status % ", action: %s" % action schedule.status = status schedule.save() print("Saved") message = "Schedule(" + sch_id + ") is %s" % ( "started" if status == Const.STATUS_RUNNING else "stopped") print("Message:" + message) return HttpResponse(message)
def start_schedule(request, pi_id): be = Backend() messsage = {"Error"} try: sch_id = request.POST['sch_id'] # schedule = change_schedule_status(sch_id, STATUS_PLANNED) schedule = get_object_or_404(Schedule, id=sch_id) # Defense against idiot - do not allow to plan schedule multiple times if now, so process only active schedules if schedule.status is not Const.STATUS_RUNNING or schedule.status is not Const.STATUS_PLANNED: be.exec_schedule(schedule) messsage = {Const.STATUS_PLANNED} else: messsage = {"Nothing"} except Schedule.DoesNotExist: raise Http404 return HttpResponse(messsage)