mirror of
				https://github.com/optim-enterprises-bv/vault.git
				synced 2025-10-30 18:17:55 +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
	 Marc Boudreau
					Marc Boudreau