Beispiel #1
0
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)}})
Beispiel #2
0
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})
Beispiel #3
0
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})
Beispiel #4
0
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})
Beispiel #5
0
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)
        }
    })
Beispiel #6
0
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)
        }
    })
Beispiel #7
0
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)
        }
    })
Beispiel #8
0
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': ''})
Beispiel #10
0
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})
Beispiel #11
0
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})
Beispiel #12
0
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': ''})
Beispiel #13
0
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']})
Beispiel #15
0
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)
        }
    })
Beispiel #16
0
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': ''})
Beispiel #17
0
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})
Beispiel #18
0
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'])
Beispiel #20
0
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
            }
        }
    })
Beispiel #21
0
def selectExecutionResults():

    list = query_db_outside(query['select_error_tasks'])
    return jsonify({'code':200,'message':'ok','data':list})
Beispiel #22
0
def selectTaskListByUserId():
    taskList = query_db_outside(query['select_tasklist'])
    return jsonify({'code': 200, 'meaasge': 'ok', 'data': taskList})
Beispiel #23
0
def selectById():
    taskid = request.form.get('taskid')
    task = query_db_outside(query['select_task'], [taskid])
    return jsonify({'code': 200, 'meaasge': 'ok', 'data': task})
Beispiel #24
0
def selectTasks():

    owner = request.form.get('owner')
    taskList = query_db_outside(query['SelectTaskOfMike'], [owner])
    return jsonify({'code': 200, 'message': 'ok', 'data': taskList})
Beispiel #25
0
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})
Beispiel #26
0
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})
Beispiel #27
0
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)}})
Beispiel #28
0
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})
Beispiel #29
0
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 })
Beispiel #30
0
def delete_task():
    taskid = request.form.get('taskid')
    __main__.scheduler.remove_job(taskid)
    query_db_outside(query['remove_task'], (taskid,))
    return jsonify({'code': 200})