package rpc import ( "git.frostfs.info/TrueCloudLab/frostfs-sdk-go/api/container" "git.frostfs.info/TrueCloudLab/frostfs-sdk-go/api/rpc/client" "git.frostfs.info/TrueCloudLab/frostfs-sdk-go/api/rpc/common" ) const serviceContainer = serviceNamePrefix + "container.ContainerService" const ( rpcContainerPut = "Put" rpcContainerGet = "Get" rpcContainerDel = "Delete" rpcContainerList = "List" rpcContainerStream = "ListStream" rpcContainerGetEACL = "GetExtendedACL" rpcContainerUsedSpace = "AnnounceUsedSpace" ) // PutContainer executes ContainerService.Put RPC. func PutContainer( cli *client.Client, req *container.PutRequest, opts ...client.CallOption, ) (*container.PutResponse, error) { resp := new(container.PutResponse) err := client.SendUnary(cli, common.CallMethodInfoUnary(serviceContainer, rpcContainerPut), req, resp, opts...) if err != nil { return nil, err } return resp, nil } // GetContainer executes ContainerService.Get RPC. func GetContainer( cli *client.Client, req *container.GetRequest, opts ...client.CallOption, ) (*container.GetResponse, error) { resp := new(container.GetResponse) err := client.SendUnary(cli, common.CallMethodInfoUnary(serviceContainer, rpcContainerGet), req, resp, opts...) if err != nil { return nil, err } return resp, nil } // DeleteContainer executes ContainerService.Delete RPC. func DeleteContainer( cli *client.Client, req *container.DeleteRequest, opts ...client.CallOption, ) (*container.PutResponse, error) { resp := new(container.PutResponse) err := client.SendUnary(cli, common.CallMethodInfoUnary(serviceContainer, rpcContainerDel), req, resp, opts...) if err != nil { return nil, err } return resp, nil } // ListContainers executes ContainerService.List RPC. func ListContainers( cli *client.Client, req *container.ListRequest, opts ...client.CallOption, ) (*container.ListResponse, error) { resp := new(container.ListResponse) err := client.SendUnary(cli, common.CallMethodInfoUnary(serviceContainer, rpcContainerList), req, resp, opts...) if err != nil { return nil, err } return resp, nil } type ListStreamResponseReader struct { r client.MessageReader } func (r *ListStreamResponseReader) Read(resp *container.ListStreamResponse) error { return r.r.ReadMessage(resp) } // ListContainersStream executes ContainerService.ListStream RPC. func ListContainersStream( cli *client.Client, req *container.ListStreamRequest, opts ...client.CallOption, ) (*ListStreamResponseReader, error) { wc, err := client.OpenServerStream(cli, common.CallMethodInfoServerStream(serviceContainer, rpcContainerStream), req, opts...) if err != nil { return nil, err } return &ListStreamResponseReader{ r: wc, }, nil }