in internal/components/setup/common.go [159:190]
func executeCommandsAndWait(commands string, waits []config.Wait, waitSet *util.WaitSet, cluster *util.K8sClusterInfo) {
defer waitSet.WaitGroup.Done()
// executes commands
logger.Log.Infof("executing commands [%s]", strings.ReplaceAll(commands, "\n", "\\n"))
result, stderr, err := util.ExecuteCommand(commands)
if err != nil {
err = fmt.Errorf("commands: [%s] runs error: %s", strings.ReplaceAll(commands, "\n", "\\n"), stderr)
waitSet.ErrChan <- err
}
logger.Log.Infof("executed commands [%s], result: %s", strings.ReplaceAll(commands, "\n", "\\n"), result)
// waits for conditions meet
for idx := range waits {
wait := waits[idx]
logger.Log.Infof("waiting for %+v", wait)
options, err := getWaitOptions(cluster, &wait)
if err != nil {
err = fmt.Errorf("commands: [%s] get wait options error: %s", commands, err)
waitSet.ErrChan <- err
}
err = options.RunWait()
if err != nil {
err = fmt.Errorf("commands: [%s] waits error: %s", commands, err)
waitSet.ErrChan <- err
return
}
logger.Log.Infof("wait %+v condition met", wait)
}
}