From 559303abe0f040dbee9f649b681ac0243cc33d8e Mon Sep 17 00:00:00 2001 From: bjkim Date: Fri, 19 Sep 2025 10:33:28 +0900 Subject: [PATCH] =?UTF-8?q?[ADD]=20=EC=98=88=EC=99=B8=20=EC=B2=98=EB=A6=AC?= =?UTF-8?q?=20=EB=A1=9C=EC=A7=81=20=EC=B6=94=EA=B0=80=20=EB=B0=8F=20?= =?UTF-8?q?=EC=97=85=EB=A1=9C=EB=93=9C=20=EC=8B=A4=ED=8C=A8=20=EC=8B=9C=20?= =?UTF-8?q?=ED=81=B4=EB=9D=BC=EC=9D=B4=EC=96=B8=ED=8A=B8=20=EB=B0=98?= =?UTF-8?q?=ED=99=98=20=EA=B8=B0=EB=8A=A5=20=EA=B5=AC=ED=98=84=20(Pipeline?= =?UTF-8?q?UploadController)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controllers/PipelineUploadController.java | 33 +++++++++++++++++-- 1 file changed, 31 insertions(+), 2 deletions(-) diff --git a/src/main/java/kr/re/etri/autoflow/controllers/PipelineUploadController.java b/src/main/java/kr/re/etri/autoflow/controllers/PipelineUploadController.java index 5ee148b..563edd2 100644 --- a/src/main/java/kr/re/etri/autoflow/controllers/PipelineUploadController.java +++ b/src/main/java/kr/re/etri/autoflow/controllers/PipelineUploadController.java @@ -2,16 +2,21 @@ package kr.re.etri.autoflow.controllers; import kr.re.etri.autoflow.service.PipelineUploadService; import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.http.HttpStatus; import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.client.HttpClientErrorException; import org.springframework.web.multipart.MultipartFile; +import java.util.HashMap; import java.util.Map; +@Slf4j @RestController @RequestMapping("/pipelines") @RequiredArgsConstructor @@ -27,8 +32,32 @@ public class PipelineUploadController { @RequestParam(value = "description", required = false) String description, @RequestParam(value = "namespace", required = false) String namespace) { - Map result = pipelineUploadService.uploadPipeline(file, name, displayName, description, namespace); - return ResponseEntity.ok(result); + try { + Map 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 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 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); + } } }