in cluster/cluster.go [368:391]
func (cluster *Cluster) CheckClusterError(remoteOutput *RemoteOutput, finalErrMsg string, messageFunc interface{}, noFatal ...bool) {
if remoteOutput.NumErrors == 0 {
return
}
for _, failedCommand := range remoteOutput.FailedCommands {
errStr := fmt.Sprintf("with error %s: %s", failedCommand.Error, failedCommand.Stderr)
switch getMessage := messageFunc.(type) {
case func(content int) string:
content := failedCommand.Content
host := cluster.GetHostForContent(content)
gplog.Verbose("%s on segment %d on host %s %s", getMessage(content), content, host, errStr)
case func(host string) string:
host := failedCommand.Host
gplog.Verbose("%s on host %s %s", getMessage(host), host, errStr)
}
gplog.Verbose("Command was: %s", failedCommand.CommandString)
}
if len(noFatal) == 1 && noFatal[0] == true {
gplog.Error(finalErrMsg)
} else {
LogFatalClusterError(finalErrMsg, remoteOutput.Scope, remoteOutput.NumErrors)
}
}