This is an automated email from the ASF dual-hosted git repository.

cdmikechen pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/submarine.git


The following commit(s) were added to refs/heads/master by this push:
     new 09a7e771 SUBMARINE-1379. Fix a bug where tasks from missing k8s 
resources could not be deleted on the UI
09a7e771 is described below

commit 09a7e77158e60ea2980c4bea09292eafd74e35e0
Author: cdmikechen <[email protected]>
AuthorDate: Fri Jun 23 15:10:47 2023 +0800

    SUBMARINE-1379. Fix a bug where tasks from missing k8s resources could not 
be deleted on the UI
    
    ### What is this PR for?
    If the backend CR is manually deleted, the submarine-server is not 
currently checking if the specified resource still exists, resulting in a 
situation where the experiment cannot be deleted in UI.
    
    ### What type of PR is it?
    Bug Fix
    
    ### Todos
    * [x] - Remove `throwsApiException` in Notebook, Experiment and Serve.
    * [x] - Fixed a bug where deleting a record on the UI, the entire page data 
clear
    
    ### What is the Jira issue?
    https://issues.apache.org/jira/browse/SUBMARINE-1379
    
    ### How should this be tested?
    CI tests can cover code, but they can only represent processes that handle 
normal conditions.
    I removed the method of throwing an 404 exception error 
(`.throwsApiException()`) when the resource does not exist, which results in 
the return of the status object.
    In this way, we can return the result normally, even without this resource
    
    ### Screenshots (if appropriate)
    NA
    
    ### Questions:
    * Do the license files need updating? No
    * Are there breaking changes for older versions? No
    * Does this need new documentation? No
    
    Author: cdmikechen <[email protected]>
    
    Signed-off-by: cdmikechen <[email protected]>
    
    Closes #1073 from cdmikechen/SUBMARINE-1379 and squashes the following 
commits:
    
    03a70110 [cdmikechen] fix list delete error
    ec5c8b58 [cdmikechen] fix serve delete
    3f829b41 [cdmikechen] fix notebook delete
    b58271e4 [cdmikechen] fix experiment delete
---
 .../server/submitter/k8s/model/notebook/NotebookCR.java   | 15 +++++++++------
 .../server/submitter/k8s/model/pytorchjob/PyTorchJob.java |  6 +++---
 .../k8s/model/seldon/SeldonDeploymentPytorchServing.java  |  7 +++----
 .../k8s/model/seldon/SeldonDeploymentTFServing.java       |  7 +++----
 .../submarine/server/submitter/k8s/model/tfjob/TFJob.java |  8 ++++----
 .../server/submitter/k8s/model/xgboostjob/XGBoostJob.java |  6 +++---
 .../experiment-home/experiment-home.component.ts          |  2 +-
 .../notebook/notebook-home/notebook-home.component.ts     |  2 +-
 8 files changed, 27 insertions(+), 26 deletions(-)

diff --git 
a/submarine-server/server-submitter/submitter-k8s/src/main/java/org/apache/submarine/server/submitter/k8s/model/notebook/NotebookCR.java
 
b/submarine-server/server-submitter/submitter-k8s/src/main/java/org/apache/submarine/server/submitter/k8s/model/notebook/NotebookCR.java
index fcfbbde7..48b817f1 100644
--- 
a/submarine-server/server-submitter/submitter-k8s/src/main/java/org/apache/submarine/server/submitter/k8s/model/notebook/NotebookCR.java
+++ 
b/submarine-server/server-submitter/submitter-k8s/src/main/java/org/apache/submarine/server/submitter/k8s/model/notebook/NotebookCR.java
@@ -294,12 +294,15 @@ public class NotebookCR implements KubernetesObject, 
K8sResource<Notebook> {
       // The exception that obtaining CRD resources is not necessarily because 
the CRD is deleted,
       // but maybe due to timeout or API error caused by network and other 
reasons.
       // Therefore, the status of the notebook should be set to a new enum 
NOTFOUND.
-      LOG.warn("Get error when submitter is finding notebook: {}", 
getMetadata().getName());
-      if (notebook == null) {
-        notebook = new Notebook();
-      }
-      notebook.setReason(e.getMessage());
-      notebook.setStatus(Notebook.Status.STATUS_NOT_FOUND.getValue());
+      if (e.getCode() == 404) {
+        LOG.warn(String.format("Get error when submitter is finding notebook: 
%s",
+            getMetadata().getName()), e);
+        if (notebook == null) {
+          notebook = new Notebook();
+        }
+        notebook.setReason(e.getMessage());
+        notebook.setStatus(Notebook.Status.STATUS_NOT_FOUND.getValue());
+      } else throw new SubmarineRuntimeException(e.getCode(), e.getMessage());
     }
     return resetName(notebook);
   }
