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 1c7274a  [ZEPPELIN-4768] Correct a typo in 
isUserImpersonateForSparkInterpreter
1c7274a is described below

commit 1c7274a37e4e84743b52ff8f7ee73387eb861cc9
Author: Philipp Dallig <philipp.dal...@gmail.com>
AuthorDate: Tue Apr 21 10:25:01 2020 +0200

    [ZEPPELIN-4768] Correct a typo in isUserImpersonateForSparkInterpreter
    
    ### What is this PR for?
    Small typo fix
    
    ### What type of PR is it?
    Bug Fix
    
    ### Todos
    * [ ] - Task
    
    ### What is the Jira issue?
    * https://issues.apache.org/jira/browse/ZEPPELIN-4768
    
    ### How should this be tested?
    * **Travis-CI**: 
https://travis-ci.org/github/Reamer/zeppelin/builds/677598691
    
    ### Questions:
    * Does the licenses files need update? No
    * Is there breaking changes for older versions? No
    * Does this needs documentation? No
    
    Author: Philipp Dallig <philipp.dal...@gmail.com>
    
    Closes #3744 from Reamer/typo_in_spark_user_impersonate and squashes the 
following commits:
    
    7094ab04e [Philipp Dallig] Correct a typo in 
isUserImpersonateForSparkInterpreter
    
    (cherry picked from commit badb2b4ba2b731f585e0aec6b791eeff792076b3)
    Signed-off-by: Jeff Zhang <zjf...@apache.org>
---
 .../launcher/K8sStandardInterpreterLauncher.java   |  2 +-
 .../K8sStandardInterpreterLauncherTest.java        | 87 ++++++++++++++++++++++
 2 files changed, 88 insertions(+), 1 deletion(-)

diff --git 
a/zeppelin-plugins/launcher/k8s-standard/src/main/java/org/apache/zeppelin/interpreter/launcher/K8sStandardInterpreterLauncher.java
 
