mirror of
https://github.com/apache/zeppelin
synced 2026-05-24 09:38:26 +00:00
Fixed to run "per note" as "scoped"
This commit is contained in:
parent
9d5b4b464b
commit
0d53d1da60
4 changed files with 53 additions and 12 deletions
|
|
@ -244,12 +244,12 @@ public class InterpreterSetting {
|
|||
}
|
||||
}
|
||||
|
||||
void closeAndRemoveInterpreterGroupByUser(String user) {
|
||||
void closeAndRemoveInterpreterGroup(String noteId, String user) {
|
||||
if (user.equals("anonymous")) {
|
||||
user = "";
|
||||
}
|
||||
String processKey = getInterpreterProcessKey(user, "");
|
||||
String sessionKey = getInterpreterSessionKey(user, "");
|
||||
String processKey = getInterpreterProcessKey(user, noteId);
|
||||
String sessionKey = getInterpreterSessionKey(user, noteId);
|
||||
List<InterpreterGroup> groupToRemove = new LinkedList<>();
|
||||
InterpreterGroup groupItem;
|
||||
for (String intpKey : new HashSet<>(interpreterGroupRef.keySet())) {
|
||||
|
|
|
|||
|
|
@ -948,7 +948,7 @@ public class InterpreterSettingManager {
|
|||
if (user.equals("anonymous")) {
|
||||
intpSetting.closeAndRemoveAllInterpreterGroups();
|
||||
} else {
|
||||
intpSetting.closeAndRemoveInterpreterGroupByUser(user);
|
||||
intpSetting.closeAndRemoveInterpreterGroup(noteId, user);
|
||||
}
|
||||
|
||||
} else {
|
||||
|
|
|
|||
|
|
@ -224,7 +224,7 @@ public class InterpreterFactoryTest {
|
|||
LazyOpenInterpreter interpreter2 = (LazyOpenInterpreter)interpreterGroup.get("user2").get(0);
|
||||
interpreter2.open();
|
||||
|
||||
mock1Setting.closeAndRemoveInterpreterGroupByUser("user1");
|
||||
mock1Setting.closeAndRemoveInterpreterGroup("sharedProcess", "user1");
|
||||
assertFalse(interpreter1.isOpen());
|
||||
assertTrue(interpreter2.isOpen());
|
||||
}
|
||||
|
|
@ -270,7 +270,7 @@ public class InterpreterFactoryTest {
|
|||
LazyOpenInterpreter interpreter2 = (LazyOpenInterpreter)interpreterGroup2.get("shared_session").get(0);
|
||||
interpreter2.open();
|
||||
|
||||
mock1Setting.closeAndRemoveInterpreterGroupByUser("user1");
|
||||
mock1Setting.closeAndRemoveInterpreterGroup("note1", "user1");
|
||||
assertFalse(interpreter1.isOpen());
|
||||
assertTrue(interpreter2.isOpen());
|
||||
}
|
||||
|
|
|
|||
|
|
@ -43,7 +43,7 @@ public class InterpreterSettingTest {
|
|||
|
||||
assertEquals(1, interpreterSetting.getInterpreterGroup("user1", "note1").size());
|
||||
|
||||
interpreterSetting.closeAndRemoveInterpreterGroupByUser("user2");
|
||||
interpreterSetting.closeAndRemoveInterpreterGroup("note1", "user2");
|
||||
assertEquals(0, interpreterSetting.getAllInterpreterGroups().size());
|
||||
}
|
||||
|
||||
|
|
@ -77,14 +77,14 @@ public class InterpreterSettingTest {
|
|||
assertEquals(2, interpreterSetting.getInterpreterGroup("user1", "note1").size());
|
||||
assertEquals(2, interpreterSetting.getInterpreterGroup("user2", "note1").size());
|
||||
|
||||
interpreterSetting.closeAndRemoveInterpreterGroupByUser("user1");
|
||||
interpreterSetting.closeAndRemoveInterpreterGroup("note1", "user1");
|
||||
assertEquals(1, interpreterSetting.getInterpreterGroup("user2","note1").size());
|
||||
|
||||
// Check if non-existed key works or not
|
||||
interpreterSetting.closeAndRemoveInterpreterGroupByUser("user1");
|
||||
interpreterSetting.closeAndRemoveInterpreterGroup("note1", "user1");
|
||||
assertEquals(1, interpreterSetting.getInterpreterGroup("user2","note1").size());
|
||||
|
||||
interpreterSetting.closeAndRemoveInterpreterGroupByUser("user2");
|
||||
interpreterSetting.closeAndRemoveInterpreterGroup("note1", "user2");
|
||||
assertEquals(0, interpreterSetting.getAllInterpreterGroups().size());
|
||||
}
|
||||
|
||||
|
|
@ -118,11 +118,52 @@ public class InterpreterSettingTest {
|
|||
assertEquals(1, interpreterSetting.getInterpreterGroup("user1", "note1").size());
|
||||
assertEquals(1, interpreterSetting.getInterpreterGroup("user2", "note1").size());
|
||||
|
||||
interpreterSetting.closeAndRemoveInterpreterGroupByUser("user1");
|
||||
interpreterSetting.closeAndRemoveInterpreterGroup("note1", "user1");
|
||||
assertEquals(1, interpreterSetting.getInterpreterGroup("user2","note1").size());
|
||||
assertEquals(1, interpreterSetting.getAllInterpreterGroups().size());
|
||||
|
||||
interpreterSetting.closeAndRemoveInterpreterGroupByUser("user2");
|
||||
interpreterSetting.closeAndRemoveInterpreterGroup("note1", "user2");
|
||||
assertEquals(0, interpreterSetting.getAllInterpreterGroups().size());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void perNoteScopedModeCloseAndRemoveInterpreterGroupTest() {
|
||||
InterpreterOption interpreterOption = new InterpreterOption();
|
||||
interpreterOption.setPerNote(InterpreterOption.SCOPED);
|
||||
InterpreterSetting interpreterSetting = new InterpreterSetting("", "", "", new ArrayList<InterpreterInfo>(), new Properties(), new ArrayList<Dependency>(), interpreterOption, "", null);
|
||||
|
||||
interpreterSetting.setInterpreterGroupFactory(new InterpreterGroupFactory() {
|
||||
@Override
|
||||
public InterpreterGroup createInterpreterGroup(String interpreterGroupId,
|
||||
InterpreterOption option) {
|
||||
return new InterpreterGroup(interpreterGroupId);
|
||||
}
|
||||
});
|
||||
|
||||
Interpreter mockInterpreter1 = mock(RemoteInterpreter.class);
|
||||
List<Interpreter> interpreterList1 = new ArrayList<>();
|
||||
interpreterList1.add(mockInterpreter1);
|
||||
InterpreterGroup interpreterGroup = interpreterSetting.getInterpreterGroup("user1", "note1");
|
||||
interpreterGroup.put(interpreterSetting.getInterpreterSessionKey("user1", "note1"), interpreterList1);
|
||||
|
||||
Interpreter mockInterpreter2 = mock(RemoteInterpreter.class);
|
||||
List<Interpreter> interpreterList2 = new ArrayList<>();
|
||||
interpreterList2.add(mockInterpreter2);
|
||||
interpreterGroup = interpreterSetting.getInterpreterGroup("user1", "note2");
|
||||
interpreterGroup.put(interpreterSetting.getInterpreterSessionKey("user1", "note2"), interpreterList2);
|
||||
|
||||
assertEquals(1, interpreterSetting.getAllInterpreterGroups().size());
|
||||
assertEquals(2, interpreterSetting.getInterpreterGroup("user1", "note1").size());
|
||||
assertEquals(2, interpreterSetting.getInterpreterGroup("user1", "note2").size());
|
||||
|
||||
interpreterSetting.closeAndRemoveInterpreterGroup("note1", "user1");
|
||||
assertEquals(1, interpreterSetting.getInterpreterGroup("user1","note2").size());
|
||||
|
||||
// Check if non-existed key works or not
|
||||
interpreterSetting.closeAndRemoveInterpreterGroup("note1", "user1");
|
||||
assertEquals(1, interpreterSetting.getInterpreterGroup("user1","note2").size());
|
||||
|
||||
interpreterSetting.closeAndRemoveInterpreterGroup("note2", "user1");
|
||||
assertEquals(0, interpreterSetting.getAllInterpreterGroups().size());
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue