func (zkts *Server) GetSrvKeyspace(cell, keyspace string) (*topo.SrvKeyspace, error) { path := zkPathForVtKeyspace(cell, keyspace) data, stat, err := zkts.zconn.Get(path) if err != nil { if zookeeper.IsError(err, zookeeper.ZNONODE) { err = topo.ErrNoNode } return nil, err } return topo.NewSrvKeyspace(data, stat.Version()) }
func (tr *TopoReader) GetSrvKeyspace(req topo.GetSrvKeyspaceArgs, reply *topo.SrvKeyspace) (err error) { keyspacePath := zkPathForVtKeyspace(req.Cell, req.Keyspace) zkrReply := &zk.ZkNode{} if err := tr.zkr.Get(&zk.ZkPath{Path: keyspacePath}, zkrReply); err != nil { return err } keyspace, err := topo.NewSrvKeyspace(zkrReply.Data, zkrReply.Stat.Version()) *reply = *keyspace return }
func (tr *TopoReader) GetSrvKeyspace(ctx context.Context, req *topo.GetSrvKeyspaceArgs, reply *topo.SrvKeyspace) (err error) { keyspacePath := zkPathForVtKeyspace(req.Cell, req.Keyspace) zkrReply := &zk.ZkNode{} if err := tr.zkr.Get(&zk.ZkPath{Path: keyspacePath}, zkrReply); err != nil { return err } keyspace := topo.NewSrvKeyspace(int64(zkrReply.Stat.Version())) if len(zkrReply.Data) > 0 { if err := json.Unmarshal([]byte(zkrReply.Data), keyspace); err != nil { return fmt.Errorf("SrvKeyspace unmarshal failed: %v %v", zkrReply.Data, err) } } *reply = *keyspace return }
func (zkts *Server) GetSrvKeyspace(cell, keyspace string) (*topo.SrvKeyspace, error) { path := zkPathForVtKeyspace(cell, keyspace) data, stat, err := zkts.zconn.Get(path) if err != nil { if zookeeper.IsError(err, zookeeper.ZNONODE) { err = topo.ErrNoNode } return nil, err } srvKeyspace := topo.NewSrvKeyspace(int64(stat.Version())) if len(data) > 0 { if err := json.Unmarshal([]byte(data), srvKeyspace); err != nil { return nil, fmt.Errorf("SrvKeyspace unmarshal failed: %v %v", data, err) } } return srvKeyspace, nil }
// GetSrvKeyspace implements topo.Server. func (s *Server) GetSrvKeyspace(ctx context.Context, cellName, keyspace string) (*topo.SrvKeyspace, error) { cell, err := s.getCell(cellName) if err != nil { return nil, err } resp, err := cell.Get(srvKeyspaceFilePath(keyspace), false /* sort */, false /* recursive */) if err != nil { return nil, convertError(err) } if resp.Node == nil { return nil, ErrBadResponse } value := topo.NewSrvKeyspace(int64(resp.Node.ModifiedIndex)) if err := json.Unmarshal([]byte(resp.Node.Value), value); err != nil { return nil, fmt.Errorf("bad serving keyspace data (%v): %q", err, resp.Node.Value) } return value, nil }