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]