Github user vanzin commented on a diff in the pull request:

    https://github.com/apache/spark/pull/20167#discussion_r162465062
  
    --- Diff: 
resource-managers/mesos/src/test/scala/org/apache/spark/scheduler/cluster/mesos/MesosSchedulerUtilsSuite.scala
 ---
    @@ -237,4 +242,88 @@ class MesosSchedulerUtilsSuite extends SparkFunSuite 
with Matchers with MockitoS
         val portsToUse = getRangesFromResources(resourcesToBeUsed).map{r => 
r._1}
         portsToUse.isEmpty shouldBe true
       }
    +  
    +  test("Principal specified via spark.mesos.principal") {
    +    val conf = new SparkConf()
    +    conf.set("spark.mesos.principal", "test-principal")
    +    
    +    val credBuilder = utils.buildCredentials(conf, 
FrameworkInfo.newBuilder())
    +    credBuilder.hasPrincipal shouldBe true
    +    credBuilder.getPrincipal shouldBe "test-principal"
    +  }
    +  
    +  test("Principal specified via spark.mesos.principal.file") {
    +    val pFile = File.createTempFile("MesosSchedulerUtilsSuite", ".txt");
    +    pFile.deleteOnExit()
    +    Files.write("test-principal".getBytes("UTF-8"), pFile);
    +    val conf = new SparkConf()
    +    conf.set("spark.mesos.principal.file", pFile.getAbsolutePath())
    +    
    +    val credBuilder = utils.buildCredentials(conf, 
FrameworkInfo.newBuilder())
    +    credBuilder.hasPrincipal shouldBe true
    +    credBuilder.getPrincipal shouldBe "test-principal"
    +  }
    +  
    +  test("Principal specified via SPARK_MESOS_PRINCIPAL_FILE") {
    +    val pFile = File.createTempFile("MesosSchedulerUtilsSuite", ".txt");
    +    pFile.deleteOnExit()
    +    Files.write("test-principal".getBytes("UTF-8"), pFile);
    +    val conf = new SparkConfWithEnv(Map("SPARK_MESOS_PRINCIPAL_FILE" -> 
pFile.getAbsolutePath()))
    +    
    +    val credBuilder = utils.buildCredentials(conf, 
FrameworkInfo.newBuilder())
    +    credBuilder.hasPrincipal shouldBe true
    +    credBuilder.getPrincipal shouldBe "test-principal"
    +  }
    +  
    +  test("Secret specified via spark.mesos.secret") {
    +    val conf = new SparkConf()
    +    conf.set("spark.mesos.principal", "test-principal")
    +    conf.set("spark.mesos.secret", "my-secret")
    +    
    +    val credBuilder = utils.buildCredentials(conf, 
FrameworkInfo.newBuilder())
    +    credBuilder.hasPrincipal shouldBe true
    +    credBuilder.getPrincipal shouldBe "test-principal"
    +    credBuilder.hasSecret shouldBe true
    +    credBuilder.getSecret shouldBe "my-secret"
    +  }
    +  
    +  test("Principal specified via spark.mesos.secret.file") {
    +    val sFile = File.createTempFile("MesosSchedulerUtilsSuite", ".txt");
    +    sFile.deleteOnExit()
    +    Files.write("my-secret".getBytes("UTF-8"), sFile);
    +    val conf = new SparkConf()
    +    conf.set("spark.mesos.principal", "test-principal")
    +    conf.set("spark.mesos.secret.file", sFile.getAbsolutePath())
    +    
    +    val credBuilder = utils.buildCredentials(conf, 
FrameworkInfo.newBuilder())
    +    credBuilder.hasPrincipal shouldBe true
    +    credBuilder.getPrincipal shouldBe "test-principal"
    +    credBuilder.hasSecret shouldBe true
    +    credBuilder.getSecret shouldBe "my-secret"
    +  }
    +  
    +  test("Principal specified via SPARK_MESOS_SECRET_FILE") {
    +    val sFile = File.createTempFile("MesosSchedulerUtilsSuite", ".txt");
    +    sFile.deleteOnExit()
    +    Files.write("my-secret".getBytes("UTF-8"), sFile);
    +    
    +    val sFilePath = sFile.getAbsolutePath()
    +    val env = Map("SPARK_MESOS_SECRET_FILE" -> sFilePath)
    +    val conf = new SparkConfWithEnv(env)
    +    conf.set("spark.mesos.principal", "test-principal")
    +    conf.set("spark.mesos.secret.file", sFile.getAbsolutePath())
    +    
    +    val credBuilder = utils.buildCredentials(conf, 
FrameworkInfo.newBuilder())
    +    credBuilder.hasPrincipal shouldBe true
    +    credBuilder.getPrincipal shouldBe "test-principal"
    +    credBuilder.hasSecret shouldBe true
    +    credBuilder.getSecret shouldBe "my-secret"
    +  }
    +  
    +  test("Secret specified with no principal") {
    +    val conf = new SparkConf()
    +    conf.set("spark.mesos.secret", "my-secret")
    +    
    +    an [SparkException] should be thrownBy utils.buildCredentials(conf, 
FrameworkInfo.newBuilder())
    --- End diff --
    
    We normally use a different approach:
    
    ```
    intercept[SparkException] {
      // code
    }
    ```


---

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to