From a17f92359aeebc581820f5360fb7bbb693327a65 Mon Sep 17 00:00:00 2001 From: liuyunxi <205407@qq.com> Date: Thu, 25 Aug 2022 11:36:06 +0800 Subject: [PATCH] catch exception when heading model/dataset/runtime --- .../java/ai/starwhale/mlops/api/DatasetApi.java | 2 +- .../ai/starwhale/mlops/api/DatasetController.java | 13 +++++++++++-- .../java/ai/starwhale/mlops/api/RuntimeApi.java | 2 +- .../ai/starwhale/mlops/api/RuntimeController.java | 13 +++++++++++-- .../ai/starwhale/mlops/api/SWModelPackageApi.java | 2 +- .../mlops/api/SWModelPackageController.java | 13 +++++++++++-- .../mlops/exception/api/StarWhaleApiException.java | 1 + 7 files changed, 37 insertions(+), 9 deletions(-) diff --git a/server/controller/src/main/java/ai/starwhale/mlops/api/DatasetApi.java b/server/controller/src/main/java/ai/starwhale/mlops/api/DatasetApi.java index 15138c0ae4..19ae50b525 100644 --- a/server/controller/src/main/java/ai/starwhale/mlops/api/DatasetApi.java +++ b/server/controller/src/main/java/ai/starwhale/mlops/api/DatasetApi.java @@ -306,7 +306,7 @@ ResponseEntity>> listDataset( produces = {"application/json"}, method = RequestMethod.HEAD) @PreAuthorize("hasAnyRole('OWNER', 'MAINTAINER', 'GUEST')") - void headDataset(@Parameter( + ResponseEntity headDataset(@Parameter( in = ParameterIn.PATH, description = "Project url", schema = @Schema()) diff --git a/server/controller/src/main/java/ai/starwhale/mlops/api/DatasetController.java b/server/controller/src/main/java/ai/starwhale/mlops/api/DatasetController.java index bddfeed6f6..bce4270356 100644 --- a/server/controller/src/main/java/ai/starwhale/mlops/api/DatasetController.java +++ b/server/controller/src/main/java/ai/starwhale/mlops/api/DatasetController.java @@ -236,7 +236,16 @@ public ResponseEntity>> listDataset(String p } @Override - public void headDataset(String projectUrl, String datasetUrl, String versionUrl) { - swDatasetService.query(projectUrl, datasetUrl, versionUrl); + public ResponseEntity headDataset(String projectUrl, String datasetUrl, String versionUrl) { + try { + swDatasetService.query(projectUrl, datasetUrl, versionUrl); + return ResponseEntity.ok().build(); + } catch (StarWhaleApiException e) { + if(e.getHttpStatus() == HttpStatus.NOT_FOUND) { + log.info("Head dataset result: NOT FOUND"); + return ResponseEntity.notFound().build(); + } + throw e; + } } } diff --git a/server/controller/src/main/java/ai/starwhale/mlops/api/RuntimeApi.java b/server/controller/src/main/java/ai/starwhale/mlops/api/RuntimeApi.java index 8f0b1d2475..7cf744f7d8 100644 --- a/server/controller/src/main/java/ai/starwhale/mlops/api/RuntimeApi.java +++ b/server/controller/src/main/java/ai/starwhale/mlops/api/RuntimeApi.java @@ -287,7 +287,7 @@ void pull( produces = {"application/json"}, method = RequestMethod.HEAD) @PreAuthorize("hasAnyRole('OWNER', 'MAINTAINER', 'GUEST')") - void headRuntime( + ResponseEntity headRuntime( @Parameter( in = ParameterIn.PATH, description = "Project url", diff --git a/server/controller/src/main/java/ai/starwhale/mlops/api/RuntimeController.java b/server/controller/src/main/java/ai/starwhale/mlops/api/RuntimeController.java index edaaa2075d..38ca597701 100644 --- a/server/controller/src/main/java/ai/starwhale/mlops/api/RuntimeController.java +++ b/server/controller/src/main/java/ai/starwhale/mlops/api/RuntimeController.java @@ -187,7 +187,16 @@ public void pull(String projectUrl, String runtimeUrl, String versionUrl, } @Override - public void headRuntime(String projectUrl, String runtimeUrl, String versionUrl) { - runtimeService.query(projectUrl, runtimeUrl, versionUrl); + public ResponseEntity headRuntime(String projectUrl, String runtimeUrl, String versionUrl) { + try { + runtimeService.query(projectUrl, runtimeUrl, versionUrl); + return ResponseEntity.ok().build(); + } catch (StarWhaleApiException e) { + if(e.getHttpStatus() == HttpStatus.NOT_FOUND) { + log.info("Head runtime result: NOT FOUND"); + return ResponseEntity.notFound().build(); + } + throw e; + } } } diff --git a/server/controller/src/main/java/ai/starwhale/mlops/api/SWModelPackageApi.java b/server/controller/src/main/java/ai/starwhale/mlops/api/SWModelPackageApi.java index a00154b18f..5e95112c3a 100644 --- a/server/controller/src/main/java/ai/starwhale/mlops/api/SWModelPackageApi.java +++ b/server/controller/src/main/java/ai/starwhale/mlops/api/SWModelPackageApi.java @@ -310,7 +310,7 @@ void pull( produces = {"application/json"}, method = RequestMethod.HEAD) @PreAuthorize("hasAnyRole('OWNER', 'MAINTAINER', 'GUEST')") - void headModel( + ResponseEntity headModel( @Parameter( in = ParameterIn.PATH, description = "Project url", diff --git a/server/controller/src/main/java/ai/starwhale/mlops/api/SWModelPackageController.java b/server/controller/src/main/java/ai/starwhale/mlops/api/SWModelPackageController.java index cc4571ac45..b954d88b79 100644 --- a/server/controller/src/main/java/ai/starwhale/mlops/api/SWModelPackageController.java +++ b/server/controller/src/main/java/ai/starwhale/mlops/api/SWModelPackageController.java @@ -191,7 +191,16 @@ public void pull(String projectUrl, String modelUrl, String versionUrl, HttpServ } @Override - public void headModel(String projectUrl, String modelUrl, String versionUrl) { - swmpService.query(projectUrl, modelUrl, versionUrl); + public ResponseEntity headModel(String projectUrl, String modelUrl, String versionUrl) { + try { + swmpService.query(projectUrl, modelUrl, versionUrl); + return ResponseEntity.ok().build(); + } catch (StarWhaleApiException e) { + if(e.getHttpStatus() == HttpStatus.NOT_FOUND) { + log.info("Head model result: NOT FOUND"); + return ResponseEntity.notFound().build(); + } + throw e; + } } } diff --git a/server/controller/src/main/java/ai/starwhale/mlops/exception/api/StarWhaleApiException.java b/server/controller/src/main/java/ai/starwhale/mlops/exception/api/StarWhaleApiException.java index 0b862c0fde..92aa60ef0a 100644 --- a/server/controller/src/main/java/ai/starwhale/mlops/exception/api/StarWhaleApiException.java +++ b/server/controller/src/main/java/ai/starwhale/mlops/exception/api/StarWhaleApiException.java @@ -24,6 +24,7 @@ public class StarWhaleApiException extends RuntimeException { StarWhaleException starWhaleException; HttpStatus httpStatus; public StarWhaleApiException(StarWhaleException starWhaleException,HttpStatus httpStatus) { + super(starWhaleException.getTip()); this.starWhaleException = starWhaleException; this.httpStatus = httpStatus; }