github.com/TrueCloudLab/frostfs-api-go/v2@v2.0.0-20230228134343-196241c4e79a/rpc/container.go (about)

     1  package rpc
     2  
     3  import (
     4  	"github.com/TrueCloudLab/frostfs-api-go/v2/container"
     5  	"github.com/TrueCloudLab/frostfs-api-go/v2/rpc/client"
     6  	"github.com/TrueCloudLab/frostfs-api-go/v2/rpc/common"
     7  )
     8  
     9  const serviceContainer = serviceNamePrefix + "container.ContainerService"
    10  
    11  const (
    12  	rpcContainerPut       = "Put"
    13  	rpcContainerGet       = "Get"
    14  	rpcContainerDel       = "Delete"
    15  	rpcContainerList      = "List"
    16  	rpcContainerSetEACL   = "SetExtendedACL"
    17  	rpcContainerGetEACL   = "GetExtendedACL"
    18  	rpcContainerUsedSpace = "AnnounceUsedSpace"
    19  )
    20  
    21  // PutContainer executes ContainerService.Put RPC.
    22  func PutContainer(
    23  	cli *client.Client,
    24  	req *container.PutRequest,
    25  	opts ...client.CallOption,
    26  ) (*container.PutResponse, error) {
    27  	resp := new(container.PutResponse)
    28  
    29  	err := client.SendUnary(cli, common.CallMethodInfoUnary(serviceContainer, rpcContainerPut), req, resp, opts...)
    30  	if err != nil {
    31  		return nil, err
    32  	}
    33  
    34  	return resp, nil
    35  }
    36  
    37  // GetContainer executes ContainerService.Get RPC.
    38  func GetContainer(
    39  	cli *client.Client,
    40  	req *container.GetRequest,
    41  	opts ...client.CallOption,
    42  ) (*container.GetResponse, error) {
    43  	resp := new(container.GetResponse)
    44  
    45  	err := client.SendUnary(cli, common.CallMethodInfoUnary(serviceContainer, rpcContainerGet), req, resp, opts...)
    46  	if err != nil {
    47  		return nil, err
    48  	}
    49  
    50  	return resp, nil
    51  }
    52  
    53  // DeleteContainer executes ContainerService.Delete RPC.
    54  func DeleteContainer(
    55  	cli *client.Client,
    56  	req *container.DeleteRequest,
    57  	opts ...client.CallOption,
    58  ) (*container.PutResponse, error) {
    59  	resp := new(container.PutResponse)
    60  
    61  	err := client.SendUnary(cli, common.CallMethodInfoUnary(serviceContainer, rpcContainerDel), req, resp, opts...)
    62  	if err != nil {
    63  		return nil, err
    64  	}
    65  
    66  	return resp, nil
    67  }
    68  
    69  // ListContainers executes ContainerService.List RPC.
    70  func ListContainers(
    71  	cli *client.Client,
    72  	req *container.ListRequest,
    73  	opts ...client.CallOption,
    74  ) (*container.ListResponse, error) {
    75  	resp := new(container.ListResponse)
    76  
    77  	err := client.SendUnary(cli, common.CallMethodInfoUnary(serviceContainer, rpcContainerList), req, resp, opts...)
    78  	if err != nil {
    79  		return nil, err
    80  	}
    81  
    82  	return resp, nil
    83  }
    84  
    85  // SetEACL executes ContainerService.SetExtendedACL RPC.
    86  func SetEACL(
    87  	cli *client.Client,
    88  	req *container.SetExtendedACLRequest,
    89  	opts ...client.CallOption,
    90  ) (*container.PutResponse, error) {
    91  	resp := new(container.PutResponse)
    92  
    93  	err := client.SendUnary(cli, common.CallMethodInfoUnary(serviceContainer, rpcContainerSetEACL), req, resp, opts...)
    94  	if err != nil {
    95  		return nil, err
    96  	}
    97  
    98  	return resp, nil
    99  }
   100  
   101  // GetEACL executes ContainerService.GetExtendedACL RPC.
   102  func GetEACL(
   103  	cli *client.Client,
   104  	req *container.GetExtendedACLRequest,
   105  	opts ...client.CallOption,
   106  ) (*container.GetExtendedACLResponse, error) {
   107  	resp := new(container.GetExtendedACLResponse)
   108  
   109  	err := client.SendUnary(cli, common.CallMethodInfoUnary(serviceContainer, rpcContainerGetEACL), req, resp, opts...)
   110  	if err != nil {
   111  		return nil, err
   112  	}
   113  
   114  	return resp, nil
   115  }
   116  
   117  // AnnounceUsedSpace executes ContainerService.AnnounceUsedSpace RPC.
   118  func AnnounceUsedSpace(
   119  	cli *client.Client,
   120  	req *container.AnnounceUsedSpaceRequest,
   121  	opts ...client.CallOption,
   122  ) (*container.PutResponse, error) {
   123  	resp := new(container.PutResponse)
   124  
   125  	err := client.SendUnary(cli, common.CallMethodInfoUnary(serviceContainer, rpcContainerUsedSpace), req, resp, opts...)
   126  	if err != nil {
   127  		return nil, err
   128  	}
   129  
   130  	return resp, nil
   131  }