Ejemplo n.º 1
0
def sql_audit(request):
    """
    审核列表页面
    """
    user_cookie = get_user_cookie(request)
    user_prive = cmdb_models.UserInfo.objects.filter(user_name=user_cookie).first()
    user_work_order_list = dbms_models.InceptionWorkOrderInfo.objects.filter(review_user=user_cookie, review_status=10).all()
    return render(request, 'ince_sql_audit.html', {'userinfo': user_prive, 'work_order_list': user_work_order_list})
Ejemplo n.º 2
0
def work_reviews(request):
    """
    工单查询
    """
    user_cookie = get_user_cookie(request)
    user_name = cmdb_models.UserInfo.objects.filter(user_name=user_cookie).first()
    ret = dbms_models.InceptionWorkOrderInfo.objects.filter(work_user=user_name).all()
    return render(request, 'work_reviews.html', {'work_obj': ret, 'userinfo': user_name})
Ejemplo n.º 3
0
def work_detail(request, wid):
    """
    查看工单的详情页面
    """
    user_cookie = get_user_cookie(request)
    user_name = cmdb_models.UserInfo.objects.filter(user_name=user_cookie).first()
    work_details = dbms_models.InceptionAuditDetail.objects.filter(work_order_id=wid)
    work_info = dbms_models.InceptionWorkOrderInfo.objects.filter(work_order_id=wid)
    return render(request, 'work_details.html', {'detail_result': work_details, "work_info": work_info, 'userinfo': user_name})
Ejemplo n.º 4
0
def sql_audit_commit(request):
    """
    工单审核通过与否
    """
    work_id = request.POST.get('work_id', None)
    user_cookie = get_user_cookie(request)
    user_prive = cmdb_models.UserInfo.objects.filter(user_name=user_cookie).first()
    user_work_order_list = dbms_models.InceptionWorkOrderInfo.objects.filter(review_user=user_cookie).all()
    if request.POST.get('1', None):
        status = 0
    else:
        status = 1
    review_time = datetime.datetime.now()
    dbms_models.InceptionWorkOrderInfo.objects.filter(work_order_id=work_id).update(review_status=status, review_time=review_time)
    return redirect('sql_audit.html', {'userinfo': user_prive, 'work_order_list': user_work_order_list})
Ejemplo n.º 5
0
def work_runing(request):
    user_cookie = get_user_cookie(request)
    user_name = cmdb_models.UserInfo.objects.filter(user_name=user_cookie).first()
    # 获取当前用户所有的已经审核成功的工单
    all_work = dbms_models.InceptionWorkOrderInfo.objects.filter(work_user=user_name, review_status=0, work_status=10).all()
    if request.method == 'GET':
        return render(request, 'work_runing.html', {'userinfo': user_name, 'all_work': all_work})

    if request.method == 'POST':

        wid = request.POST.get('wid', None)
        sql_content = request.POST.get('sql_content', None)
        host_ip = request.POST.get('host_ip', None)
        r = cmdb_models.HostInfo.objects.filter(host_ip=host_ip).all()
        for row in r:
            app_pass = row.hostinfoauth_set.all()[0].app_pass
            app_user = row.hostinfoauth_set.all()[0].app_user
            app_port = row.hostinfoauth_set.all()[0].app_port

        # 优化成任务计划来执行,提交后直接返回提交成功,执行结果需要在工单查询中查看
        # 添加任务表,
            master_ip = functions.get_master(host_ip, app_user, app_pass, app_port, '')

            dbms_models.WorkOrderTask.objects.create(wid=wid, app_user=app_user, app_pass=app_pass, host_ip=master_ip, app_port=app_port)
            #dbms_models.InceptionWorkOrderInfo.objects.filter(work_order_id=wid).update(work_status=2)
            dbms_models.InceptionWorkOrderInfo.objects.filter(work_order_id=wid).update(work_status=3)

            result = functions.ince_run_sql(master_ip, sql_content, db_port=app_port, db_user=app_user,
                                            db_passwd=app_pass, enable_check=0, enable_execute=1,
                                            enable_ignore_warnings=1)
            tran_result = functions.tran_audit_result(result)
            ince_insert_db(result_dict=tran_result, user_cookie='', host_ip='', review_user='', db_name='',
                           sql_content=sql_content, wid=wid)

            #r = dbms_models.InceptionAuditDetail.objects.filter(work_order_id=wid, err_id=3).first()

        return HttpResponse(1)
Ejemplo n.º 6
0
def sql_reviews(request):
    ince_form_obj = dbms_forms.InceForm()
    user_cookie = get_user_cookie(request)
    user_prive = cmdb_models.UserInfo.objects.filter(user_name=user_cookie).first()
    ret = {'ince_form': ince_form_obj, 'userinfo': user_prive, 'app_err': '', 'ince_result': ''}
    result = ''
    if request.method == 'POST':
        ince_form_obj = dbms_forms.InceForm(request.POST)
        ret['ince_form'] = ince_form_obj
        if ince_form_obj.is_valid():
            check_flag = ince_form_obj.cleaned_data['check_flag']
            db_host_info = cmdb_models.HostInfoAuth.objects.filter(host_id=ince_form_obj.cleaned_data['db_ip']).all().values('app_pass', 'app_user', 'app_port', 'host__host_ip')
            if db_host_info:
                for item in db_host_info:
                    sql_content = 'use ' + ince_form_obj.cleaned_data['db_name'] + ';' + ince_form_obj.cleaned_data['sql_text']
                    app_user = item['app_user']
                    app_pass = item['app_pass']
                    app_port = item['app_port']
                    host_ip = item['host__host_ip']
                # 分析出主从关系
                master_ip = functions.get_master(host_ip, app_user, app_pass, app_port, '')
                result = functions.ince_run_sql(master_ip, sql_content, db_port=int(app_port), db_user=app_user,
                                                 db_passwd=app_pass)
                tran_result = functions.tran_audit_result(result)
                ret['ince_result'] = tran_result
                if check_flag == '1':
                    # 判断是否审核结果是否需要入库
                    r = cmdb_models.UserInfo.objects.filter(id=ince_form_obj.cleaned_data['review_user']).first()
                    if r == user_prive:
                        ret['app_err'] = '自己不能审核自己的工单'
                        return render(request, 'inception.html', ret)
                    ince_insert_db(tran_result, user_cookie, master_ip, r, ince_form_obj.cleaned_data['db_name'], sql_content)
            else:
                ret['app_err'] = '主机未配置账号密码, 请联系管理员'
        return render(request, 'inception.html', ret)
    else:
        return render(request, 'inception.html', ret)
Ejemplo n.º 7
0
def index(request):
    user_cookie = get_user_cookie(request)
    user_prive = cmdb_models.UserInfo.objects.filter(user_name=user_cookie).first()
    return render(request, 'index.html', {'userinfo': user_prive})