From c8e473a789aee912d57c0d42b32fbbbfb3b4228a Mon Sep 17 00:00:00 2001 From: Harrison Healey Date: Thu, 30 Aug 2018 10:28:58 -0400 Subject: Invalidate store cache after making changes (#9211) * Invalidate store cache after making changes * Address feedback * Make cache invalidation in stores always use defer --- store/redis_supplier_roles.go | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) (limited to 'store/redis_supplier_roles.go') diff --git a/store/redis_supplier_roles.go b/store/redis_supplier_roles.go index 49f8ede48..a445c38a9 100644 --- a/store/redis_supplier_roles.go +++ b/store/redis_supplier_roles.go @@ -14,9 +14,11 @@ import ( func (s *RedisSupplier) RoleSave(ctx context.Context, role *model.Role, hints ...LayeredStoreHint) *LayeredStoreSupplierResult { key := buildRedisKeyForRoleName(role.Name) - if err := s.client.Del(key).Err(); err != nil { - mlog.Error("Redis failed to remove key " + key + " Error: " + err.Error()) - } + defer func() { + if err := s.client.Del(key).Err(); err != nil { + mlog.Error("Redis failed to remove key " + key + " Error: " + err.Error()) + } + }() return s.Next().RoleSave(ctx, role, hints...) } @@ -87,15 +89,17 @@ func (s *RedisSupplier) RoleDelete(ctx context.Context, roleId string, hints ... result := s.Next().RoleGet(ctx, roleId, hints...) if result.Err == nil { - role := result.Data.(*model.Role) - key := buildRedisKeyForRoleName(role.Name) + defer func() { + role := result.Data.(*model.Role) + key := buildRedisKeyForRoleName(role.Name) - if err := s.client.Del(key).Err(); err != nil { - mlog.Error("Redis failed to remove key " + key + " Error: " + err.Error()) - } + if err := s.client.Del(key).Err(); err != nil { + mlog.Error("Redis failed to remove key " + key + " Error: " + err.Error()) + } + }() } - return result + return s.Next().RoleDelete(ctx, roleId, hints...) } func (s *RedisSupplier) RolePermanentDeleteAll(ctx context.Context, hints ...LayeredStoreHint) *LayeredStoreSupplierResult { -- cgit v1.2.3-1-g7c22