Skip to content
Snippets Groups Projects
Commit 4659f3c9 authored by Fabian Seidl's avatar Fabian Seidl
Browse files

updated ErrCouldNotMarshall to use underlying error and provide more information

parent a305223d
No related branches found
No related tags found
No related merge requests found
Pipeline #104982 passed
...@@ -2,6 +2,7 @@ package nucleus ...@@ -2,6 +2,7 @@ package nucleus
import ( import (
"fmt" "fmt"
"reflect"
"code.fbi.h-da.de/danet/gosdn/controller/interfaces/device" "code.fbi.h-da.de/danet/gosdn/controller/interfaces/device"
"code.fbi.h-da.de/danet/gosdn/controller/nucleus/database" "code.fbi.h-da.de/danet/gosdn/controller/nucleus/database"
...@@ -65,7 +66,7 @@ func (s *DatabaseDeviceStore) getByID(idOfDevice uuid.UUID) (device.LoadedDevice ...@@ -65,7 +66,7 @@ func (s *DatabaseDeviceStore) getByID(idOfDevice uuid.UUID) (device.LoadedDevice
err := result.Decode(&loadedDevice) err := result.Decode(&loadedDevice)
if err != nil { if err != nil {
log.Printf("Failed marshalling %v", err) log.Printf("Failed marshalling %v", err)
return loadedDevice, errors.ErrCouldNotMarshall{StoreName: s.storeName} return loadedDevice, errors.ErrCouldNotMarshall{Object: idOfDevice, Type: reflect.TypeOf(loadedDevice), Err: err}
} }
return loadedDevice, nil return loadedDevice, nil
...@@ -88,7 +89,7 @@ func (s *DatabaseDeviceStore) getByName(nameOfDevice string) (device.LoadedDevic ...@@ -88,7 +89,7 @@ func (s *DatabaseDeviceStore) getByName(nameOfDevice string) (device.LoadedDevic
err := result.Decode(&loadedDevice) err := result.Decode(&loadedDevice)
if err != nil { if err != nil {
log.Printf("Failed marshalling %v", err) log.Printf("Failed marshalling %v", err)
return loadedDevice, errors.ErrCouldNotMarshall{StoreName: s.storeName} return loadedDevice, errors.ErrCouldNotMarshall{Object: nameOfDevice, Type: reflect.TypeOf(loadedDevice), Err: err}
} }
return loadedDevice, nil return loadedDevice, nil
...@@ -114,7 +115,7 @@ func (s *DatabaseDeviceStore) GetAll() ([]device.LoadedDevice, error) { ...@@ -114,7 +115,7 @@ func (s *DatabaseDeviceStore) GetAll() ([]device.LoadedDevice, error) {
if err != nil { if err != nil {
log.Printf("Failed marshalling %v", err) log.Printf("Failed marshalling %v", err)
return nil, errors.ErrCouldNotMarshall{StoreName: pndStoreName} return nil, errors.ErrCouldNotMarshall{Type: reflect.TypeOf(loadedDevices), Err: err}
} }
return loadedDevices, nil return loadedDevices, nil
......
package nucleus package nucleus
import ( import (
"reflect"
"code.fbi.h-da.de/danet/gosdn/controller/interfaces/device" "code.fbi.h-da.de/danet/gosdn/controller/interfaces/device"
"code.fbi.h-da.de/danet/gosdn/controller/interfaces/networkdomain" "code.fbi.h-da.de/danet/gosdn/controller/interfaces/networkdomain"
...@@ -44,7 +46,7 @@ func (s *DatabasePndStore) Get(query store.Query) (networkdomain.NetworkDomain, ...@@ -44,7 +46,7 @@ func (s *DatabasePndStore) Get(query store.Query) (networkdomain.NetworkDomain,
if err != nil { if err != nil {
log.Printf("Failed marshalling %v", err) log.Printf("Failed marshalling %v", err)
return nil, errors.ErrCouldNotMarshall{StoreName: pndStoreName} return nil, errors.ErrCouldNotMarshall{Object: query.ID, Type: reflect.TypeOf(loadedPND), Err: err}
} }
csbiClient, err := s.getCsbiClient() csbiClient, err := s.getCsbiClient()
...@@ -87,7 +89,7 @@ func (s *DatabasePndStore) GetAll() ([]networkdomain.NetworkDomain, error) { ...@@ -87,7 +89,7 @@ func (s *DatabasePndStore) GetAll() ([]networkdomain.NetworkDomain, error) {
if err != nil { if err != nil {
log.Printf("Failed marshalling %v", err) log.Printf("Failed marshalling %v", err)
return nil, errors.ErrCouldNotMarshall{StoreName: pndStoreName} return nil, errors.ErrCouldNotMarshall{Type: reflect.TypeOf(loadedPnds), Err: err}
} }
csbiClient, err := s.getCsbiClient() csbiClient, err := s.getCsbiClient()
......
package nucleus package nucleus
import ( import (
"reflect"
"code.fbi.h-da.de/danet/gosdn/controller/interfaces/southbound" "code.fbi.h-da.de/danet/gosdn/controller/interfaces/southbound"
"code.fbi.h-da.de/danet/gosdn/controller/nucleus/database" "code.fbi.h-da.de/danet/gosdn/controller/nucleus/database"
"code.fbi.h-da.de/danet/gosdn/controller/nucleus/errors" "code.fbi.h-da.de/danet/gosdn/controller/nucleus/errors"
...@@ -75,7 +77,7 @@ func (s *DatabaseSbiStore) Get(query store.Query) (southbound.LoadedSbi, error) ...@@ -75,7 +77,7 @@ func (s *DatabaseSbiStore) Get(query store.Query) (southbound.LoadedSbi, error)
if err != nil { if err != nil {
log.Printf("Failed marshalling %v", err) log.Printf("Failed marshalling %v", err)
return loadedSbi, errors.ErrCouldNotMarshall{StoreName: sbiStoreName} return loadedSbi, errors.ErrCouldNotMarshall{Object: query.ID, Type: reflect.TypeOf(loadedSbi), Err: err}
} }
return loadedSbi, nil return loadedSbi, nil
...@@ -101,7 +103,7 @@ func (s *DatabaseSbiStore) GetAll() ([]southbound.LoadedSbi, error) { ...@@ -101,7 +103,7 @@ func (s *DatabaseSbiStore) GetAll() ([]southbound.LoadedSbi, error) {
if err != nil { if err != nil {
log.Printf("Failed marshalling %v", err) log.Printf("Failed marshalling %v", err)
return nil, errors.ErrCouldNotMarshall{StoreName: sbiStoreName} return nil, errors.ErrCouldNotMarshall{Type: reflect.TypeOf(loadedSbis), Err: err}
} }
return loadedSbis, nil return loadedSbis, nil
......
...@@ -162,11 +162,13 @@ func (e ErrTypeNotSupported) Error() string { ...@@ -162,11 +162,13 @@ func (e ErrTypeNotSupported) Error() string {
// ErrCouldNotMarshall implements Error interface and is called if a // ErrCouldNotMarshall implements Error interface and is called if a
// database respone can not be parsed. // database respone can not be parsed.
type ErrCouldNotMarshall struct { type ErrCouldNotMarshall struct {
StoreName string Object any
Type any
Err error
} }
func (e ErrCouldNotMarshall) Error() string { func (e ErrCouldNotMarshall) Error() string {
return fmt.Sprintf("could not marshall %s", e.StoreName) return fmt.Sprintf("could not marshall Object: %v of Type: %v, Internal error: %v", e.Object, e.Type, e.Err)
} }
// ErrCouldNotUpdate implements the Error interface and is called if a // ErrCouldNotUpdate implements the Error interface and is called if a
......
package rbac package rbac
import ( import (
"reflect"
"code.fbi.h-da.de/danet/gosdn/controller/interfaces/rbac" "code.fbi.h-da.de/danet/gosdn/controller/interfaces/rbac"
"code.fbi.h-da.de/danet/gosdn/controller/nucleus/database" "code.fbi.h-da.de/danet/gosdn/controller/nucleus/database"
"code.fbi.h-da.de/danet/gosdn/controller/nucleus/errors" "code.fbi.h-da.de/danet/gosdn/controller/nucleus/errors"
...@@ -93,7 +95,7 @@ func (s *DatabaseRoleStore) getByID(idOfRole uuid.UUID) (rbac.LoadedRole, error) ...@@ -93,7 +95,7 @@ func (s *DatabaseRoleStore) getByID(idOfRole uuid.UUID) (rbac.LoadedRole, error)
err := result.Decode(&loadedRole) err := result.Decode(&loadedRole)
if err != nil { if err != nil {
log.Printf("Failed marshalling %v", err) log.Printf("Failed marshalling %v", err)
return loadedRole, errors.ErrCouldNotMarshall{StoreName: s.roleStoreName} return loadedRole, errors.ErrCouldNotMarshall{Object: idOfRole, Type: reflect.TypeOf(loadedRole), Err: err}
} }
return loadedRole, nil return loadedRole, nil
...@@ -116,7 +118,7 @@ func (s *DatabaseRoleStore) getByName(nameOfRole string) (rbac.LoadedRole, error ...@@ -116,7 +118,7 @@ func (s *DatabaseRoleStore) getByName(nameOfRole string) (rbac.LoadedRole, error
err := result.Decode(&loadedRole) err := result.Decode(&loadedRole)
if err != nil { if err != nil {
log.Printf("Failed marshalling %v", err) log.Printf("Failed marshalling %v", err)
return loadedRole, errors.ErrCouldNotMarshall{StoreName: s.roleStoreName} return loadedRole, errors.ErrCouldNotMarshall{Object: nameOfRole, Type: reflect.TypeOf(loadedRole), Err: err}
} }
return loadedRole, nil return loadedRole, nil
...@@ -142,7 +144,7 @@ func (s *DatabaseRoleStore) GetAll() ([]rbac.LoadedRole, error) { ...@@ -142,7 +144,7 @@ func (s *DatabaseRoleStore) GetAll() ([]rbac.LoadedRole, error) {
if err != nil { if err != nil {
log.Printf("Failed marshalling %v", err) log.Printf("Failed marshalling %v", err)
return nil, errors.ErrCouldNotMarshall{StoreName: s.roleStoreName} return nil, errors.ErrCouldNotMarshall{Type: reflect.TypeOf(loadedRoles), Err: err}
} }
return loadedRoles, nil return loadedRoles, nil
} }
......
package rbac package rbac
import ( import (
"reflect"
"code.fbi.h-da.de/danet/gosdn/controller/interfaces/rbac" "code.fbi.h-da.de/danet/gosdn/controller/interfaces/rbac"
"code.fbi.h-da.de/danet/gosdn/controller/nucleus/database" "code.fbi.h-da.de/danet/gosdn/controller/nucleus/database"
"code.fbi.h-da.de/danet/gosdn/controller/nucleus/errors" "code.fbi.h-da.de/danet/gosdn/controller/nucleus/errors"
...@@ -93,7 +95,7 @@ func (s *DatabaseUserStore) getByID(idOfUser uuid.UUID) (rbac.LoadedUser, error) ...@@ -93,7 +95,7 @@ func (s *DatabaseUserStore) getByID(idOfUser uuid.UUID) (rbac.LoadedUser, error)
err := result.Decode(&loadedUser) err := result.Decode(&loadedUser)
if err != nil { if err != nil {
log.Printf("Failed marshalling %v", err) log.Printf("Failed marshalling %v", err)
return loadedUser, errors.ErrCouldNotMarshall{StoreName: s.userStoreName} return loadedUser, errors.ErrCouldNotMarshall{Object: idOfUser, Type: reflect.TypeOf(loadedUser), Err: err}
} }
return loadedUser, nil return loadedUser, nil
...@@ -116,7 +118,7 @@ func (s *DatabaseUserStore) getByName(nameOfUser string) (rbac.LoadedUser, error ...@@ -116,7 +118,7 @@ func (s *DatabaseUserStore) getByName(nameOfUser string) (rbac.LoadedUser, error
err := result.Decode(&loadedUser) err := result.Decode(&loadedUser)
if err != nil { if err != nil {
log.Printf("Failed marshalling %v", err) log.Printf("Failed marshalling %v", err)
return loadedUser, errors.ErrCouldNotMarshall{StoreName: s.userStoreName} return loadedUser, errors.ErrCouldNotMarshall{Object: nameOfUser, Type: reflect.TypeOf(loadedUser), Err: err}
} }
return loadedUser, nil return loadedUser, nil
...@@ -142,7 +144,7 @@ func (s *DatabaseUserStore) GetAll() ([]rbac.LoadedUser, error) { ...@@ -142,7 +144,7 @@ func (s *DatabaseUserStore) GetAll() ([]rbac.LoadedUser, error) {
if err != nil { if err != nil {
log.Printf("Failed marshalling %v", err) log.Printf("Failed marshalling %v", err)
return nil, errors.ErrCouldNotMarshall{StoreName: s.userStoreName} return nil, errors.ErrCouldNotMarshall{Type: reflect.TypeOf(loadedUsers), Err: err}
} }
return loadedUsers, nil return loadedUsers, nil
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment