コード例 #1
0
def editconn(request):
    """
    修改
    :param request:
    :return:
    """
    try:
        # 拿到当前用户,保存为修改人
        res = json.loads(request.body)
        res['editname'] = request.user.username
        res['edittime'] = datetime.datetime.now()
        # 点修改密码进行解密
        password = encryption_str(res['password'])
        res['password'] = password
        re1 = Conn.objects.filter(id=res['id']).update(**res)
        info = make_log_info(u'修改数据库连接配置', u'业务日志', u'Conn',
                             sys._getframe().f_code.co_name,
                             request.user.username, '成功', '无')
        add_log(info)
        return tools.success_result(re1)
    except Exception as e:
        res1 = tools.error_result(e)
        info = make_log_info(u'修改数据库连接配置', u'业务日志', u'Conn',
                             sys._getframe().f_code.co_name,
                             request.user.username, '失败', repr(e))
        add_log(info)
        return res1
コード例 #2
0
def delete_conn(request, id):
    """
    删除
    :param request:
    :param id:
    :return:
    """
    try:
        res = Conn.objects.filter(id=id).delete()
        info = make_log_info(u'删除数据库连接配置', u'业务日志', u'Conn',
                             sys._getframe().f_code.co_name,
                             request.user.username, '成功', '无')
        add_log(info)
        status_dic = {}
        # 删除完后重新计算页数
        items_count = Conn.objects.count()
        pages = items_count / 5
        if 0 != items_count % 5:
            pages = pages + 1
        status_dic['message'] = 'ok'
        status_dic['page_count'] = pages
        return tools.success_result(status_dic)
    except Exception as e:
        res1 = tools.error_result(e)
        info = make_log_info(u'删除数据库连接配置', u'业务日志', u'Conn',
                             sys._getframe().f_code.co_name,
                             request.user.username, '失败', repr(e))
        add_log(info)
        return tools.error_result(res1)
コード例 #3
0
def addmuenus(request):
    """
    增加菜单
    :param request:
    :return:
    """
    try:
        status_dic = {}
        res = json.loads(request.body)
        re = Muenu(**res).save()
        items_count = Muenu.objects.count()
        # 增加菜单后重新查看总页数
        pages = items_count / 5
        if 0 != items_count % 5:
            pages = pages + 1
        status_dic['message'] = 'ok'
        status_dic['page_count'] = pages

        info = make_log_info(u'增加菜单', u'业务日志', u'Muenu',
                             sys._getframe().f_code.co_name,
                             request.user.username, '成功', '无')
        add_log(info)
        return tools.success_result(status_dic)
    except Exception as e:
        res1 = tools.error_result(e)
        info = make_log_info(u'增加菜单', u'业务日志', u'Muenu',
                             sys._getframe().f_code.co_name,
                             request.user.username, '失败', repr(e))
        add_log(info)
        return res1
コード例 #4
0
ファイル: function.py プロジェクト: firegladtang/LanhuSaas-1
def model_tree_host(request):
    """
    树状主机信息显示
    :param request:
    :return:
    """
    try:
        param = {"bk_biz_id": 2}
        client = tools.interface_param(request)
        res = client.cc.search_biz_inst_topo(param)
        if res.get('result'):
            # 判断调用search_biz_inst_topo接口是否成功,成功则取数据,失败则返回错误信息
            bk_tree_list = res.get('data')
        else:
            bk_tree_list = []
            logger.error(u"请求主机拓扑列表失败:%s" % res.get('message'))
        test_list = bk_tree_list[0]['child']  # 取出集群数据
        display_list = []
        for i in test_list:  # 循环遍历取出集群名称
            dic = {
                'bk_inst_name': i['bk_inst_name'],
                'bk_inst_id': i['bk_inst_id'],
            }
            child_list = []
            for child in i['child']:
                dic1 = {
                    'child_bk_inst_name': child['bk_inst_name'],
                    'child_bk_inst_id': child['bk_inst_id'],
                }
                child_list.append(dic1)
            dic['child'] = child_list
            display_list.append(dic)
        result = tools.success_result(display_list)
    except Exception, e:
        result = tools.error_result(e)
