feat(music-lab): 파이프라인 하드 삭제 엔드포인트 DELETE /api/music/pipeline/{id}
cancel(state→cancelled, active/failed 뷰에서만 제거)만으론 status=all 뷰에
행이 남아 옛 dead 파이프라인을 완전히 치울 수 없었음. DELETE로 하드 삭제 추가.
- db.delete_pipeline(pid)→bool: 자식행(pipeline_feedback, pipeline_jobs) 먼저
삭제 후 video_pipelines 삭제(SQLite FK 미강제라 명시적 cascade). 존재 여부 bool.
- DELETE /api/music/pipeline/{id}: 없으면 404, 있으면 {"ok":true,"deleted":id}.
상태 가드 없음(관리자 정리 용도, cancel과 동일한 단순 정책).
- 테스트 3종(삭제+404+자식행 cascade) TDD Red→Green. music-lab 152 passed.
- CLAUDE.md 엔드포인트 카탈로그 갱신.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01EqCYBhvTcdeCTUDX3RhWx9
This commit is contained in:
@@ -1133,6 +1133,14 @@ def cancel_pipeline(pid: int):
|
||||
return {"ok": True}
|
||||
|
||||
|
||||
@app.delete("/api/music/pipeline/{pid}")
|
||||
def delete_pipeline_endpoint(pid: int):
|
||||
"""파이프라인 행을 하드 삭제(전체 목록에서 완전 제거). 없으면 404."""
|
||||
if not _db_module.delete_pipeline(pid):
|
||||
raise HTTPException(404)
|
||||
return {"ok": True, "deleted": pid}
|
||||
|
||||
|
||||
@app.post("/api/music/pipeline/{pid}/retry", status_code=202)
|
||||
async def retry_pipeline(pid: int, bg: BackgroundTasks):
|
||||
from .pipeline.state_machine import STEPS
|
||||
|
||||
Reference in New Issue
Block a user