summaryrefslogtreecommitdiff
path: root/pkg/adapter/errors.go
diff options
context:
space:
mode:
authorOpenShift Merge Robot <openshift-merge-robot@users.noreply.github.com>2019-05-07 22:21:36 +0200
committerGitHub <noreply@github.com>2019-05-07 22:21:36 +0200
commit74dc9a45e3f85b4fc55a2d1cb2786885eb4489f5 (patch)
treef27f5b26b4076fe8dd2dad3afde8407640c77807 /pkg/adapter/errors.go
parent2e40bdebfd245ff04e86b1ea42f663087d97fccf (diff)
parentbc7b1ca03da88473c10e59197becd812cf341663 (diff)
downloadpodman-74dc9a45e3f85b4fc55a2d1cb2786885eb4489f5.tar.gz
podman-74dc9a45e3f85b4fc55a2d1cb2786885eb4489f5.tar.bz2
podman-74dc9a45e3f85b4fc55a2d1cb2786885eb4489f5.zip
Merge pull request #2977 from baude/makeitrain
enable integration tests for remote-client
Diffstat (limited to 'pkg/adapter/errors.go')
-rw-r--r--pkg/adapter/errors.go31
1 files changed, 31 insertions, 0 deletions
diff --git a/pkg/adapter/errors.go b/pkg/adapter/errors.go
new file mode 100644
index 000000000..7fbbabd93
--- /dev/null
+++ b/pkg/adapter/errors.go
@@ -0,0 +1,31 @@
+// +build remoteclient
+
+package adapter
+
+import (
+ iopodman "github.com/containers/libpod/cmd/podman/varlink"
+ "github.com/containers/libpod/libpod"
+ "github.com/pkg/errors"
+)
+
+// TranslateMapErrors translates the errors a typical podman output struct
+// from varlink errors to libpod errors
+func TranslateMapErrors(failures map[string]error) map[string]error {
+ for k, v := range failures {
+ failures[k] = TranslateError(v)
+ }
+ return failures
+}
+
+// TranslateError converts a single varlink error to a libpod error
+func TranslateError(err error) error {
+ switch err.(type) {
+ case *iopodman.ContainerNotFound:
+ return errors.Wrap(libpod.ErrNoSuchCtr, err.Error())
+ case *iopodman.ErrCtrStopped:
+ return errors.Wrap(libpod.ErrCtrStopped, err.Error())
+ case *iopodman.InvalidState:
+ return errors.Wrap(libpod.ErrCtrStateInvalid, err.Error())
+ }
+ return err
+}