pingsutw commented on a change in pull request #655:
URL: https://github.com/apache/submarine/pull/655#discussion_r665841002



##########
File path: 
submarine-server/server-submitter/submitter-k8s/src/main/java/org/apache/submarine/server/submitter/k8s/K8sSubmitter.java
##########
@@ -361,42 +361,57 @@ public Notebook createNotebook(NotebookSpec spec) throws 
SubmarineRuntimeExcepti
     final String storage = NotebookUtils.STORAGE;
     final String pvcName = NotebookUtils.PVC_PREFIX + name;
     String namespace = "default";
-    
+
     if (System.getenv(ENV_NAMESPACE) != null) {
       namespace = System.getenv(ENV_NAMESPACE);
     }
-    
+
+    // create notebook custom resource
+    NotebookCR notebookCR = NotebookSpecParser.parseNotebook(spec);
+    Map<String, String> labels = new HashMap<>();
+    labels.put(NotebookCR.NOTEBOOK_OWNER_SELECTOR_KET, 
spec.getMeta().getOwnerId());
+    notebookCR.getMetadata().setLabels(labels);
+    notebookCR.getMetadata().setNamespace(namespace);
+
+    // create persistent volume
     try {
-      // create notebook custom resource
-      NotebookCR notebookCR = NotebookSpecParser.parseNotebook(spec);
-      Map<String, String> labels = new HashMap<>();
-      labels.put(NotebookCR.NOTEBOOK_OWNER_SELECTOR_KET, 
spec.getMeta().getOwnerId());
-      notebookCR.getMetadata().setLabels(labels);
-      notebookCR.getMetadata().setNamespace(namespace);
-      
-      // create persistent volume
       createPersistentVolume(pvName, host, storage);
+    } catch (ApiException e) {
+      LOG.error("K8s submitter: parse Notebook object failed by " + 
e.getMessage(), e);
+      throw new SubmarineRuntimeException(e.getCode(), "K8s submitter: parse 
Notebook object failed by " +
+          e.getMessage());
+    }
 