コード例 #5
0
ファイル: function.py プロジェクト: firegladtang/LanhuSaas-1
    def get_api_type(cls, api_address):
        """

        :return:
        """
        # 请求地址,测试数据
        # api_address = LOG_API_ADDRESS
        # 返回列表
        return_list = []
        # 请求结果
        try:
            api_result = json.loads(requests.get(api_address).content)
            if api_result['code'] == '000000':
                for i in api_result['data']:
                    map = {}
                    # 度量值列表
                    metric_list = api_result['data'][i].split('|')[1].split(',')
                    dimension_list = api_result['data'][i].split('|')[0].split(',')
                    map[i] = dict()
                    map[i]['metric_list'] = metric_list
                    map[i]['dimension_list'] = dimension_list
                    return_list.append(map)
                return success_result(return_list)
            else:
                return error_result([])
        except Exception as e:
            return error_result(str(e))
コード例 #6
0
def delete_muenu(request, id):
    """
    删除菜单
    :param request:
    :param id:
    :return:
    """
    # 先删除菜单,再删除该菜单下的所有角色,两表无外键Id
    try:
        Muenu.objects.get(id=id).delete()
        rm.objects.filter(muenuid=id).all().delete()
        info = make_log_info(u'删除菜单', u'业务日志', u'Muenu',
                             sys._getframe().f_code.co_name,
                             request.user.username, '成功', '无')
        add_log(info)
        info = make_log_info(u'删除菜单', u'业务日志', u'rm',
                             sys._getframe().f_code.co_name,
                             request.user.username, '成功', '无')
        add_log(info)
        return tools.success_result(None)
    except Exception as e:
        info = make_log_info(u'删除菜单', u'业务日志', u'Muenu',
                             sys._getframe().f_code.co_name,
                             request.user.username, '失败', repr(e))
        add_log(info)
        info = make_log_info(u'删除菜单', u'业务日志', u'rm',
                             sys._getframe().f_code.co_name,
                             request.user.username, '失败', repr(e))
        add_log(info)
        res3 = tools.error_result(e)
        return tools.error_result(res3)
コード例 #7
0
ファイル: function.py プロジェクト: firegladtang/LanhuSaas-1
def get_guotai_system_info(request):
    """
    获取过国泰君安系统状态
    :param request:
    :return:
    """
    request_body = json.loads(request.body)
    type_id = request_body['type_id']
    if type_id == '1':
        # 总系统状态查询
        result_list = []
        res = {
            "status": int(random.uniform(0, 4)),
            "time": datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
        }
        result_list.append(res)
    elif type_id == '2':
        # 报盘系统状态查询
        result_list = []
        res = {
            "status": int(random.uniform(0, 4)),
            "time": datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
        }
        result_list.append(res)
    return tools.success_result(result_list)
コード例 #8
0
def get_user_muenu(request):
    """
    获取角色对应的菜单名和Url
    :param request:
    :return:
    """
    cilent = tools.interface_param(request)
    # 蓝鲸平台获取当前用户,取得当前用户的角色id
    # user = cilent.bk_login.get_user({})
    # bk_roleid = user['data']['bk_role']
    # 根据菜单和角色表查出该角色对应的菜单
    user_dto_name = request.user.username
    user_db = user_info.objects.filter(user_name=user_dto_name)
    role_id = 1
    if user_db.count() > 0:
        user_db_data = user_db.get()
        role_id = user_db_data.user_type_id
    role_menus = rm.objects.filter(roleid=role_id)
    temp_list = []
    for r_m in role_menus:
        # 菜单id,菜单表和菜单角色表都要对应起来
        menu_id = model_to_dict(r_m)['muenuid']
        # 菜单名称
        try:
            menu_name = Muenu.objects.get(id=menu_id)
        except Exception as e:
            continue
        temp = {}
        temp = model_to_dict(menu_name)
        temp_list.append(temp)
    return tools.success_result(temp_list)
コード例 #9
0
ファイル: function.py プロジェクト: firegladtang/LanhuSaas-1
def get_positions_all():
    """
    获取所有岗位信息
    :return:  json--results--StaffPosition对象
    """
    try:
        res = StaffPosition.objects.get_positions_all().get("result")
        result = tools.success_result(res)
    except Exception, e:
        result = tools.error_result(e)
