lablup / lablup/backend.ai

Serve a force purge that deletes synchronously

Open
#13,915 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Python
Stars
670
Forks
183
Avg merge
17h 7m
Merged PRs (30d)
358

Description

BEP-1069 §3.5. force 옵션을 받은 purge 는 지금처럼 동기로 지운다. 다섯 entity 에 연다.

### 왜 필요한가

status 가 purge-error 로 간 entity 는 거기서 나올 길이 없다. force purge 가 유일한 출구다. 그리고 정리를 기다릴 수 없는 운영 상황에서도 쓴다.

정리 진행 상태는 entity 마다 status enum 하나에 값으로 실린다 (domain/project/user 는 purging·purge-error, image 는 PURGING·PURGE_ERROR, vfolder 는 delete-ongoing·delete-error). BEP §3.1 이 말한 두 축 두 컬럼이 아니라 단일 enum 이다.

### 할 일

- purge 에 force 옵션을 받는다. 받으면 stage 를 돌리지 않고 지금의 동기 삭제 경로로 지운다.
- 동작 자체는 지금과 같다. 옮기는 것이지 바꾸는 것이 아니다.
- 다섯 entity (domain, project, user, image, vfolder) 에 연다.

### 순서

BEP §5 는 이것을 3단계로 두어 독립 작업으로 잡았으나, 실제로는 컨트롤러·코디네이터가 선 뒤에 붙이는 것이 맞다. force 가 아닌 경로가 무엇인지 정해져야 force 가 그것을 건너뛴다는 말이 성립한다.

### 의존

BA-7454 (컨트롤러·코디네이터 + domain 적용).

JIRA Issue: BA-7456

Contributor guide

Open the contributing guide

Research direction

Start by locating the controller and coordinator entry points for domain, project, user, image, and vfolder, then compare the existing synchronous purge path with the non-force staging path. Done means force purge skips staging and synchronously deletes entities in all five paths, while non-force behavior remains unchanged.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
api, backend
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
52/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.