class ServerDetail(RestView): """ Redis 服务器列表 """ method_decorators = (ObjectMustBeExist(Server), ) def get(self, object_id): """ """ data, _ = ServerSchema().dump(g.instance) return data def put(self, object_id): """更新服务器 """ schema = ServerSchema(context={'instance': g.instance}) data = request.get_json() server, errors = schema.load(data, partial=True) if errors: return errors, 400 server.save() return {'ok': True} def delete(self, object_id): """删除服务器 """ g.instance.delete() return {'ok': True}, 204
class UserDetail(RestView): """ Redis 服务器列表 """ method_decorators = (TokenAuthenticate(), ObjectMustBeExist(User)) def get(self, object_id): """ """ data, _ = UserSchema().dump(g.instance) return data def put(self, object_id): """更新服务器 """ schema = UserSchema(context={'instance': g.instance}) data = request.get_json() server, errors = schema.load(data, partial=True) if errors: return errors, 400 server.save() return {'ok': True} def delete(self, object_id): """删除服务器 """ # 删除服务器时候需要判断当时是否还有没有管理员账户 if User.query.filter(User.id != g.instance.id).count() == 0: raise RestError(400, 'must have one administrator') g.instance.delete() return {'ok': True}, 204
class ServerMetrics(RestView): method_decorators = (TokenAuthenticate(), ObjectMustBeExist(Server)) def get(self, object_id): """获取监控信息 TODO 如何限制访问频率 """ return g.instance.get_metrics()
class ServerCommand(RestView): method_decorators = (TokenAuthenticate(), ObjectMustBeExist(Server)) def post(self, object_id): """执行 Redis 命令 TODO 命令参数如何解析 """ pass
class ServerMetrics(RestView): """获取服务器监控信息 """ method_decorators = (ObjectMustBeExist(Server), ) def get(self, object_id): """获取监控信息 TODO 如何限制访问频率 """ return g.instance.get_metrics()
class ServerCommand(RestView): """执行命令 """ method_decorators = (ObjectMustBeExist(Server), ) def post(self, object_id): """执行 Redis 命令 TODO 命令参数如何解析 """ pass
class ServerDetail(RestView): method_decorators = (TokenAuthenticate(), ObjectMustBeExist(Server)) def get(self, object_id): data, _ = ServerSchema().dump(g.instance) return data def put(self, object_id): schema = ServerSchema(context={"instance": g.instance}) data = request.get_json() server, errors = schema.load(data, partial=True) if errors: return errors, 400 server.save() return {'ok': True} def delete(self, object_id): g.instance.delete() return {'ok': True}, 204
class ServerMetrics(RestView): method_decorators = (ObjectMustBeExist(Server), ) def get(self, object_id): return g.instance.get_metrics(), 200