get.porter.sh/porter@v1.3.0/pkg/storage/migrations/crudstore/rpc.go (about)

     1  package crudstore
     2  
     3  import (
     4  	"net/rpc"
     5  )
     6  
     7  var _ Store = &Client{}
     8  
     9  type Client struct {
    10  	client *rpc.Client
    11  }
    12  
    13  func (g *Client) Read(itemType string, name string) ([]byte, error) {
    14  	var resp []byte
    15  	args := map[string]interface{}{
    16  		"itemType": itemType,
    17  		"name":     name,
    18  	}
    19  	err := g.client.Call("Plugin.Read", args, &resp)
    20  	return resp, err
    21  }
    22  
    23  func (g *Client) List(itemType string, group string) ([]string, error) {
    24  	var resp []string
    25  	args := map[string]interface{}{
    26  		"itemType": itemType,
    27  		"group":    group,
    28  	}
    29  	err := g.client.Call("Plugin.List", args, &resp)
    30  	return resp, err
    31  }
    32  
    33  type Server struct {
    34  	Impl Store
    35  }
    36  
    37  func (s *Server) Read(args map[string]interface{}, resp *[]byte) error {
    38  	var err error
    39  	*resp, err = s.Impl.Read(args["itemType"].(string), args["name"].(string))
    40  	return err
    41  }
    42  
    43  func (s *Server) List(args map[string]interface{}, resp *[]string) error {
    44  	var err error
    45  	*resp, err = s.Impl.List(args["itemType"].(string), args["group"].(string))
    46  	return err
    47  }