mirror of
https://github.com/apache/zeppelin
synced 2026-05-24 09:38:26 +00:00
Store owner information on creating a note and added integration test
cases for the relevant scenarios.
This commit is contained in:
parent
b8051970ad
commit
e1b8b085a7
2 changed files with 49 additions and 2 deletions
|
|
@ -24,10 +24,12 @@ import java.util.Collections;
|
|||
import java.util.Comparator;
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
import java.util.HashSet;
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
import com.google.gson.Gson;
|
||||
|
|
@ -158,6 +160,11 @@ public class Notebook implements NoteEventListener {
|
|||
note.putDefaultReplName();
|
||||
}
|
||||
|
||||
if (subject != null && !"anonymous".equals(subject.getUser())) {
|
||||
Set<String> owners = new HashSet<String>();
|
||||
owners.add(subject.getUser());
|
||||
notebookAuthorization.setOwners(note.getId(), owners);
|
||||
}
|
||||
notebookIndex.addIndexDoc(note);
|
||||
note.persist(subject);
|
||||
fireNoteCreateEvent(note);
|
||||
|
|
|
|||
|
|
@ -42,6 +42,7 @@ import org.apache.zeppelin.scheduler.Job;
|
|||
import org.apache.zeppelin.scheduler.Job.Status;
|
||||
import org.apache.zeppelin.scheduler.SchedulerFactory;
|
||||
import org.apache.zeppelin.search.SearchService;
|
||||
import org.apache.zeppelin.user.AuthenticationInfo;
|
||||
import org.apache.zeppelin.user.Credentials;
|
||||
import org.junit.After;
|
||||
import org.junit.Before;
|
||||
|
|
@ -209,6 +210,21 @@ public class NotebookTest implements JobListenerFactory{
|
|||
assertEquals(1, notebook2.getAllNotes().size());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testCreateNoteWithSubject() throws IOException, SchedulerException, RepositoryException {
|
||||
AuthenticationInfo subject = new AuthenticationInfo("user1");
|
||||
Note note = notebook.createNote(subject);
|
||||
|
||||
Notebook notebook = new Notebook(
|
||||
conf, notebookRepo, schedulerFactory,
|
||||
new InterpreterFactory(conf, null, null, null, depResolver), this, null, notebookAuthorization, null);
|
||||
assertNotNull(notebook.getNotebookAuthorization().getOwners(note.getId()));
|
||||
assertEquals(1, notebook.getNotebookAuthorization().getOwners(note.getId()).size());
|
||||
Set<String> owners = new HashSet<>();
|
||||
owners.add("user1");
|
||||
assertEquals(owners, notebook.getNotebookAuthorization().getOwners(note.getId()));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testClearParagraphOutput() throws IOException, SchedulerException{
|
||||
Note note = notebook.createNote(null);
|
||||
|
|
@ -351,7 +367,7 @@ public class NotebookTest implements JobListenerFactory{
|
|||
|
||||
@Test
|
||||
public void testExportAndImportNote() throws IOException, CloneNotSupportedException,
|
||||
InterruptedException {
|
||||
InterruptedException, InterpreterException, SchedulerException, RepositoryException {
|
||||
Note note = notebook.createNote(null);
|
||||
factory.setInterpreters(note.getId(), factory.getDefaultInterpreterSettingList());
|
||||
|
||||
|
|
@ -374,11 +390,23 @@ public class NotebookTest implements JobListenerFactory{
|
|||
assertEquals(p.getId(), p2.getId());
|
||||
assertEquals(p.text, p2.text);
|
||||
assertEquals(p.getResult().message(), p2.getResult().message());
|
||||
|
||||
// Verify import note with subject
|
||||
AuthenticationInfo subject = new AuthenticationInfo("user1");
|
||||
Note importedNote2 = notebook.importNote(exportedNoteJson, "Title2", subject);
|
||||
Notebook notebook = new Notebook(
|
||||
conf, notebookRepo, schedulerFactory,
|
||||
new InterpreterFactory(conf, null, null, null, depResolver), this, null, notebookAuthorization, null);
|
||||
assertNotNull(notebook.getNotebookAuthorization().getOwners(importedNote2.getId()));
|
||||
assertEquals(1, notebook.getNotebookAuthorization().getOwners(importedNote2.getId()).size());
|
||||
Set<String> owners = new HashSet<>();
|
||||
owners.add("user1");
|
||||
assertEquals(owners, notebook.getNotebookAuthorization().getOwners(importedNote2.getId()));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testCloneNote() throws IOException, CloneNotSupportedException,
|
||||
InterruptedException {
|
||||
InterruptedException, InterpreterException, SchedulerException, RepositoryException {
|
||||
Note note = notebook.createNote(null);
|
||||
factory.setInterpreters(note.getId(), factory.getDefaultInterpreterSettingList());
|
||||
|
||||
|
|
@ -396,6 +424,18 @@ public class NotebookTest implements JobListenerFactory{
|
|||
assertEquals(cp.getId(), p.getId());
|
||||
assertEquals(cp.text, p.text);
|
||||
assertEquals(cp.getResult().message(), p.getResult().message());
|
||||
|
||||
// Verify clone note with subject
|
||||
AuthenticationInfo subject = new AuthenticationInfo("user1");
|
||||
Note cloneNote2 = notebook.cloneNote(note.getId(), "clone note2", subject);
|
||||
Notebook notebook = new Notebook(
|
||||
conf, notebookRepo, schedulerFactory,
|
||||
new InterpreterFactory(conf, null, null, null, depResolver), this, null, notebookAuthorization, null);
|
||||
assertNotNull(notebook.getNotebookAuthorization().getOwners(cloneNote2.getId()));
|
||||
assertEquals(1, notebook.getNotebookAuthorization().getOwners(cloneNote2.getId()).size());
|
||||
Set<String> owners = new HashSet<>();
|
||||
owners.add("user1");
|
||||
assertEquals(owners, notebook.getNotebookAuthorization().getOwners(cloneNote2.getId()));
|
||||
}
|
||||
|
||||
@Test
|
||||
|
|
|
|||
Loading…
Reference in a new issue