summaryrefslogtreecommitdiff
path: root/pkg/adapter/errors.go
diff options
context:
space:
mode:
authorbaude <bbaude@redhat.com>2019-04-19 08:33:18 -0500
committerbaude <bbaude@redhat.com>2019-05-07 14:06:02 -0500
commitbc7b1ca03da88473c10e59197becd812cf341663 (patch)
tree13d33a731ca50cd58b71ff7592770ae2afb9807d /pkg/adapter/errors.go
parent7b67c9601e1eab6c881ac44503c285c71b0a4a3a (diff)
downloadpodman-bc7b1ca03da88473c10e59197becd812cf341663.tar.gz
podman-bc7b1ca03da88473c10e59197becd812cf341663.tar.bz2
podman-bc7b1ca03da88473c10e59197becd812cf341663.zip
enable integration tests for remote-client
first pass at enabling a swath of integration tests for the remote-client. Signed-off-by: baude <bbaude@redhat.com>
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
+}