예제 #1
0
파일: newtask.py 프로젝트: Clarkclk/flanker
def judge(task):
    parent = database.getlist("select u from edges where v = \'%s\'" %task)
    
    for i in parent:
        result = database.getlist("select name from tasklist where name = \'%s\' and status = 'finished'" %i)
        if len(result) == 0:
            return False
    return True
예제 #2
0
파일: init.py 프로젝트: Clarkclk/flanker
def init():    
    today = time.strftime('%Y-%m-%d',time.localtime(time.time()))
    database.init()
    database.execute('update tasklist set status = \'started\'')
    fw = open('date.log', 'w')
    fw.write(today)
    fw.close()
    tasklist = database.getlist('select name from tasklist')
    statuslist = database.getlist('select status from tasklist')
    for i in range(0,len(tasklist)):
        if(statuslist[i] == 'started'):
            checktask(tasklist[i])
예제 #3
0
파일: newtask.py 프로젝트: Clarkclk/flanker
def runsql(taskname,sqlfile):
    
    username = '******'
    password = '******'
    if(os.path.exists('config.txt')):
        fr = open("config.txt","r")
        list_of_all_the_lines = fr.readlines()
        username = list_of_all_the_lines[2][0:-1]
        password = list_of_all_the_lines[3][0:-1]
        fr.close()
    
    cmd = "mysql -h localhost -u %s -p%s < %s" %(username, password, sqlfile)
    ferr = open('test.txt','w')
    ferr.write('update tasklist set status = \'running\' where name = \'%s\'' %taskname)
    ferr.close()
    database.execute('update tasklist set status = \'running\' where name = \'%s\'' %taskname)
    child = subprocess.Popen(cmd, shell = True)
    child.wait()
    
    database.execute('update tasklist set status = \'finished\' where name = \'%s\'' %taskname)
    
    nexttask = database.getlist("select name from tasklist where status = \'started\'")
    for task in nexttask:
        
        #parent = database.getlist("select u from edges where v = \'%s\'" %task)
        #if taskname not in parent:
            #continue
        
        if judge(task):
            thread.start_new_thread(runsql, (task, '%s.sql' %task)) 
예제 #4
0
파일: show.py 프로젝트: Clarkclk/flanker
def show(request):
    
    init.first()
    try:
        task = ''
        res = ''
        if request.POST.has_key('tasklist'):
            task = str(request.POST['tasklist'])
            fw = open('result_store.sql','w')
            fw.write('use python;\n')
            fw.write('select * from %s;\n' % task)
            fw.close()
            cmd = "mysql -h localhost -u root -pflanker < result_store.sql > result_store.res"
            child = subprocess.Popen(cmd, shell = True)
            child.wait()
            fr = open('result_store.res','r')
            res = fr.read()
            fr.close()

        ll = database.getlist('show tables')
        return render_to_response('showpage.html', {'tasklist': ll,'cons': res})
    except MySQLdb.Error,e:
        print "Mysql Error %d: %s" % (e.args[0], e.args[1])
        ferr = open("error.txt","w")
        ferr.write("Mysql Error %d: %s" % (e.args[0], e.args[1]))
        ferr.close()
예제 #5
0
파일: dag.py 프로젝트: Clarkclk/flanker
def index(request):
    init.first();
    
    tasklist = database.getlist('select name from tasklist')
    u = database.getlist('select u from edges')
    v = database.getlist('select v from edges')
    
    edges = []
    for i in range(0,len(u)):
        edges.append(Edge(u[i], v[i])) 
    
    fw = open('debug_dag', 'w')
    for j in edges:
        fw.write(j.u)
    fw.close()
    
    return render_to_response('chart2.html', {'tasklist': tasklist,'edgelist': edges})
예제 #6
0
파일: init.py 프로젝트: Clarkclk/flanker
def checktask(task):
    res = str(database.getlist('select type from tasklist where name = \'%s\'' %task)[0])
    if(newtask.judge(task)):
        if(res == 'None'):
            subprocess.Popen('python hw/scheduler.py %s %s.sql' %(task,task), shell = True)
        else:
            timelist = res.split('-')
            hour = timelist[0]
            minute = timelist[1]
            subprocess.Popen('python hw/timetask.py %s %s %s' %(task,hour,minute), shell = True)
