frostfs-api-go/rpc/container.go

132 lines
3.3 KiB
Go

package rpc
import (
"git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/container"
"git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/rpc/client"
"git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/rpc/common"
)
const serviceContainer = serviceNamePrefix + "container.ContainerService"
const (
rpcContainerPut = "Put"
rpcContainerGet = "Get"
rpcContainerDel = "Delete"
rpcContainerList = "List"
rpcContainerSetEACL = "SetExtendedACL"
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
}
// SetEACL executes ContainerService.SetExtendedACL RPC.
func SetEACL(
cli *client.Client,
req *container.SetExtendedACLRequest,
opts ...client.CallOption,
) (*container.PutResponse, error) {
resp := new(container.PutResponse)
err := client.SendUnary(cli, common.CallMethodInfoUnary(serviceContainer, rpcContainerSetEACL), req, resp, opts...)
if err != nil {
return nil, err
}
return resp, nil
}
// GetEACL executes ContainerService.GetExtendedACL RPC.
func GetEACL(
cli *client.Client,
req *container.GetExtendedACLRequest,
opts ...client.CallOption,
) (*container.GetExtendedACLResponse, error) {
resp := new(container.GetExtendedACLResponse)
err := client.SendUnary(cli, common.CallMethodInfoUnary(serviceContainer, rpcContainerGetEACL), req, resp, opts...)
if err != nil {
return nil, err
}
return resp, nil
}
// AnnounceUsedSpace executes ContainerService.AnnounceUsedSpace RPC.
func AnnounceUsedSpace(
cli *client.Client,
req *container.AnnounceUsedSpaceRequest,
opts ...client.CallOption,
) (*container.PutResponse, error) {
resp := new(container.PutResponse)
err := client.SendUnary(cli, common.CallMethodInfoUnary(serviceContainer, rpcContainerUsedSpace), req, resp, opts...)
if err != nil {
return nil, err
}
return resp, nil
}