Beispiel #1
0
def get_load_test_exceptions(req):
    param = req.GET or req.POST
    pk_id = param.get("record_id", None)
    if pk_id:
        record = LoadTestRecord.objects.get(pk=pk_id)
        return response_msg(record.exceptions)
    return response_msg("record_id can not be null")
Beispiel #2
0
def get_locust_master(req):
    locust_master_ip = LOCUST_MASTER
    try:
        t = Telnet(locust_master_ip, 8089, timeout=5)
        t.close()
        return response_msg({'locust_master': locust_master_ip})
    except:
        return response_msg("locust master-%s do not start!" %
                            locust_master_ip)
Beispiel #3
0
def add_client(req):
    if master_exists(req):
        return response_msg("Master exists!")
    new_client = SvcLoadClientForm(req.POST)
    if new_client.is_valid():
        new_client.save()
        msg = 1
    else:
        msg = new_client.error_message
    return response_msg(msg)
Beispiel #4
0
def update_client(req):
    if master_exists(req):
        return response_msg("Master exists!")
    pk_id = req.POST.get('id', None)
    client = SvcLoadClient.objects.get(pk=pk_id)
    new_client = SvcLoadClientForm(req.POST, instance=client)
    if not new_client.is_valid():
        return response_msg(new_client.error_message)
    new_client.save()
    return response_msg(1)
Beispiel #5
0
def del_server(req):
    '''func doc'''
    if req.method == 'POST' and req.POST:
        pk_id = req.POST.get('id', None)
        num = TestGroupServers.objects.filter(pk=pk_id).delete()
        if not num:
            return response_msg('delete fail')
        return response_msg(1)
    else:
        return HttpResponseForbidden()
Beispiel #6
0
def get_user_profile(req):
    user = req.user
    if user.is_authenticated:
        group = user.groups.get_queryset()
        user_profile = {
            'name': user.get_username(),
            'group': group.first().name if group.count() else None,
            'is_super': user.is_superuser
        }
        return response_msg(user_profile)
    return response_msg(3)
Beispiel #7
0
def change_password(req):
    user = req.user
    new_password = req.POST.get('password1', None)
    if user.is_authenticated:
        user.set_password(new_password)
        user.save()
        login(req, user)
        # update_session_auth_hash(req, user)
        return response_msg(1)
    else:
        return response_msg(3)
Beispiel #8
0
def deploy(req):
    try:
        params = req.POST.dict()
        cmd_code = int(params['opcode'])
        path = params.get('path', None)
        main(cmd_code, path)
        return response_msg(1)
    except KeyError as e:
        return response_msg("Param opcode can not be null")
    except ValueError as e:
        return response_msg(e.args)
Beispiel #9
0
def update_server(req):
    '''func doc'''
    if req.method == 'POST' and req.POST:
        pk_id = req.POST.get('id', None)
        server = TestGroupServers.objects.get(pk=pk_id)
        update_server = TestServerFrom(req.POST, instance=server)
        num = update_server.save()
        if not num:
            return response_msg('update fail')
        return response_msg(1)
    else:
        return HttpResponseForbidden()
Beispiel #10
0
def start_build(req):
    try:
        param = req.GET or req.POST
        job_name = param.get('job_name', None)
        mail_switch = param.get('mail_switch', 'true')
        job = JenkinsJob(job_name)
        if not job.start_build(mail_switch):
            return response_msg('Job is running...')
        return response_msg(1)
    except InvalidJobError as e:
        return response_msg(e.args)
    except Exception as e:
        logger.error('Build Error:', exc_info=True)
        return response_msg(e.args)
Beispiel #11
0
def get_build_console(req):
    try:
        param = req.GET or req.POST
        job_name = param.get('job_name', None)
        bn = int(param.get('build_no', None))
        build_log = JenkinsJob(job_name).get_console(bn)
        return response_msg(build_log)
    except (TypeError, ValueError):
        return response_msg('build_no needed and must be int!')
    except KeyError as e:
        return response_msg(e.args)
    except Exception as e:
        logger.error("Get Console Error:", exc_info=True)
        return response_msg(e.args)
Beispiel #12
0
def start_hatch_data(req):
    try:
        if global_runner.state != 'connected':
            return response_msg("请先重置数据!")
        struct = make_struct(req)
        if struct["data_struct"]['total'] < len(
                global_runner.clients.connected):
            return response_msg('数据量必须大于等于slave数量')
        if global_runner.start_hatch(struct):
            return response_msg(1)
        else:
            return response_msg("Make data failed!")
    except Exception as e:
        logger.error('Hatch data error', exc_info=True)
        return response_msg(e.args)
Beispiel #13
0
def get_func_test_record(req):
    record_list = list(
        AutoTestRecord.objects.values("id", "job_name", "build_no",
                                      "success_count", "error_count",
                                      "failure_count", "status", "start_time",
                                      "end_time", "report_url"))
    return response_msg(record_list)
