diff --git a/pkg/setup/setup.go b/pkg/setup/setup.go index 76eec9737154d10078c75e120db84de947568a04..5b238806369d3dedd9e52a7bdbe0901d0237565b 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 421e7d8b70800b3bf64714afab2aa8ebae2113aa..7648ce7618e17690c103bdc2b57d627c62a309ca 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 2dc84a88843bc0bef55fb1a567fb82c4442bc71b..8eb8d9cbb04b5a7d2fb71a82af0897ac0bb21c29 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) } }) }