lablup / lablup/backend.ai

Relocate the resource group binding specs to models

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

Description

자원그룹과 도메인, 프로젝트, 키페어를 잇는 연관 행의 옛 spec 열다섯을 v2 베이스로 옮긴다.

복합 자연키 지원이 먼저다. 이 열다섯은 대부분 쌍으로 지목되는 행을 다룬다.

셋은 부르는 곳이 없다. 옮기지 말고 지운다. ResourceGroupsForKeypairsPurgerSpec은 정의만 있고, ResourceGroupForDomainPurgerSpec과 ResourceGroupForProjectPurgerSpec은 생성 함수까지 있으나 그 함수를 부르는 곳이 없다.

creator 셋과 unbinder 둘은 api/gql_legacy/scaling_group.py가 부른다. purger들은 같은 도메인 안에서 쓰인다.

RBACScopeEntityUnbinder 계열 둘은 옮길 대상 베이스가 다르다.

공통 완료 기준. 이 디렉터리에서 repositories.base import가 0이고, 레거시 DBOpsProvider 사용이 0이고, V2 ops를 직접 생성하는 자리가 0이고, 리포지토리가 세션이나 엔진이 아니라 V2DBOpsProvider를 받는다. 근거는 repositories/AGENTS.md다.

판별은 import 경로로 한다. repositories.base와 models.specs에 이름이 같은 클래스가 있어서 클래스명으로 세면 틀린다.

JIRA Issue: BA-7468

Contributor guide

Open the contributing guide

Research direction

Read repositories/AGENTS.md first, then inventory the fifteen legacy specs under repositories.base and their counterparts in models.specs by import path rather than class name. Check api/gql_legacy/scaling_group.py for the creator and unbinder callers, and inspect same-domain purger usage. Done means no repositories.base imports, legacy DBOpsProvider uses, or direct V2 ops construction remain, and repositories receive V2DBOpsProvider rather than a session or engine.

Written by the indexing model from the issue text.

Assessment

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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.