// UpdateTablet is part of the topo.Server interface func (zkts *Server) UpdateTablet(ctx context.Context, tablet *topo.TabletInfo, existingVersion int64) (int64, error) { zkTabletPath := TabletPathForAlias(tablet.Alias) stat, err := zkts.zconn.Set(zkTabletPath, tablet.JSON(), int(existingVersion)) if err != nil { if zookeeper.IsError(err, zookeeper.ZBADVERSION) { err = topo.ErrBadVersion } else if zookeeper.IsError(err, zookeeper.ZNONODE) { err = topo.ErrNoNode } return 0, err } event.Dispatch(&events.TabletChange{ Tablet: *tablet.Tablet, Status: "updated", }) return int64(stat.Version()), nil }