|
@@ -1,18 +1,34 @@
|
|
package client
|
|
package client
|
|
|
|
|
|
import (
|
|
import (
|
|
- "errors"
|
|
|
|
"fmt"
|
|
"fmt"
|
|
|
|
|
|
"github.com/docker/docker/api/types/versions"
|
|
"github.com/docker/docker/api/types/versions"
|
|
|
|
+ "github.com/pkg/errors"
|
|
)
|
|
)
|
|
|
|
|
|
-// ErrConnectionFailed is an error raised when the connection between the client and the server failed.
|
|
|
|
-var ErrConnectionFailed = errors.New("Cannot connect to the Docker daemon. Is the docker daemon running on this host?")
|
|
|
|
|
|
+// errConnectionFailed implements an error returned when connection failed.
|
|
|
|
+type errConnectionFailed struct {
|
|
|
|
+ host string
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+// Error returns a string representation of an errConnectionFailed
|
|
|
|
+func (err errConnectionFailed) Error() string {
|
|
|
|
+ if err.host == "" {
|
|
|
|
+ return "Cannot connect to the Docker daemon. Is the docker daemon running on this host?"
|
|
|
|
+ }
|
|
|
|
+ return fmt.Sprintf("Cannot connect to the Docker daemon at %s. Is the docker daemon running?", err.host)
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+// IsErrConnectionFailed returns true if the error is caused by connection failed.
|
|
|
|
+func IsErrConnectionFailed(err error) bool {
|
|
|
|
+ _, ok := errors.Cause(err).(errConnectionFailed)
|
|
|
|
+ return ok
|
|
|
|
+}
|
|
|
|
|
|
// ErrorConnectionFailed returns an error with host in the error message when connection to docker daemon failed.
|
|
// ErrorConnectionFailed returns an error with host in the error message when connection to docker daemon failed.
|
|
func ErrorConnectionFailed(host string) error {
|
|
func ErrorConnectionFailed(host string) error {
|
|
- return fmt.Errorf("Cannot connect to the Docker daemon at %s. Is the docker daemon running?", host)
|
|
|
|
|
|
+ return errConnectionFailed{host: host}
|
|
}
|
|
}
|
|
|
|
|
|
type notFound interface {
|
|
type notFound interface {
|