getLogs: return error if container is not in running state to avoid long unnecessary wait
This commit is contained in:
parent
b32e116a67
commit
3b77ecd6dd
@ -175,14 +175,16 @@ func CreateCluster(ctx context.Context, cluster *k3d.Cluster, runtime k3drt.Runt
|
||||
}
|
||||
log.Debugln("Waiting for initializing master node...")
|
||||
logreader, err := runtime.GetNodeLogs(cluster.InitNode)
|
||||
defer logreader.Close()
|
||||
if err != nil {
|
||||
logreader.Close()
|
||||
if logreader != nil {
|
||||
logreader.Close()
|
||||
}
|
||||
log.Errorln(err)
|
||||
log.Errorln("Failed to get logs from the initializig master node.. waiting for 3 seconds instead")
|
||||
time.Sleep(3 * time.Second)
|
||||
break
|
||||
}
|
||||
defer logreader.Close()
|
||||
buf := new(bytes.Buffer)
|
||||
nRead, _ := buf.ReadFrom(logreader)
|
||||
logreader.Close()
|
||||
|
@ -206,7 +206,16 @@ func (d Docker) GetNodeLogs(node *k3d.Node) (io.ReadCloser, error) {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
// FIXME: return error if container is down
|
||||
containerInspectResponse, err := docker.ContainerInspect(ctx, container.ID)
|
||||
if err != nil {
|
||||
log.Errorln("Failed to inspect container '%s'", container.ID)
|
||||
return nil, err
|
||||
}
|
||||
|
||||
if !containerInspectResponse.ContainerJSONBase.State.Running {
|
||||
return nil, fmt.Errorf("Node '%s' (container '%s') not running", node.Name, containerInspectResponse.ID)
|
||||
}
|
||||
|
||||
logreader, err := docker.ContainerLogs(ctx, container.ID, types.ContainerLogsOptions{ShowStdout: true, ShowStderr: true})
|
||||
if err != nil {
|
||||
log.Errorf("Failed to get logs from node '%s' (container '%s')", node.Name, container.ID)
|
||||
|
Loading…
Reference in New Issue
Block a user