Documentation
¶
Overview ¶
Package handler 는 백업/복구 HTTP 어댑터다.
설계: docs/11_기능설계/Nullus_백업복구_설계.md §7.2 (nullus-plan#75)
Index ¶
- Constants
- type BackupHandler
- func (h *BackupHandler) CreateBackup(c echo.Context) error
- func (h *BackupHandler) CreateBackupSet(c echo.Context) error
- func (h *BackupHandler) CreateRestore(c echo.Context) error
- func (h *BackupHandler) CreateRestoreSet(c echo.Context) error
- func (h *BackupHandler) GetBackup(c echo.Context) error
- func (h *BackupHandler) GetBackupSet(c echo.Context) error
- func (h *BackupHandler) GetRestore(c echo.Context) error
- func (h *BackupHandler) ListBackups(c echo.Context) error
- func (h *BackupHandler) RegisterRoutes(g *echo.Group)
- func (h *BackupHandler) VerifyBackup(c echo.Context) error
- func (h *BackupHandler) WithOrganizationChecker(orgs port.OrganizationChecker) *BackupHandler
- type UseCaseFactory
Constants ¶
const SetConfirmPhrase = "all"
SetConfirmPhrase 는 세트 백업의 확인 문구다.
단독 백업은 멈추는 네임스페이스를 재입력받지만, 세트는 조직의 **모든** 스택을 멈추고 어느 스택인지는 서버가 정한다 — 그래서 "전부" 를 뜻하는 고정 문구를 받는다. 스택이 하나도 없는 조직이면 멈추는 것이 없지만, 그 판단은 유스케이스가 스택을 읽은 뒤에야 가능하므로 세트는 항상 확인을 요구한다.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type BackupHandler ¶
type BackupHandler struct {
// contains filtered or unexported fields
}
func NewBackupHandler ¶
func NewBackupHandler(f UseCaseFactory, v *usecase.VerifyUseCase, repo backupReader, defaultNS string) *BackupHandler
func (*BackupHandler) CreateBackup ¶
func (h *BackupHandler) CreateBackup(c echo.Context) error
func (*BackupHandler) CreateBackupSet ¶
func (h *BackupHandler) CreateBackupSet(c echo.Context) error
CreateBackupSet 은 플랫폼 + 조직의 모든 설치 완료 스택을 한 세트로 뜬다. 동기다 — 단독 백업과 같다.
func (*BackupHandler) CreateRestore ¶
func (h *BackupHandler) CreateRestore(c echo.Context) error
func (*BackupHandler) CreateRestoreSet ¶
func (h *BackupHandler) CreateRestoreSet(c echo.Context) error
CreateRestoreSet 은 세트를 플랫폼 → 스택 순서로 되돌린다. 멤버 하나라도 실패하면 409 다 — 단독 복구가 실패한 복구 기록을 409 로 돌려주는 것과 같다.
func (*BackupHandler) GetBackupSet ¶
func (h *BackupHandler) GetBackupSet(c echo.Context) error
GetBackupSet 은 세트의 실행들과 파생 상태(domain.SetStatus)를 준다.
func (*BackupHandler) GetRestore ¶
func (h *BackupHandler) GetRestore(c echo.Context) error
func (*BackupHandler) ListBackups ¶
func (h *BackupHandler) ListBackups(c echo.Context) error
func (*BackupHandler) RegisterRoutes ¶
func (h *BackupHandler) RegisterRoutes(g *echo.Group)
func (*BackupHandler) VerifyBackup ¶
func (h *BackupHandler) VerifyBackup(c echo.Context) error
VerifyBackup 은 복원 없이 산출물이 열리는지만 본다.
복구 리허설을 상시로 돌릴 수 없으므로, "백업은 되는데 복원이 안 됐다" 에 대한 최소한의 상시 방어선이다.
func (*BackupHandler) WithOrganizationChecker ¶
func (h *BackupHandler) WithOrganizationChecker(orgs port.OrganizationChecker) *BackupHandler
WithOrganizationChecker 는 X-Org-ID 헤더의 조직 존재 확인을 배선한다.
없는 조직으로 만든 백업은 어떤 화면에도 보이지 않는다 — 목록은 로그인 사용자의 조직으로만 거른다. 문서의 유령 조직(00000000-…-0001)으로 실제로 그랬다.
type UseCaseFactory ¶
type UseCaseFactory interface {
Backup(ctx context.Context, stackID string) (*usecase.BackupUseCase, error)
Restore(ctx context.Context, stackID string) (*usecase.RestoreUseCase, error)
// BackupSet·RestoreSet 은 플랫폼 + 조직의 모든 스택을 한 세트로 뜨고 되돌린다(설계 §6.7).
BackupSet(ctx context.Context) (*usecase.BackupSetUseCase, error)
RestoreSet(ctx context.Context) (*usecase.RestoreSetUseCase, error)
}
UseCaseFactory 는 스택별 유스케이스를 만든다.
백업 대상 스택은 등록된 워크로드 클러스터에 있으므로, 어댑터를 기동 시점에 고정할 수 없다. 요청이 온 뒤에야 어느 클러스터인지 알 수 있다.