From 787a366b259dae31768dcd4f4aeda2ccd8182e46 Mon Sep 17 00:00:00 2001 From: CloverHearts Date: Tue, 18 Oct 2016 00:54:16 +0900 Subject: [PATCH] change Back-end test cases and member type (perNote, perUser) --- .../interpreter/remote/RemoteInterpreter.java | 1 + .../interpreter/InterpreterOption.java | 49 ++++++++++++++++--- .../interpreter/InterpreterFactoryTest.java | 2 +- .../notebook/NoteInterpreterLoaderTest.java | 14 ++++-- .../zeppelin/notebook/NotebookTest.java | 8 +-- 5 files changed, 59 insertions(+), 15 deletions(-) diff --git a/zeppelin-interpreter/src/main/java/org/apache/zeppelin/interpreter/remote/RemoteInterpreter.java b/zeppelin-interpreter/src/main/java/org/apache/zeppelin/interpreter/remote/RemoteInterpreter.java index 073b84bbda..e0cdaa338b 100644 --- a/zeppelin-interpreter/src/main/java/org/apache/zeppelin/interpreter/remote/RemoteInterpreter.java +++ b/zeppelin-interpreter/src/main/java/org/apache/zeppelin/interpreter/remote/RemoteInterpreter.java @@ -298,6 +298,7 @@ public class RemoteInterpreter extends Interpreter { if (logger.isDebugEnabled()) { logger.debug("st:\n{}", st); } + FormType form = getFormType(); RemoteInterpreterProcess interpreterProcess = getInterpreterProcess(); Client client = null; diff --git a/zeppelin-zengine/src/main/java/org/apache/zeppelin/interpreter/InterpreterOption.java b/zeppelin-zengine/src/main/java/org/apache/zeppelin/interpreter/InterpreterOption.java index 9fe14fa063..6c13a4c4b0 100644 --- a/zeppelin-zengine/src/main/java/org/apache/zeppelin/interpreter/InterpreterOption.java +++ b/zeppelin-zengine/src/main/java/org/apache/zeppelin/interpreter/InterpreterOption.java @@ -23,12 +23,16 @@ import java.util.List; * */ public class InterpreterOption { + public final transient String SHARED = "shared"; + public final transient String SCOPED = "scoped"; + public final transient String ISOLATED = "isolated"; + boolean remote; String host = null; int port = -1; - boolean perNote; - boolean perUser; + String perNote; + String perUser; boolean session; boolean process; @@ -37,19 +41,46 @@ public class InterpreterOption { boolean setPermission; List users; - public boolean isPerNote() { - return perNote; + public boolean isGlobally() { + if (perNote != null && perNote.equals(SHARED) + && perUser != null && perUser.equals(SHARED)) { + return true; + } + return false; } - public void setPerNote(boolean perNote) { + public boolean isPerNote() { + if (isGlobally() == true) { + return false; + } + + if (perNote != null && !perNote.equals("")) { + return true; + } + + return false; + } + + public void setPerNote(String perNote) { this.perNote = perNote; } public boolean isPerUser() { - return perUser; + if (isGlobally() == true) { + return false; + } + + if (isPerNote() == true) { + return false; + } + + if (perUser != null && !perUser.equals("")) { + return true; + } + return false; } - public void setPerUser(boolean perUser) { + public void setPerUser(String perUser) { this.perUser = perUser; } @@ -82,10 +113,14 @@ public class InterpreterOption { } public InterpreterOption() { + this.perNote = null; + this.perUser = null; remote = false; } public InterpreterOption(boolean remote) { + this.perNote = null; + this.perUser = null; this.remote = remote; } diff --git a/zeppelin-zengine/src/test/java/org/apache/zeppelin/interpreter/InterpreterFactoryTest.java b/zeppelin-zengine/src/test/java/org/apache/zeppelin/interpreter/InterpreterFactoryTest.java index 66967176f3..662a27b712 100644 --- a/zeppelin-zengine/src/test/java/org/apache/zeppelin/interpreter/InterpreterFactoryTest.java +++ b/zeppelin-zengine/src/test/java/org/apache/zeppelin/interpreter/InterpreterFactoryTest.java @@ -226,7 +226,7 @@ public class InterpreterFactoryTest { InterpreterOption perUserInterpreterOption = new InterpreterOption(true); perUserInterpreterOption.setSession(true); - perUserInterpreterOption.setPerUser(true); + perUserInterpreterOption.setPerUser(perUserInterpreterOption.ISOLATED); final InterpreterSetting setting1 = factory.createNewSetting("test-group1", "group1", new ArrayList(), perUserInterpreterOption, new Properties()); factory.setInterpreters("user1", "note", new ArrayList() {{ diff --git a/zeppelin-zengine/src/test/java/org/apache/zeppelin/notebook/NoteInterpreterLoaderTest.java b/zeppelin-zengine/src/test/java/org/apache/zeppelin/notebook/NoteInterpreterLoaderTest.java index a826120b4e..307801ffe5 100644 --- a/zeppelin-zengine/src/test/java/org/apache/zeppelin/notebook/NoteInterpreterLoaderTest.java +++ b/zeppelin-zengine/src/test/java/org/apache/zeppelin/notebook/NoteInterpreterLoaderTest.java @@ -95,13 +95,16 @@ public class NoteInterpreterLoaderTest { @Test public void testNoteSession() throws IOException { + InterpreterOption dumyInterpreterOption = new InterpreterOption(); factory.setInterpreters("user", "noteA", factory.getDefaultInterpreterSettingList()); factory.getInterpreterSettings("noteA").get(0).getOption().setSession(true); - factory.getInterpreterSettings("noteA").get(0).getOption().setPerNote(true); + factory.getInterpreterSettings("noteA").get(0).getOption().setPerNote(dumyInterpreterOption.SCOPED); + factory.getInterpreterSettings("noteA").get(0).getOption().setPerUser(""); factory.setInterpreters("user", "noteB", factory.getDefaultInterpreterSettingList()); factory.getInterpreterSettings("noteB").get(0).getOption().setSession(true); - factory.getInterpreterSettings("noteB").get(0).getOption().setPerNote(true); + factory.getInterpreterSettings("noteB").get(0).getOption().setPerNote(dumyInterpreterOption.SCOPED); + factory.getInterpreterSettings("noteB").get(0).getOption().setPerUser(""); // interpreters are not created before accessing it assertNull(factory.getInterpreterSettings("noteA").get(0).getInterpreterGroup("user", "noteA").get(":noteA")); @@ -130,13 +133,16 @@ public class NoteInterpreterLoaderTest { @Test public void testNotePerInterpreterProcess() throws IOException { + InterpreterOption dumyInterpreterOption = new InterpreterOption(); factory.setInterpreters("user", "noteA", factory.getDefaultInterpreterSettingList()); factory.getInterpreterSettings("noteA").get(0).getOption().setProcess(true); - factory.getInterpreterSettings("noteA").get(0).getOption().setPerNote(true); + factory.getInterpreterSettings("noteA").get(0).getOption().setPerNote(dumyInterpreterOption.SCOPED); + factory.getInterpreterSettings("noteA").get(0).getOption().setPerUser(""); factory.setInterpreters("user", "noteB", factory.getDefaultInterpreterSettingList()); factory.getInterpreterSettings("noteB").get(0).getOption().setProcess(true); - factory.getInterpreterSettings("noteA").get(0).getOption().setPerNote(true); + factory.getInterpreterSettings("noteB").get(0).getOption().setPerNote(dumyInterpreterOption.SCOPED); + factory.getInterpreterSettings("noteB").get(0).getOption().setPerUser(""); // interpreters are not created before accessing it assertNull(factory.getInterpreterSettings("noteA").get(0).getInterpreterGroup("user", "noteA").get(":noteA")); 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 d786a977e6..96d31ccd18 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 @@ -696,10 +696,11 @@ public class NotebookTest implements JobListenerFactory{ p1.setText("getId"); p1.setAuthenticationInfo(anonymous); - // restart interpreter with per note session enabled + // restart interpreter with per user session enabled for (InterpreterSetting setting : factory.getInterpreterSettings(note1.getId())) { setting.getOption().setSession(true); - setting.getOption().setPerUser(true); + setting.getOption().setPerNote(setting.getOption().SCOPED); + setting.getOption().setPerUser(""); notebook.getInterpreterFactory().restart(setting.getId()); } @@ -748,7 +749,8 @@ public class NotebookTest implements JobListenerFactory{ // restart interpreter with per note session enabled for (InterpreterSetting setting : notebook.getInterpreterFactory().getInterpreterSettings(note1.getId())) { setting.getOption().setSession(true); - setting.getOption().setPerNote(true); + setting.getOption().setPerNote(setting.getOption().SCOPED); + setting.getOption().setPerUser(setting.getOption().SCOPED); notebook.getInterpreterFactory().restart(setting.getId()); }