diff --git 
a/submarine-server/server-submitter/submitter-k8s/src/main/java/org/apache/submarine/server/submitter/k8s/model/pytorchjob/PyTorchJob.java
 
b/submarine-server/server-submitter/submitter-k8s/src/main/java/org/apache/submarine/server/submitter/k8s/model/pytorchjob/PyTorchJob.java
index c279e542..2939e6fa 100644
--- 
a/submarine-server/server-submitter/submitter-k8s/src/main/java/org/apache/submarine/server/submitter/k8s/model/pytorchjob/PyTorchJob.java
+++ 
b/submarine-server/server-submitter/submitter-k8s/src/main/java/org/apache/submarine/server/submitter/k8s/model/pytorchjob/PyTorchJob.java
@@ -189,10 +189,10 @@ public class PyTorchJob extends MLJob {
       V1Status status = api.getPyTorchJobClient()
           .delete(getMetadata().getNamespace(), getMetadata().getName(),
               MLJobConverter.toDeleteOptionsFromMLJob(this))
-          .throwsApiException().getStatus();
+          .getStatus();
       return parseExperimentResponseStatus(status);
-    } catch (ApiException e) {
-      throw new SubmarineRuntimeException(e.getCode(), e.getMessage());
+    } catch (Exception e) {
+      throw new SubmarineRuntimeException(500, e.getMessage());
     }
   }
 }
diff --git 
a/submarine-server/server-submitter/submitter-k8s/src/main/java/org/apache/submarine/server/submitter/k8s/model/seldon/SeldonDeploymentPytorchServing.java
 
b/submarine-server/server-submitter/submitter-k8s/src/main/java/org/apache/submarine/server/submitter/k8s/model/seldon/SeldonDeploymentPytorchServing.java
index 328f1c23..0fa712ca 100644
--- 
a/submarine-server/server-submitter/submitter-k8s/src/main/java/org/apache/submarine/server/submitter/k8s/model/seldon/SeldonDeploymentPytorchServing.java
+++ 
b/submarine-server/server-submitter/submitter-k8s/src/main/java/org/apache/submarine/server/submitter/k8s/model/seldon/SeldonDeploymentPytorchServing.java
@@ -85,12 +85,11 @@ public class SeldonDeploymentPytorchServing extends 
SeldonPytorchServing impleme
       }
       api.getSeldonDeploymentClient()
           .delete(getMetadata().getNamespace(), getMetadata().getName(),
-              getDeleteOptions(getApiVersion()))
-          .throwsApiException();
+              getDeleteOptions(getApiVersion()));
       return this;
-    } catch (ApiException e) {
+    } catch (Exception e) {
       LOG.error(e.getMessage(), e);
-      throw new SubmarineRuntimeException(e.getCode(), e.getMessage());
+      throw new SubmarineRuntimeException(500, e.getMessage());
     }
   }
 
diff --git 
a/submarine-server/server-submitter/submitter-k8s/src/main/java/org/apache/submarine/server/submitter/k8s/model/seldon/SeldonDeploymentTFServing.java
 
b/submarine-server/server-submitter/submitter-k8s/src/main/java/org/apache/submarine/server/submitter/k8s/model/seldon/SeldonDeploymentTFServing.java
index fe4c01e0..1890f7b7 100644
--- 
a/submarine-server/server-submitter/submitter-k8s/src/main/java/org/apache/submarine/server/submitter/k8s/model/seldon/SeldonDeploymentTFServing.java
+++ 
b/submarine-server/server-submitter/submitter-k8s/src/main/java/org/apache/submarine/server/submitter/k8s/model/seldon/SeldonDeploymentTFServing.java
@@ -84,12 +84,11 @@ public class SeldonDeploymentTFServing extends 
SeldonTFServing implements Seldon
       }
       api.getSeldonDeploymentClient()
           .delete(getMetadata().getNamespace(), getMetadata().getName(),
-              getDeleteOptions(getApiVersion()))
-          .throwsApiException();
+              getDeleteOptions(getApiVersion()));
       return this;
-    } catch (ApiException e) {
+    } catch (Exception e) {
       LOG.error(e.getMessage(), e);
-      throw new SubmarineRuntimeException(e.getCode(), e.getMessage());
+      throw new SubmarineRuntimeException(500, e.getMessage());
     }
   }
 
diff --git 
a/submarine-server/server-submitter/submitter-k8s/src/main/java/org/apache/submarine/server/submitter/k8s/model/tfjob/TFJob.java
 
