Browse Source

Improve experience trying to get Controller on old versions

Evan Huus 7 years ago
parent
commit
b836493734
1 changed files with 5 additions and 1 deletions
  1. 5 1
      client.go

+ 5 - 1
client.go

@@ -17,7 +17,7 @@ type Client interface {
 	// altered after it has been created.
 	// altered after it has been created.
 	Config() *Config
 	Config() *Config
 
 
-	// Controller returns the cluster controller broker.
+	// Controller returns the cluster controller broker. Requires Kafka 0.10 or higher.
 	Controller() (*Broker, error)
 	Controller() (*Broker, error)
 
 
 	// Brokers returns the current set of active brokers as retrieved from cluster metadata.
 	// Brokers returns the current set of active brokers as retrieved from cluster metadata.
@@ -388,6 +388,10 @@ func (client *client) Controller() (*Broker, error) {
 		return nil, ErrClosedClient
 		return nil, ErrClosedClient
 	}
 	}
 
 
+	if !client.conf.Version.IsAtLeast(V0_10_0_0) {
+		return nil, ErrUnsupportedVersion
+	}
+
 	controller := client.cachedController()
 	controller := client.cachedController()
 	if controller == nil {
 	if controller == nil {
 		if err := client.refreshMetadata(); err != nil {
 		if err := client.refreshMetadata(); err != nil {