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