Skip to content
Snippets Groups Projects
Commit 17275cca authored by ko_oler's avatar ko_oler
Browse files

правка по ПР

parent 0f660ad8
No related branches found
No related tags found
No related merge requests found
......@@ -53,6 +53,7 @@ func NewSetup(content *content.Content, spaceID, environmentID string, logger *z
EnvironmentID: environmentID,
content: content,
logger: logger,
waitSpaceAvailable: true,
}
}
......@@ -76,9 +77,9 @@ func (s *Setup) IsRemove() bool {
return s.remove
}
func (s *Setup) WithWaitSpaceAvailable() *Setup {
func (s *Setup) WithoutWaitSpace() *Setup {
setup := *s
setup.waitSpaceAvailable = true
setup.waitSpaceAvailable = false
return &setup
}
......@@ -158,7 +159,7 @@ func (s *Setup) AddItem(item *items.Item, opt ...ItemsOption) *Setup {
// Install выполняет установку необходимых требований
func (s *Setup) Install(ctx context.Context) error {
if s.waitSpaceAvailable {
if err := spaces.WaitSpaceAvailable(ctx, s.content.Spaces, s.SpaceID, s.logger); err != nil {
if err := spaces.WaitSpaceAvailable(ctx, s.content.Spaces, s.SpaceID); err != nil {
return err
}
}
......@@ -180,7 +181,7 @@ func (s *Setup) Install(ctx context.Context) error {
// Check выполняет проверку требований
func (s *Setup) Check(ctx context.Context) error {
if s.waitSpaceAvailable {
if err := spaces.WaitSpaceReadAvailable(ctx, s.content.Spaces, s.SpaceID, s.logger); err != nil {
if err := spaces.WaitSpaceReadable(ctx, s.content.Spaces, s.SpaceID); err != nil {
return err
}
}
......@@ -202,7 +203,7 @@ func (s *Setup) Check(ctx context.Context) error {
// Uninstall выполняет удаление установленных раннее требований
func (s *Setup) Uninstall(ctx context.Context) error {
if s.waitSpaceAvailable {
if err := spaces.WaitSpaceAvailable(ctx, s.content.Spaces, s.SpaceID, s.logger); err != nil {
if err := spaces.WaitSpaceAvailable(ctx, s.content.Spaces, s.SpaceID); err != nil {
return err
}
}
......
This diff is collapsed.
......@@ -6,8 +6,6 @@ import (
"git.perx.ru/perxis/perxis-go/pkg/errors"
"github.com/avast/retry-go/v4"
"go.uber.org/zap"
)
// @microgen grpc
......@@ -74,7 +72,7 @@ func IsSpaceAvailable(ctx context.Context, svc Spaces, spaceID string) error {
return ErrSpaceNotAvailable
}
func IsSpaceReadAvailable(ctx context.Context, svc Spaces, spaceID string) error {
func IsSpaceReadable(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")
......@@ -85,30 +83,24 @@ func IsSpaceReadAvailable(ctx context.Context, svc Spaces, spaceID string) error
return errors.WithContext(ErrSpaceNotAvailable, "state", sp.StateInfo.State)
}
func WaitSpaceAvailable(ctx context.Context, svc Spaces, spaceID string, logger *zap.Logger) error {
func WaitSpaceAvailable(ctx context.Context, svc Spaces, spaceID string) error {
return retry.Do(
func() error {
return IsSpaceAvailable(ctx, svc, spaceID)
},
retry.RetryIf(func(err error) bool { return errors.Is(err, ErrSpaceNotAvailable) }),
retry.OnRetry(func(n uint, err error) {
logger.Debug("Waiting for space to be available", zap.String("spaceID", spaceID), zap.Uint("Retry", n), zap.Error(err))
}),
retry.Delay(delay),
retry.Attempts(attempts),
retry.Context(ctx),
)
}
func WaitSpaceReadAvailable(ctx context.Context, svc Spaces, spaceID string, logger *zap.Logger) error {
func WaitSpaceReadable(ctx context.Context, svc Spaces, spaceID string) error {
return retry.Do(
func() error {
return IsSpaceReadAvailable(ctx, svc, spaceID)
return IsSpaceReadable(ctx, svc, spaceID)
},
retry.RetryIf(func(err error) bool { return errors.Is(err, ErrSpaceNotAvailable) }),
retry.OnRetry(func(n uint, err error) {
logger.Debug("Waiting for space to be available for read", zap.String("spaceID", spaceID), zap.Uint("Retry", n), zap.Error(err))
}),
retry.Delay(delay),
retry.Attempts(attempts),
retry.Context(ctx),
......
......@@ -51,7 +51,7 @@ func TestIsSpaceAvailable(t *testing.T) {
}
}
func TestIsReadAvailable(t *testing.T) {
func TestIsSpaceReadable(t *testing.T) {
tests := []struct {
name string
space *Space
......@@ -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 := IsSpaceReadAvailable(context.Background(), spaces, "space"); (err != nil) != tt.wantErr {
t.Errorf("IsSpaceReadAvailable() error = %v, wantErr %v", err, tt.wantErr)
if err := IsSpaceReadable(context.Background(), spaces, "space"); (err != nil) != tt.wantErr {
t.Errorf("IsSpaceReadable() error = %v, wantErr %v", err, tt.wantErr)
}
})
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment