本文整理汇总了Golang中github.com/pachyderm/pachyderm/src/pfs.NewInternalApiClient函数的典型用法代码示例。如果您正苦于以下问题:Golang NewInternalApiClient函数的具体用法?Golang NewInternalApiClient怎么用?Golang NewInternalApiClient使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了NewInternalApiClient函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: AddShard
func (a *internalAPIServer) AddShard(shard uint64) error {
version, ctx, err := a.versionAndCtx(context.Background())
if err != nil {
return err
}
if version == route.InvalidVersion {
return nil
}
clientConn, err := a.router.GetMasterOrReplicaClientConn(shard, version)
if err != nil {
return err
}
repoInfos, err := pfs.NewInternalApiClient(clientConn).ListRepo(ctx, &pfs.ListRepoRequest{})
if err != nil {
return err
}
for _, repoInfo := range repoInfos.RepoInfo {
if err := a.driver.CreateRepo(repoInfo.Repo); err != nil {
return err
}
commitInfos, err := pfs.NewInternalApiClient(clientConn).ListCommit(ctx, &pfs.ListCommitRequest{Repo: repoInfo.Repo})
if err != nil {
return err
}
for i := range commitInfos.CommitInfo {
commit := commitInfos.CommitInfo[len(commitInfos.CommitInfo)-(i+1)].Commit
commitInfo, err := a.driver.InspectCommit(commit, map[uint64]bool{shard: true})
if err != nil {
return err
}
if commitInfo != nil {
// we already have the commit so nothing to do
continue
}
pullDiffRequest := &pfs.PullDiffRequest{
Commit: commit,
Shard: shard,
}
pullDiffClient, err := pfs.NewInternalApiClient(clientConn).PullDiff(ctx, pullDiffRequest)
if err != nil {
return err
}
diffReader := protostream.NewStreamingBytesReader(pullDiffClient)
a.driver.PushDiff(commit, diffReader)
}
}
return nil
}
示例2: RunTest
func RunTest(
t *testing.T,
f func(t *testing.T, apiClient pfs.ApiClient, internalAPIClient pfs.InternalApiClient),
) {
discoveryClient, err := getEtcdClient()
require.NoError(t, err)
grpctest.Run(
t,
testNumServers,
func(servers map[string]*grpc.Server) {
registerFunc(getDriver(t), discoveryClient, servers)
},
func(t *testing.T, clientConns map[string]*grpc.ClientConn) {
var clientConn *grpc.ClientConn
for _, c := range clientConns {
clientConn = c
break
}
f(
t,
pfs.NewApiClient(
clientConn,
),
pfs.NewInternalApiClient(
clientConn,
),
)
},
)
}
示例3: CreateRepo
func (a *apiServer) CreateRepo(ctx context.Context, request *pfs.CreateRepoRequest) (*google_protobuf.Empty, error) {
version, ctx, err := a.versionAndCtx(ctx)
if err != nil {
return nil, err
}
clientConns, err := a.router.GetAllClientConns(version)
if err != nil {
return nil, err
}
for _, clientConn := range clientConns {
if _, err := pfs.NewInternalApiClient(clientConn).CreateRepo(ctx, request); err != nil {
return nil, err
}
}
// Create the initial commit
if _, err = a.StartCommit(ctx, &pfs.StartCommitRequest{
Parent: nil,
Commit: &pfs.Commit{
Repo: request.Repo,
Id: InitialCommitID,
},
}); err != nil {
return nil, err
}
if _, err = a.FinishCommit(ctx, &pfs.FinishCommitRequest{
Commit: &pfs.Commit{
Repo: request.Repo,
Id: InitialCommitID,
},
}); err != nil {
return nil, err
}
return emptyInstance, nil
}
示例4: commitToReplicas
func (a *internalAPIServer) commitToReplicas(ctx context.Context, commit *pfs.Commit) error {
version, err := a.getVersion(ctx)
if err != nil {
return err
}
shards, err := a.router.GetMasterShards(version)
if err != nil {
return err
}
for shard := range shards {
clientConns, err := a.router.GetReplicaClientConns(shard, version)
if err != nil {
return err
}
var diff bytes.Buffer
if err = a.driver.PullDiff(commit, shard, &diff); err != nil {
return err
}
for _, clientConn := range clientConns {
if _, err = pfs.NewInternalApiClient(clientConn).PushDiff(
ctx,
&pfs.PushDiffRequest{
Commit: commit,
Shard: shard,
Value: diff.Bytes(),
},
); err != nil {
return err
}
}
}
return nil
}
示例5: RunTest
func RunTest(
t *testing.T,
f func(*testing.T, pfs.ApiClient, pfs.InternalApiClient, Cluster),
) {
discoveryClient, err := getEtcdClient()
require.NoError(t, err)
var cluster Cluster
prototest.RunT(
t,
testNumServers,
func(servers map[string]*grpc.Server) {
cluster = registerFunc(t, discoveryClient, servers)
},
func(t *testing.T, clientConns map[string]*grpc.ClientConn) {
var clientConn *grpc.ClientConn
for _, c := range clientConns {
clientConn = c
break
}
f(
t,
pfs.NewApiClient(
clientConn,
),
pfs.NewInternalApiClient(
clientConn,
),
cluster,
)
},
)
cluster.Shutdown()
}
示例6: PushDiff
func (a *combinedAPIServer) PushDiff(ctx context.Context, pushDiffRequest *pfs.PushDiffRequest) (*google_protobuf.Empty, error) {
clientConn, err := a.getClientConnIfNecessary(int(pushDiffRequest.Shard), false)
if err != nil {
return nil, err
}
if clientConn != nil {
return pfs.NewInternalApiClient(clientConn).PushDiff(ctx, pushDiffRequest)
}
return emptyInstance, a.driver.PushDiff(pushDiffRequest.Commit, bytes.NewReader(pushDiffRequest.Value))
}
示例7: DeleteFile
func (a *apiServer) DeleteFile(ctx context.Context, request *pfs.DeleteFileRequest) (*google_protobuf.Empty, error) {
version, ctx, err := a.versionAndCtx(ctx)
if err != nil {
return nil, err
}
clientConn, err := a.getClientConnForFile(request.File, version)
if err != nil {
return nil, err
}
return pfs.NewInternalApiClient(clientConn).DeleteFile(ctx, request)
}
示例8: ListRepo
func (a *apiServer) ListRepo(ctx context.Context, request *pfs.ListRepoRequest) (*pfs.RepoInfos, error) {
version, ctx, err := a.versionAndCtx(ctx)
if err != nil {
return nil, err
}
clientConn, err := a.getClientConn(version)
if err != nil {
return nil, err
}
return pfs.NewInternalApiClient(clientConn).ListRepo(ctx, request)
}
示例9: InspectFile
func (a *apiServer) InspectFile(ctx context.Context, request *pfs.InspectFileRequest) (*pfs.FileInfo, error) {
version, ctx, err := a.versionAndCtx(ctx)
if err != nil {
return nil, err
}
clientConn, err := a.getClientConnForFile(request.File, version)
if err != nil {
return nil, err
}
return pfs.NewInternalApiClient(clientConn).InspectFile(ctx, request)
}
示例10: GetBlock
func (a *apiServer) GetBlock(request *pfs.GetBlockRequest, apiGetBlockServer pfs.Api_GetBlockServer) (retErr error) {
version, ctx, err := a.versionAndCtx(context.Background())
if err != nil {
return err
}
clientConn, err := a.getClientConnForBlock(request.Block, version)
if err != nil {
return err
}
blockGetClient, err := pfs.NewInternalApiClient(clientConn).GetBlock(ctx, request)
if err != nil {
return err
}
return protostream.RelayFromStreamingBytesClient(blockGetClient, apiGetBlockServer)
}
示例11: PutBlock
func (a *apiServer) PutBlock(ctx context.Context, request *pfs.PutBlockRequest) (*pfs.Block, error) {
version, ctx, err := a.versionAndCtx(ctx)
if err != nil {
return nil, err
}
block := a.sharder.GetBlock(request.Value)
clientConn, err := a.getClientConnForBlock(block, version)
if err != nil {
return nil, err
}
if _, err := pfs.NewInternalApiClient(clientConn).PutBlock(ctx, request); err != nil {
return nil, err
}
return block, nil
}
示例12: GetFile
func (a *apiServer) GetFile(request *pfs.GetFileRequest, apiGetFileServer pfs.Api_GetFileServer) error {
version, ctx, err := a.versionAndCtx(context.Background())
if err != nil {
return err
}
clientConn, err := a.getClientConnForFile(request.File, version)
if err != nil {
return err
}
fileGetClient, err := pfs.NewInternalApiClient(clientConn).GetFile(ctx, request)
if err != nil {
return err
}
return protostream.RelayFromStreamingBytesClient(fileGetClient, apiGetFileServer)
}
示例13: Master
func (a *combinedAPIServer) Master(shard int) error {
clientConns, err := a.router.GetReplicaClientConns(shard)
if err != nil {
return err
}
for _, clientConn := range clientConns {
apiClient := pfs.NewApiClient(clientConn)
response, err := apiClient.ListRepositories(context.Background(), &pfs.ListRepositoriesRequest{})
if err != nil {
return err
}
for _, repository := range response.Repository {
if err := a.driver.InitRepository(repository, map[int]bool{shard: true}); err != nil {
return err
}
response, err := apiClient.ListCommits(context.Background(), &pfs.ListCommitsRequest{Repository: repository})
if err != nil {
return err
}
localCommitInfo, err := a.driver.ListCommits(repository, shard)
if err != nil {
return err
}
for i, commitInfo := range response.CommitInfo {
if i < len(localCommitInfo) {
if *commitInfo != *localCommitInfo[i] {
return fmt.Errorf("divergent data")
}
continue
}
pullDiffClient, err := pfs.NewInternalApiClient(clientConn).PullDiff(
context.Background(),
&pfs.PullDiffRequest{
Commit: commitInfo.Commit,
Shard: uint64(shard),
},
)
if err != nil {
return err
}
if err := a.driver.PushDiff(commitInfo.Commit, protostream.NewStreamingBytesReader(pullDiffClient)); err != nil {
return err
}
}
}
}
return nil
}
示例14: FinishCommit
func (a *apiServer) FinishCommit(ctx context.Context, request *pfs.FinishCommitRequest) (*google_protobuf.Empty, error) {
version, ctx, err := a.versionAndCtx(ctx)
if err != nil {
return nil, err
}
clientConns, err := a.router.GetAllClientConns(version)
if err != nil {
return nil, err
}
for _, clientConn := range clientConns {
if _, err := pfs.NewInternalApiClient(clientConn).FinishCommit(ctx, request); err != nil {
return nil, err
}
}
return emptyInstance, nil
}
示例15: ListFile
func (a *apiServer) ListFile(ctx context.Context, request *pfs.ListFileRequest) (*pfs.FileInfos, error) {
version, ctx, err := a.versionAndCtx(ctx)
if err != nil {
return nil, err
}
clientConns, err := a.router.GetAllClientConns(version)
if err != nil {
return nil, err
}
var wg sync.WaitGroup
var lock sync.Mutex
var fileInfos []*pfs.FileInfo
seenDirectories := make(map[string]bool)
var loopErr error
for _, clientConn := range clientConns {
wg.Add(1)
go func(clientConn *grpc.ClientConn) {
defer wg.Done()
subFileInfos, err := pfs.NewInternalApiClient(clientConn).ListFile(ctx, request)
lock.Lock()
defer lock.Unlock()
if err != nil {
if loopErr == nil {
loopErr = err
}
return
}
for _, fileInfo := range subFileInfos.FileInfo {
if fileInfo.FileType == pfs.FileType_FILE_TYPE_DIR {
if seenDirectories[fileInfo.File.Path] {
continue
}
seenDirectories[fileInfo.File.Path] = true
}
fileInfos = append(fileInfos, fileInfo)
}
}(clientConn)
}
wg.Wait()
if loopErr != nil {
return nil, loopErr
}
return &pfs.FileInfos{
FileInfo: fileInfos,
}, nil
}