모델 파일 경로 조회, 데이터셋 파일 경로 조회, 디렉토리 용량 체크, 모델별 학습 실행 상태 조회
This commit is contained in:
@@ -11,10 +11,12 @@ import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import io.swagger.v3.oas.annotations.responses.ApiResponse;
|
||||
import io.swagger.v3.oas.annotations.responses.ApiResponses;
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
import java.util.UUID;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.web.bind.annotation.DeleteMapping;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.PathVariable;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RequestParam;
|
||||
@@ -122,4 +124,113 @@ public class FileManagerApiController {
|
||||
FileManagerDto.DeleteFileRes response = fileManagerService.deleteFiles(request);
|
||||
return ApiResponseDto.ok(response);
|
||||
}
|
||||
|
||||
@Operation(
|
||||
summary = "모델 파일 경로 조회",
|
||||
description =
|
||||
"특정 모델 UUID로 파일 위치 경로와 하위 파일 목록을 조회합니다. "
|
||||
+ "request_path(심볼릭 링크 디렉토리)와 response_path(모델 결과)를 동시에 반환합니다.")
|
||||
@ApiResponses(
|
||||
value = {
|
||||
@ApiResponse(
|
||||
responseCode = "200",
|
||||
description = "조회 성공",
|
||||
content =
|
||||
@Content(
|
||||
mediaType = "application/json",
|
||||
schema = @Schema(implementation = FileManagerDto.ModelFilePathRes.class))),
|
||||
@ApiResponse(responseCode = "404", description = "모델을 찾을 수 없음", content = @Content),
|
||||
@ApiResponse(responseCode = "500", description = "서버 오류", content = @Content)
|
||||
})
|
||||
@GetMapping("/model-path/{modelUuid}")
|
||||
public ApiResponseDto<FileManagerDto.ModelFilePathRes> getModelFilePath(
|
||||
@Parameter(description = "모델 UUID", example = "123e4567-e89b-12d3-a456-426614174000")
|
||||
@PathVariable
|
||||
UUID modelUuid) {
|
||||
|
||||
FileManagerDto.ModelFilePathRes response = fileManagerService.getModelFilePath(modelUuid);
|
||||
return ApiResponseDto.ok(response);
|
||||
}
|
||||
|
||||
@Operation(
|
||||
summary = "데이터셋 파일 경로 조회",
|
||||
description =
|
||||
"특정 데이터셋 UUID로 파일 위치 경로와 하위 파일 목록을 조회합니다. " + "dataset_path 컬럼의 request_dir 경로를 반환합니다.")
|
||||
@ApiResponses(
|
||||
value = {
|
||||
@ApiResponse(
|
||||
responseCode = "200",
|
||||
description = "조회 성공",
|
||||
content =
|
||||
@Content(
|
||||
mediaType = "application/json",
|
||||
schema = @Schema(implementation = FileManagerDto.DatasetFilePathRes.class))),
|
||||
@ApiResponse(responseCode = "404", description = "데이터셋을 찾을 수 없음", content = @Content),
|
||||
@ApiResponse(responseCode = "500", description = "서버 오류", content = @Content)
|
||||
})
|
||||
@GetMapping("/dataset-path/{datasetUuid}")
|
||||
public ApiResponseDto<FileManagerDto.DatasetFilePathRes> getDatasetFilePath(
|
||||
@Parameter(description = "데이터셋 UUID", example = "123e4567-e89b-12d3-a456-426614174001")
|
||||
@PathVariable
|
||||
UUID datasetUuid) {
|
||||
|
||||
FileManagerDto.DatasetFilePathRes response = fileManagerService.getDatasetFilePath(datasetUuid);
|
||||
return ApiResponseDto.ok(response);
|
||||
}
|
||||
|
||||
@Operation(
|
||||
summary = "디렉토리 용량 체크",
|
||||
description = "특정 디렉토리의 총 용량, 파일 개수, 디렉토리 개수를 조회합니다. " + "basepath 하위 폴더의 용량을 재귀적으로 계산합니다.")
|
||||
@ApiResponses(
|
||||
value = {
|
||||
@ApiResponse(
|
||||
responseCode = "200",
|
||||
description = "조회 성공",
|
||||
content =
|
||||
@Content(
|
||||
mediaType = "application/json",
|
||||
schema = @Schema(implementation = FileManagerDto.DirectoryCapacityRes.class))),
|
||||
@ApiResponse(responseCode = "400", description = "잘못된 경로", content = @Content),
|
||||
@ApiResponse(responseCode = "404", description = "디렉토리를 찾을 수 없음", content = @Content),
|
||||
@ApiResponse(responseCode = "500", description = "서버 오류", content = @Content)
|
||||
})
|
||||
@GetMapping("/directory-capacity")
|
||||
public ApiResponseDto<FileManagerDto.DirectoryCapacityRes> checkDirectoryCapacity(
|
||||
@Parameter(
|
||||
description = "디렉토리 경로",
|
||||
example = "/home/kcomu/data/request/123e4567-e89b-12d3-a456-426614174001")
|
||||
@RequestParam
|
||||
String directoryPath) {
|
||||
|
||||
FileManagerDto.DirectoryCapacityRes response =
|
||||
fileManagerService.checkDirectoryCapacity(directoryPath);
|
||||
return ApiResponseDto.ok(response);
|
||||
}
|
||||
|
||||
@Operation(
|
||||
summary = "모델별 학습 실행 상태 조회",
|
||||
description =
|
||||
"G1~G4 모델의 현재 학습 실행 상태를 조회합니다. "
|
||||
+ "step1_state, step2_state를 체크하여 어떤 모델이 학습 중인지 확인합니다. "
|
||||
+ "step1과 step2는 동시 진행되지 않습니다.")
|
||||
@ApiResponses(
|
||||
value = {
|
||||
@ApiResponse(
|
||||
responseCode = "200",
|
||||
description = "조회 성공",
|
||||
content =
|
||||
@Content(
|
||||
mediaType = "application/json",
|
||||
schema =
|
||||
@Schema(
|
||||
implementation = FileManagerDto.AllModelsExecutionStatusRes.class))),
|
||||
@ApiResponse(responseCode = "500", description = "서버 오류", content = @Content)
|
||||
})
|
||||
@GetMapping("/models-execution-status")
|
||||
public ApiResponseDto<FileManagerDto.AllModelsExecutionStatusRes> getModelsExecutionStatus() {
|
||||
|
||||
FileManagerDto.AllModelsExecutionStatusRes response =
|
||||
fileManagerService.getModelsExecutionStatus();
|
||||
return ApiResponseDto.ok(response);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user