Ejemplo n.º 1
0
def review(request, record_id):
    s_sql = """select a.submit_sql,b.dbname,c.host,c.port from
        t_sql_review_record a,t_db_basic_info b, t_db_conn_info c where
        a.db_id=b.id and a.conn_id=c.id  and a.id = {0}"""
    s = SQL()
    rows = s.execute_and_fetchall(s_sql.format(record_id))
    if rows:
        submit_sql = rows[0][0]
        dbname = rows[0][1]
        instance_ip = rows[0][2]
        instance_port = rows[0][3]
    else:
        return HttpResponse('Error ...', status=500)

    exec_sql = Inception.get_enable_check_sql(submit_sql, instance_ip,
                                              instance_port, dbname)
    try:
        with Inception.get_inception_conn as cur:
            ret = cur.execute(exec_sql)
            num_fields = len(cur.description)
            field_names = [i[0] for i in cur.description]
            result = cur.fetchall()
        # 判断结果中是否有error level 为 2 的,如果有,则不做操作,如果没有则将sql_review_record 记录的 is_checked 设为1
        flag = 'success'
        for res in result:
            if res[2] == 2:
                flag = 'failed'
        if flag == 'success':
            with get_mysql_conn() as conn:
                with conn as cur:
                    cur.execute(
                        "update t_sql_review_record set is_checked=1 where id = {}"
                        .format(record_id))
        #第一行为use database,丢弃
        if len(result) > 1:
            result = result[1:]

        data = {
            'field_names': field_names,
            'result': result,
            'sub_module': '2_1',
            'flag': flag,
            'record_id': record_id,
            'sql': submit_sql
        }
        return render(request, 'sql_review/result.html', data)
    except:
        return HttpResponse('Mysql Error ...', status=500)
Ejemplo n.º 2
0
 def get_rows_from_real(self, sql):
     result = SQL.execute_and_fetchall(sql)
     if result:
         return result[0][0]
     else:
         return ""