Skip to content

Commit ab6746e

Browse files
author
Robert Kruszewski
committed
Fix local files k8s tests
1 parent 706c3d0 commit ab6746e

File tree

6 files changed

+34
-30
lines changed

6 files changed

+34
-30
lines changed

pom.xml

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -107,8 +107,6 @@
107107
<module>external/avro</module>
108108
<module>dists/hadoop-palantir-bom</module>
109109
<module>dists/hadoop-palantir</module>
110-
<module>resource-managers/kubernetes/core</module>
111-
<module>resource-managers/kubernetes/integration-tests</module>
112110
<!-- See additional modules enabled by profiles below -->
113111
</modules>
114112

resource-managers/kubernetes/core/src/main/scala/org/apache/spark/deploy/k8s/features/MountLocalFilesFeatureStep.scala

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ private[spark] class MountLocalDriverFilesFeatureStep(
3434
kubernetesConf: KubernetesConf[KubernetesDriverSpecificConf])
3535
extends MountLocalFilesFeatureStep(kubernetesConf) {
3636

37-
lazy val allFiles: Seq[String] = {
37+
val allFiles: Seq[String] = {
3838
Utils.stringToSeq(kubernetesConf.sparkConf.get("spark.files", "")) ++
3939
kubernetesConf.roleSpecificConf.pyFiles ++
4040
(kubernetesConf.roleSpecificConf.mainAppResource match {
@@ -49,15 +49,17 @@ private[spark] class MountLocalExecutorFilesFeatureStep(
4949
kubernetesConf: KubernetesConf[KubernetesExecutorSpecificConf])
5050
extends MountLocalFilesFeatureStep(kubernetesConf) {
5151

52-
lazy val allFiles: Seq[String] = Nil
52+
val allFiles: Seq[String] = Nil
5353
}
5454

5555
private[spark] abstract class MountLocalFilesFeatureStep(
5656
kubernetesConf: KubernetesConf[_ <: KubernetesRoleSpecificConf])
5757
extends KubernetesFeatureConfigStep {
58-
require(kubernetesConf.mountLocalFilesSecretName.isDefined,
59-
"Shouldn't be using this feature without a secret name.")
60-
private val secretName = kubernetesConf.mountLocalFilesSecretName.get
58+
private lazy val secretName = {
59+
require(kubernetesConf.mountLocalFilesSecretName.isDefined,
60+
"Shouldn't be using this feature without a secret name.")
61+
kubernetesConf.mountLocalFilesSecretName.get
62+
}
6163

6264
override def configurePod(pod: SparkPod): SparkPod = {
6365
val resolvedPod = new PodBuilder(pod.pod)

resource-managers/kubernetes/core/src/main/scala/org/apache/spark/deploy/k8s/submit/KubernetesDriverBuilder.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,7 @@ private[spark] class KubernetesDriverBuilder(
9595
val localFiles = KubernetesUtils.submitterLocalFiles(localFilesFeature.allFiles)
9696
.map(new File(_))
9797
require(localFiles.forall(_.isFile), s"All submitted local files must be present and not" +
98-
s" directories, Got got: ${localFiles.map(_.getAbsolutePath).mkString(",")}")
98+
s" directories, Got: ${localFiles.map(_.getAbsolutePath).mkString(",")}")
9999

100100
val totalFileSize = localFiles.map(_.length()).sum
101101
val totalSizeBytesString = Utils.bytesToString(totalFileSize)

resource-managers/kubernetes/core/src/test/scala/org/apache/spark/deploy/k8s/features/KubernetesFeaturesTestUtils.scala

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,15 +16,19 @@
1616
*/
1717
package org.apache.spark.deploy.k8s.features
1818

19-
import scala.collection.JavaConverters._
19+
import java.io.File
2020

21+
import com.google.common.base.Charsets
22+
import com.google.common.io.Files
2123
import io.fabric8.kubernetes.api.model.{Container, HasMetadata, PodBuilder, SecretBuilder}
2224
import org.mockito.Matchers
2325
import org.mockito.Mockito._
2426
import org.mockito.invocation.InvocationOnMock
2527
import org.mockito.stubbing.Answer
28+
import scala.collection.JavaConverters._
2629

2730
import org.apache.spark.deploy.k8s.SparkPod
31+
import org.apache.spark.util.Utils
2832

2933
object KubernetesFeaturesTestUtils {
3034

@@ -51,6 +55,16 @@ object KubernetesFeaturesTestUtils {
5155
mockStep
5256
}
5357

58+
def getMockConfigStepForLocalFiles[T <: MountLocalFilesFeatureStep](
59+
stepType: String, stepClass: Class[T]): T = {
60+
val mockStep = getMockConfigStepForStepType(stepType, stepClass)
61+
val tempDir = Utils.createTempDir()
62+
val tempFile1 = new File(tempDir, "file1.txt")
63+
Files.write("a", tempFile1, Charsets.UTF_8)
64+
when(mockStep.allFiles()).thenReturn(Seq(tempFile1.getAbsolutePath))
65+
mockStep
66+
}
67+
5468
def getSecretsForStepType[T <: KubernetesFeatureConfigStep](stepType: String)
5569
: Seq[HasMetadata] = {
5670
Seq(new SecretBuilder()

resource-managers/kubernetes/core/src/test/scala/org/apache/spark/deploy/k8s/features/MountLocalFilesFeatureStepSuite.scala

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@ class MountLocalFilesFeatureStepSuite extends SparkFunSuite with BeforeAndAfter
5151
"https://localhost:9000/file3.txt")
5252
localFiles = Seq(firstLocalFile, secondLocalFile)
5353
val sparkConf = new SparkConf(false)
54+
.set("spark.files", sparkFiles.mkString(","))
5455
kubernetesConf = KubernetesConf(
5556
sparkConf,
5657
KubernetesDriverSpecificConf(

resource-managers/kubernetes/core/src/test/scala/org/apache/spark/deploy/k8s/submit/KubernetesDriverBuilderSuite.scala

Lines changed: 10 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,6 @@
1616
*/
1717
package org.apache.spark.deploy.k8s.submit
1818

19-
import java.io.File
20-
21-
import com.google.common.base.Charsets
22-
import com.google.common.io.Files
2319
import io.fabric8.kubernetes.api.model.PodBuilder
2420
import io.fabric8.kubernetes.client.KubernetesClient
2521
import org.mockito.Mockito._
@@ -28,7 +24,6 @@ import org.apache.spark.{SparkConf, SparkException, SparkFunSuite}
2824
import org.apache.spark.deploy.k8s._
2925
import org.apache.spark.deploy.k8s.Config.{CONTAINER_IMAGE, KUBERNETES_DRIVER_PODTEMPLATE_FILE}
3026
import org.apache.spark.deploy.k8s.features._
31-
import org.apache.spark.util.Utils
3227

3328
class KubernetesDriverBuilderSuite extends SparkFunSuite {
3429

@@ -62,7 +57,7 @@ class KubernetesDriverBuilderSuite extends SparkFunSuite {
6257
private val driverCommandStep = KubernetesFeaturesTestUtils.getMockConfigStepForStepType(
6358
DRIVER_CMD_STEP_TYPE, classOf[DriverCommandFeatureStep])
6459

65-
private val localFilesStep = KubernetesFeaturesTestUtils.getMockConfigStepForStepType(
60+
private val localFilesStep = KubernetesFeaturesTestUtils.getMockConfigStepForLocalFiles(
6661
LOCAL_FILES_STEP_TYPE, classOf[MountLocalDriverFilesFeatureStep])
6762

6863
private val envSecretsStep = KubernetesFeaturesTestUtils.getMockConfigStepForStepType(
@@ -116,6 +111,7 @@ class KubernetesDriverBuilderSuite extends SparkFunSuite {
116111
CREDENTIALS_STEP_TYPE,
117112
SERVICE_STEP_TYPE,
118113
LOCAL_DIRS_STEP_TYPE,
114+
LOCAL_FILES_STEP_TYPE,
119115
DRIVER_CMD_STEP_TYPE)
120116
}
121117

@@ -143,25 +139,15 @@ class KubernetesDriverBuilderSuite extends SparkFunSuite {
143139
CREDENTIALS_STEP_TYPE,
144140
SERVICE_STEP_TYPE,
145141
LOCAL_DIRS_STEP_TYPE,
142+
LOCAL_FILES_STEP_TYPE,
146143
SECRETS_STEP_TYPE,
147144
ENV_SECRETS_STEP_TYPE,
148145
DRIVER_CMD_STEP_TYPE)
149146
}
150147

151-
test("Apply mounting small local files when present..") {
152-
val tempDir = Utils.createTempDir()
153-
val tempFile1 = new File(tempDir, "file1.txt")
154-
Files.write("a", tempFile1, Charsets.UTF_8)
155-
val tempFile2 = new File(tempDir, "file2.txt")
156-
Files.write("b", tempFile2, Charsets.UTF_8)
157-
val allFiles = Seq(
158-
tempFile1.getAbsolutePath,
159-
s"file://${tempFile2.getAbsolutePath}",
160-
"https://localhost:9000/file3.txt")
161-
val sparkConf = new SparkConf(false)
162-
.set("spark.files", allFiles.mkString(","))
148+
test("Apply mounting small local files when present.") {
163149
val conf = KubernetesConf(
164-
sparkConf,
150+
new SparkConf(false),
165151
KubernetesDriverSpecificConf(
166152
JavaMainAppResource(None),
167153
"test-app",
@@ -216,6 +202,7 @@ class KubernetesDriverBuilderSuite extends SparkFunSuite {
216202
CREDENTIALS_STEP_TYPE,
217203
SERVICE_STEP_TYPE,
218204
LOCAL_DIRS_STEP_TYPE,
205+
LOCAL_FILES_STEP_TYPE,
219206
MOUNT_VOLUMES_STEP_TYPE,
220207
DRIVER_CMD_STEP_TYPE)
221208
}
@@ -244,8 +231,8 @@ class KubernetesDriverBuilderSuite extends SparkFunSuite {
244231
CREDENTIALS_STEP_TYPE,
245232
SERVICE_STEP_TYPE,
246233
LOCAL_DIRS_STEP_TYPE,
247-
DRIVER_CMD_STEP_TYPE,
248-
TEMPLATE_VOLUME_STEP_TYPE)
234+
LOCAL_FILES_STEP_TYPE,
235+
DRIVER_CMD_STEP_TYPE)
249236
}
250237

251238
test("Apply HadoopSteps if HADOOP_CONF_DIR is defined.") {
@@ -275,6 +262,7 @@ class KubernetesDriverBuilderSuite extends SparkFunSuite {
275262
CREDENTIALS_STEP_TYPE,
276263
SERVICE_STEP_TYPE,
277264
LOCAL_DIRS_STEP_TYPE,
265+
LOCAL_FILES_STEP_TYPE,
278266
DRIVER_CMD_STEP_TYPE,
279267
HADOOP_GLOBAL_STEP_TYPE)
280268
}
@@ -306,6 +294,7 @@ class KubernetesDriverBuilderSuite extends SparkFunSuite {
306294
CREDENTIALS_STEP_TYPE,
307295
SERVICE_STEP_TYPE,
308296
LOCAL_DIRS_STEP_TYPE,
297+
LOCAL_FILES_STEP_TYPE,
309298
DRIVER_CMD_STEP_TYPE,
310299
HADOOP_GLOBAL_STEP_TYPE)
311300
}

0 commit comments

Comments
 (0)