mirror of
https://github.com/optim-enterprises-bv/vault.git
synced 2025-10-30 02:02:43 +00:00
add retry logic in ldap.PrepareTestContainer (#27617)
This commit is contained in:
@@ -49,35 +49,47 @@ func PrepareTestContainer(t *testing.T, version string) (cleanup func(), cfg *ld
|
||||
cfg.RequestTimeout = 60
|
||||
cfg.MaximumPageSize = 1000
|
||||
|
||||
svc, err := runner.StartService(context.Background(), func(ctx context.Context, host string, port int) (docker.ServiceConfig, error) {
|
||||
connURL := fmt.Sprintf("ldap://%s:%d", host, port)
|
||||
cfg.Url = connURL
|
||||
var started bool
|
||||
|
||||
client, err := ldap.NewClient(ctx, ldaputil.ConvertConfig(cfg))
|
||||
for i := 0; i < 3; i++ {
|
||||
svc, err := runner.StartService(context.Background(), func(ctx context.Context, host string, port int) (docker.ServiceConfig, error) {
|
||||
connURL := fmt.Sprintf("ldap://%s:%d", host, port)
|
||||
cfg.Url = connURL
|
||||
|
||||
client, err := ldap.NewClient(ctx, ldaputil.ConvertConfig(cfg))
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
defer client.Close(ctx)
|
||||
|
||||
_, err = client.Authenticate(ctx, "Philip J. Fry", "fry")
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return docker.NewServiceURLParse(connURL)
|
||||
})
|
||||
if err != nil {
|
||||
return nil, err
|
||||
t.Logf("could not start local LDAP docker container: %s", err)
|
||||
t.Log("Docker container logs: ")
|
||||
t.Log(logsWriter.String())
|
||||
continue
|
||||
}
|
||||
|
||||
defer client.Close(ctx)
|
||||
|
||||
_, err = client.Authenticate(ctx, "Philip J. Fry", "fry")
|
||||
if err != nil {
|
||||
return nil, err
|
||||
started = true
|
||||
cleanup = func() {
|
||||
if t.Failed() {
|
||||
t.Log(logsWriter.String())
|
||||
}
|
||||
svc.Cleanup()
|
||||
}
|
||||
break
|
||||
}
|
||||
|
||||
return docker.NewServiceURLParse(connURL)
|
||||
})
|
||||
if err != nil {
|
||||
t.Logf("could not start local LDAP docker container: %s", err)
|
||||
t.Log("Docker container logs: ")
|
||||
t.Log(logsWriter.String())
|
||||
if !started {
|
||||
t.FailNow()
|
||||
}
|
||||
|
||||
return func() {
|
||||
if t.Failed() {
|
||||
t.Log(logsWriter.String())
|
||||
}
|
||||
svc.Cleanup()
|
||||
}, cfg
|
||||
return cleanup, cfg
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user