func getRethinkAPIClient(address string, databaseName string) (persist.APIClient, error) { var err error if address == "" { address, err = getRethinkAddress() if err != nil { return nil, err } } if err := persistserver.InitDBs(address, databaseName); err != nil { return nil, err } rethinkAPIServer, err := persistserver.NewRethinkAPIServer(address, databaseName) if err != nil { return nil, err } return persist.NewLocalAPIClient(rethinkAPIServer), nil }
func RunTest( t *testing.T, f func(*testing.T, pfs.APIClient, pps.JobAPIClient, pps.PipelineAPIClient), ) { pfstesting.RunTest( t, func(t *testing.T, pfsAPIClient pfs.APIClient, _ pfstesting.Cluster) { pfsMountDir, err := ioutil.TempDir("", "") require.NoError(t, err) mounter := fuse.NewMounter("localhost", pfsAPIClient) ready := make(chan bool) go func() { require.NoError(t, mounter.Mount(pfsMountDir, &pfs.Shard{Number: 0, Modulus: 1}, nil, ready)) }() <-ready persistservertesting.RunTestWithRethinkAPIServer( t, func(t *testing.T, persistAPIServer persist.APIServer) { persistAPIClient := persist.NewLocalAPIClient(persistAPIServer) var pipelineAPIServer pipelineserver.APIServer prototest.RunT( t, testNumServers, func(servers map[string]*grpc.Server) { jobAPIServer := jobserver.NewAPIServer( pfsAPIClient, persistAPIClient, nil, ) jobAPIClient := pps.NewLocalJobAPIClient(jobAPIServer) pipelineAPIServer = pipelineserver.NewAPIServer( pfsAPIClient, jobAPIClient, persistAPIClient, ) for _, server := range servers { pps.RegisterJobAPIServer(server, jobAPIServer) pps.RegisterPipelineAPIServer(server, pipelineAPIServer) } }, func(t *testing.T, clientConns map[string]*grpc.ClientConn) { pipelineAPIServer.Start() var clientConn *grpc.ClientConn for _, c := range clientConns { clientConn = c break } f( t, pfsAPIClient, pps.NewJobAPIClient( clientConn, ), pps.NewPipelineAPIClient( clientConn, ), ) }, func() { _ = mounter.Unmount(pfsMountDir) }, ) }, ) }, ) }