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

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


The following commit(s) were added to refs/heads/master by this push:
     new 9b985ff  [ZEPPELIN-4682]. Should initialize NoteAuth for the note 
without permission set
9b985ff is described below

commit 9b985ff35ea3d781d78720a658dbb795cebd47b4
Author: Jeff Zhang <zjf...@apache.org>
AuthorDate: Fri Mar 13 12:42:15 2020 +0800

    [ZEPPELIN-4682]. Should initialize NoteAuth for the note without permission 
set
    
    ### What is this PR for?
    
    It is a simple PR just to initialize NoteAuth for the note without 
permission set (not in `notebook-authorization.json`). So that we won't get 
annoying warning log.
    
    ### What type of PR is it?
    [ Improvement ]
    
    ### Todos
    * [ ] - Task
    
    ### What is the Jira issue?
    * https://issues.apache.org/jira/browse/ZEPPELIN-4682
    
    ### How should this be tested?
    * CI pass
    
    ### 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 <zjf...@apache.org>
    
    Closes #3688 from zjffdu/ZEPPELIN-4682 and squashes the following commits:
    
    8a4e9b4e5 [Jeff Zhang] [ZEPPELIN-4682]. Should initialize NoteAuth for the 
note without permission set
---
 .../zeppelin/service/NotebookServiceTest.java      |  2 +-
 .../zeppelin/notebook/AuthorizationService.java    | 27 ++++++++++++++--------
 .../java/org/apache/zeppelin/notebook/Note.java    |  2 +-
 .../org/apache/zeppelin/notebook/NotebookTest.java |  2 +-
 .../notebook/repo/NotebookRepoSyncTest.java        |  2 +-
 5 files changed, 21 insertions(+), 14 deletions(-)

diff --git 
a/zeppelin-server/src/test/java/org/apache/zeppelin/service/NotebookServiceTest.java
 
