daemon/errors.go
d4a8d09d
 package daemon
 
 import (
a793564b
 	"fmt"
d4a8d09d
 	"strings"
 
c452e1bf
 	"github.com/docker/docker/api/errors"
2655954c
 	"github.com/docker/docker/reference"
d4a8d09d
 )
 
4352da78
 func (d *Daemon) imageNotExistToErrcode(err error) error {
 	if dne, isDNE := err.(ErrImageDoesNotExist); isDNE {
 		if strings.Contains(dne.RefOrID, "@") {
a793564b
 			e := fmt.Errorf("No such image: %s", dne.RefOrID)
 			return errors.NewRequestNotFoundError(e)
d4a8d09d
 		}
2655954c
 		tag := reference.DefaultTag
4352da78
 		ref, err := reference.ParseNamed(dne.RefOrID)
 		if err != nil {
a793564b
 			e := fmt.Errorf("No such image: %s:%s", dne.RefOrID, tag)
 			return errors.NewRequestNotFoundError(e)
d4a8d09d
 		}
2655954c
 		if tagged, isTagged := ref.(reference.NamedTagged); isTagged {
4352da78
 			tag = tagged.Tag()
 		}
a793564b
 		e := fmt.Errorf("No such image: %s:%s", ref.Name(), tag)
 		return errors.NewRequestNotFoundError(e)
d4a8d09d
 	}
 	return err
 }
a793564b
 
 type errNotRunning struct {
 	containerID string
 }
 
 func (e errNotRunning) Error() string {
 	return fmt.Sprintf("Container %s is not running", e.containerID)
 }
 
 func (e errNotRunning) ContainerIsRunning() bool {
 	return false
 }
 
 func errContainerIsRestarting(containerID string) error {
 	err := fmt.Errorf("Container %s is restarting, wait until the container is running", containerID)
 	return errors.NewRequestConflictError(err)
 }
 
 func errExecNotFound(id string) error {
 	err := fmt.Errorf("No such exec instance '%s' found in daemon", id)
 	return errors.NewRequestNotFoundError(err)
 }
 
 func errExecPaused(id string) error {
 	err := fmt.Errorf("Container %s is paused, unpause the container before exec", id)
 	return errors.NewRequestConflictError(err)
 }