feat: Cinder Volume CRD 작성 #47
🔗 관련 이슈
💡 작업 내용
- 볼륨 스냅샷 목록/상세 조회, 생성, 삭제 API 추가 및 기존 Volume API와 동일한 인증/프로젝트 스코프 토큰 흐름으로 연동했 습니다.
- OpenStack Cinder 스냅샷 연동 모듈·어댑터를 구현하고, 페이지네이션과 Cinder 응답 상태에 따른 VolumeErrorCode 매핑을 추 가했습니다.
- 스냅샷 수명관리자(정책) 도메인(정책/작업 엔티티, IntervalType·TaskStatus enum, JPA 레포지토리, 서비스 모듈·어댑터, 컨 트롤러 및 Swagger Docs)을 추가했습니다.
- 볼륨/스냅샷/스냅샷 정책 서비스 어댑터에 ID/이름/스케줄 파라미터 검증과 VolumeErrorCode 기반 예외 처리를 적용했습니다.
- Volume / VolumeSnapshot / SnapshotPolicy 관련 단위 테스트를 추가·보완하여 기본 동작과 검증 로직을 테스트했습니다.
📝 추가 설명
- 최신 main 브랜치를 feat/#47/volume에 머지하고, 인스턴스 관련 충돌 파일은 main 기준 구현으로 정리했습니다.
- 로컬에서 ./gradlew clean build -x test 및 볼륨/스냅샷/스냅샷 정책 관련 테스트(VolumeServiceAdapterTest, VolumeSnapshotServiceAdapterTest, SnapshotPolicyServiceAdapterTest, SnapshotPolicyModuleTest)를 실행하여 모두 성공을 확인했습니다.
- 스냅샷 정책의 간격 타입(DAILY/WEEKLY/MONTHLY)에 따라 필요한 스케줄 파라미터가 없을 경우 INVALID_INTERVAL_TYPE, INVALID_SCHEDULE_PARAMETER 등의 명확한 에러 코드로 응답하도록 구현했습니다.
Edited by nahyun