예제 #1
0
파일: views.py 프로젝트: serebatos/smart_h
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)
예제 #2
0
파일: views.py 프로젝트: serebatos/smart_h
def stop_schedule(request, pi_id):
    be = Backend()
    messsage = {"Error"}
    try:
        sch_id = request.POST['sch_id']
        # # schedule = change_schedule_status(sch_id, STATUS_STOPPED)
        schedule = get_object_or_404(Schedule, id=sch_id)
        be.stop_schedule(schedule)
        messsage = {Const.STATUS_STOPPED}
    except Schedule.DoesNotExist:
        raise Http404
    return HttpResponse(messsage)