コード例 #10
0
def get_conname(request):
    """
    根据id获取数据库连接配置并返回
    :param request:
    :return:
    """
    try:
        res = request.body
        res_obj = Conn.objects.get(id=res)
        conn = model_to_dict(res_obj)
        reslut = tools.success_result(conn)
    except Exception as e:
        reslut = tools.error_result(e)
    return reslut
コード例 #11
0
ファイル: function.py プロジェクト: firegladtang/LanhuSaas-1
def get_scene_by_id(id):
    """
    根据场景ID获取场景对象
    :param id:
    :return:
    """
    res = Scene.objects.get_scenes_by_id(id)
    if res.get("code"):
        result_temp = res.get("result")
        result = tools.success_result(result_temp)
    else:
        result_temp = res.get("result")
        result = tools.error_result(result_temp)
    return result
コード例 #12
0
def get_all_db_connection(request):
    """
    获取所有的数据库名称
    :param request:
    :return:
    """
    try:
        conn = Conn.objects.all()
        result = []
        for con in conn:
            obj = model_to_dict(con)
            result.append(obj)
        return tools.success_result(result)
    except Exception as e:
        return tools.error_result(str(e))
コード例 #13
0
ファイル: function.py プロジェクト: firegladtang/LanhuSaas-1
def get_scene_by_staff_position_id_time_order_by_scene_order_id(request):
    """
    根据用户ID和当前时间获取场景信息----暂时保留---待废弃
    :param request:json
    :return:
    """
    try:
        staff_position = get_staff_position_by_username(request)  # 获取场景信息
        staff_position_id = staff_position.get("result").get(
            "staff_position_id")  # 场景ID
        now_time = datetime.datetime.now().strftime("%H:%M:%S")  # 当前时间
        temp_result = Scene.objects.get_scene_by_staff_position_id_time_order_by_scene_order_id(
            staff_position_id, now_time).get("result")
        result = tools.success_result(temp_result)
    except Exception, e:
        result = tools.error_result(e)
コード例 #14
0
ファイル: function.py プロジェクト: firegladtang/LanhuSaas-1
def get_scene_by_staff_position_id(request):
    """
    根据用户ID获取场景信息----未添加时间
    :param request:
    :return:
    """
    try:
        staff_position = get_staff_position_by_username(request)  # 获取场景信息
        staff_position_id = staff_position.get("result").get(
            "staff_position_id")  # 场景ID
        str_now_time = time.strftime("%H:%M:%S", time.localtime(time.time()))
        now_time = time.localtime(time.time())
        temp_result = Scene.objects.get_scene_by_staff_position_id(
            staff_position_id).get("result")  # 场景信息结果
        result = tools.success_result(temp_result)
        return result
    except Exception, e:
        result = tools.error_result(e)
        return result
コード例 #15
0
def edit_muenu(request):
    """
    修改菜单
    :param request:
    :return:
    """
    try:
        res = json.loads(request.body)
        re1 = Muenu.objects.filter(id=res['id']).update(**res)
        info = make_log_info(u'修改菜单', u'业务日志', u'Muenu',
                             sys._getframe().f_code.co_name,
                             request.user.username, '成功', '无')
        add_log(info)
        return tools.success_result(re1)
    except Exception as e:
        res1 = tools.error_result(e)
        info = make_log_info(u'修改菜单', u'业务日志', u'Muenu',
                             sys._getframe().f_code.co_name,
                             request.user.username, '失败', repr(e))
        add_log(info)
        return res1
コード例 #16
0
def saveconn_all(request):
    """
    保存
    :param request:
    :return:
    """
    try:
        res = json.loads(request.body)
        cilent = tools.interface_param(request)
        user = cilent.bk_login.get_user({})
        # 获取用户名
        res['createname'] = request.user.username
        res['editname'] = request.user.username

        # 密码加密后保存
        password = encryption_str(res['password'])
        res['password'] = password
        re = Conn(**res).save()
        status_dic = {}
        # 计算总页数,取5有余就+1页
        items_count = Conn.objects.count()
        pages = items_count / 5
        if 0 != items_count % 5:
            pages = pages + 1
        status_dic['message'] = 'ok'
        status_dic['page_count'] = pages

        info = make_log_info(u'增加数据库连接配置', u'业务日志', u'Conn',
                             sys._getframe().f_code.co_name,
                             request.user.username, '成功', '无')
        add_log(info)
        return tools.success_result(status_dic)
    except Exception as e:
        info = make_log_info(u'增加数据库连接配置', u'业务日志', u'Conn',
                             sys._getframe().f_code.co_name,
                             request.user.username, '失败', repr(e))
        add_log(info)
        res1 = tools.error_result(e)
        return res1
