From bbedf774e0638d937710ad81dc0c8c9714c3a585 Mon Sep 17 00:00:00 2001 From: Fabian Seidl <fabian.b.seidl@stud.h-da.de> Date: Fri, 17 Jun 2022 06:32:13 +0000 Subject: [PATCH] Resolve "Some of the used errors do not provide useful information" See merge request danet/gosdn!336 --- controller/nucleus/databaseDeviceStore.go | 12 +++++------ controller/nucleus/databasePndStore.go | 16 +++++++------- controller/nucleus/databaseSbiStore.go | 16 +++++++------- controller/nucleus/deviceFilesystemStore.go | 4 ++-- controller/nucleus/errors/errors.go | 24 ++++++++++++++------- controller/nucleus/memorySbiStore.go | 2 +- controller/nucleus/pndFilesystemStore.go | 10 ++++----- controller/nucleus/pndStore.go | 4 ---- controller/nucleus/sbiFilesystemStore.go | 2 +- controller/nucleus/sbiStore.go | 4 ---- controller/rbac/databaseRoleStore.go | 12 +++++------ controller/rbac/databaseUserStore.go | 12 +++++------ controller/rbac/roleFileSystemStore.go | 16 +++++++------- controller/rbac/userFileSystemStore.go | 4 ++-- 14 files changed, 69 insertions(+), 69 deletions(-) diff --git a/controller/nucleus/databaseDeviceStore.go b/controller/nucleus/databaseDeviceStore.go index 530bbec1e..4fe9af32e 100644 --- a/controller/nucleus/databaseDeviceStore.go +++ b/controller/nucleus/databaseDeviceStore.go @@ -65,7 +65,7 @@ func (s *DatabaseDeviceStore) getByID(idOfDevice uuid.UUID) (device.LoadedDevice err := result.Decode(&loadedDevice) if err != nil { log.Printf("Failed marshalling %v", err) - return loadedDevice, errors.ErrCouldNotMarshall{StoreName: s.storeName} + return loadedDevice, errors.ErrCouldNotMarshall{Identifier: idOfDevice, Type: loadedDevice, Err: err} } return loadedDevice, nil @@ -88,7 +88,7 @@ func (s *DatabaseDeviceStore) getByName(nameOfDevice string) (device.LoadedDevic err := result.Decode(&loadedDevice) if err != nil { log.Printf("Failed marshalling %v", err) - return loadedDevice, errors.ErrCouldNotMarshall{StoreName: s.storeName} + return loadedDevice, errors.ErrCouldNotMarshall{Identifier: nameOfDevice, Type: loadedDevice, Err: err} } return loadedDevice, nil @@ -114,7 +114,7 @@ func (s *DatabaseDeviceStore) GetAll() ([]device.LoadedDevice, error) { if err != nil { log.Printf("Failed marshalling %v", err) - return nil, errors.ErrCouldNotMarshall{StoreName: pndStoreName} + return nil, errors.ErrCouldNotMarshall{Type: loadedDevices, Err: err} } return loadedDevices, nil @@ -131,7 +131,7 @@ func (s *DatabaseDeviceStore) Add(deviceToAdd device.Device) error { InsertOne(ctx, deviceToAdd) if err != nil { log.Printf("Could not create Device: %v", err) - return errors.ErrCouldNotCreate{StoreName: pndStoreName} + return errors.ErrCouldNotCreate{Identifier: deviceToAdd.ID(), Type: deviceToAdd, Err: err} } return nil @@ -162,7 +162,7 @@ func (s *DatabaseDeviceStore) Update(deviceToUpdate device.Device) error { if err != nil { log.Printf("Could not update Device: %v", err) - return errors.ErrCouldNotUpdate{StoreName: pndStoreName} + return errors.ErrCouldNotUpdate{Identifier: deviceToUpdate.ID(), Type: deviceToUpdate, Err: err} } return nil @@ -178,7 +178,7 @@ func (s *DatabaseDeviceStore) Delete(deviceToDelete device.Device) error { collection := db.Collection(s.storeName) _, err := collection.DeleteOne(ctx, bson.D{primitive.E{Key: deviceToDelete.ID().String()}}) if err != nil { - return err + return errors.ErrCouldNotDelete{Identifier: deviceToDelete.ID(), Type: deviceToDelete, Err: err} } return nil diff --git a/controller/nucleus/databasePndStore.go b/controller/nucleus/databasePndStore.go index f39ef1138..62d9b29e5 100644 --- a/controller/nucleus/databasePndStore.go +++ b/controller/nucleus/databasePndStore.go @@ -44,7 +44,7 @@ func (s *DatabasePndStore) Get(query store.Query) (networkdomain.NetworkDomain, if err != nil { log.Printf("Failed marshalling %v", err) - return nil, errors.ErrCouldNotMarshall{StoreName: pndStoreName} + return nil, errors.ErrCouldNotMarshall{Identifier: query.ID, Type: loadedPND, Err: err} } csbiClient, err := s.getCsbiClient() @@ -87,7 +87,7 @@ func (s *DatabasePndStore) GetAll() ([]networkdomain.NetworkDomain, error) { if err != nil { log.Printf("Failed marshalling %v", err) - return nil, errors.ErrCouldNotMarshall{StoreName: pndStoreName} + return nil, errors.ErrCouldNotMarshall{Type: loadedPnds, Err: err} } csbiClient, err := s.getCsbiClient() @@ -114,16 +114,16 @@ func (s *DatabasePndStore) GetAll() ([]networkdomain.NetworkDomain, error) { } // Add adds a pnd to the pnd store. -func (s *DatabasePndStore) Add(pnd networkdomain.NetworkDomain) error { +func (s *DatabasePndStore) Add(pndToAdd networkdomain.NetworkDomain) error { client, ctx, cancel := database.GetMongoConnection() defer cancel() defer client.Disconnect(ctx) _, err := client.Database(database.DatabaseName). Collection(s.pndStoreName). - InsertOne(ctx, pnd) + InsertOne(ctx, pndToAdd) if err != nil { - return errors.ErrCouldNotCreate{StoreName: pndStoreName} + return errors.ErrCouldNotCreate{Identifier: pndToAdd.ID(), Type: pndToAdd, Err: err} } return nil @@ -131,16 +131,16 @@ func (s *DatabasePndStore) Add(pnd networkdomain.NetworkDomain) error { // Delete deletes a pnd. // It also deletes all assosicated devices and sbis. -func (s *DatabasePndStore) Delete(pnd networkdomain.NetworkDomain) error { +func (s *DatabasePndStore) Delete(pndToDelete networkdomain.NetworkDomain) error { client, ctx, cancel := database.GetMongoConnection() defer cancel() defer client.Disconnect(ctx) db := client.Database(database.DatabaseName) collection := db.Collection(s.pndStoreName) - _, err := collection.DeleteOne(ctx, bson.D{primitive.E{Key: pnd.ID().String()}}) + _, err := collection.DeleteOne(ctx, bson.D{primitive.E{Key: pndToDelete.ID().String()}}) if err != nil { - return err + return errors.ErrCouldNotDelete{Identifier: pndToDelete.ID(), Type: pndToDelete, Err: err} } // TODO: Delete all assosicated devices + SBIs diff --git a/controller/nucleus/databaseSbiStore.go b/controller/nucleus/databaseSbiStore.go index 43a1bca99..b472b834e 100644 --- a/controller/nucleus/databaseSbiStore.go +++ b/controller/nucleus/databaseSbiStore.go @@ -18,36 +18,36 @@ type DatabaseSbiStore struct { } // Add adds a SBI. -func (s *DatabaseSbiStore) Add(item southbound.SouthboundInterface) error { +func (s *DatabaseSbiStore) Add(sbiToAdd southbound.SouthboundInterface) error { client, ctx, cancel := database.GetMongoConnection() defer cancel() defer client.Disconnect(ctx) _, err := client.Database(database.DatabaseName). Collection(s.sbiStoreName). - InsertOne(ctx, item) + InsertOne(ctx, sbiToAdd) if err != nil { if mongo.IsDuplicateKeyError(err) { return nil } - return errors.ErrCouldNotCreate{StoreName: sbiStoreName} + return errors.ErrCouldNotCreate{Identifier: sbiToAdd.ID(), Type: sbiToAdd, Err: err} } return nil } // Delete deletes an SBI. -func (s *DatabaseSbiStore) Delete(item southbound.SouthboundInterface) error { +func (s *DatabaseSbiStore) Delete(sbiToDelete southbound.SouthboundInterface) error { client, ctx, cancel := database.GetMongoConnection() defer cancel() defer client.Disconnect(ctx) _, err := client.Database(database.DatabaseName). Collection(s.sbiStoreName). - DeleteOne(ctx, bson.D{primitive.E{Key: "_id", Value: item.ID().String()}}) + DeleteOne(ctx, bson.D{primitive.E{Key: "_id", Value: sbiToDelete.ID().String()}}) if err != nil { - return errors.ErrCouldNotDelete{StoreName: sbiStoreName} + return errors.ErrCouldNotDelete{Identifier: sbiToDelete.ID(), Type: sbiToDelete, Err: err} } return nil @@ -75,7 +75,7 @@ func (s *DatabaseSbiStore) Get(query store.Query) (southbound.LoadedSbi, error) if err != nil { log.Printf("Failed marshalling %v", err) - return loadedSbi, errors.ErrCouldNotMarshall{StoreName: sbiStoreName} + return loadedSbi, errors.ErrCouldNotMarshall{Identifier: query.ID, Type: loadedSbi, Err: err} } return loadedSbi, nil @@ -101,7 +101,7 @@ func (s *DatabaseSbiStore) GetAll() ([]southbound.LoadedSbi, error) { if err != nil { log.Printf("Failed marshalling %v", err) - return nil, errors.ErrCouldNotMarshall{StoreName: sbiStoreName} + return nil, errors.ErrCouldNotMarshall{Type: loadedSbis, Err: err} } return loadedSbis, nil diff --git a/controller/nucleus/deviceFilesystemStore.go b/controller/nucleus/deviceFilesystemStore.go index 76f50dd2e..503cef114 100644 --- a/controller/nucleus/deviceFilesystemStore.go +++ b/controller/nucleus/deviceFilesystemStore.go @@ -142,7 +142,7 @@ func (s *FilesystemDeviceStore) Update(deviceToUpdate device.Device) error { } } - return &errors.ErrCouldNotFind{ID: deviceToUpdate.ID().String(), Name: deviceToUpdate.Name()} + return &errors.ErrCouldNotUpdate{Identifier: deviceToUpdate.ID(), Type: deviceToUpdate, Err: err} } // Delete deletes a device from the device store. @@ -170,5 +170,5 @@ func (s *FilesystemDeviceStore) Delete(deviceToDelete device.Device) error { } } - return &errors.ErrCouldNotFind{ID: deviceToDelete.ID, Name: deviceToDelete.Name()} + return &errors.ErrCouldNotDelete{Identifier: deviceToDelete.ID(), Type: deviceToDelete, Err: err} } diff --git a/controller/nucleus/errors/errors.go b/controller/nucleus/errors/errors.go index eac05eb44..db262595f 100644 --- a/controller/nucleus/errors/errors.go +++ b/controller/nucleus/errors/errors.go @@ -162,21 +162,25 @@ func (e ErrTypeNotSupported) Error() string { // ErrCouldNotMarshall implements Error interface and is called if a // database respone can not be parsed. type ErrCouldNotMarshall struct { - StoreName string + Identifier any + Type any + Err error } func (e ErrCouldNotMarshall) Error() string { - return fmt.Sprintf("could not marshall %s", e.StoreName) + return fmt.Sprintf("could not marshall Identifier: %v of Type: %T, Internal error: %v", e.Identifier, e.Type, e.Err) } // ErrCouldNotUpdate implements the Error interface and is called if a // stored item can not be updated. type ErrCouldNotUpdate struct { - StoreName string + Identifier any + Type any + Err error } func (e ErrCouldNotUpdate) Error() string { - return fmt.Sprintf("could not update %s", e.StoreName) + return fmt.Sprintf("could not update Identifier: %v of Type: %T, Internal error: %v", e.Identifier, e.Type, e.Err) } // ErrCouldNotFind implements the Error interface and is called if a @@ -193,21 +197,25 @@ func (e ErrCouldNotFind) Error() string { // ErrCouldNotCreate implements the Error interface and is called if a // stored item can not be found. type ErrCouldNotCreate struct { - StoreName string + Identifier any + Type any + Err error } func (e ErrCouldNotCreate) Error() string { - return fmt.Sprintf("could not create %s", e.StoreName) + return fmt.Sprintf("could not create Identifier: %v of Type: %T, Internal error: %v", e.Identifier, e.Type, e.Err) } // ErrCouldNotDelete implements the Error interface and is called if a // stored item can not be deleted. type ErrCouldNotDelete struct { - StoreName string + Identifier any + Type any + Err error } func (e ErrCouldNotDelete) Error() string { - return fmt.Sprintf("could not delete %s", e.StoreName) + return fmt.Sprintf("could not delete Identifier: %v of Type: %T, Internal error: %v", e.Identifier, e.Type, e.Err) } // ErrNoNewChanges implements the Error interface and is called if a the diff --git a/controller/nucleus/memorySbiStore.go b/controller/nucleus/memorySbiStore.go index d1f69e12a..82a276730 100644 --- a/controller/nucleus/memorySbiStore.go +++ b/controller/nucleus/memorySbiStore.go @@ -85,7 +85,7 @@ func (t *MemorySbiStore) Get(query store.Query) (southbound.LoadedSbi, error) { // Second search for name id, ok := t.nameLookupTable[query.Name] if !ok { - return item, errors.ErrCouldNotDelete{StoreName: sbiStoreName} + return item, errors.ErrCouldNotFind{ID: query.ID, Name: query.Name} } item, ok := t.Store[id] diff --git a/controller/nucleus/pndFilesystemStore.go b/controller/nucleus/pndFilesystemStore.go index 81d243b7b..867d65439 100644 --- a/controller/nucleus/pndFilesystemStore.go +++ b/controller/nucleus/pndFilesystemStore.go @@ -87,7 +87,7 @@ func (t *FilesystemPndStore) writeAllPndsToFile(pnds []networkdomain.NetworkDoma } // Add a pnd to the store. -func (t *FilesystemPndStore) Add(item networkdomain.NetworkDomain) error { +func (t *FilesystemPndStore) Add(pndToAdd networkdomain.NetworkDomain) error { t.fileMutex.Lock() defer t.fileMutex.Unlock() @@ -96,7 +96,7 @@ func (t *FilesystemPndStore) Add(item networkdomain.NetworkDomain) error { return err } - pnds = append(pnds, item) + pnds = append(pnds, pndToAdd) err = t.writeAllPndsToFile(pnds) if err != nil { @@ -107,7 +107,7 @@ func (t *FilesystemPndStore) Add(item networkdomain.NetworkDomain) error { } // Delete deletes a pnd from the store. -func (t *FilesystemPndStore) Delete(item networkdomain.NetworkDomain) error { +func (t *FilesystemPndStore) Delete(pndToDelete networkdomain.NetworkDomain) error { t.fileMutex.Lock() defer t.fileMutex.Unlock() @@ -117,7 +117,7 @@ func (t *FilesystemPndStore) Delete(item networkdomain.NetworkDomain) error { } for i, pnd := range pnds { - if pnd.ID() == item.ID() { + if pnd.ID() == pndToDelete.ID() { //remove item from slice pnds[i] = pnds[len(pnds)-1] pnds = pnds[:len(pnds)-1] @@ -131,7 +131,7 @@ func (t *FilesystemPndStore) Delete(item networkdomain.NetworkDomain) error { } } - return &errors.ErrCouldNotFind{ID: item.ID, Name: item.GetName()} + return &errors.ErrCouldNotDelete{Identifier: pndToDelete.ID(), Type: pndToDelete, Err: err} } // Get provides a the query interface to find a stored pnd. diff --git a/controller/nucleus/pndStore.go b/controller/nucleus/pndStore.go index 876e03742..0beb13b4c 100644 --- a/controller/nucleus/pndStore.go +++ b/controller/nucleus/pndStore.go @@ -8,10 +8,6 @@ import ( log "github.com/sirupsen/logrus" ) -const ( - pndStoreName = "pnd" -) - // LoadedPnd represents a Principal Network Domain that was loaeded by using // the Load() method of the PndStore. type LoadedPnd struct { diff --git a/controller/nucleus/sbiFilesystemStore.go b/controller/nucleus/sbiFilesystemStore.go index 9859549f6..f4558ce6f 100644 --- a/controller/nucleus/sbiFilesystemStore.go +++ b/controller/nucleus/sbiFilesystemStore.go @@ -110,7 +110,7 @@ func (s *FilesystemSbiStore) Delete(sbiToDelete southbound.SouthboundInterface) return nil } } - return &errors.ErrCouldNotFind{ID: sbiToDelete.ID, Name: sbiToDelete.Name()} + return &errors.ErrCouldNotDelete{Identifier: sbiToDelete.ID(), Type: sbiToDelete, Err: err} } // Get takes a SouthboundInterface's UUID or name and returns the SouthboundInterface. If the requested diff --git a/controller/nucleus/sbiStore.go b/controller/nucleus/sbiStore.go index fa992e4c1..803dbf043 100644 --- a/controller/nucleus/sbiStore.go +++ b/controller/nucleus/sbiStore.go @@ -9,10 +9,6 @@ import ( "github.com/google/uuid" ) -const ( - sbiStoreName = "sbi" -) - // SbiStore is used to store SouthboundInterfaces type SbiStore struct { sbiStoreName string diff --git a/controller/rbac/databaseRoleStore.go b/controller/rbac/databaseRoleStore.go index b97da6d9a..78044d11e 100644 --- a/controller/rbac/databaseRoleStore.go +++ b/controller/rbac/databaseRoleStore.go @@ -32,7 +32,7 @@ func (s *DatabaseRoleStore) Add(roleToAdd rbac.Role) error { return nil } - return errors.ErrCouldNotCreate{StoreName: s.roleStoreName} + return errors.ErrCouldNotCreate{Identifier: roleToAdd.ID(), Type: roleToAdd, Err: err} } return nil @@ -48,7 +48,7 @@ func (s *DatabaseRoleStore) Delete(roleToDelete rbac.Role) error { Collection(s.roleStoreName). DeleteOne(ctx, bson.D{primitive.E{Key: "_id", Value: roleToDelete.ID().String()}}) if err != nil { - return errors.ErrCouldNotFind{ID: roleToDelete.ID(), Name: roleToDelete.Name()} + return errors.ErrCouldNotDelete{Identifier: roleToDelete.ID(), Type: roleToDelete, Err: err} } return nil @@ -93,7 +93,7 @@ func (s *DatabaseRoleStore) getByID(idOfRole uuid.UUID) (rbac.LoadedRole, error) err := result.Decode(&loadedRole) if err != nil { log.Printf("Failed marshalling %v", err) - return loadedRole, errors.ErrCouldNotMarshall{StoreName: s.roleStoreName} + return loadedRole, errors.ErrCouldNotMarshall{Identifier: idOfRole, Type: loadedRole, Err: err} } return loadedRole, nil @@ -116,7 +116,7 @@ func (s *DatabaseRoleStore) getByName(nameOfRole string) (rbac.LoadedRole, error err := result.Decode(&loadedRole) if err != nil { log.Printf("Failed marshalling %v", err) - return loadedRole, errors.ErrCouldNotMarshall{StoreName: s.roleStoreName} + return loadedRole, errors.ErrCouldNotMarshall{Identifier: nameOfRole, Type: loadedRole, Err: err} } return loadedRole, nil @@ -142,7 +142,7 @@ func (s *DatabaseRoleStore) GetAll() ([]rbac.LoadedRole, error) { if err != nil { log.Printf("Failed marshalling %v", err) - return nil, errors.ErrCouldNotMarshall{StoreName: s.roleStoreName} + return nil, errors.ErrCouldNotMarshall{Type: loadedRoles, Err: err} } return loadedRoles, nil } @@ -172,7 +172,7 @@ func (s *DatabaseRoleStore) Update(roleToUpdate rbac.Role) error { if err != nil { log.Printf("Could not update Role: %v", err) - return errors.ErrCouldNotUpdate{StoreName: s.roleStoreName} + return errors.ErrCouldNotUpdate{Identifier: roleToUpdate.ID(), Type: roleToUpdate, Err: err} } return nil diff --git a/controller/rbac/databaseUserStore.go b/controller/rbac/databaseUserStore.go index a300c96ed..0d2cd0693 100644 --- a/controller/rbac/databaseUserStore.go +++ b/controller/rbac/databaseUserStore.go @@ -32,7 +32,7 @@ func (s *DatabaseUserStore) Add(userToAdd rbac.User) error { return nil } - return errors.ErrCouldNotCreate{StoreName: s.userStoreName} + return errors.ErrCouldNotCreate{Identifier: userToAdd.ID(), Type: userToAdd, Err: err} } return nil @@ -48,7 +48,7 @@ func (s *DatabaseUserStore) Delete(userToDelete rbac.User) error { Collection(s.userStoreName). DeleteOne(ctx, bson.D{primitive.E{Key: "_id", Value: userToDelete.ID().String()}}) if err != nil { - return errors.ErrCouldNotFind{ID: userToDelete.ID(), Name: userToDelete.Name()} + return errors.ErrCouldNotDelete{Identifier: userToDelete.ID(), Type: userToDelete, Err: err} } return nil @@ -93,7 +93,7 @@ func (s *DatabaseUserStore) getByID(idOfUser uuid.UUID) (rbac.LoadedUser, error) err := result.Decode(&loadedUser) if err != nil { log.Printf("Failed marshalling %v", err) - return loadedUser, errors.ErrCouldNotMarshall{StoreName: s.userStoreName} + return loadedUser, errors.ErrCouldNotMarshall{Identifier: idOfUser, Type: loadedUser, Err: err} } return loadedUser, nil @@ -116,7 +116,7 @@ func (s *DatabaseUserStore) getByName(nameOfUser string) (rbac.LoadedUser, error err := result.Decode(&loadedUser) if err != nil { log.Printf("Failed marshalling %v", err) - return loadedUser, errors.ErrCouldNotMarshall{StoreName: s.userStoreName} + return loadedUser, errors.ErrCouldNotMarshall{Identifier: nameOfUser, Type: loadedUser, Err: err} } return loadedUser, nil @@ -142,7 +142,7 @@ func (s *DatabaseUserStore) GetAll() ([]rbac.LoadedUser, error) { if err != nil { log.Printf("Failed marshalling %v", err) - return nil, errors.ErrCouldNotMarshall{StoreName: s.userStoreName} + return nil, errors.ErrCouldNotMarshall{Type: loadedUsers, Err: err} } return loadedUsers, nil } @@ -172,7 +172,7 @@ func (s *DatabaseUserStore) Update(userToUpdate rbac.User) error { if err != nil { log.Printf("Could not update User: %v", err) - return errors.ErrCouldNotUpdate{StoreName: s.userStoreName} + return errors.ErrCouldNotUpdate{Identifier: userToUpdate.ID(), Type: userToUpdate, Err: err} } return nil diff --git a/controller/rbac/roleFileSystemStore.go b/controller/rbac/roleFileSystemStore.go index 3c4fd0c26..bcf381396 100644 --- a/controller/rbac/roleFileSystemStore.go +++ b/controller/rbac/roleFileSystemStore.go @@ -40,8 +40,8 @@ func (s *FileSystemRoleStore) readAllRolesFromFile() ([]rbac.LoadedRole, error) return loadedRoles, nil } -func (s *FileSystemRoleStore) writeAllRolesToFile(Roles []rbac.LoadedRole) error { - serializedData, err := json.Marshal(Roles) +func (s *FileSystemRoleStore) writeAllRolesToFile(roles []rbac.LoadedRole) error { + serializedData, err := json.Marshal(roles) if err != nil { return err } @@ -55,7 +55,7 @@ func (s *FileSystemRoleStore) writeAllRolesToFile(Roles []rbac.LoadedRole) error } // Add adds a Role to the Role store -func (s *FileSystemRoleStore) Add(RoleToAdd rbac.Role) error { +func (s *FileSystemRoleStore) Add(roleToAdd rbac.Role) error { s.fileMutex.Lock() defer s.fileMutex.Unlock() @@ -65,7 +65,7 @@ func (s *FileSystemRoleStore) Add(RoleToAdd rbac.Role) error { } var loadedRole rbac.LoadedRole - loadedRole, err = store.TransformObjectToLoadedObject[rbac.Role, rbac.LoadedRole](RoleToAdd) + loadedRole, err = store.TransformObjectToLoadedObject[rbac.Role, rbac.LoadedRole](roleToAdd) if err != nil { return err } @@ -81,7 +81,7 @@ func (s *FileSystemRoleStore) Add(RoleToAdd rbac.Role) error { } //Delete deletes a Role from the Role store -func (s *FileSystemRoleStore) Delete(RoleToDelete rbac.Role) error { +func (s *FileSystemRoleStore) Delete(roleToDelete rbac.Role) error { s.fileMutex.Lock() defer s.fileMutex.Unlock() @@ -91,7 +91,7 @@ func (s *FileSystemRoleStore) Delete(RoleToDelete rbac.Role) error { } for i, role := range roles { - if role.ID == RoleToDelete.ID().String() { + if role.ID == roleToDelete.ID().String() { //remove item from slice roles[i] = roles[len(roles)-1] roles = roles[:len(roles)-1] @@ -105,7 +105,7 @@ func (s *FileSystemRoleStore) Delete(RoleToDelete rbac.Role) error { } } - return &errors.ErrCouldNotFind{ID: RoleToDelete.ID(), Name: RoleToDelete.Name()} + return &errors.ErrCouldNotDelete{Identifier: roleToDelete.ID(), Type: roleToDelete, Err: err} } //Get takes a Roles ID and return the Role if found @@ -162,5 +162,5 @@ func (s *FileSystemRoleStore) Update(roleToUpdate rbac.Role) error { } } - return &errors.ErrCouldNotFind{ID: roleToUpdate.ID(), Name: roleToUpdate.Name()} + return &errors.ErrCouldNotUpdate{Identifier: roleToUpdate.ID(), Type: roleToUpdate, Err: err} } diff --git a/controller/rbac/userFileSystemStore.go b/controller/rbac/userFileSystemStore.go index f0547a6b2..146ab0c5f 100644 --- a/controller/rbac/userFileSystemStore.go +++ b/controller/rbac/userFileSystemStore.go @@ -105,7 +105,7 @@ func (s *FileSystemUserStore) Delete(userToDelete rbac.User) error { } } - return &errors.ErrCouldNotFind{ID: userToDelete.ID(), Name: userToDelete.Name()} + return &errors.ErrCouldNotDelete{Identifier: userToDelete.ID(), Type: userToDelete, Err: err} } //Get takes a Users ID and return the User if found @@ -162,5 +162,5 @@ func (s *FileSystemUserStore) Update(userToUpdate rbac.User) error { } } - return &errors.ErrCouldNotFind{ID: userToUpdate.ID(), Name: userToUpdate.Name()} + return &errors.ErrCouldNotUpdate{Identifier: userToUpdate.ID(), Type: userToUpdate, Err: err} } -- GitLab