b/zeppelin-server/src/test/java/org/apache/zeppelin/service/NotebookServiceTest.java
index 1d0b773..2a7de91 100644
--- 
a/zeppelin-server/src/test/java/org/apache/zeppelin/service/NotebookServiceTest.java
+++ 
b/zeppelin-server/src/test/java/org/apache/zeppelin/service/NotebookServiceTest.java
@@ -117,7 +117,7 @@ public class NotebookServiceTest {
     SearchService searchService = new LuceneSearch(zeppelinConfiguration);
     Credentials credentials = new Credentials(false, null, null);
     NoteManager noteManager = new NoteManager(notebookRepo);
-    AuthorizationService authorizationService = new 
AuthorizationService(zeppelinConfiguration);
+    AuthorizationService authorizationService = new 
AuthorizationService(noteManager, zeppelinConfiguration);
     Notebook notebook =
         new Notebook(
             zeppelinConfiguration,
diff --git 
a/zeppelin-zengine/src/main/java/org/apache/zeppelin/notebook/AuthorizationService.java
 
b/zeppelin-zengine/src/main/java/org/apache/zeppelin/notebook/AuthorizationService.java
index 9235828..a4ef3e6 100644
--- 
a/zeppelin-zengine/src/main/java/org/apache/zeppelin/notebook/AuthorizationService.java
+++ 
b/zeppelin-zengine/src/main/java/org/apache/zeppelin/notebook/AuthorizationService.java
@@ -57,7 +57,7 @@ public class AuthorizationService implements 
ClusterEventListener {
   private Map<String, NoteAuth> notesAuth = new HashMap<>();
 
   @Inject
-  public AuthorizationService(ZeppelinConfiguration conf) {
+  public AuthorizationService(NoteManager noteManager, ZeppelinConfiguration 
conf) {
     this.conf = conf;
     try {
       this.configStorage = ConfigStorage.getInstance(conf);
@@ -70,6 +70,13 @@ public class AuthorizationService implements 
ClusterEventListener {
           notesAuth.put(noteId, new NoteAuth(noteId, permissions));
         }
       }
+
+      // initialize NoteAuth for the notes without permission set explicitly.
+      for (String noteId : noteManager.getNotesInfo().keySet()) {
+        if (!notesAuth.containsKey(noteId)) {
+          notesAuth.put(noteId, new NoteAuth(noteId));
+        }
+      }
     } catch (IOException e) {
       throw new RuntimeException("Fail to create ConfigStorage", e);
     }
@@ -142,7 +149,7 @@ public class AuthorizationService implements 
ClusterEventListener {
     entities = normalizeUsers(entities);
     NoteAuth noteAuth = notesAuth.get(noteId);
     if (noteAuth == null) {
-      throw new IOException("No note found for noteId: " + noteId);
+      throw new IOException("No noteAuth found for noteId: " + noteId);
     }
     noteAuth.setOwners(entities);
     if (broadcast) {
@@ -154,7 +161,7 @@ public class AuthorizationService implements 
ClusterEventListener {
     entities = normalizeUsers(entities);
     NoteAuth noteAuth = notesAuth.get(noteId);
     if (noteAuth == null) {
-      throw new IOException("No note found for noteId: " + noteId);
+      throw new IOException("No noteAuth found for noteId: " + noteId);
     }
     noteAuth.setReaders(entities);
     if (broadcast) {
@@ -166,7 +173,7 @@ public class AuthorizationService implements 
ClusterEventListener {
     entities = normalizeUsers(entities);
     NoteAuth noteAuth = notesAuth.get(noteId);
     if (noteAuth == null) {
-      throw new IOException("No note found for noteId: " + noteId);
+      throw new IOException("No noteAuth found for noteId: " + noteId);
     }
     noteAuth.setRunners(entities);
     if (broadcast) {
@@ -178,7 +185,7 @@ public class AuthorizationService implements 
ClusterEventListener {
     entities = normalizeUsers(entities);
     NoteAuth noteAuth = notesAuth.get(noteId);
     if (noteAuth == null) {
-      throw new IOException("No note found for noteId: " + noteId);
+      throw new IOException("No noteAuth found for noteId: " + noteId);
     }
     noteAuth.setWriters(entities);
     if (broadcast) {
@@ -201,7 +208,7 @@ public class AuthorizationService implements 
ClusterEventListener {
   public void clearPermission(String noteId, boolean broadcast) throws 
IOException {
     NoteAuth noteAuth = notesAuth.get(noteId);
     if (noteAuth == null) {
-      throw new IOException("No note found for noteId: " + noteId);
+      throw new IOException("No noteAuth found for noteId: " + noteId);
     }
     noteAuth.setReaders(Sets.newHashSet());
     noteAuth.setRunners(Sets.newHashSet());
@@ -216,7 +223,7 @@ public class AuthorizationService implements 
ClusterEventListener {
   public Set<String> getOwners(String noteId) {
     NoteAuth noteAuth = notesAuth.get(noteId);
     if (noteAuth == null) {
-      LOGGER.warn("No note found for noteId: " + noteId);
+      LOGGER.warn("No noteAuth found for noteId: " + noteId);
       return EMPTY_SET;
     }
     return noteAuth.getOwners();
@@ -225,7 +232,7 @@ public class AuthorizationService implements 
ClusterEventListener {
   public Set<String> getReaders(String noteId) {
     NoteAuth noteAuth = notesAuth.get(noteId);
     if (noteAuth == null) {
-      LOGGER.warn("No note found for noteId: " + noteId);
+      LOGGER.warn("No noteAuth found for noteId: " + noteId);
       return EMPTY_SET;
     }
     return noteAuth.getReaders();
@@ -234,7 +241,7 @@ public class AuthorizationService implements 
ClusterEventListener {
   public Set<String> getRunners(String noteId) {
     NoteAuth noteAuth = notesAuth.get(noteId);
     if (noteAuth == null) {
-      LOGGER.warn("No note found for noteId: " + noteId);
+      LOGGER.warn("No noteAuth found for noteId: " + noteId);
       return EMPTY_SET;
     }
     return noteAuth.getRunners();
@@ -243,7 +250,7 @@ public class AuthorizationService implements 
ClusterEventListener {
   public Set<String> getWriters(String noteId) {
     NoteAuth noteAuth = notesAuth.get(noteId);
     if (noteAuth == null) {
-      LOGGER.warn("No note found for noteId: " + noteId);
+      LOGGER.warn("No noteAuth found for noteId: " + noteId);
       return EMPTY_SET;
     }
     return noteAuth.getWriters();
diff --git 
a/zeppelin-zengine/src/main/java/org/apache/zeppelin/notebook/Note.java 
b/zeppelin-zengine/src/main/java/org/apache/zeppelin/notebook/Note.java
index 777b47d..44fe45d 100644
--- a/zeppelin-zengine/src/main/java/org/apache/zeppelin/notebook/Note.java
+++ b/zeppelin-zengine/src/main/java/org/apache/zeppelin/notebook/Note.java
@@ -814,7 +814,7 @@ public class Note implements JsonSerializable {
   }
 
   public List<Paragraph> getParagraphs() {
-    return this.paragraphs;
+    return new ArrayList<>(this.paragraphs);
   }
 
   // TODO(zjffdu) how does this used ?
diff --git 
a/zeppelin-zengine/src/test/java/org/apache/zeppelin/notebook/NotebookTest.java 
b/zeppelin-zengine/src/test/java/org/apache/zeppelin/notebook/NotebookTest.java
index bc47de1..529c96e 100644
--- 
a/zeppelin-zengine/src/test/java/org/apache/zeppelin/notebook/NotebookTest.java
+++ 
b/zeppelin-zengine/src/test/java/org/apache/zeppelin/notebook/NotebookTest.java
@@ -95,7 +95,7 @@ public class NotebookTest extends AbstractInterpreterTest 
implements ParagraphJo
     notebookRepo = new VFSNotebookRepo();
     notebookRepo.init(conf);
     noteManager = new NoteManager(notebookRepo);
-    authorizationService = new AuthorizationService(conf);
+    authorizationService = new AuthorizationService(noteManager, conf);
 
     credentials = new Credentials(conf.credentialsPersist(), 
conf.getCredentialsPath(), null);
     notebook = new Notebook(conf, authorizationService, notebookRepo, 
noteManager, interpreterFactory, interpreterSettingManager, search,
diff --git 
a/zeppelin-zengine/src/test/java/org/apache/zeppelin/notebook/repo/NotebookRepoSyncTest.java
 
b/zeppelin-zengine/src/test/java/org/apache/zeppelin/notebook/repo/NotebookRepoSyncTest.java
index 7a3b4c8..fc3c0aa 100644
--- 
a/zeppelin-zengine/src/test/java/org/apache/zeppelin/notebook/repo/NotebookRepoSyncTest.java
+++ 
b/zeppelin-zengine/src/test/java/org/apache/zeppelin/notebook/repo/NotebookRepoSyncTest.java
@@ -101,7 +101,7 @@ public class NotebookRepoSyncTest {
     search = mock(SearchService.class);
     notebookRepoSync = new NotebookRepoSync(conf);
     noteManager = new NoteManager(notebookRepoSync);
-    authorizationService = new AuthorizationService(conf);
+    authorizationService = new AuthorizationService(noteManager, conf);
     credentials = new Credentials(conf.credentialsPersist(), 
conf.getCredentialsPath(), null);
     notebook = new Notebook(conf, authorizationService, notebookRepoSync, 
noteManager, factory, interpreterSettingManager, search, credentials, null);
     anonymous = new AuthenticationInfo("anonymous");

Reply via email to