def up_server(admin: str, item: ReqUpdateServer, res: ResponseBase):
    try:
        admin_col = {'username': admin}
        admin = mongo_session.select_one_collection('user_info', admin_col)
        if admin['type'] != 0:
            res.error(Error.NO_AUTH)
            return res
        search_col = {'server_ip': item.server_ip}
        mongo_dict = mongo_session.select_one_collection(
            'server_info', search_col)
        if mongo_dict == None:
            mongo_dict = {}
        mongo_dict['server_ip'] = item.server_ip
        mongo_dict['server_name'] = item.server_name
        mongo_dict['update'] = datetime.now()
        if item.operation == 0:  # 新增
            mongo_dict['alarm'] = 0
            mongo_dict['state'] = 1
            pass
        elif item.operation == 2:  # 删除
            mongo_dict['state'] = 0
            pass
        else:
            pass
        mongo_session.save_collection('server_info', mongo_dict)
        res.succ()
        pass
    except Exception as e:
        res.error(Error.OPT_ERR)
        logger.error(e)
        pass
    return res
def login(item: ReqLogin, res: ResponseBase):
    # denglu
    data = {'token': '', 'account': '', 'type': 0}
    try:
        search_col = {'username': item.username, 'state': 1}
        user_dict = mongo_session.select_one_collection(
            'user_info', search_col)
        if user_dict == None:
            res.error(Error.PARAM_ERR, err_msg="用户不存在")
            return res
        if user_dict['password'] != item.password:
            res.error(Error.PARAM_ERR, err_msg="密码错误")
            return res
        # 成功 更新登录时间
        user_dict['login_time'] = datetime.now()
        mongo_session.save_collection('user_info', user_dict)
        # 生成token
        token = get_token(item.username)
        data['token'] = token
        data['account'] = user_dict['username']
        data['type'] = user_dict['type']
        print(data)
        if user_dict['type'] == 1:
            data['server_ip'] = user_dict['server_ip']
        # token存入 redis
        redis_session.set(token, item.username, 60 * 60)
        res.msg = "登录成功"
        res.data = data
        pass
    except Exception as e:
        res.error(Error.OPT_ERR)
        logger.error(e)
        pass
    return res
def up_user(admin: str, item: ReqUpdateUser, res: ResponseBase):
    try:
        # 校验权限
        admin_col = {'username': admin}
        admin = mongo_session.select_one_collection('user_info', admin_col)
        if admin['type'] != 0:
            res.error(Error.NO_AUTH)  # 没有权限
            return res
        # 查询数据库是否存在该用户
        search_col = {'username': item.username}
        mongo_dict = mongo_session.select_one_collection(
            'user_info', search_col)
        if mongo_dict == None:
            mongo_dict = {}
        if item.operation == 0:  # 新增
            mongo_dict['username'] = item.username
            mongo_dict['password'] = item.password
            mongo_dict['type'] = item.user_type
            mongo_dict['server_ip'] = item.server_ip
            mongo_dict['state'] = 1
            pass
        elif item.operation == 1:  # 修改
            mongo_dict['username'] = item.username
            mongo_dict['password'] = item.password
            mongo_dict['type'] = item.user_type
            mongo_dict['server_ip'] = item.server_ip
            pass
        elif item.operation == 2:  # 删除
            mongo_dict['username'] = item.username
            mongo_dict['state'] = 0
            pass
        else:
            res.error(Error.OPT_ERR, err_msg='操作数异常')
            return res
        mongo_dict['update'] = datetime.now()
        mongo_session.save_collection('user_info', mongo_dict)
        res.succ()
        pass

    except Exception as e:
        res.error(Error.OPT_ERR)
        logger.error(e)
        pass
    return res
Exemple #4
0
def fur_result(furnace_series: str, furnace_id: str, device_state: str,
               model_name: str, res: ResponseBase):
    try:
        data = {'img_list': []}
        search_col = {
            'furnace_id': int(furnace_id),
            'furnace_series': furnace_series
        }
        mongo_dict = mongo_session.select_one_collection(
            'furnace_list', search_col)
        if mongo_dict == None: raise Exception('furnace is not exist')
        server_ip = mongo_dict.get('server_ip', '127.0.0.1')
        device_id = furnace_series + furnace_id
        addr = f'http://{server_ip}:5000/furnace_realtime_detection?device_id={device_id}&device_state={device_state}&model_name={model_name}'
        resp = s_reqs.get(addr, timeout=1).json()
        res.data = resp
        pass
    except Exception as e:
        res.error(Error.SERVER_EXCEPTION, e.__str__())
        logger.error(e)
        pass
    return res
