mirror of
				https://github.com/optim-enterprises-bv/vault.git
				synced 2025-10-31 02:28:09 +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
	 Marc Boudreau
					Marc Boudreau