remote_server.py 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. from typing import Optional, List
  2. from pydantic import BaseModel, Field
  3. from datetime import datetime
  4. class RemoteServerBase(BaseModel):
  5. server_id: str = Field(..., description="服务器唯一标识,如 MCP1")
  6. name: str = Field(..., description="服务器名称")
  7. host: str = Field(..., description="服务器地址")
  8. port: int = Field(22, description="SSH端口")
  9. username: str = Field("root", description="SSH用户名")
  10. password: Optional[str] = Field(None, description="SSH密码")
  11. key_file: Optional[str] = Field(None, description="SSH私钥路径")
  12. project_path: str = Field("/root/troov-asyncio", description="项目路径")
  13. class RemoteServerCreate(RemoteServerBase):
  14. pass
  15. class RemoteServerUpdate(BaseModel):
  16. name: Optional[str] = None
  17. host: Optional[str] = None
  18. port: Optional[int] = None
  19. username: Optional[str] = None
  20. password: Optional[str] = None
  21. key_file: Optional[str] = None
  22. project_path: Optional[str] = None
  23. class RemoteServerOut(RemoteServerBase):
  24. id: int
  25. created_at: datetime
  26. updated_at: datetime
  27. class Config:
  28. from_attributes = True