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
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])
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))
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()
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})
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)
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')
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()