コード例 #17
0
ファイル: function.py プロジェクト: firegladtang/LanhuSaas-1
def save_staff_scene(request):
    """
    保存用户自定义设置  ---- 需要更改
    :param request:
    :return:
    """
    scene_res = get_scene_by_staff_position_id(request)
    user_info = get_user(request)
    bk_username = user_info.get('data').get('bk_username')  # 当前用户用户名
    staff_scene_default_time = 6000  # 用户自定义设置默认事件
    list = []
    for i in scene_res.get("results"):
        print i['scene_id']
        print bk_username
        data = {
            "staff_scene_id": i['scene_id'],
            "staff_scene_order_id": i['scene_order_id'],
            "bk_username": bk_username,
            "staff_scene_default_time": staff_scene_default_time,
        }
        res = StaffScene.objects.save_staff_scene(data)
        list.append(res)
    result = tools.success_result(list)
    return result
コード例 #18
0
def testConn(request):
    """
    测试
    :param request:
    :return:
    """
    res = json.loads(request.body)
    ip = str(res['ip'])
    port = res['port']
    username = res['username']
    password = res['password']
    databasename = res['databasename']
    # 测试连接密码不需要解密,传的明码
    # password = base64.b64decode(password)
    try:
        if res['type'] == 'MySQL':
            db = MySQLdb.connect(host=ip,
                                 user=username,
                                 passwd=password,
                                 db=databasename,
                                 port=int(port))
        elif res['type'] == 'Oracle':
            sql = r'%s/%s@%s/%s' % (username, password, ip, databasename)
            # db = cx_Oracle.connect(sql)
            db = None
        else:
            # SqlServer数据库链接包暂时有部署问题,暂时取消该功能
            # db = pymssql.connect(host=ip + r':' + port, user=username, password=password, database=databasename)
            return tools.error_result("暂不支持SqlServer类型数据库!")
        cursor = db.cursor()
        if cursor != '':
            cursor.close()
            db.close()
            return tools.success_result('0')
    except Exception as e:
        return tools.error_result(e)
コード例 #19
0
ファイル: function.py プロジェクト: firegladtang/LanhuSaas-1
def show_host(request):
    """
    取出所有主机信息
    :param request:
    :return:
    """
    limit = 7  # 暂时为7
    bk_biz_id = 2
    start_page = tools.page_paging(request, limit)  # 起始页码
    try:
        display_list = []  # 定义一个空列表
        param = {                                                   # 以下定义search_host--查询主机接口参数
            "ip": {
                "data": [],
                "exact": 1,
                "flag": "bk_host_innerip|bk_host_outerip"
            },
            "condition": [
                {
                    "bk_obj_id": "biz",
                    "fields": [],
                    "condition": [
                        {
                            "field": "bk_biz_id",
                            "operator": "$eq",
                            "value": bk_biz_id
                        }
                    ]
                },
            ],
            "page": {
                "start": start_page,
                "limit": limit,
                "sort": "bk_host_id"
            },
        }
        param2 = {  # 定义get_agent_status--agent状态接口参数
            "bk_supplier_id": 0,
            "hosts": [{
                "ip": 0,
                "bk_cloud_id": "0"
            }]
        }
        client = tools.interface_param(request)
        res = client.cc.search_host(param)  # 调用search_host接口
        # 判断调用search_host接口是否成功,成功则取数据,失败则返回错误信息
        if res.get('result'):
            bk_host_list = res.get('data').get('info')
        else:
            bk_host_list = []
            logger.error(u"请求主机列表失败:%s" % res.get('message'))
        for i in bk_host_list:  # 循环遍历接口返回的参数,取出数据保存
            dic = {
                'bk_os_name': i['host']['bk_os_name'],
                'bk_host_name': i['host']['bk_host_name'],
                'bk_host_innerip': i['host']['bk_host_innerip'],
                'bk_inst_name': i['host']['bk_cloud_id'][0]['bk_inst_name'],
            }
            param2['hosts'][0]['ip'] = dic['bk_host_innerip']
            res2 = client.gse.get_agent_status(param2)  # 调用get_agent_status接口
            bk_agent_info = res2['data']
            if bk_agent_info['0:' +
                             dic['bk_host_innerip']]['bk_agent_alive'] == 1:
                dic['bk_agent_alive'] = u"Agent已安装"
            else:
                dic['bk_agent_alive'] = u"Agent未安装"
            display_list.append(dic)  # 把取出来的数据保存到display_list里面
        print display_list
        result = tools.success_result(display_list)
    except Exception, e:
        result = tools.error_result(e)
