package run
import (
"bytes"
"fmt"
docker "github.com/fsouza/go-dockerclient"
"github.com/openshift/origin/pkg/bootstrap/docker/errors"
)
type runError struct {
error
out, err []byte
config *docker.Config
}
func newRunError(rc int, cause error, stdOut, errOut []byte, config *docker.Config) error {
return &runError{
error: errors.NewError("Docker run error rc=%d", rc).WithCause(cause),
out: stdOut,
err: errOut,
config: config,
}
}
func (e *runError) Details() string {
out := &bytes.Buffer{}
fmt.Fprintf(out, "Image: %s\n", e.config.Image)
fmt.Fprintf(out, "Entrypoint: %v\n", e.config.Entrypoint)
fmt.Fprintf(out, "Command: %v\n", e.config.Cmd)
if len(e.out) > 0 {
errors.PrintLog(out, "Output", e.out)
}
if len(e.err) > 0 {
errors.PrintLog(out, "Error Output", e.err)
}
return out.String()
}