b/submarine-server/server-submitter/submitter-k8s/src/main/java/org/apache/submarine/server/submitter/k8s/model/tfjob/TFJob.java
index 1eb96669..457629ee 100644
--- 
a/submarine-server/server-submitter/submitter-k8s/src/main/java/org/apache/submarine/server/submitter/k8s/model/tfjob/TFJob.java
+++ 
b/submarine-server/server-submitter/submitter-k8s/src/main/java/org/apache/submarine/server/submitter/k8s/model/tfjob/TFJob.java
@@ -183,7 +183,7 @@ public class TFJob extends MLJob {
               new V1Patch(JsonUtils.toJson(this)), patchOptions)
           .throwsApiException().getObject();
       return parseExperimentResponseObject(tfJob, TFJob.class);
-    }  catch (ApiException e) {
+    } catch (ApiException e) {
       throw new SubmarineRuntimeException(e.getCode(), e.getMessage());
     }
   }
@@ -198,10 +198,10 @@ public class TFJob extends MLJob {
       V1Status status = api.getTfJobClient()
           .delete(getMetadata().getNamespace(), getMetadata().getName(),
               MLJobConverter.toDeleteOptionsFromMLJob(this))
-          .throwsApiException().getStatus();
+          .getStatus();
       return parseExperimentResponseStatus(status);
-    } catch (ApiException e) {
-      throw new SubmarineRuntimeException(e.getCode(), e.getMessage());
+    } catch (Exception e) {
+      throw new SubmarineRuntimeException(500, e.getMessage());
     }
   }
 
diff --git 
a/submarine-server/server-submitter/submitter-k8s/src/main/java/org/apache/submarine/server/submitter/k8s/model/xgboostjob/XGBoostJob.java
 
b/submarine-server/server-submitter/submitter-k8s/src/main/java/org/apache/submarine/server/submitter/k8s/model/xgboostjob/XGBoostJob.java
index f46060ad..cd83c4ed 100644
--- 
a/submarine-server/server-submitter/submitter-k8s/src/main/java/org/apache/submarine/server/submitter/k8s/model/xgboostjob/XGBoostJob.java
+++ 
b/submarine-server/server-submitter/submitter-k8s/src/main/java/org/apache/submarine/server/submitter/k8s/model/xgboostjob/XGBoostJob.java
@@ -186,10 +186,10 @@ public class XGBoostJob extends MLJob {
       V1Status status = api.getXGBoostJobClient()
           .delete(getMetadata().getNamespace(), getMetadata().getName(),
               MLJobConverter.toDeleteOptionsFromMLJob(this))
-          .throwsApiException().getStatus();
+          .getStatus();
       return parseExperimentResponseStatus(status);
-    } catch (ApiException e) {
-      throw new SubmarineRuntimeException(e.getCode(), e.getMessage());
+    } catch (Exception e) {
+      throw new SubmarineRuntimeException(500, e.getMessage());
     }
   }
 }
diff --git 
a/submarine-workbench/workbench-web/src/app/pages/workbench/experiment/experiment-home/experiment-home.component.ts
 
b/submarine-workbench/workbench-web/src/app/pages/workbench/experiment/experiment-home/experiment-home.component.ts
index 44e07557..34cab021 100644
--- 
a/submarine-workbench/workbench-web/src/app/pages/workbench/experiment/experiment-home/experiment-home.component.ts
+++ 
b/submarine-workbench/workbench-web/src/app/pages/workbench/experiment/experiment-home/experiment-home.component.ts
@@ -129,7 +129,7 @@ export class ExperimentHomeComponent implements OnInit {
         }
         // Delete redundant rows
         if (currentListSize > newListSize) {
-          this.experimentList = this.experimentList.splice(0, newListSize - 
currentListSize);
+          this.experimentList = this.experimentList.slice(0, newListSize);
         }
 
         if (!isAutoReload) {
diff --git 
a/submarine-workbench/workbench-web/src/app/pages/workbench/notebook/notebook-home/notebook-home.component.ts
 
b/submarine-workbench/workbench-web/src/app/pages/workbench/notebook/notebook-home/notebook-home.component.ts
index f361657f..66679145 100644
--- 
a/submarine-workbench/workbench-web/src/app/pages/workbench/notebook/notebook-home/notebook-home.component.ts
+++ 
b/submarine-workbench/workbench-web/src/app/pages/workbench/notebook/notebook-home/notebook-home.component.ts
@@ -98,7 +98,7 @@ export class NotebookHomeComponent implements OnInit, 
OnDestroy {
         }
         // Delete redundant rows
         if (currentListSize > newListSize) {
-          this.notebookList = this.notebookList.splice(0, newListSize - 
currentListSize);
+          this.notebookList = this.notebookList.slice(0, newListSize);
         }
       }
     });


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to