Thanks for the KIP Gantigmaa, > { "name": "IncludeFencedBrokers", "type": "bool", "versions": "2+", "about": > "Whether to include fenced brokers." }
Did you consider making "includeFencedBroker" field value implicitly based on the DescribeClusterRequest version and the EndpointType? For example, if the request version is 2 and the endpoint type is broker, the response will include all of the brokers and if they are fenced or unfenced. I am suggesting this because a request of endpointType controller and includeFencedBroker true doesn't make sense. In general, users of the AdminClient cannot easily discover the API versions supported by the destination node since the destination node may not be known when the admin call is made. > { "name": "Fenced", "type": "bool", "versions": "2+", "about": "Whether the > broker is fenced." } It is unfortunate that this RPC is handled using the metadata cache. That means that the user cannot find out when was the last time the broker contacted the controller cluster. Knowing that a broker is fenced is not enough information to determine to unregister a broker. If the user knows that the broker has been fenced for hours or day, it may be enough information to decide to unregister the cluster. > kafka-cluster.sh --bootstrap-server localhost:9092 list-brokers For this command to work, the user must pass --bootstrap-server. If the user passes --bootstrap-controller, the controller nodes will get listed instead. Are you planning to also implement "kafka-cluster --bootstrap-controller <endpoints> list-controllers"? The other option is to make the command "list-nodes" and it will list the controllers or brokers based on the bootstrap server used. Or are you planning to fix the controller side and broker side implementation so that controller nodes can return registered brokers and broker nodes can return registered controllers? I guess the other option is to limit the kafka-cluster tool for brokers and they must use the kafka-metadata-quorum tool for controllers. What do you think? > 2 broker-2 9092 fenced → (Broker 2 has shutdown but still > registered) Is the tool going to print the string "→ (Broker 2 has shutdown but still registered)" to stdout? Thanks, -José