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 }