From 0d948715dcc46c0f1dda7f805badca23ead1c44c Mon Sep 17 00:00:00 2001 From: ko_oler <kooler89@gmail.com> Date: Thu, 28 Dec 2023 12:30:49 +0300 Subject: [PATCH] =?UTF-8?q?=D0=BF=D1=80=D0=B0=D0=B2=D0=BA=D0=B0=20=D0=BF?= =?UTF-8?q?=D0=BE=20=D0=9F=D0=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pkg/setup/setup.go | 2 +- pkg/spaces/service.go | 23 ++++++++++++++--------- pkg/spaces/service_test.go | 4 ++-- 3 files changed, 17 insertions(+), 12 deletions(-) diff --git a/pkg/setup/setup.go b/pkg/setup/setup.go index 76eec973..5b238806 100644 --- a/pkg/setup/setup.go +++ b/pkg/setup/setup.go @@ -180,7 +180,7 @@ func (s *Setup) Install(ctx context.Context) error { // Check выполняет проверку требований func (s *Setup) Check(ctx context.Context) error { if s.waitSpaceAvailable { - if err := spaces.WaitReadAvailable(ctx, s.content.Spaces, s.SpaceID, s.logger); err != nil { + if err := spaces.WaitSpaceReadAvailable(ctx, s.content.Spaces, s.SpaceID, s.logger); err != nil { return err } } diff --git a/pkg/spaces/service.go b/pkg/spaces/service.go index 421e7d8b..7648ce76 100644 --- a/pkg/spaces/service.go +++ b/pkg/spaces/service.go @@ -54,6 +54,11 @@ type Spaces interface { Move(ctx context.Context, spaceID, orgID string) (err error) } +const ( + delay = 500 * time.Millisecond + attempts = 1800 +) + var ( ErrSpaceNotAvailable = errors.New("space not available") ) @@ -69,7 +74,7 @@ func IsSpaceAvailable(ctx context.Context, svc Spaces, spaceID string) error { return ErrSpaceNotAvailable } -func IsReadAvailable(ctx context.Context, svc Spaces, spaceID string) error { +func IsSpaceReadAvailable(ctx context.Context, svc Spaces, spaceID string) error { sp, err := svc.Get(ctx, spaceID) if err != nil { return errors.Wrap(err, "fail to get space") @@ -87,25 +92,25 @@ func WaitSpaceAvailable(ctx context.Context, svc Spaces, spaceID string, logger }, retry.RetryIf(func(err error) bool { return errors.Is(err, ErrSpaceNotAvailable) }), retry.OnRetry(func(n uint, err error) { - logger.Warn("Space not available", zap.String("spaceID", spaceID), zap.Uint("Retry", n), zap.Error(err)) + logger.Info("Waiting for space to be available", zap.String("spaceID", spaceID), zap.Uint("Retry", n), zap.Error(err)) }), - retry.Delay(500*time.Millisecond), - retry.Attempts(1800), + retry.Delay(delay), + retry.Attempts(attempts), retry.Context(ctx), ) } -func WaitReadAvailable(ctx context.Context, svc Spaces, spaceID string, logger *zap.Logger) error { +func WaitSpaceReadAvailable(ctx context.Context, svc Spaces, spaceID string, logger *zap.Logger) error { return retry.Do( func() error { - return IsReadAvailable(ctx, svc, spaceID) + return IsSpaceReadAvailable(ctx, svc, spaceID) }, retry.RetryIf(func(err error) bool { return errors.Is(err, ErrSpaceNotAvailable) }), retry.OnRetry(func(n uint, err error) { - logger.Warn("Space is migrating", zap.String("spaceID", spaceID), zap.Uint("Retry", n), zap.Error(err)) + logger.Info("Waiting for space to be available for read", zap.String("spaceID", spaceID), zap.Uint("Retry", n), zap.Error(err)) }), - retry.Delay(500*time.Millisecond), - retry.Attempts(1800), + retry.Delay(delay), + retry.Attempts(attempts), retry.Context(ctx), ) } diff --git a/pkg/spaces/service_test.go b/pkg/spaces/service_test.go index 2dc84a88..8eb8d9cb 100644 --- a/pkg/spaces/service_test.go +++ b/pkg/spaces/service_test.go @@ -81,8 +81,8 @@ func TestIsReadAvailable(t *testing.T) { for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { spaces := &dummySpaces{space: tt.space} - if err := IsReadAvailable(context.Background(), spaces, "space"); (err != nil) != tt.wantErr { - t.Errorf("IsReadAvailable() error = %v, wantErr %v", err, tt.wantErr) + if err := IsSpaceReadAvailable(context.Background(), spaces, "space"); (err != nil) != tt.wantErr { + t.Errorf("IsSpaceReadAvailable() error = %v, wantErr %v", err, tt.wantErr) } }) } -- GitLab