You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@zeppelin.apache.org by zj...@apache.org on 2020/07/06 02:19:16 UTC

[zeppelin] branch branch-0.9 updated: [ZEPPELIN-4925]. Only display note job info for owner

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

zjffdu pushed a commit to branch branch-0.9
in repository https://gitbox.apache.org/repos/asf/zeppelin.git


The following commit(s) were added to refs/heads/branch-0.9 by this push:
     new 25c22a1  [ZEPPELIN-4925]. Only display note job info for owner
25c22a1 is described below

commit 25c22a15439f978de42455c78d130468d27a19f4
Author: Jeff Zhang <zj...@apache.org>
AuthorDate: Sun Jun 28 23:51:08 2020 +0800

    [ZEPPELIN-4925]. Only display note job info for owner
    
    ### What is this PR for?
    
    This PR only display note job when the login user is the owner, because it doesn't make sense to list all notes for everyone.
    
    ### What type of PR is it?
    [ Improvement]
    
    ### Todos
    * [ ] - Task
    
    ### What is the Jira issue?
    * https://issues.apache.org/jira/browse/ZEPPELIN-4925
    
    ### How should this be tested?
    * CI pass
    
    https://travis-ci.org/github/zjffdu/zeppelin/builds/703178662
    
    ### Screenshots (if appropriate)
    
    ### Questions:
    * Does the licenses files need update? No
    * Is there breaking changes for older versions? No
    * Does this needs documentation? No
    
    Author: Jeff Zhang <zj...@apache.org>
    
    Closes #3832 from zjffdu/ZEPPELIN-4925 and squashes the following commits:
    
    9141a6df2 [Jeff Zhang] [ZEPPELIN-4925]. Only display note job info for owner
    
    (cherry picked from commit f1c236a239ce01b4bd2966529205ffa17e5675ed)
    Signed-off-by: Jeff Zhang <zj...@apache.org>
---
 .../apache/zeppelin/service/JobManagerService.java | 30 ++++++++++++++++------
 1 file changed, 22 insertions(+), 8 deletions(-)

diff --git a/zeppelin-server/src/main/java/org/apache/zeppelin/service/JobManagerService.java b/zeppelin-server/src/main/java/org/apache/zeppelin/service/JobManagerService.java
index 405f78d..c58b5d6 100644
--- a/zeppelin-server/src/main/java/org/apache/zeppelin/service/JobManagerService.java
+++ b/zeppelin-server/src/main/java/org/apache/zeppelin/service/JobManagerService.java
@@ -20,6 +20,7 @@ package org.apache.zeppelin.service;
 import javax.inject.Inject;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.zeppelin.conf.ZeppelinConfiguration;
+import org.apache.zeppelin.notebook.AuthorizationService;
 import org.apache.zeppelin.notebook.Note;
 import org.apache.zeppelin.notebook.Notebook;
 import org.apache.zeppelin.notebook.Paragraph;
@@ -31,6 +32,7 @@ import java.io.IOException;
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
+import java.util.stream.Collectors;
 
 /**
  * Service class for JobManager Page
@@ -40,11 +42,15 @@ public class JobManagerService {
   private static final Logger LOGGER = LoggerFactory.getLogger(JobManagerService.class);
 
   private Notebook notebook;
+  private AuthorizationService authorizationService;
   private ZeppelinConfiguration conf;
 
   @Inject
-  public JobManagerService(Notebook notebook, ZeppelinConfiguration conf) {
+  public JobManagerService(Notebook notebook,
+                           AuthorizationService authorizationService,
+                           ZeppelinConfiguration conf) {
     this.notebook = notebook;
+    this.authorizationService = authorizationService;
     this.conf = conf;
   }
 
@@ -76,12 +82,12 @@ public class JobManagerService {
       return new ArrayList<>();
     }
     List<NoteJobInfo> notesJobInfo = new ArrayList<>();
-    notebook.getNoteStream().forEach(note -> {
-      NoteJobInfo noteJobInfo = new NoteJobInfo(note);
-      if (noteJobInfo.unixTimeLastRun > lastUpdateServerUnixTime) {
-        notesJobInfo.add(noteJobInfo);
-      }
-    });
+    notebook.getNoteStream()
+            .filter(note -> authorizationService.isOwner(context.getUserAndRoles(), note.getId()))
+            .map(note -> new NoteJobInfo(note))
+            .filter(noteJobInfo -> noteJobInfo.unixTimeLastRun > lastUpdateServerUnixTime)
+            .collect(Collectors.toList());
+
     callback.onSuccess(notesJobInfo, context);
     return notesJobInfo;
   }
@@ -107,7 +113,9 @@ public class JobManagerService {
     }
   }
 
-
+  /**
+   * Job info about one paragraph run
+   */
   public static class ParagraphJobInfo {
     private String id;
     private String name;
@@ -124,10 +132,16 @@ public class JobManagerService {
     }
   }
 
+  /**
+   * Job info about note run, including all the job infos of paragraph run.
+   */
   public static class NoteJobInfo {
     private String noteId;
     private String noteName;
     private String noteType;
+    /**
+     * default interpreterGroup.
+     */
     private String interpreter;
     private boolean isRunningJob;
     private boolean isRemoved = false;