runtime/docker/node: logreader must not be nil

Check for nil when trying to return exec process log reader.
Fixes #377
This commit is contained in:
iwilltry42 2020-10-15 07:28:30 +02:00
parent 9ea71d8c88
commit dcef0b1946
No known key found for this signature in database
GPG Key ID: 7BA57AD1CFF16110
2 changed files with 11 additions and 1 deletions

View File

@ -78,6 +78,13 @@ func resolveHostnameFromInside(ctx context.Context, rtime rt.Runtime, node *k3d.
logreader, execErr := rtime.ExecInNodeGetLogs(ctx, node, []string{"sh", "-c", fmt.Sprintf("nslookup %s", hostname)}) logreader, execErr := rtime.ExecInNodeGetLogs(ctx, node, []string{"sh", "-c", fmt.Sprintf("nslookup %s", hostname)})
if logreader == nil {
if execErr != nil {
return nil, execErr
}
return nil, fmt.Errorf("Failed to get logs from exec process")
}
submatches := map[string]string{} submatches := map[string]string{}
scanner := bufio.NewScanner(logreader) scanner := bufio.NewScanner(logreader)
if scanner == nil { if scanner == nil {

View File

@ -308,8 +308,11 @@ func (d Docker) GetNodeLogs(ctx context.Context, node *k3d.Node, since time.Time
func (d Docker) ExecInNodeGetLogs(ctx context.Context, node *k3d.Node, cmd []string) (*bufio.Reader, error) { func (d Docker) ExecInNodeGetLogs(ctx context.Context, node *k3d.Node, cmd []string) (*bufio.Reader, error) {
resp, err := executeInNode(ctx, node, cmd) resp, err := executeInNode(ctx, node, cmd)
if err != nil { if err != nil {
if resp.Reader != nil { // sometimes the exec process returns with a non-zero exit code, but we still have the logs we
return resp.Reader, err return resp.Reader, err
} }
return nil, err
}
return resp.Reader, nil return resp.Reader, nil
} }