From e8089ce6cdeae9d0a881e2b69c585ee5dc6b6713 Mon Sep 17 00:00:00 2001 From: shibukazu Date: Sat, 24 Aug 2024 03:51:26 +0900 Subject: [PATCH] fix --- go/pkg/server/gateway.go | 8 +++----- go/pkg/slave/manager.go | 3 ++- go/pkg/store/memory.go | 7 ++++++- go/pkg/store/redis.go | 6 +++++- 4 files changed, 16 insertions(+), 8 deletions(-) diff --git a/go/pkg/server/gateway.go b/go/pkg/server/gateway.go index 47f86f8..e97c1a4 100644 --- a/go/pkg/server/gateway.go +++ b/go/pkg/server/gateway.go @@ -191,13 +191,11 @@ func (g *Gateway) forwardCheckRequestMiddleware(next http.Handler) http.Handler } // Check if the request forward is needed - isForwardNeed := false - if !dslFound { - isForwardNeed = true - } else { + isForwardNeed := true + if dslFound { for _, validation := range dsl.Validations { if validation.ID == id { - isForwardNeed = true + isForwardNeed = false break } } diff --git a/go/pkg/slave/manager.go b/go/pkg/slave/manager.go index 42b7c89..1dc10b6 100644 --- a/go/pkg/slave/manager.go +++ b/go/pkg/slave/manager.go @@ -1,6 +1,7 @@ package slave import ( + "fmt" "log/slog" "sync" @@ -40,5 +41,5 @@ func (m *SlaveManager) FindSlave(validationId string) (*Slave, error) { } } } - return nil, failure.New("slave node that can handle the validation ID is not found") + return nil, failure.New(fmt.Sprintf("slave node that can handle the validation ID (%s) is not found", validationId)) } diff --git a/go/pkg/store/memory.go b/go/pkg/store/memory.go index 8f85f33..ccb5afc 100644 --- a/go/pkg/store/memory.go +++ b/go/pkg/store/memory.go @@ -3,6 +3,7 @@ package store import ( "bytes" "encoding/json" + "strings" "sync" "github.com/morikuni/failure/v2" @@ -23,7 +24,11 @@ func NewMemoryStore(id string) *MemoryStore { func (s *MemoryStore) Reset() error { s.mu.Lock() - s.memory = make(map[string][]byte) + for k := range s.memory { + if strings.HasPrefix(k, s.id+":") { + delete(s.memory, k) + } + } s.mu.Unlock() return nil } diff --git a/go/pkg/store/redis.go b/go/pkg/store/redis.go index 96dd0d9..f91e184 100644 --- a/go/pkg/store/redis.go +++ b/go/pkg/store/redis.go @@ -20,7 +20,11 @@ func NewRedisStore(id string, redisClient *redis.Client) *RedisStore { } func (s *RedisStore) Reset() error { - if err := s.redisClient.FlushDB().Err(); err != nil { + keys, _ := s.redisClient.Scan(0, s.id+":*", 0).Val() + if len(keys) == 0 { + return nil + } + if err := s.redisClient.Del(keys...).Err(); err != nil { return failure.Translate(err, appError.ErrRedisOperationFailed) } return nil