b/zeppelin-plugins/launcher/k8s-standard/src/main/java/org/apache/zeppelin/interpreter/launcher/K8sStandardInterpreterLauncher.java
index 085c3f9..80bd4aa 100644
--- 
a/zeppelin-plugins/launcher/k8s-standard/src/main/java/org/apache/zeppelin/interpreter/launcher/K8sStandardInterpreterLauncher.java
+++ 
b/zeppelin-plugins/launcher/k8s-standard/src/main/java/org/apache/zeppelin/interpreter/launcher/K8sStandardInterpreterLauncher.java
@@ -135,7 +135,7 @@ public class K8sStandardInterpreterLauncher extends 
InterpreterLauncher {
   private boolean 
isUserImpersonateForSparkInterpreter(InterpreterLaunchContext context) {
       return zConf.getZeppelinImpersonateSparkProxyUser() &&
           context.getOption().isUserImpersonate() &&
-          "spark".equalsIgnoreCase(context.getInterpreterGroupId());
+          "spark".equalsIgnoreCase(context.getInterpreterSettingGroup());
   }
 
   @Override
diff --git 
a/zeppelin-plugins/launcher/k8s-standard/src/test/java/org/apache/zeppelin/interpreter/launcher/K8sStandardInterpreterLauncherTest.java
 
b/zeppelin-plugins/launcher/k8s-standard/src/test/java/org/apache/zeppelin/interpreter/launcher/K8sStandardInterpreterLauncherTest.java
index 4cd035a..b25373d 100644
--- 
a/zeppelin-plugins/launcher/k8s-standard/src/test/java/org/apache/zeppelin/interpreter/launcher/K8sStandardInterpreterLauncherTest.java
+++ 
b/zeppelin-plugins/launcher/k8s-standard/src/test/java/org/apache/zeppelin/interpreter/launcher/K8sStandardInterpreterLauncherTest.java
@@ -25,6 +25,7 @@ import org.junit.Test;
 import java.io.IOException;
 import java.util.Properties;
 
+import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertTrue;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
@@ -75,4 +76,90 @@ public class K8sStandardInterpreterLauncherTest {
     // then
     assertTrue(client instanceof K8sRemoteInterpreterProcess);
   }
+
+  @Test
+  public void testK8sLauncherWithSparkAndUserImpersonate() throws IOException {
+    // given
+    Kubectl kubectl = mock(Kubectl.class);
+    when(kubectl.getNamespace()).thenReturn("default");
+
+    ZeppelinConfiguration zConf = new ZeppelinConfiguration();
+    K8sStandardInterpreterLauncher launcher = new 
K8sStandardInterpreterLauncher(zConf, null, kubectl);
+    Properties properties = new Properties();
+    properties.setProperty("ENV_1", "VALUE_1");
+    properties.setProperty("property_1", "value_1");
+    properties.setProperty("CALLBACK_HOST", "zeppelin-server.default.svc");
+    properties.setProperty("CALLBACK_PORT", "12320");
+    properties.setProperty("SERVICE_DOMAIN", "example.com");
+    properties.setProperty("zeppelin.interpreter.connect.timeout", "60");
+    InterpreterOption option = new InterpreterOption();
+    option.setUserImpersonate(true);
+    InterpreterLaunchContext context = new InterpreterLaunchContext(
+            properties,
+            option,
+            null,
+            "user1", // username
+            "spark-user1", //interpretergroupId
+            "dummy", // interpreterSettingId
+            "spark", // interpreterSettingGroup
+            "spark", // interpreterSettingName
+            0,
+            "host");
+    // when
+    InterpreterClient client = launcher.launch(context);
+
+    // then
+    assertTrue(client instanceof K8sRemoteInterpreterProcess);
+    K8sRemoteInterpreterProcess process = (K8sRemoteInterpreterProcess) client;
+    assertTrue(process.isSpark());
+
+    // when
+    process.start(context.getUserName());
+
+    // then
+    assertTrue(process.buildSparkSubmitOptions().contains("--proxy-user 
user1"));
+  }
+
+  @Test
+  public void testK8sLauncherWithSparkAndWithoutUserImpersonate() throws 
IOException {
+    // given
+    Kubectl kubectl = mock(Kubectl.class);
+    when(kubectl.getNamespace()).thenReturn("default");
+
+    ZeppelinConfiguration zConf = new ZeppelinConfiguration();
+    K8sStandardInterpreterLauncher launcher = new 
K8sStandardInterpreterLauncher(zConf, null, kubectl);
+    Properties properties = new Properties();
+    properties.setProperty("ENV_1", "VALUE_1");
+    properties.setProperty("property_1", "value_1");
+    properties.setProperty("CALLBACK_HOST", "zeppelin-server.default.svc");
+    properties.setProperty("CALLBACK_PORT", "12320");
+    properties.setProperty("SERVICE_DOMAIN", "example.com");
+    properties.setProperty("zeppelin.interpreter.connect.timeout", "60");
+    InterpreterOption option = new InterpreterOption();
+    option.setUserImpersonate(false);
+    InterpreterLaunchContext context = new InterpreterLaunchContext(
+            properties,
+            option,
+            null,
+            "user1", // username
+            "spark-user1", //interpretergroupId
+            "dummy", // interpreterSettingId
+            "spark", // interpreterSettingGroup
+            "spark", // interpreterSettingName
+            0,
+            "host");
+    // when
+    InterpreterClient client = launcher.launch(context);
+
+    // then
+    assertTrue(client instanceof K8sRemoteInterpreterProcess);
+    K8sRemoteInterpreterProcess process = (K8sRemoteInterpreterProcess) client;
+    assertTrue(process.isSpark());
+
+    // when
+    process.start(context.getUserName());
+
+    // then
+    assertFalse(process.buildSparkSubmitOptions().contains("--proxy-user 
user1"));
+  }
 }

Reply via email to