in network/benchmarks/netperf/launch.go [397:441]
func executeTests(c *kubernetes.Clientset) bool {
for i := 0; i < iterations; i++ {
cleanup(c)
if !createServices(c) {
fmt.Println("Failed to create services - aborting test")
return false
}
time.Sleep(3 * time.Second)
if !createRCs(c) {
fmt.Println("Failed to create replication controllers - aborting test")
return false
}
fmt.Println("Waiting for netperf pods to start up")
var orchestratorPodName string
for len(orchestratorPodName) == 0 {
fmt.Println("Waiting for orchestrator pod creation")
time.Sleep(60 * time.Second)
var pods *api.PodList
var err error
if pods, err = c.CoreV1().Pods(testNamespace).List(everythingSelector); err != nil {
fmt.Println("Failed to fetch pods - waiting for pod creation", err)
continue
}
orchestratorPodName = getOrchestratorPodName(pods)
}
fmt.Println("Orchestrator Pod is", orchestratorPodName)
// The pods orchestrate themselves, we just wait for the results file to show up in the orchestrator container
for {
// Monitor the orchestrator pod for the CSV results file
csvdata := getCsvResultsFromPod(c, orchestratorPodName)
if csvdata == nil {
fmt.Println("Scanned orchestrator pod filesystem - no results file found yet...waiting for orchestrator to write CSV file...")
time.Sleep(60 * time.Second)
continue
}
if processCsvData(csvdata) {
break
}
}
fmt.Printf("TEST RUN (Iteration %d) FINISHED - cleaning up services and pods\n", i)
}
return false
}