mirror of
https://github.com/optim-enterprises-bv/vault.git
synced 2025-11-01 11:08:10 +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.RequestTimeout = 60
|
||||||
cfg.MaximumPageSize = 1000
|
cfg.MaximumPageSize = 1000
|
||||||
|
|
||||||
svc, err := runner.StartService(context.Background(), func(ctx context.Context, host string, port int) (docker.ServiceConfig, error) {
|
var started bool
|
||||||
connURL := fmt.Sprintf("ldap://%s:%d", host, port)
|
|
||||||
cfg.Url = connURL
|
|
||||||
|
|
||||||
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 {
|
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)
|
started = true
|
||||||
|
cleanup = func() {
|
||||||
_, err = client.Authenticate(ctx, "Philip J. Fry", "fry")
|
if t.Failed() {
|
||||||
if err != nil {
|
t.Log(logsWriter.String())
|
||||||
return nil, err
|
}
|
||||||
|
svc.Cleanup()
|
||||||
}
|
}
|
||||||
|
break
|
||||||
|
}
|
||||||
|
|
||||||
return docker.NewServiceURLParse(connURL)
|
if !started {
|
||||||
})
|
|
||||||
if err != nil {
|
|
||||||
t.Logf("could not start local LDAP docker container: %s", err)
|
|
||||||
t.Log("Docker container logs: ")
|
|
||||||
t.Log(logsWriter.String())
|
|
||||||
t.FailNow()
|
t.FailNow()
|
||||||
}
|
}
|
||||||
|
|
||||||
return func() {
|
return cleanup, cfg
|
||||||
if t.Failed() {
|
|
||||||
t.Log(logsWriter.String())
|
|
||||||
}
|
|
||||||
svc.Cleanup()
|
|
||||||
}, cfg
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user