예제 #7
0
def index(request):
    init.first()
    
    try:

        name = ''
        ss = request.path
        if name == '':
            name = ss[21:]
                
        res = database.getlist('select description from tasklist where name = \'%s\'' % (name))
        description = res[0]

		
        ferr = open("error_modify.log","w")
        
        task = ''
        if request.POST.has_key('taskname'):
            task = str(request.POST['taskname'])

        ferr.write(r'-----%s' %(task))
        if task == name:
            code = str(request.POST['taskcode'])
            description = str(request.POST['taskdescription'])
            isModify = 'yes'
            fw = open("%s.sql" %(task),"w")
            fw.write(code)
            fw.close()
            database.execute('update tasklist set name = \'%s\', file = \'%s.sql\', description = \'%s\' where name = \'%s\'' %(task, task, description, name))
            database.execute('update edges set u = \'%s\' where u = \'%s\'' %(task, name))
            database.execute('update edges set v = \'%s\' where v = \'%s\'' %(task, name))
        else:
            task = name
            isModify = 'no'
            fr = open("%s.sql" %(name),"r")
            code = fr.read()
            fr.close()

        ferr.write(code)
        
        ferr.close()
        
        if request.POST.has_key('taskkind'):
            taskkind = str(request.POST['taskkind'])
            if taskkind == 'timed':
                hour = str(request.POST['hour'])
                minute = str(request.POST['minute'])
                database.execute('update tasklist set type = \'%s-%s\' where name = \'%s\'' %(hour, minute, task))
            else:
                database.execute('update tasklist set type = NULL where name = \'%s\'' %task )
            
        return render_to_response('modifypage.html', {'taskname': task,'modifystatus': isModify, 'taskdescription': description,'taskcode': code})
    except MySQLdb.Error,e:
         print "Mysql Error %d: %s" % (e.args[0], e.args[1])
         return render_to_response('modifypage.html')
예제 #8
0
파일: list.py 프로젝트: Clarkclk/flanker
def index(request):
    
    init.first()
    try:
        buttonvalue = ''
        task = ''
        if request.POST.has_key('tasklist'):
            buttonvalue = str(request.POST['buttonvalue'])
            task = str(request.POST['tasklist'])

        if(buttonvalue == "delete"):
            database.execute('delete from tasklist where name = \'%s\'' % (task))
            database.execute('delete from edges where u = \'%s\' or v = \'%s\'' % (task,task))

        ss = str(request.path)
        site = ""

        if(buttonvalue == "modify"):
            site = "modifypage/%s" % (task)

        if(buttonvalue == "info"):
            site = "infopage/%s" % (task)
        
        if(buttonvalue == "presub"):
            site = "/prepage"
        
        if(buttonvalue == "start"):
            database.execute('update tasklist set status = \'started\' where name = \'%s\'' %task)
            init.checktask(task)
        #fw = open('listerr.txt','a')
        #fw.write(buttonvalue)
        #fw.write('\n python scheduler.py %s %s.sql\n' %(task,task))
        #fw.close()
        if(buttonvalue == "execute"):
            subprocess.Popen('python hw/scheduler.py %s %s.sql' %(task,task), shell = True)

            
        if(buttonvalue == "terminate"):
            res = database.getlist('select status from tasklist where name = \'%s\'' %task)[0]
            if res == 'started':
                database.execute('update tasklist set status = \'did not start\' where name = \'%s\'' %task)
            elif res == 'running':
                database.execute('update tasklist set status = \'failed\' where name = \'%s\'' %task)
            
        fw = open("log.txt","w")
        fw.write(site)
        fw.close()
        
        tasklist = database.getlist('select name from tasklist')
                    
        statuslist = database.getlist('select status from tasklist')

        ll = []
        for i in range(0,len(tasklist)):
            ll.append(Task(tasklist[i],statuslist[i]))

        return render_to_response('taskpage.html', {'tasklist': ll,'skipsite': site})
    except MySQLdb.Error,e:
        print "Mysql Error %d: %s" % (e.args[0], e.args[1])
        ferr = open("error.txt","w")
        ferr.write("Mysql Error %d: %s" % (e.args[0], e.args[1]))
        ferr.close()