Beispiel #14
0
def server_list(req):
    '''func doc'''
    if req.method == 'GET':
        data_list = list(TestGroupServers.objects.values())
        return response_msg(data_list)
    else:
        return HttpResponseForbidden()
Beispiel #15
0
def stop_build(req):
    try:
        param = req.GET or req.POST
        job_name = param.get('job_name', None)
        bn = int(param.get('build_no', None))
        JenkinsJob(job_name).stop_build(bn)
        pk_id = param.get('id', None)
        record = AutoTestRecord.objects.get(pk=pk_id)
        record.status = 3
        record.save()
        return response_msg(1)
    except (TypeError, ValueError):
        return response_msg('build_no needed and must be int!')
    except KeyError as e:
        return response_msg(e.args)
    except Exception as e:
        logger.error("Stop Jenkins Build Error:", exc_info=True)
        return response_msg(e.args)
Beispiel #16
0
def start_push(req):
    try:
        from acinter import interface
        from random import shuffle
        ac = interface.acsim()
        LBS_IP = CommonConfig.objects.get(pk=3).value
        LBS_PORT = int(CommonConfig.objects.get(pk=4).value)
        ac.connect_italk(lbs_ip=LBS_IP, lbs_port=LBS_PORT)
        ac.login(Account=4444)
        ac.login_complete()
        msg_id = int(req.GET.get('msg_id', None))
        offline_num = int(req.GET.get('offline', 0))
        step = int(req.GET.get('step', 1000))
        target_uid = data_runners.push_uid_list or []
        random_uid = list(range(1, offline_num))
        target_uid_num = len(target_uid)
        total_uid_list = target_uid + random_uid
        shuffle(total_uid_list)
        message = {
            'MsgId': msg_id,
            'online': target_uid_num,
            'offline': offline_num,
            'batch_step': step
        }
        for batch_seq in slice_seq(total_uid_list, step):
            result = ac.push_message(MsgID=msg_id,
                                     TargetUIDNum=step,
                                     TargetUIDs=batch_seq,
                                     timeout=600)
            if result.get('RspCode', -1) == 0:
                message['pushed_num'] = message.setdefault('pushed_num',
                                                           0) + step
            else:
                return response_msg(result)
        return response_msg(message)
    except ValueError as e:
        return response_msg("Invalid param: %s" % str(e.args).split(':')[1])
    except TypeError:
        return response_msg('msg_id is required!')
    except Exception as e:
        logger.error('Push Error', exc_info=True)
        return response_msg(e.args)
    finally:
        ac.disconnect_italk()
Beispiel #17
0
def add_server(req):
    '''func doc'''
    if req.method == 'POST' and req.POST:
        new_server = TestServerFrom(req.POST)
        if new_server.is_valid():
            new_server.save()
            msg = 1
        else:
            msg = new_server.error_message
        return response_msg(msg)
    else:
        return HttpResponseForbidden
Beispiel #18
0
def get_func_test_error_msg(req):
    param = req.GET or req.POST
    info_type = param.get("info_type")
    pk_id = param.get("pk_id")
    record = AutoTestRecord.objects.get(pk=pk_id)
    if info_type == 'error':
        msg = record.error_info
    elif info_type == 'fail':
        msg = record.fail_info
    else:
        msg = "wrong type"
    return response_msg(msg)
Beispiel #19
0
def del_client(req):
    pk_id = req.POST.get('id', None)
    is_deleted = SvcLoadClient.objects.filter(pk=pk_id).delete()
    if not is_deleted:
        return response_msg('delete fail')
    return response_msg(1)
Beispiel #20
0
def req_stats(req):
    data = [value for value in data_runners.global_stats.values()]
    return response_msg(data)
Beispiel #21
0
def reset(req):
    if global_runner:
        global_runner.reset()
        return response_msg(1)
    else:
        return response_msg("data runner stopped!")
Beispiel #22
0
def client_list(req):
    data_list = list(
        SvcLoadClient.objects.values('id', 'client_ip', 'role', 'slave_count',
                                     'status'))
    return response_msg(data_list)
Beispiel #23
0
def get_load_test_record(req):
    record_list = list(
        LoadTestRecord.objects.values("id", "start_time", "end_time",
                                      "user_count", "hatch_rate", "total_rps",
                                      "fail_ratio", "status"))
    return response_msg(record_list)
Beispiel #24
0
def user_logout(req):
    logout(req)
    return response_msg('%s?next=%s' % (settings.LOGIN_URL, '/'))
Beispiel #25
0
def get_push_uid(req):
    uids = data_runners.push_uid_list or []
    uidset = set(uids)
    return response_msg({"uid_sample": uids[0:10], "uid_total": len(uidset)})