コード例 #20
0
ファイル: function.py プロジェクト: firegladtang/LanhuSaas-1
def get_staff_scene(request):
    """
    获取场景 ---- 完成-----多个岗位对应多个场景
    :param request:
    :return:
    """
    try:
        staff_info = get_staff_info(request)
        now_time = datetime.datetime.now().strftime("%H:%M:%S")  # 当前时间字符串型
        bk_username = staff_info.get('result').get('bk_username')  # 当前用户用户名
        res = PositionScene.objects.get_position_scene(
            staff_info.get("result").get("staff_position_id"))
        temp_list = []  # 存储scene_id
        for i in res.get("result"):
            temp_list.append(i['scene_id'])
        pass
        print(u'通过岗位获取的所有岗位有的场景ID')
        print temp_list
        # 根据岗位获取对应场景信息
        scene_res = Scene.objects.filter(
            scene_id__in=temp_list,
            scene_start_time__lt=now_time,
            scene_stop_time__gt=now_time).order_by('scene_order_id').values()
        scene_list = []  # 所有符合要求的场景id
        for i in scene_res:  # 遍历结果集
            scene_id = i['scene_id']
            scene_list.append(scene_id)
        print(u"符合要求的场景ID")
        print scene_list
        # 根据用户和场景ID遍历个人设置场景信息(根据用户设置排序)
        staff_scene_res = StaffScene.objects.filter(
            bk_username=bk_username, staff_scene_id__in=scene_list).order_by(
                'staff_scene_order_id').values()
        staff_scene_list = []  # 用户设置了的并符合要求的场景ID
        staff_scene_default_time_list = []
        for i in staff_scene_res:
            staff_scene_id = i['staff_scene_id']
            staff_scene_list.append(staff_scene_id)
            staff_scene_default_time = i['staff_scene_default_time']
            staff_scene_default_time_list.append(staff_scene_default_time)
        print(u'用户设置了的场景ID')
        print staff_scene_list
        print(u'用户自定义设置的时间')
        print staff_scene_default_time_list
        difference_list = list(
            set(scene_list).difference(
                set(staff_scene_list)))  # 用户没有设置的场景ID,将默认排在最后
        print(u'用户没有设置的场景ID')
        print difference_list
        temp = StaffScene.objects.filter(
            bk_username=bk_username, staff_scene_id__in=scene_list).values()
        temp_list = []
        for i in temp:
            temp_list.append(i)
        result_list = []  # 存储最后结果集
        staff_scene_default_time_list_length = 0
        for j in staff_scene_list:
            # 将符合要求的并且用户设置了顺序的依次添加搞结果集
            result = Scene.objects.filter(
                scene_id=j,
                scene_start_time__lt=now_time,
                scene_stop_time__gt=now_time).values()
            for i in result:
                i['scene_start_time'] = i['scene_start_time'].strftime(
                    "%H:%M:%S")
                i['scene_stop_time'] = i['scene_stop_time'].strftime(
                    "%H:%M:%S")
                i['scene_default_time'] = staff_scene_default_time_list[
                    staff_scene_default_time_list_length]
                staff_scene_default_time_list_length = staff_scene_default_time_list_length + 1
                result_list.append(i)

        # 取出符合要求的并且用户没有自主设置的场景添
        temp_staff_scene = Scene.objects.filter(
            scene_start_time__lt=now_time,
            scene_stop_time__gt=now_time,
            scene_id__in=difference_list).order_by('scene_order_id').values()
        # 将符合要求的并且用户没有自主设置的场景添加到结果集
        for i in temp_staff_scene:
            i['scene_start_time'] = i['scene_start_time'].strftime("%H:%M:%S")
            i['scene_stop_time'] = i['scene_stop_time'].strftime("%H:%M:%S")
            result_list.append(i)
        result = tools.success_result(result_list)
    except Exception, e:
        result = tools.error_result(e)
