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 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
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__
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__
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__
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
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
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
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
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
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
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
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
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