Documentation ¶
Overview ¶
Package topoproto contains utility functions to deal with the proto3 structures defined in proto/topodata.
Index ¶
- Constants
- Variables
- func IsTypeInList(tabletType topodatapb.TabletType, types []topodatapb.TabletType) bool
- func KeyspaceShardString(keyspace, shard string) string
- func MakeStringTypeList(types []topodatapb.TabletType) []string
- func MySQLIP(tablet *topodatapb.Tablet) (string, error)
- func MysqlAddr(tablet *topodatapb.Tablet) string
- func MysqlHostname(tablet *topodatapb.Tablet) string
- func MysqlPort(tablet *topodatapb.Tablet) int32
- func ParseDestination(targetString string, defaultTabletType topodatapb.TabletType) (string, topodatapb.TabletType, key.Destination, error)
- func ParseKeyspaceShard(param string) (string, string, error)
- func ParseKeyspaceType(param string) (topodatapb.KeyspaceType, error)
- func ParseTabletAlias(aliasStr string) (*topodatapb.TabletAlias, error)
- func ParseTabletType(param string) (topodatapb.TabletType, error)
- func ParseTabletTypes(param string) ([]topodatapb.TabletType, error)
- func ParseUID(value string) (uint32, error)
- func SetMysqlPort(tablet *topodatapb.Tablet, port int32)
- func SourceShardAsHTML(source *topodatapb.Shard_SourceShard) template.HTML
- func SourceShardString(source *topodatapb.Shard_SourceShard) string
- func SrvKeyspaceGetPartition(sk *topodatapb.SrvKeyspace, tabletType topodatapb.TabletType) *topodatapb.SrvKeyspace_KeyspacePartition
- func TabletAliasEqual(left, right *topodatapb.TabletAlias) bool
- func TabletAliasIsZero(ta *topodatapb.TabletAlias) bool
- func TabletAliasString(ta *topodatapb.TabletAlias) string
- func TabletAliasUIDStr(ta *topodatapb.TabletAlias) string
- func TabletDbName(tablet *topodatapb.Tablet) string
- func TabletIsAssigned(tablet *topodatapb.Tablet) bool
- func TabletTypeLString(tabletType topodatapb.TabletType) string
- func TabletTypeListVar(p *[]topodatapb.TabletType, name string, usage string)
- func TabletTypeVar(p *topodatapb.TabletType, name string, defaultValue topodatapb.TabletType, ...)
- type ShardReferenceArray
- type TabletAliasList
- type TabletTypeFlag
- type TabletTypeListValue
Constants ¶
const (
// VtDbPrefix + keyspace is the default name for databases.
VtDbPrefix = "vt_"
)
Variables ¶
var AllTabletTypes = []topodatapb.TabletType{ topodatapb.TabletType_MASTER, topodatapb.TabletType_REPLICA, topodatapb.TabletType_RDONLY, topodatapb.TabletType_BATCH, topodatapb.TabletType_SPARE, topodatapb.TabletType_EXPERIMENTAL, topodatapb.TabletType_BACKUP, topodatapb.TabletType_RESTORE, topodatapb.TabletType_DRAINED, }
AllTabletTypes lists all the possible tablet types
var SlaveTabletTypes = []topodatapb.TabletType{ topodatapb.TabletType_REPLICA, topodatapb.TabletType_RDONLY, topodatapb.TabletType_BATCH, topodatapb.TabletType_SPARE, topodatapb.TabletType_EXPERIMENTAL, topodatapb.TabletType_BACKUP, topodatapb.TabletType_RESTORE, topodatapb.TabletType_DRAINED, }
SlaveTabletTypes contains all the tablet type that can have replication enabled.
Functions ¶
func IsTypeInList ¶
func IsTypeInList(tabletType topodatapb.TabletType, types []topodatapb.TabletType) bool
IsTypeInList returns true if the given type is in the list. Use it with AllTabletType and SlaveTabletType for instance.
func KeyspaceShardString ¶
KeyspaceShardString returns a "keyspace/shard" string taking keyspace and shard as separate inputs.
func MakeStringTypeList ¶
func MakeStringTypeList(types []topodatapb.TabletType) []string
MakeStringTypeList returns a list of strings that match the input list.
func MySQLIP ¶
func MySQLIP(tablet *topodatapb.Tablet) (string, error)
MySQLIP returns the MySQL server's IP by resolvign the host name.
func MysqlAddr ¶
func MysqlAddr(tablet *topodatapb.Tablet) string
MysqlAddr returns the host:port of the mysql server.
func MysqlHostname ¶
func MysqlHostname(tablet *topodatapb.Tablet) string
MysqlHostname returns the mysql host name. This function also handles legacy behavior: it uses the tablet's hostname if MysqlHostname is not specified. TODO(sougou); deprecate this function after 3.0.
func MysqlPort ¶
func MysqlPort(tablet *topodatapb.Tablet) int32
MysqlPort returns the mysql port. This function also handles legacy behavior: it uses the tablet's port map if MysqlHostname is not specified. TODO(sougou); deprecate this function after 3.0.
func ParseDestination ¶
func ParseDestination(targetString string, defaultTabletType topodatapb.TabletType) (string, topodatapb.TabletType, key.Destination, error)
ParseDestination parses the string representation of a Destination of the form keyspace:shard@tablet_type. You can use a / instead of a :.
func ParseKeyspaceShard ¶
ParseKeyspaceShard parse a "keyspace/shard" or "keyspace:shard" string and extract both keyspace and shard
func ParseKeyspaceType ¶ added in v1.0.1
func ParseKeyspaceType(param string) (topodatapb.KeyspaceType, error)
ParseKeyspaceType parses a string into a KeyspaceType
func ParseTabletAlias ¶
func ParseTabletAlias(aliasStr string) (*topodatapb.TabletAlias, error)
ParseTabletAlias returns a TabletAlias for the input string, of the form <cell>-<uid>
func ParseTabletType ¶
func ParseTabletType(param string) (topodatapb.TabletType, error)
ParseTabletType parses the tablet type into the enum.
func ParseTabletTypes ¶
func ParseTabletTypes(param string) ([]topodatapb.TabletType, error)
ParseTabletTypes parses a comma separated list of tablet types and returns a slice with the respective enums.
func SetMysqlPort ¶
func SetMysqlPort(tablet *topodatapb.Tablet, port int32)
SetMysqlPort sets the mysql port for tablet. This function also handles legacy by setting the port in PortMap. TODO(sougou); deprecate this function after 3.0.
func SourceShardAsHTML ¶
func SourceShardAsHTML(source *topodatapb.Shard_SourceShard) template.HTML
SourceShardAsHTML returns a HTML version of the object.
func SourceShardString ¶
func SourceShardString(source *topodatapb.Shard_SourceShard) string
SourceShardString returns a printable view of a SourceShard.
func SrvKeyspaceGetPartition ¶
func SrvKeyspaceGetPartition(sk *topodatapb.SrvKeyspace, tabletType topodatapb.TabletType) *topodatapb.SrvKeyspace_KeyspacePartition
SrvKeyspaceGetPartition returns a Partition for the given tablet type, or nil if it's not there.
func TabletAliasEqual ¶
func TabletAliasEqual(left, right *topodatapb.TabletAlias) bool
TabletAliasEqual returns true if two TabletAlias match
func TabletAliasIsZero ¶
func TabletAliasIsZero(ta *topodatapb.TabletAlias) bool
TabletAliasIsZero returns true iff cell and uid are empty
func TabletAliasString ¶
func TabletAliasString(ta *topodatapb.TabletAlias) string
TabletAliasString formats a TabletAlias
func TabletAliasUIDStr ¶
func TabletAliasUIDStr(ta *topodatapb.TabletAlias) string
TabletAliasUIDStr returns a string version of the uid
func TabletDbName ¶
func TabletDbName(tablet *topodatapb.Tablet) string
TabletDbName is usually implied by keyspace. Having the shard information in the database name complicates mysql replication.
func TabletIsAssigned ¶
func TabletIsAssigned(tablet *topodatapb.Tablet) bool
TabletIsAssigned returns if this tablet is assigned to a keyspace and shard. A "scrap" node will show up as assigned even though its data cannot be used for serving.
func TabletTypeLString ¶
func TabletTypeLString(tabletType topodatapb.TabletType) string
TabletTypeLString returns a lower case version of the tablet type, or "unknown" if not known.
func TabletTypeListVar ¶
func TabletTypeListVar(p *[]topodatapb.TabletType, name string, usage string)
TabletTypeListVar defines a []TabletType flag with the specified name and usage string. The argument 'p' points to a []TabletType in which to store the value of the flag.
func TabletTypeVar ¶
func TabletTypeVar(p *topodatapb.TabletType, name string, defaultValue topodatapb.TabletType, usage string)
TabletTypeVar defines a TabletType flag with the specified name, default value and usage string. The argument 'p' points to a tabletType in which to store the value of the flag.
Types ¶
type ShardReferenceArray ¶
type ShardReferenceArray []*topodatapb.ShardReference
ShardReferenceArray is used for sorting ShardReference arrays
func (ShardReferenceArray) Len ¶
func (sra ShardReferenceArray) Len() int
Len implements sort.Interface
func (ShardReferenceArray) Less ¶
func (sra ShardReferenceArray) Less(i, j int) bool
Len implements sort.Interface
func (ShardReferenceArray) Sort ¶
func (sra ShardReferenceArray) Sort()
Sort will sort the list according to KeyRange.Start
func (ShardReferenceArray) Swap ¶
func (sra ShardReferenceArray) Swap(i, j int)
Len implements sort.Interface
type TabletAliasList ¶
type TabletAliasList []*topodatapb.TabletAlias
TabletAliasList is used mainly for sorting
func (TabletAliasList) Less ¶
func (tal TabletAliasList) Less(i, j int) bool
Less is part of sort.Interface
func (TabletAliasList) Swap ¶
func (tal TabletAliasList) Swap(i, j int)
Swap is part of sort.Interface
type TabletTypeFlag ¶
type TabletTypeFlag topodatapb.TabletType
TabletTypeFlag implements the flag.Value interface, for parsing a command-line value into a TabletType.
func (*TabletTypeFlag) Get ¶
func (ttf *TabletTypeFlag) Get() interface{}
Get is for satisflying the internal flag interface.
func (*TabletTypeFlag) Set ¶
func (ttf *TabletTypeFlag) Set(v string) error
Set is part of the flag.Value interface.
func (*TabletTypeFlag) String ¶
func (ttf *TabletTypeFlag) String() string
String is part of the flag.Value interface.
type TabletTypeListValue ¶
type TabletTypeListValue []topodatapb.TabletType
TabletTypeListValue implements the flag.Value interface, for parsing a command-line comma-separated list of value into a slice of TabletTypes.
func (*TabletTypeListValue) Get ¶
func (ttlv *TabletTypeListValue) Get() interface{}
Get is for satisflying the internal flag interface.
func (*TabletTypeListValue) Set ¶
func (ttlv *TabletTypeListValue) Set(v string) (err error)
Set is part of the flag.Value interface.
func (*TabletTypeListValue) String ¶
func (ttlv *TabletTypeListValue) String() string
String is part of the flag.Value interface.