def selectMonthlyByCategory(): category = request.args.get('category') sessionid = request.args.get('sessionid') userid = getuserid(sessionid) monthlyList = query_db_outside(query['category_monthly_list'], [category,category,category,userid]) monthlyTabList = query_db_outside(query['category_monthly_list_desc'], [category, category, category, userid]) return jsonify({'code': 200, 'meaasge': 'ok', 'data': {'tabData': monthlyTabList, 'chartData': chartList(monthlyList)}})
def getCategaryByUsername(): sessionid = request.args.get('sessionid') userid = getuserid(sessionid) username = query_db_outside(query['getUsernameByUserid'], (userid, )) categoryList = query_db_outside(query['getCategoryByUsername'], (username[0]['name'], )) return jsonify({'code': 200, 'message': 'ok', 'category': categoryList})
def getTasklogByUsername(): sessionid = request.args.get('sessionid') category = request.args.get('category') userid = getuserid(sessionid) username = query_db_outside(query['getUsernameByUserid'], (userid, )) taskLog = query_db_outside(query['getTaskinfoByUsername'], ( username[0]['name'], category, )) today = str(datetime.date.today()) + " 23:59:59" beforeEightDay = str(datetime.date.today() - datetime.timedelta(days=8)) + " 00:00:00" resultLog = query_db_outside(query['getTasklogByUsername'], ( username[0]['name'], category, beforeEightDay, today, )) workList = [] for i in taskLog: tasklist = {'taskid': '', 'taskname': '', 'description': ''} for j in resultLog: if j['taskname'] == i['taskname']: tasklist.update({j['run_time'][0:10]: j['result']}) tasklist['taskid'] = i['taskid'] tasklist['taskname'] = i['taskname'] tasklist['description'] = i['description'] if str(datetime.date.today()) in tasklist.keys(): if str(datetime.date.today() - datetime.timedelta(days=1)) in tasklist.keys(): change = tasklist[str(datetime.date.today())] - tasklist[str( datetime.date.today() - datetime.timedelta(days=1))] tasklist.update({'change': change}) if (tasklist[str(datetime.date.today() - datetime.timedelta(days=1))] == 0): tasklist.update({'percent': ''}) else: if change < 0: change = -change tasklist.update({ 'percent': str( round( change / tasklist[str(datetime.date.today() - datetime.timedelta(days=1))] * 100, 2)) + '%' }) else: tasklist.update({'change': ''}) else: tasklist.update({'change': ''}) tasklist.update({'percent': ''}) workList.append(tasklist) return jsonify({'code': 200, 'message': 'ok', 'result': workList})
def reschedule_task(): taskid = request.form.get('taskid') category = request.form.get('category') owner = request.form.get('owner') email = request.form.get('email') description = request.form.get('description') # The description of the task tag = request.form.get('tag') # The tag of the task freqency = request.form.get('freqency') task_type = request.form.get('task_type') threshold = int(request.form.get('threshold')) # The threshold of result for sending the notice to owner #filepath = request.form.get('file_path') # The path of the task need to run content = request.form.get('content') upload_user_id = int(request.form.get('upload_user_id')) taskname = request.form.get('taskname') enabled = eval(request.form.get('enabled')) update_time = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime()) query_db_outside(query['update_task'], (category, owner, email, description, tag, freqency, task_type, threshold, content, update_time, upload_user_id, taskname, taskid,)) if enabled: __main__.scheduler.remove_job(taskid) if freqency == 'daily': __main__.scheduler.add_job(func=run, kwargs={ 'user_id': upload_user_id, 'taskid': taskid, 'content': content, 'freqency': freqency, 'threshold': threshold, 'taskname': taskname, 'category': category, 'description': description}, id=taskid, trigger='interval', days=1, name=taskname, misfire_grace_time=60 * 60 * 24) if freqency == 'weekly': __main__.scheduler.add_job(func=run, kwargs={ 'user_id': upload_user_id, 'taskid': taskid, 'content': content, 'freqency': freqency, 'threshold': threshold, 'taskname': taskname, 'category': category, 'description': description}, id=taskid, trigger='interval', weeks=1, name=taskname, misfire_grace_time=60 * 60 * 24) if freqency == 'monthly': __main__.scheduler.add_job(func=run, kwargs={ 'user_id': upload_user_id, 'taskid': taskid, 'content': content, 'freqency': freqency, 'threshold': threshold, 'taskname': taskname, 'category': category, 'description': description}, id=taskid, trigger='interval', days=30, name=taskname, misfire_grace_time=60 * 60 * 24) return jsonify({'code': 200})
def selectMonthlyByUserId(): monthlyList = query_db_outside(query['monthly_list']) monthlyTabList = query_db_outside(query['monthly_list_desc']) return jsonify({ 'code': 200, 'meaasge': 'ok', 'data': { 'tabData': monthlyTabList, 'chartData': chartList(monthlyList) } })
def selectWeeklyByUserId(): weeklyList = query_db_outside(query['select_weekly']) weeklyTabList = query_db_outside(query['select_weekly_desc']) return jsonify({ 'code': 200, 'meaasge': 'ok', 'data': { 'tabData': weeklyTabList, 'chartData': chartList(weeklyList) } })
def selectDailyListByUserId(): dailyList = query_db_outside(query['select_daily']) dailyTabList = query_db_outside(query["select_daily_desc"]) return jsonify({ 'code': 200, 'meaasge': 'ok', 'data': { 'tabData': dailyTabList, 'chartData': chartList(dailyList) } })
def selectErrorTaskByResulttime(): date = request.form.get('date') fre = request.form.get('fre') taskList = [] if fre == 'daily': taskList = query_db_outside(query['SelectDailyErrorList'], (date, )) if fre == 'weekly': taskList = query_db_outside(query['SelectWeeklyErrorList'], (date, )) if fre == 'monthly': taskList = query_db_outside(query['SelectMonthlyErrorList'], (date, )) return jsonify({'code': 200, 'message': 'ok', 'data': taskList})
def getImg(): username = request.form.get('username') imgurl = query_db_outside(query['selectUserImg'], (username)) if (imgurl): return jsonify({'code': 200, 'meaasge': 'ok', 'data': imgurl[0]['imgpath']}) else: return jsonify({'code': 300, 'meaasge': 'ok', 'data': ''})
def selectCategoryFailMonthly(): category = request.args.get('category') sessionid = request.args.get('sessionid') userid = getuserid(sessionid) nowTime = datetime.datetime.now().strftime('%Y-%m') monthlyList = query_db_outside(query['category_monthly_fail_list'],[userid,category,userid]) return jsonify({'code': 200, 'meaasge': 'ok', 'data': monthlyList})
def selectCategoryFailWeekly(): category = request.args.get('category') sessionid = request.args.get('sessionid') userid = getuserid(sessionid) thisMonday = getThisMonday() weeklyList = query_db_outside(query['category_select_fail_weekly'],[userid,category,userid]) return jsonify({'code': 200, 'meaasge': 'ok', 'data': weeklyList})
def selectHistoryById(): id = request.form.get('id') comments = request.form.get('comments') taskList = query_db_outside(query['updateComment'], ( comments, id, )) return jsonify({'code': 200, 'message': 'ok', 'data': ''})
def selectSpeErrorTaskByResulttime(): date = request.form.get('date') fre = request.form.get('fre') module = request.form.get('module') sessionid = request.args.get('sessionid') userid = getuserid(sessionid) taskList = [] if fre == 'daily': taskList = query_db_outside(query['SelectSpeDailyErrorList'], [date, module, userid]) if fre == 'weekly': taskList = query_db_outside(query['SelectSpeWeeklyErrorList'], [date, module, userid]) if fre == 'monthly': taskList = query_db_outside(query['SelectSpeMonthlyErrorList'], [date, module, userid]) return jsonify({'code': 200, 'message': 'ok', 'data': taskList})
def getHeadImgByUserid(): sessionid = request.form.get('sessionid') if redis.get(sessionid) is None: return jsonify({'code': 401, 'meaasge': 'No This User', 'data': ''}) if redis.get(sessionid) is not None: userid = redis.get(sessionid).decode() print(userid) imgurl = query_db_outside(query['selectUserImgByUserid'], (userid)) return jsonify({'code': 200, 'meaasge': 'ok', 'data': imgurl[0]['imgpath']})
def selectWeeklyByCategory(): category = request.args.get('category') weeklyList = query_db_outside(query['category_select_weekly'], ( category, category, category, )) weeklyTabList = query_db_outside(query['category_select_weekly_desc'], ( category, category, category, )) return jsonify({ 'code': 200, 'meaasge': 'ok', 'data': { 'tabData': weeklyTabList, 'chartData': chartList(weeklyList) } })
def Login(): username = request.form.get('username') password = request.form.get('password') userinfo = query_db_outside(query['selectUserInfo'], (username, password,)) if (userinfo): sessionId = uuid.uuid1() # redis.set(sessionId, userinfo[0]['user_id']) redis.setex(sessionId, userinfo[0]['user_id'], 1*60*60) return jsonify({'code': 200, 'meaasge': 'Login Success', 'data': sessionId, 'userid': userinfo[0]['user_id']}) else: return jsonify({'code': 300, 'meaasge': 'Login Fail', 'data': ''})
def filtrateSelect(): freqency = request.form.get('freqency') enabled = request.form.get('enabled') category = request.form.get('category') sessionid = request.args.get('sessionid') userid = getuserid(sessionid) if freqency == '': freqency = None if enabled == '': enabled = None if category == '': category = None taskList = query_db_outside(query['filtrateSelect'], [userid, freqency, enabled, category]) return jsonify({'code': 200, 'meaasge': 'ok', 'data': taskList})
def filtrateSelect(): freqency = request.form.get('freqency') enabled = request.form.get('enabled') category = request.form.get('category') if freqency == '': freqency = None if enabled == '': enabled = None if category == '': category = None taskList = query_db_outside(query['filtrateSelect'], ( freqency, enabled, category, )) return jsonify({'code': 200, 'meaasge': 'ok', 'data': taskList})
def run(user_id, taskid, content, freqency, threshold, taskname, category, description): print('\033[4;32m' + 'Start to running <' + taskname + '> [id:' + taskid + ']' + '\033[0m') config = open(sys.path[0] + '/SqlTask/config.json', 'r') config = config.read() config = json.loads(config) result_time = time.strftime('%Y-%m-%d', time.localtime()) insert_time = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime()) dns = "DATABASE=%s;HOSTNAME=%s;PORT=%s;PROTOCOL=TCPIP;UID=%s;PWD=%s" % ( config['database'], config['hostname'], config['port'], config['user_id'], config['password']) try: conn = ibm_db.connect(dns, "", "") sql = content stmt = ibm_db.exec_immediate(conn, sql) result = ibm_db.fetch_assoc(stmt) except: query_db_outside(query['tasklog'], [taskname, taskid, '0', 'DB error', insert_time]) return result_count = int(result['1']) table = { 'daily': 'add_dailylog', 'weekly': 'add_weeklylog', 'monthly': 'add_monthlylog' } if result_count > threshold: daily_status = 'Fail' resulttab_status = 'Fail' print('\033[1;33;41m<' + taskname + '> [id:' + taskid + ']' + 'Exceed the threshold [count:' + str(result_count) + ']' + '\033[0m') else: daily_status = 'Success' resulttab_status = 'Success' print('\033[1;30;47m<' + taskname + '> [id:' + taskid + ']' + 'success!' + '\033[0m') query_db_outside(query[table[freqency]], [ taskid, result_count, result_time, daily_status, user_id, insert_time, taskname, category, description ]) query_db_outside( query['add_resulttab'], [taskname, taskid, result_count, resulttab_status, insert_time, '10s'])
def selectTaskLogByTaskId(): taskid = request.form.get('taskid') task = query_db_outside(query['selctTaskLogById'], [taskid]) date = [] result = [] tasktable = task.copy() task.reverse() for i in task: date.append(i['run_time']) result.append(i['result']) return jsonify({ 'code': 200, 'message': 'ok', 'data': { 'tab_data': tasktable, 'chart_data': { 'run_time': date, 'result': result } } })
def selectExecutionResults(): list = query_db_outside(query['select_error_tasks']) return jsonify({'code':200,'message':'ok','data':list})
def selectTaskListByUserId(): taskList = query_db_outside(query['select_tasklist']) return jsonify({'code': 200, 'meaasge': 'ok', 'data': taskList})
def selectById(): taskid = request.form.get('taskid') task = query_db_outside(query['select_task'], [taskid]) return jsonify({'code': 200, 'meaasge': 'ok', 'data': task})
def selectTasks(): owner = request.form.get('owner') taskList = query_db_outside(query['SelectTaskOfMike'], [owner]) return jsonify({'code': 200, 'message': 'ok', 'data': taskList})
def selectBeingPerformed(): sessionid = request.args.get('sessionid') userid = getuserid(sessionid) list = query_db_outside(query['select_being_performed']) return jsonify({'code':200,'message':'ok','data':list})
def selectTaskListByUserId(): sessionid = request.args.get('sessionid') userid = getuserid(sessionid) taskList = query_db_outside(query['select_tasklist'], [userid]) return jsonify({'code': 200, 'meaasge': 'ok', 'data': taskList})
def selectWeeklyByUserId(): sessionid = request.args.get('sessionid') userid = getuserid(sessionid) weeklyList = query_db_outside(query['select_weekly'],[userid]) weeklyTabList = query_db_outside(query['select_weekly_desc'],[userid]) return jsonify({'code': 200, 'meaasge': 'ok', 'data': {'tabData': weeklyTabList, 'chartData': chartList(weeklyList)}})
def selectFailDailyList(): sessionid = request.args.get('sessionid') userid = getuserid(sessionid) nowTime = datetime.datetime.now().strftime('%Y-%m-%d') dailyList = query_db_outside(query['select_fail_daily'],[userid,userid]) return jsonify({'code': 200, 'meaasge': 'ok', 'data': dailyList})
def add_task(): taskid = str(uuid.uuid1()) #request.form.get('taskid') category = request.form.get('category') owner = request.form.get('owner') email = request.form.get('email') description = request.form.get('description') # The description of the task tag = request.form.get('tag') # The tag of the task enabled = eval(request.form.get('enabled')) # Whether the available freqency = request.form.get('freqency') task_type = request.form.get('task_type') threshold = int(request.form.get('threshold')) # The threshold of result for sending the notice to owner filepath = request.form.get('file_path') # The path of the task need to run run_now = eval(request.form.get('run_now')) # just run now content = request.form.get('content') upload_user_id = int(redis.get(request.form.get('upload_user_id')).decode()) taskname = request.form.get('taskname') upload_time = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime()) update_time = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime()) query_db_outside(query['add_task'], (taskid, category, owner, email, description, tag, enabled, freqency, task_type, threshold, filepath, upload_time, update_time,content, upload_user_id,taskname,)) if run_now: __main__.scheduler.add_job(func=run, kwargs={ 'user_id': upload_user_id, 'taskid': taskid, 'content': content, 'freqency': freqency, 'threshold': threshold, 'taskname': taskname, 'category': category, 'description': description}, id=str(uuid.uuid1()), trigger='date', name=taskname, misfire_grace_time=60 * 60 * 24, run_date=datetime.datetime.now() + datetime.timedelta(seconds=3)) if enabled: if freqency == 'daily': __main__.scheduler.add_job(func=run, kwargs={ 'user_id':upload_user_id, 'taskid':taskid, 'content':content, 'freqency':freqency, 'threshold': threshold, 'taskname': taskname, 'category': category, 'description': description}, id=taskid, trigger='interval', days=1, name=taskname, misfire_grace_time=60 * 60 * 24) if freqency == 'weekly': __main__.scheduler.add_job(func=run, kwargs={ 'user_id': upload_user_id, 'taskid': taskid, 'content': content, 'freqency': freqency, 'threshold': threshold, 'taskname': taskname, 'category': category, 'description': description}, id=taskid, trigger='interval', weeks=1, name=taskname, misfire_grace_time=60 * 60 * 24) if freqency == 'monthly': __main__.scheduler.add_job(func=run, kwargs={ 'user_id': upload_user_id, 'taskid': taskid, 'content': content, 'freqency': freqency, 'threshold': threshold, 'taskname': taskname, 'category': category, 'description': description}, id=taskid, trigger='interval', days=30, name=taskname, misfire_grace_time=60 * 60 * 24) #status return jsonify({'code': 200 })
def delete_task(): taskid = request.form.get('taskid') __main__.scheduler.remove_job(taskid) query_db_outside(query['remove_task'], (taskid,)) return jsonify({'code': 200})