Documentation ¶
Overview ¶
Package clusterspecifier contains the ClusterSpecifier interface and a registry for storing and retrieving their implementations.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func Register ¶
func Register(cs ClusterSpecifier)
Register registers the ClusterSpecifierPlugin to the ClusterSpecifier map. cs.TypeURLs() will be used as the types for this ClusterSpecifierPlugin.
NOTE: this function must only be called during initialization time (i.e. in an init() function), and is not thread-safe. If multiple cluster specifier plugins are registered with the same type URL, the one registered last will take effect.
func UnregisterForTesting ¶
func UnregisterForTesting(typeURL string)
UnregisterForTesting unregisters the ClusterSpecifier for testing purposes.
Types ¶
type BalancerConfig ¶
type BalancerConfig []map[string]interface{}
BalancerConfig is the Go Native JSON representation of a balancer configuration.
type ClusterSpecifier ¶
type ClusterSpecifier interface { // TypeURLs are the proto message types supported by this // ClusterSpecifierPlugin. A ClusterSpecifierPlugin will be registered by // each of its supported message types. TypeURLs() []string // ParseClusterSpecifierConfig parses the provided configuration // proto.Message from the top level RDS configuration. The resulting // BalancerConfig will be used as configuration for a child LB Policy of the // Cluster Manager LB Policy. A nil BalancerConfig is invalid. ParseClusterSpecifierConfig(proto.Message) (BalancerConfig, error) }
ClusterSpecifier defines the parsing functionality of a Cluster Specifier.
func Get ¶
func Get(typeURL string) ClusterSpecifier
Get returns the ClusterSpecifier registered with typeURL.
If no cluster specifier is registered with typeURL, nil will be returned.