feat: 算力令牌名称自定义,留空自动编号
- POST /opc/compute/tokens 接受 name 字段 - name 为空时按该用户名下令牌数自动命名(令牌1/令牌2/…)
This commit is contained in:
@@ -537,11 +537,21 @@ async def opc_compute_tokens(user: dict = Depends(require_roles("opc_member"))):
|
||||
return {"items": out}
|
||||
|
||||
|
||||
class OpcTokenCreateRequest(BaseModel):
|
||||
"""创建算力令牌请求:name 为空时按用户令牌数自动编号(令牌1/令牌2/…)。"""
|
||||
name: str = ""
|
||||
|
||||
|
||||
@router.post("/compute/tokens", summary="创建算力令牌")
|
||||
async def opc_compute_tokens_create(user: dict = Depends(require_roles("opc_member"))):
|
||||
async def opc_compute_tokens_create(
|
||||
body: OpcTokenCreateRequest | None = None,
|
||||
user: dict = Depends(require_roles("opc_member")),
|
||||
):
|
||||
"""为当前用户签发一枚消费令牌(供应商自动对接 PineAgents)。"""
|
||||
try:
|
||||
token = await compute_client.issue_user_token(user.get("username"), name="OPC 端令牌")
|
||||
token = await compute_client.issue_user_token(
|
||||
user.get("username"), name=(body.name if body else "")
|
||||
)
|
||||
except compute_client.ComputeError as exc:
|
||||
raise HTTPException(status_code=502, detail=f"算力引擎对接失败: {exc}") from exc
|
||||
token = dict(token or {})
|
||||
|
||||
@@ -111,7 +111,13 @@ async def get_logs(user_pat: str) -> dict:
|
||||
|
||||
|
||||
async def issue_user_token(username: str, name: str = "") -> dict:
|
||||
"""为某引擎用户签发消费令牌,返回 {id, key, ...}。"""
|
||||
"""为某引擎用户签发消费令牌,返回 {id, key, ...}。
|
||||
|
||||
name 为空时自动编号(按该用户名下已有令牌数 +1,如“令牌1”“令牌2”)。
|
||||
"""
|
||||
if not name:
|
||||
existing = await list_user_tokens(username)
|
||||
name = f"令牌{len(existing or []) + 1}"
|
||||
data = await _request(
|
||||
method="POST", path="/api/token", headers=_admin_headers(),
|
||||
json={"username": username, "name": name},
|
||||
|
||||
Reference in New Issue
Block a user