コード例 #21
0
ファイル: function.py プロジェクト: firegladtang/LanhuSaas-1
def select_All(request):
    result_list = []
    # 存储最后结果,name:场景名,color:颜色
    user = user_info.objects.get(user_name=request.user)
    result = get_every_scene_health_degree(user.id)
    if result.__len__() == 0:
        return tools.success_result(result_list)
    for scene_obj in result:
        my_dict = {}
        cur_time = str(scene_obj[2])
        start_time = str(scene_obj[3])
        end_time = str(scene_obj[4])
        # 正在执行的场景
        if cur_time >= start_time and cur_time <= end_time:
            my_dict["name"] = str(scene_obj[1]) + "(分值:" + str(
                scene_obj[7]) + ")"
            my_dict["id"] = str(scene_obj[0])
            result_li = select_alert(str(scene_obj[0]))
            content = ''
            j = 0
            for i in result_li:
                content += "告警内容:" + i.get("name") + "  告警状态:" + i.get(
                    "status_name") + "<br/>"
            my_dict["content"] = content
            print content
            # 第7个值为场景的得分值
            if float(scene_obj[7]) >= 90 and float(scene_obj[7]) < 100:
                my_dict["color"] = "yellow"
                my_dict["sort"] = "2"
            if float(scene_obj[7]) < 90:
                my_dict["color"] = "red"
                my_dict["sort"] = "1"
            if float(scene_obj[7]) == 100:
                my_dict["color"] = "green"
                my_dict["sort"] = "3"
        # 未开始的场景
        if cur_time < start_time:
            my_dict["name"] = str(scene_obj[1]) + "(未执行)"
            my_dict["color"] = "gray"
            my_dict["sort"] = "4"
            my_dict["id"] = str(scene_obj[0])
            result_li = select_alert(str(scene_obj[0]))
            content = ''
            j = 0
            for i in result_li:
                content += "告警内容:" + i.get("name") + "  告警状态:" + i.get(
                    "status_name") + "<br/>"
            my_dict["content"] = content
            print content
        # 当前时间大于场景结束时间,也算未执行的场景
        if cur_time > end_time:
            my_dict["name"] = str(scene_obj[1]) + "(未执行)"
            my_dict["color"] = "gray"
            my_dict["sort"] = "4"
            my_dict["id"] = str(scene_obj[0])
            result_li = select_alert(str(scene_obj[0]))
            content = ''
            j = 0
            for i in result_li:
                content += "告警内容:" + i.get("name") + "  告警状态:" + i.get(
                    "status_name") + "<br/>"
            my_dict["content"] = content
            print content
        result_list.append(my_dict)
    result_scene = tools.success_result(result_list)
    return result_scene
