コード例 #1
0
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
コード例 #2
0
def mod_server(item: ReqModifyServer, res: ResponseBase):
    session = mysql_session.session()
    try:
        # 删除相关缓存
        scan = redis_session.scan(match='server_list*')
        for i in scan[1]:
            redis_session.delete(i)
        data = session.query(ServerList).filter(
            ServerList.server_ip == item.server_ip).first()
        if data == None:
            sl = ServerList()
            sl.gmt_create = datetime.now()
            sl.setData(item)
            session.add(sl)
            session.commit()
            res.succ()
            pass
        else:
            data.setData(item)
            session.commit()
            res.succ()
            pass
    except Exception as e:
        res.error(Error.OPTION_ERR)
        logger.error(e)
        pass
    session.close()  # 关闭session
    return res
コード例 #3
0
def up_history_broken(item: ReqUpdateHistoryBroken, res: ResponseBase,
                      host: str):
    session = mysql_session.session()
    try:
        data = session.query(BrokenHistoryResult).filter(
            and_(BrokenHistoryResult.date == item.date,
                 BrokenHistoryResult.server_ip == host)).first()
        if data == None:
            bhr = BrokenHistoryResult()
            bhr.gmt_update = datetime.now()
            bhr.setData(item, host)
            session.add(bhr)
            session.commit()
            res.succ()
            pass
        else:
            data.setData(item, host)
            session.commit()
            res.succ()
            pass
    except Exception as e:
        res.error(Error.OPT_ERR)
        logger.error(e)
        pass
    # 删除相关缓存
    scan = redis_session.scan(match='history_broken*')
    for i in scan[1]:
        redis_session.delete(i)
    session.close()
    return res.__dict__
コード例 #4
0
def fur_state(item: ReqUpdateFurState, res: ResponseBase, host: str):
    session = mysql_session.session()
    try:
        data = session.query(FurnaceList).filter(
            FurnaceList.furnace_id == item.furnace_id,
            FurnaceList.furnace_series == item.furnace_series).first()
        if data == None:
            fl = FurnaceList()
            fl.gmt_create = datetime.now()
            fl.setData(item, host)
            session.add(fl)
            session.commit()
            res.succ()
            pass
        else:
            data.setData(item, host)
            session.commit()
            res.succ()
            pass

    except Exception as e:
        res.error(Error.OPT_ERR)
        logger.error(e)
        pass
    session.close()
    return res.__dict__
コード例 #5
0
def up_series_broken(item: ReqUpdateSeriesBroken, res: ResponseBase):
    try:
        if item.type > 0:
            redis_session.hset(item.r_name_list[item.type - 1], item.series,
                               item.broken_nums)
            res.succ()
            pass
        else:
            res.error(Error.PARAM_ERR)
            pass
    except Exception as e:
        res.error(Error.OPT_ERR)
        logger.error(e)
        pass
    return res.__dict__
コード例 #6
0
def up_seed_process(item: ReqSeedProcess, res: ResponseBase):
  session = mysql_session.session()
  try:
    sc = SeedCraft()
    sc.setData(item)
    session.add(sc)
    session.commit()
    mongo_session.insert_collection(f'{sc.furnace_id}_craft',sc.chg2mongo())
    res.succ()
    pass
    
  except Exception as e:
    res.error(Error.OPT_ERR)
    logger.error(e)
    pass
  session.close()
  return res
コード例 #7
0
def up_temp_process(item: ReqTempProcess, res: ResponseBase):
  # 更新 数据
  session = mysql_session.session()
  try:
    tc = TempCraft()
    tc.setData(item)
    session.add(tc)
    session.commit()
    mongo_session.insert_collection(f'{tc.furnace_id}_craft',tc.chg2mongo())
    res.succ()
    pass
  except Exception as e:
    res.error(Error.OPT_ERR)
    logger.error(e)
    pass
  session.close()
  return res
コード例 #8
0
def up_cyl_process(item: ReqCylProcess, res: ResponseBase):
  session = mysql_session.session()
  # 更新 数据
  try:
    # 保存数据库 mysql
    cc = CylCraft()
    cc.setData(item)
    session.add(cc)
    session.commit()
    mongo_session.insert_collection(f'{cc.furnace_id}_craft',cc.chg2mongo())
    res.succ()
    pass  
  except Exception as e:
    res.error(Error.OPT_ERR)
    logger.error(e)
    pass
  session.close()
  return res
コード例 #9
0
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
コード例 #10
0
def up_shoulder_process(item: ReqShoulderProcess, res: ResponseBase):
  session = mysql_session.session()
  # 更新 数据
  try:
    # 保存数据库 mysql
    shc = ShoulderCraft()
    shc.setData(item)
    session.add(shc)
    session.commit()
    mongo_session.insert_collection(f'{shc.furnace_id}_craft',shc.chg2mongo())
    res.succ()
    pass
    
  except Exception as e:
    res.error(Error.OPT_ERR)
    logger.error(e)
    pass
  session.close()
  return res
コード例 #11
0
def up_realtime_model(item: ReqUpRealtimeModel, res: ResponseBase):
    try:
        model_list = []
        for child in item.model_list:
            model_child = {}
            model_child['name'] = child.get('name', '')
            model_child['running_status'] = child.get('running_status', 0)
            model_child['used_memory'] = child.get('used_memory', 0)
            model_child['used_gpu'] = child.get('used_gpu', 0)
            model_child['detect_speed'] = child.get('detect_speed', 0)
            model_child['cache_img_nums'] = child.get('cache_img_nums', 0)
            model_list.append(model_child)
        redis_session.hset(f'{item.server_ip}', 'model_list',
                           json.dumps(model_list))
        redis_session.expire(f'{item.server_ip}', 60 * 60)
        res.succ()
        pass
    except Exception as e:
        res.error(Error.OPT_ERR)
        logger.error(e)
        pass
    return res
コード例 #12
0
def up_alarm_info(item: ReqUpAlarmInfo, res: ResponseBase):
    try:
        mongo_dict = {}
        redis_session.incr('alarm_info_index')
        index = redis_session.get('alarm_info_index')
        mongo_dict['index'] = int(index)
        mongo_dict['update'] = datetime.now()
        mongo_dict['fur_series'] = item.fur_series
        mongo_dict['fur_id'] = item.fur_id
        mongo_dict['alarm_time'] = item.alarm_time
        mongo_dict['alarm_craft'] = item.alarm_craft
        mongo_dict['alarm_func'] = item.alarm_func
        mongo_dict['alarm_result'] = item.alarm_result
        mongo_dict['server_ip'] = item.server_ip
        mongo_session.insert_collection('alarm_info', mongo_dict)
        res.succ()
        pass
    except Exception as e:
        res.error(Error.OPT_ERR)
        logger.error(e)
        pass
    return res
コード例 #13
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
コード例 #14
0
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
コード例 #15
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