[ADD] 예외 처리 로직 추가 및 업로드 실패 시 클라이언트 반환 기능 구현 (PipelineUploadController)

main
bjkim 9 months ago
parent 52e56ed752
commit 559303abe0

@ -2,16 +2,21 @@ package kr.re.etri.autoflow.controllers;
import kr.re.etri.autoflow.service.PipelineUploadService; import kr.re.etri.autoflow.service.PipelineUploadService;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType; import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity; import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.client.HttpClientErrorException;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
import java.util.HashMap;
import java.util.Map; import java.util.Map;
@Slf4j
@RestController @RestController
@RequestMapping("/pipelines") @RequestMapping("/pipelines")
@RequiredArgsConstructor @RequiredArgsConstructor
@ -27,8 +32,32 @@ public class PipelineUploadController {
@RequestParam(value = "description", required = false) String description, @RequestParam(value = "description", required = false) String description,
@RequestParam(value = "namespace", required = false) String namespace) { @RequestParam(value = "namespace", required = false) String namespace) {
Map<String, Object> result = pipelineUploadService.uploadPipeline(file, name, displayName, description, namespace); try {
return ResponseEntity.ok(result); Map<String, Object> result = pipelineUploadService.uploadPipeline(file, name, displayName, description, namespace);
return ResponseEntity.ok(result);
} catch (HttpClientErrorException e) {
// 콘솔 로그
log.error("Kubeflow API Error: status={}, response={}", e.getStatusCode(), e.getResponseBodyAsString(), e);
// 클라이언트 반환
Map<String, Object> error = new HashMap<>();
error.put("status", e.getStatusCode().value());
error.put("error", e.getStatusText());
error.put("message", e.getResponseBodyAsString());
return ResponseEntity.status(e.getStatusCode()).body(error);
} catch (Exception e) {
// 콘솔 로그
log.error("Pipeline upload failed", e);
// 클라이언트 반환
Map<String, Object> error = new HashMap<>();
error.put("status", 500);
error.put("error", "Internal Server Error");
error.put("message", e.getMessage());
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(error);
}
} }
} }

Loading…
Cancel
Save