mirror of
https://github.com/minio/minio.git
synced 2024-12-26 07:05:55 -05:00
Adding iodine error conversion
This commit is contained in:
parent
e2c54a0904
commit
c12d5ea8a9
@ -19,6 +19,7 @@ package iodine
|
|||||||
import (
|
import (
|
||||||
"bytes"
|
"bytes"
|
||||||
"encoding/json"
|
"encoding/json"
|
||||||
|
"errors"
|
||||||
"fmt"
|
"fmt"
|
||||||
"os"
|
"os"
|
||||||
"path"
|
"path"
|
||||||
@ -93,6 +94,27 @@ func GetGlobalStateKey(k string) string {
|
|||||||
return result
|
return result
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func ToError(err error) error {
|
||||||
|
switch err := err.(type) {
|
||||||
|
case nil:
|
||||||
|
{
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
case Error:
|
||||||
|
{
|
||||||
|
if err.EmbeddedError != nil {
|
||||||
|
return err.EmbeddedError
|
||||||
|
} else {
|
||||||
|
return errors.New(err.ErrorMessage)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
default:
|
||||||
|
{
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// New - instantiate an error, turning it into an iodine error.
|
// New - instantiate an error, turning it into an iodine error.
|
||||||
// Adds an initial stack trace.
|
// Adds an initial stack trace.
|
||||||
func New(err error, data map[string]string) error {
|
func New(err error, data map[string]string) error {
|
||||||
|
@ -22,6 +22,7 @@ import (
|
|||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
"encoding/json"
|
"encoding/json"
|
||||||
|
"os"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestIodine(t *testing.T) {
|
func TestIodine(t *testing.T) {
|
||||||
@ -101,3 +102,15 @@ func TestState(t *testing.T) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestToError(t *testing.T) {
|
||||||
|
_, err := os.Stat("hello")
|
||||||
|
ierr := New(err, nil)
|
||||||
|
if ToError(ierr) != err {
|
||||||
|
t.Error("Error is not the same")
|
||||||
|
}
|
||||||
|
ierr = New(ierr, nil)
|
||||||
|
if ToError(ierr) != err {
|
||||||
|
t.Error("Stacked Error is not the same")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user