Skip to content

Commit

Permalink
refactor
Browse files Browse the repository at this point in the history
  • Loading branch information
kutluhanmetin committed Aug 25, 2023
1 parent ca0a881 commit 1c61a40
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 19 deletions.
1 change: 0 additions & 1 deletion clc/cmd/clc.go
Original file line number Diff line number Diff line change
Expand Up @@ -392,7 +392,6 @@ func (m *Main) ensureClientWithTimeout(ctx context.Context, cfg hazelcast.Config
}

func (m *Main) ensureClient(ctx context.Context, cfg hazelcast.Config) error {
time.Sleep(6 * time.Second)
if m.ci.Load() != nil {
return nil
}
Expand Down
39 changes: 21 additions & 18 deletions clc/cmd/exec_context.go
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,8 @@ import (
)

const (
cancelMsg = " (Ctrl+C to cancel) "
cancelMsg = " (Ctrl+C to cancel) "
ensureTimeout = 5 * time.Second
)

type ClientFn func(ctx context.Context, cfg hazelcast.Config) (*hazelcast.ClientInternal, error)
Expand Down Expand Up @@ -118,27 +119,29 @@ func (ec *ExecContext) ClientInternal(ctx context.Context) (*hazelcast.ClientInt
}
civ, stop, err := ec.ExecuteBlocking(ctx, func(ctx context.Context, sp clc.Spinner) (any, error) {
sp.SetText("Connecting to the cluster")
var ensured bool
if cfg.Cluster.Cloud.Token != "" { // if it is Viridian Cluster
appliedFromCache := viridian.ApplyViridianDiscoveryConfig(&cfg, ec.Logger())
if err = ec.main.ensureClientWithTimeout(ctx, cfg, 5*time.Second); err != nil {
if appliedFromCache && errors.Is(err, context.DeadlineExceeded) {
if err = viridian.DeleteCache(ec.Logger(), cfg); err != nil {
return nil, err
}
viridian.ApplyViridianDiscoveryConfig(&cfg, ec.Logger())
} else {
return nil, err
}
} else {
ensured = true
}
}
if !ensured {
isViridian := cfg.Cluster.Cloud.Token != ""
if !isViridian {
if err = ec.main.ensureClient(ctx, cfg); err != nil {
return nil, err
}
}
appliedFromCache := viridian.ApplyViridianDiscoveryConfig(&cfg, ec.Logger())
start := time.Now()
if err = ec.main.ensureClientWithTimeout(ctx, cfg, ensureTimeout); err != nil {
timePassed := time.Since(start)
if appliedFromCache && errors.Is(err, context.DeadlineExceeded) && timePassed >= ensureTimeout {
if err = viridian.DeleteCache(ec.Logger(), cfg); err != nil {
return nil, err
}
viridian.ApplyViridianDiscoveryConfig(&cfg, ec.Logger())
if err = ec.main.ensureClient(ctx, cfg); err != nil {
return nil, err
}
return ec.main.clientInternal(), nil
}

return nil, err
}
return ec.main.clientInternal(), nil
})
if err != nil {
Expand Down

0 comments on commit 1c61a40

Please sign in to comment.