コード例 #22
0
ファイル: gather.py プロジェクト: firegladtang/LanhuSaas-1
    def gather_base_test(cls, interface_type, measures, measures_name,
                         gather_rule, show_rule_type, interface_param):
        """
        基本单元采集测试
        :param interface_type: 接口类型 log为日志,measures为指标类型
        :param measures:        指标集
        :param measures_name:   指标名称
        :param gather_rule:     解析规则
        :param show_rule_type:  显示类型 0/百分比, 1/颜色, 2/不变化 增加显示类型时请增加注释
        :param interface_param: url参数
        :return:
        """
        # 日志数据模拟
        if interface_type == 'log':
            api_address = MEASURES_QUERY_API
            # 模拟数据
            temp_list = [{"zy-shangpin-initial_system-init": "1"}]
            # 加入颜色展示规则
            for temp in temp_list:
                temp[measures + '_' + measures_name] = Gather.color_manage(
                    temp[measures + '_' + measures_name], gather_rule)
            # 返回统一出来的结果
            return success_result(temp_list)
        else:
            api_address = MEASURES_QUERY_API
        # 获取当前系统时间前10秒(具体时长数据库配置,默认为1000秒)的时间戳
        result = get_previous_second_ts()
        curr_ts = str(list(result[0])[0])
        query_form = api_address + '?' + 'start=' + curr_ts + '&m=sum:sum:' + measures + '_' + measures_name + interface_param
        timeout_result = get_icube_timeout()
        icube_timeout = int(list(timeout_result[0])[0])
        # 设置调用服务的超时时长在数据库中配置,超过配置的时长就抛异常
        request_result = requests.get(url=query_form, timeout=icube_timeout)
        request_code = request_result.status_code
        print request_result
        if request_code == 200:
            temp_list = Gather.change_json(measures, request_result,
                                           measures_name)
            # 百分比
            if show_rule_type == '0':

                # # API请求结果
                # result_json = json.loads(request_result.content)
                # # 此处解析结果
                # result_list = []
                # for i in result_json:
                #     time_list = []
                #     for key, value in i['dps'].items():
                #         time_list.append(key)
                #     max_time = max(time_list)
                #     metric = i['dps'][max_time]
                #     max_time = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(int(max_time)))
                #     map = {}
                #     map[measures + '_' + measures_name] = metric
                #     map['time'] = max_time
                #     appsystem = i['tags']['appsystem']
                #     ip = i['tags']['ip']
                #     map['system_name'] = appsystem
                #     map['ip'] = ip
                #     result_list.append(map)

                # 此处规则转换
                for i in temp_list:
                    i[measures + '_' + measures_name] = Gather.percent_manage(
                        gather_rule, i[measures + '_' + measures_name])
                    # i['metric_max'] = Gather.percent_manage(gather_rule, i['metric_max'])
                    # i['metric_avg'] = Gather.percent_manage(gather_rule, i['metric_avg'])
                # print result_list
                return success_result(temp_list)
            # 显示颜色
            elif show_rule_type == '1':

                # 转换颜色规则
                # color_code_map = {}
                # rule_list = gather_rule.split('@')
                # for i in rule_list:
                #     if i is not None:
                #         color_rgb = i.split('==')[0]
                #         try:
                #             color_code = i.split('==')[1]
                #         except Exception as e:
                #             # 不存在默认将
                #             color_code = 'error'
                #         color_code_map[color_code] = color_rgb

                # 模拟数据
                # temp_list = [{"system_name": "jzjy", "ip": "192.168.1.153", "cpu_cpu_used_pct": 2, "time": "2019-03-22 19:42:12"}, {"system_name": "jzjy", "ip": "192.168.1.157", "cpu_cpu_used_pct": 0, "time": "2019-03-22 19:37:23"}, {"system_name": "jzjy", "ip": "192.168.1.165", "cpu_cpu_used_pct": 0, "time": "2019-03-22 19:41:56"}]
                # result_list = Gather.color_manage(color_code_map, temp_list, measures, measures_name)
                try:
                    for i in temp_list:
                        i[measures + '_' +
                          measures_name] = Gather.color_manage(
                              i[measures + '_' + measures_name], gather_rule)
                        # i['metric_max'] = Gather.color_manage(i['metric_max'], gather_rule)
                        # i['metric_avg'] = Gather.color_manage(i['metric_avg'], gather_rule)
                    return success_result(temp_list)
                except Exception as e:
                    print e
                    return error_result(u'异常' + str(e))
            # 其它展示
            elif show_rule_type == '2':
                try:
                    for i in temp_list:
                        i[measures + '_' +
                          measures_name] = Gather.other_manage(
                              i[measures + '_' + measures_name], gather_rule)
                        # i['metric_max'] = Gather.other_manage(i['metric_max'], gather_rule)
                        # i['metric_avg'] = Gather.other_manage(i['metric_avg'], gather_rule)
                    print temp_list
                    return success_result(temp_list)
                except Exception as e:
                    print e
                    return error_result(u'异常' + str(e))
        elif request_code == '500':
            return error_result(u'接口请求错误')
        elif request_code == '404':
            return error_result(u'接口找不到了')
        else:
            return error_result(request_code.__str__() + u'系统错误')