Skip to content

Commit

Permalink
Parse results of minikube status more rigorously (apache#97)
Browse files Browse the repository at this point in the history
* Parse results of minikube status more rigorously

Prior code assumes the minikubeVM status line is always the first row output
from minikube status, and it is not when the version upgrade notifier prints
an upgrade suggestion message.

* Also filter ip response to expected rows
  • Loading branch information
ash211 authored and foxish committed Jul 24, 2017
1 parent 3a51dbe commit ba6a9e5
Showing 1 changed file with 6 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ package org.apache.spark.deploy.kubernetes.integrationtest.minikube
import java.io.{BufferedReader, InputStreamReader}
import java.nio.file.Paths
import java.util.concurrent.TimeUnit
import java.util.regex.Pattern
import javax.net.ssl.X509TrustManager

import io.fabric8.kubernetes.client.{ConfigBuilder, DefaultKubernetesClient}
Expand Down Expand Up @@ -58,13 +59,17 @@ private[spark] object Minikube extends Logging {
def getMinikubeIp: String = synchronized {
assert(MINIKUBE_EXECUTABLE_DEST.exists(), EXPECTED_DOWNLOADED_MINIKUBE_MESSAGE)
val outputs = executeMinikube("ip")
.filter(_.matches("^\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}$"))
assert(outputs.size == 1, "Unexpected amount of output from minikube ip")
outputs.head
}

def getMinikubeStatus: MinikubeStatus.Value = synchronized {
assert(MINIKUBE_EXECUTABLE_DEST.exists(), EXPECTED_DOWNLOADED_MINIKUBE_MESSAGE)
val statusString = executeMinikube("status").head.replaceFirst("minikubeVM: ", "")
val statusString = executeMinikube("status")
.filter(_.contains("minikubeVM: "))
.head
.replaceFirst("minikubeVM: ", "")
MinikubeStatus.unapply(statusString)
.getOrElse(throw new IllegalStateException(s"Unknown status $statusString"))
}
Expand Down

0 comments on commit ba6a9e5

Please sign in to comment.