-      // create persistent volume claim
+    // create persistent volume claim
+    try {
       createPersistentVolumeClaim(pvcName, namespace, pvName, storage);
+    } catch (ApiException e) {
+      LOG.error("K8s submitter: parse Notebook object failed by " + 
e.getMessage(), e);

Review comment:
       ```suggestion
         LOG.error("K8s submitter: Create persistent volumn claim for Notebook 
object failed by " + e.getMessage(), e);
   ```

##########
File path: 
submarine-server/server-submitter/submitter-k8s/src/main/java/org/apache/submarine/server/submitter/k8s/K8sSubmitter.java
##########
@@ -361,42 +361,57 @@ public Notebook createNotebook(NotebookSpec spec) throws 
SubmarineRuntimeExcepti
     final String storage = NotebookUtils.STORAGE;
     final String pvcName = NotebookUtils.PVC_PREFIX + name;
     String namespace = "default";
-    
+
     if (System.getenv(ENV_NAMESPACE) != null) {
       namespace = System.getenv(ENV_NAMESPACE);
     }
-    
+
+    // create notebook custom resource
+    NotebookCR notebookCR = NotebookSpecParser.parseNotebook(spec);
+    Map<String, String> labels = new HashMap<>();
+    labels.put(NotebookCR.NOTEBOOK_OWNER_SELECTOR_KET, 
spec.getMeta().getOwnerId());
+    notebookCR.getMetadata().setLabels(labels);
+    notebookCR.getMetadata().setNamespace(namespace);

Review comment:
       We should put these codes to try-block to prevent parsing Notebook 
object failed.

##########
File path: 
submarine-server/server-submitter/submitter-k8s/src/main/java/org/apache/submarine/server/submitter/k8s/K8sSubmitter.java
##########
@@ -361,42 +361,57 @@ public Notebook createNotebook(NotebookSpec spec) throws 
SubmarineRuntimeExcepti
     final String storage = NotebookUtils.STORAGE;
     final String pvcName = NotebookUtils.PVC_PREFIX + name;
     String namespace = "default";
-    
+
     if (System.getenv(ENV_NAMESPACE) != null) {
       namespace = System.getenv(ENV_NAMESPACE);
     }
-    
+
+    // create notebook custom resource
+    NotebookCR notebookCR = NotebookSpecParser.parseNotebook(spec);
+    Map<String, String> labels = new HashMap<>();
+    labels.put(NotebookCR.NOTEBOOK_OWNER_SELECTOR_KET, 
spec.getMeta().getOwnerId());
+    notebookCR.getMetadata().setLabels(labels);
+    notebookCR.getMetadata().setNamespace(namespace);
+
+    // create persistent volume
     try {
-      // create notebook custom resource
-      NotebookCR notebookCR = NotebookSpecParser.parseNotebook(spec);
-      Map<String, String> labels = new HashMap<>();
-      labels.put(NotebookCR.NOTEBOOK_OWNER_SELECTOR_KET, 
spec.getMeta().getOwnerId());
-      notebookCR.getMetadata().setLabels(labels);
-      notebookCR.getMetadata().setNamespace(namespace);
-      
-      // create persistent volume
       createPersistentVolume(pvName, host, storage);
+    } catch (ApiException e) {
+      LOG.error("K8s submitter: parse Notebook object failed by " + 
e.getMessage(), e);
+      throw new SubmarineRuntimeException(e.getCode(), "K8s submitter: parse 
Notebook object failed by " +
+          e.getMessage());
+    }
 
-      // create persistent volume claim
+    // create persistent volume claim
+    try {
       createPersistentVolumeClaim(pvcName, namespace, pvName, storage);
+    } catch (ApiException e) {
+      LOG.error("K8s submitter: parse Notebook object failed by " + 
e.getMessage(), e);
+      rollbackCreationNotebook(pvName);
+      throw new SubmarineRuntimeException(e.getCode(), "K8s submitter: parse 
Notebook object failed by " +

Review comment:
       ditto

##########
File path: 
submarine-server/server-submitter/submitter-k8s/src/main/java/org/apache/submarine/server/submitter/k8s/K8sSubmitter.java
##########
@@ -361,42 +361,57 @@ public Notebook createNotebook(NotebookSpec spec) throws 
SubmarineRuntimeExcepti
     final String storage = NotebookUtils.STORAGE;
     final String pvcName = NotebookUtils.PVC_PREFIX + name;
     String namespace = "default";
-    
+
     if (System.getenv(ENV_NAMESPACE) != null) {
       namespace = System.getenv(ENV_NAMESPACE);
     }
-    
+
+    // create notebook custom resource
+    NotebookCR notebookCR = NotebookSpecParser.parseNotebook(spec);
+    Map<String, String> labels = new HashMap<>();
+    labels.put(NotebookCR.NOTEBOOK_OWNER_SELECTOR_KET, 
spec.getMeta().getOwnerId());
+    notebookCR.getMetadata().setLabels(labels);
+    notebookCR.getMetadata().setNamespace(namespace);
+
+    // create persistent volume
     try {
-      // create notebook custom resource
-      NotebookCR notebookCR = NotebookSpecParser.parseNotebook(spec);
-      Map<String, String> labels = new HashMap<>();
-      labels.put(NotebookCR.NOTEBOOK_OWNER_SELECTOR_KET, 
spec.getMeta().getOwnerId());
-      notebookCR.getMetadata().setLabels(labels);
-      notebookCR.getMetadata().setNamespace(namespace);
-      
-      // create persistent volume
       createPersistentVolume(pvName, host, storage);
+    } catch (ApiException e) {
+      LOG.error("K8s submitter: parse Notebook object failed by " + 
e.getMessage(), e);

Review comment:
       ```suggestion
         LOG.error("K8s submitter: Create persistent volume for Notebook object 
failed by " + e.getMessage(), e);
   ```




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


Reply via email to