Documentation ¶
Overview ¶
topotools package contains a few utility classes to handle topo.Server objects, and transitions.
Index ¶
- func CopyKeyspaces(fromTS, toTS topo.Server)
- func CopyShardReplications(fromTS, toTS topo.Server)
- func CopyShards(fromTS, toTS topo.Server, deleteKeyspaceShards bool)
- func CopyTablets(fromTS, toTS topo.Server)
- type Tee
- func (tee *Tee) ActionEventLoop(tabletAlias topo.TabletAlias, ...)
- func (tee *Tee) Close()
- func (tee *Tee) CreateKeyspace(keyspace string, value *topo.Keyspace) error
- func (tee *Tee) CreateShard(keyspace, shard string, value *topo.Shard) error
- func (tee *Tee) CreateShardReplication(cell, keyspace, shard string, sr *topo.ShardReplication) error
- func (tee *Tee) CreateTablet(tablet *topo.Tablet) error
- func (tee *Tee) CreateTabletPidNode(tabletAlias topo.TabletAlias, contents string, done chan struct{}) error
- func (tee *Tee) DeleteKeyspaceShards(keyspace string) error
- func (tee *Tee) DeleteShard(keyspace, shard string) error
- func (tee *Tee) DeleteShardReplication(cell, keyspace, shard string) error
- func (tee *Tee) DeleteSrvShard(cell, keyspace, shard string) error
- func (tee *Tee) DeleteSrvTabletType(cell, keyspace, shard string, tabletType topo.TabletType) error
- func (tee *Tee) DeleteTablet(alias topo.TabletAlias) error
- func (tee *Tee) GetEndPoints(cell, keyspace, shard string, tabletType topo.TabletType) (*topo.EndPoints, error)
- func (tee *Tee) GetKeyspace(keyspace string) (*topo.KeyspaceInfo, error)
- func (tee *Tee) GetKeyspaces() ([]string, error)
- func (tee *Tee) GetKnownCells() ([]string, error)
- func (tee *Tee) GetShard(keyspace, shard string) (*topo.ShardInfo, error)
- func (tee *Tee) GetShardCritical(keyspace, shard string) (*topo.ShardInfo, error)
- func (tee *Tee) GetShardNames(keyspace string) ([]string, error)
- func (tee *Tee) GetShardReplication(cell, keyspace, shard string) (*topo.ShardReplicationInfo, error)
- func (tee *Tee) GetSrvKeyspace(cell, keyspace string) (*topo.SrvKeyspace, error)
- func (tee *Tee) GetSrvKeyspaceNames(cell string) ([]string, error)
- func (tee *Tee) GetSrvShard(cell, keyspace, shard string) (*topo.SrvShard, error)
- func (tee *Tee) GetSrvTabletTypesPerShard(cell, keyspace, shard string) ([]topo.TabletType, error)
- func (tee *Tee) GetSubprocessFlags() []string
- func (tee *Tee) GetTablet(alias topo.TabletAlias) (*topo.TabletInfo, error)
- func (tee *Tee) GetTabletsByCell(cell string) ([]topo.TabletAlias, error)
- func (tee *Tee) LockKeyspaceForAction(keyspace, contents string, timeout time.Duration, interrupted chan struct{}) (string, error)
- func (tee *Tee) LockShardForAction(keyspace, shard, contents string, timeout time.Duration, ...) (string, error)
- func (tee *Tee) PurgeTabletActions(tabletAlias topo.TabletAlias, canBePurged func(data string) bool) error
- func (tee *Tee) ReadTabletActionPath(actionPath string) (topo.TabletAlias, string, int64, error)
- func (tee *Tee) StoreTabletActionResponse(actionPath, data string) error
- func (tee *Tee) UnblockTabletAction(actionPath string) error
- func (tee *Tee) UnlockKeyspaceForAction(keyspace, lockPath, results string) error
- func (tee *Tee) UnlockShardForAction(keyspace, shard, lockPath, results string) error
- func (tee *Tee) UpdateEndPoints(cell, keyspace, shard string, tabletType topo.TabletType, ...) error
- func (tee *Tee) UpdateKeyspace(ki *topo.KeyspaceInfo) error
- func (tee *Tee) UpdateShard(si *topo.ShardInfo) error
- func (tee *Tee) UpdateShardReplicationFields(cell, keyspace, shard string, update func(*topo.ShardReplication) error) error
- func (tee *Tee) UpdateSrvKeyspace(cell, keyspace string, srvKeyspace *topo.SrvKeyspace) error
- func (tee *Tee) UpdateSrvShard(cell, keyspace, shard string, srvShard *topo.SrvShard) error
- func (tee *Tee) UpdateTablet(tablet *topo.TabletInfo, existingVersion int64) (newVersion int64, err error)
- func (tee *Tee) UpdateTabletAction(actionPath, data string, version int64) error
- func (tee *Tee) UpdateTabletEndpoint(cell, keyspace, shard string, tabletType topo.TabletType, addr *topo.EndPoint) error
- func (tee *Tee) UpdateTabletFields(tabletAlias topo.TabletAlias, update func(*topo.Tablet) error) error
- func (tee *Tee) ValidateShard(keyspace, shard string) error
- func (tee *Tee) ValidateTablet(alias topo.TabletAlias) error
- func (tee *Tee) ValidateTabletActions(tabletAlias topo.TabletAlias) error
- func (tee *Tee) ValidateTabletPidNode(tabletAlias topo.TabletAlias) error
- func (tee *Tee) WaitForTabletAction(actionPath string, waitTime time.Duration, interrupted chan struct{}) (string, error)
- func (tee *Tee) WriteTabletAction(tabletAlias topo.TabletAlias, contents string) (string, error)
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func CopyKeyspaces ¶
CopyKeyspaces will create the keyspaces in the destination topo
func CopyShardReplications ¶
CopyShardReplications will create the ShardReplication objects in the destination topo
func CopyShards ¶
CopyShards will create the shards in the destination topo
func CopyTablets ¶
CopyTablets will create the tablets in the destination topo
Types ¶
type Tee ¶
type Tee struct {
// contains filtered or unexported fields
}
Tee is an implementation of topo.Server that uses a primary underlying topo.Server for all changes, but also duplicates the changes to a secondary topo.Server. It also locks both topo servers when needed. It is meant to be used during transitions from one topo.Server to another.
- primary: we read everything from it, and write to it - secondary: we write to it as well, but we usually don't fail. - we lock primary/secondary if reverseLockOrder is False, or secondary/primary if reverseLockOrder is True.
func (*Tee) ActionEventLoop ¶
func (tee *Tee) ActionEventLoop(tabletAlias topo.TabletAlias, dispatchAction func(actionPath, data string) error, done chan struct{})
func (*Tee) CreateKeyspace ¶
func (*Tee) CreateShard ¶
func (*Tee) CreateShardReplication ¶
func (tee *Tee) CreateShardReplication(cell, keyspace, shard string, sr *topo.ShardReplication) error
func (*Tee) CreateTabletPidNode ¶
func (tee *Tee) CreateTabletPidNode(tabletAlias topo.TabletAlias, contents string, done chan struct{}) error
func (*Tee) DeleteKeyspaceShards ¶
func (*Tee) DeleteShard ¶
func (*Tee) DeleteShardReplication ¶
func (*Tee) DeleteSrvShard ¶
func (*Tee) DeleteSrvTabletType ¶
func (tee *Tee) DeleteSrvTabletType(cell, keyspace, shard string, tabletType topo.TabletType) error
func (*Tee) DeleteTablet ¶
func (tee *Tee) DeleteTablet(alias topo.TabletAlias) error
func (*Tee) GetEndPoints ¶
func (*Tee) GetKeyspace ¶
func (tee *Tee) GetKeyspace(keyspace string) (*topo.KeyspaceInfo, error)
func (*Tee) GetKeyspaces ¶
func (*Tee) GetKnownCells ¶
func (*Tee) GetShardCritical ¶
func (*Tee) GetShardReplication ¶
func (tee *Tee) GetShardReplication(cell, keyspace, shard string) (*topo.ShardReplicationInfo, error)
func (*Tee) GetSrvKeyspace ¶
func (tee *Tee) GetSrvKeyspace(cell, keyspace string) (*topo.SrvKeyspace, error)
func (*Tee) GetSrvKeyspaceNames ¶
func (*Tee) GetSrvShard ¶
func (*Tee) GetSrvTabletTypesPerShard ¶
func (tee *Tee) GetSrvTabletTypesPerShard(cell, keyspace, shard string) ([]topo.TabletType, error)
func (*Tee) GetSubprocessFlags ¶
func (*Tee) GetTablet ¶
func (tee *Tee) GetTablet(alias topo.TabletAlias) (*topo.TabletInfo, error)
func (*Tee) GetTabletsByCell ¶
func (tee *Tee) GetTabletsByCell(cell string) ([]topo.TabletAlias, error)
func (*Tee) LockKeyspaceForAction ¶
func (*Tee) LockShardForAction ¶
func (*Tee) PurgeTabletActions ¶
func (*Tee) ReadTabletActionPath ¶
func (*Tee) StoreTabletActionResponse ¶
func (*Tee) UnblockTabletAction ¶
func (*Tee) UnlockKeyspaceForAction ¶
func (*Tee) UnlockShardForAction ¶
func (*Tee) UpdateEndPoints ¶
func (*Tee) UpdateKeyspace ¶
func (tee *Tee) UpdateKeyspace(ki *topo.KeyspaceInfo) error
func (*Tee) UpdateShardReplicationFields ¶
func (*Tee) UpdateSrvKeyspace ¶
func (tee *Tee) UpdateSrvKeyspace(cell, keyspace string, srvKeyspace *topo.SrvKeyspace) error
func (*Tee) UpdateSrvShard ¶
func (*Tee) UpdateTablet ¶
func (*Tee) UpdateTabletAction ¶
func (*Tee) UpdateTabletEndpoint ¶
func (*Tee) UpdateTabletFields ¶
func (*Tee) ValidateShard ¶
func (*Tee) ValidateTablet ¶
func (tee *Tee) ValidateTablet(alias topo.TabletAlias) error
func (*Tee) ValidateTabletActions ¶
func (tee *Tee) ValidateTabletActions(tabletAlias topo.TabletAlias) error
func (*Tee) ValidateTabletPidNode ¶
func (tee *Tee) ValidateTabletPidNode(tabletAlias topo.TabletAlias) error