Exemple #5
0
def up_furnace_info(item: ReqUpFurInfo, res: ResponseBase):
    try:
        search_col = {
            'furnace_series': item.furnace_series,
            'furnace_id': item.furnace_id
        }
        mongo_dict = mongo_session.select_one_collection(
            'furnace_list', search_col)
        if mongo_dict == None:
            mongo_dict = {}
        mongo_dict['update'] = datetime.now()
        mongo_dict['furnace_series'] = item.furnace_series
        mongo_dict['furnace_id'] = item.furnace_id
        mongo_dict['furnace_state'] = item.furnace_state
        mongo_dict['server_ip'] = item.server_ip
        mongo_dict['online'] = item.online
        mongo_session.save_collection('furnace_list', mongo_dict)
        res.succ()
        pass
    except Exception as e:
        res.error(Error.OPT_ERR)
        logger.error(e)
        pass
    return res
def super_admin(username: str, password: str, res: ResponseBase):
    try:
        # 查询数据库是否存在该用户
        search_col = {'username': username}
        mongo_dict = mongo_session.select_one_collection(
            'user_info', search_col)
        if mongo_dict == None:
            mongo_dict = {}
        mongo_dict['update'] = datetime.now()
        mongo_dict['username'] = username
        mongo_dict['password'] = password
        mongo_dict['server_ip'] = ''
        mongo_dict['type'] = 0  # 0 超级管理员 1 普通
        mongo_dict['login_time'] = datetime.now()
        mongo_dict['state'] = 1  # 0 不可用 1 可用
        mongo_session.save_collection('user_info', mongo_dict)
        res.succ()
        pass

    except Exception as e:
        res.error(Error.OPT_ERR)
        logger.error(e)
        pass
    return res
Exemple #7
0
def up_realtime_server(item: ReqUpRealtimeServer, res: ResponseBase):
    try:
        search_col = {'server_ip': item.server_ip}
        mongo_dict = mongo_session.select_one_collection(
            'server_info', search_col)
        if mongo_dict == None:
            mongo_dict = {}
            mongo_dict['server_ip'] = item.server_ip
            mongo_dict['server_name'] = ''
            mongo_dict['state'] = 1
        # 初始化
        temp_alarm = 0
        cpu_info = {}
        memory_info = {}
        disk_info = {}
        gpu_info = []
        model_info = {}
        # 赋值
        cpu_info['percent'] = item.cpu_info.get('percent', 0)
        cpu_info['status'] = item.cpu_info.get('status', 0)
        if cpu_info['status'] == 1: temp_alarm |= 0b1

        memory_info['total'] = item.memory_info.get('total', 0)
        memory_info['used'] = item.memory_info.get('used', 0)
        memory_info['percent'] = item.memory_info.get('percent', 0)
        memory_info['status'] = item.memory_info.get('status', 0)
        if memory_info['status'] == 1: temp_alarm |= 0b10

        disk_info['total'] = item.disk_info.get('total', 0)
        disk_info['used'] = item.disk_info.get('used', 0)
        disk_info['free'] = item.disk_info.get('free', 0)
        disk_info['percent'] = item.disk_info.get('percent', 0)
        disk_info['status'] = item.disk_info.get('status', 0)
        if disk_info['status'] == 1: temp_alarm |= 0b100

        for child in item.gpu_info:
            gpu_child = {}
            gpu_child['gpu_id'] = child.get('gpu_id', '')
            gpu_child['total'] = child.get('total', 0)
            gpu_child['used'] = child.get('used', 0)
            gpu_child['percent'] = child.get('percent', 0)
            gpu_child['power'] = child.get('power', 0)
            gpu_child['temp'] = child.get('temp', 0)
            gpu_child['status'] = child.get('status', 0)
            if gpu_child['status'] == 1: temp_alarm |= 0b1000
            gpu_info.append(gpu_child)

        model_info['status'] = item.model_info.get('status', 0)
        if model_info['status'] == 1: temp_alarm |= 0b10000

        # 存 redis
        redis_session.hset(f'{item.server_ip}', 'cpu_info',
                           json.dumps(cpu_info))
        redis_session.hset(f'{item.server_ip}', 'memory_info',
                           json.dumps(memory_info))
        redis_session.hset(f'{item.server_ip}', 'disk_info',
                           json.dumps(disk_info))
        redis_session.hset(f'{item.server_ip}', 'gpu_info',
                           json.dumps(gpu_info))
        redis_session.hset(f'{item.server_ip}', 'model_info',
                           json.dumps(model_info))
        redis_session.expire(f'{item.server_ip}', 60 * 60)  # 缓存一个小时
        # 存 mongodb
        mongo_dict['alarm'] = temp_alarm
        mongo_dict['update'] = datetime.now()
        mongo_session.save_collection('server_info', mongo_dict)
        res.succ()
        pass
    except Exception as e:
        res.error(Error.OPT_ERR)
        logger.error(e)
        pass

    return res