Repository navigation
[Test] 업로드 성공 응답의 DB·GCS 복원 판정 계약 - #561
Merged
Merged
Conversation
|
Important
This repository does not receive automatic reviews because it has fewer than 10 stars. ⚙️ Run configuration
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
목적
Refs #560
기존 복원 기록은 DB·GCS 복원과 일부 기능 재개를 각각 확인했지만, 클라이언트가 성공 응답을 받은 업로드 전체가 최초 복원 상태에 남았는지 판정하는 연결 원장이 없었습니다. 후속 격리 복구 실험에서 사용하는 응답 원장·입력 고정·최초 감사 관문을 추가합니다.
성공 기준은 응답 ID 4종과 DB 관계, 보존 원본의 SHA-256·크기·고정 generation을 대조하고, 최초 감사가 저장되기 전에 Worker·Flyway·수선을 허용하지 않는 것입니다. 이번 변경은 실제 복구 계측을 완료했다는 보고가 아닙니다.
테스트 환경
4cfe9666ac3a670bb72c8cd4d933bc7d7238fce0; 제출 구현:e62c579a184855c2aa55be192371ca130be6075a.ha_evidence의 내구성 파일 쓰기를 재사용합니다. 개인 환경 파일·공개 서비스 설정 변경은 없습니다.테스트 방법
restore → snapshot까지만 실행하고 최초 DB·원본 상태를 별도 파일에 보존합니다. Worker·Flyway·수선·원본 접근이 먼저 실행됐으면 기동하지 않습니다.activate를 호출합니다. 중간 ACK 누락, 객체 누락·해시·버전 불일치를 주입해 관문을 확인합니다.명령:
python3 -m unittest discover -s scripts/opensql -p test_dr_recovery.py -v관측 결과
recovery-contract작업을 추가했습니다.검증 과정에서 확인된 사항
operator.py가 Python 표준operator모듈을 가려 import 순환이 발생했습니다.controlled_driver.py로 수정한 뒤 회차를 구분해 재실행했습니다. 최초 회차를 통과로 바꾸지 않았습니다.cutoff는 입력 고정 시각입니다. 실제 장애 시각과 차이가 있으면 별도 기록해야 하며, 현재 로컬 계약 통과를 OpenSQL RPO 0·공개 서비스 RTO·실제 모델 검색 복구 성공으로 표현하지 않습니다.설계: 업로드 복원 판정 계약