Search in sources :

Example 1 with UnregisterBrokerResponse

use of org.apache.kafka.common.requests.UnregisterBrokerResponse in project kafka by apache.

the class KafkaAdminClient method unregisterBroker.

@Override
public UnregisterBrokerResult unregisterBroker(int brokerId, UnregisterBrokerOptions options) {
    final KafkaFutureImpl<Void> future = new KafkaFutureImpl<>();
    final long now = time.milliseconds();
    final Call call = new Call("unregisterBroker", calcDeadlineMs(now, options.timeoutMs()), new LeastLoadedNodeProvider()) {

        @Override
        UnregisterBrokerRequest.Builder createRequest(int timeoutMs) {
            UnregisterBrokerRequestData data = new UnregisterBrokerRequestData().setBrokerId(brokerId);
            return new UnregisterBrokerRequest.Builder(data);
        }

        @Override
        void handleResponse(AbstractResponse abstractResponse) {
            final UnregisterBrokerResponse response = (UnregisterBrokerResponse) abstractResponse;
            Errors error = Errors.forCode(response.data().errorCode());
            switch(error) {
                case NONE:
                    future.complete(null);
                    break;
                case REQUEST_TIMED_OUT:
                    throw error.exception();
                default:
                    log.error("Unregister broker request for broker ID {} failed: {}", brokerId, error.message());
                    future.completeExceptionally(error.exception());
                    break;
            }
        }

        @Override
        void handleFailure(Throwable throwable) {
            future.completeExceptionally(throwable);
        }
    };
    runnable.call(call, now);
    return new UnregisterBrokerResult(future);
}
Also used : UnregisterBrokerRequestData(org.apache.kafka.common.message.UnregisterBrokerRequestData) AbstractResponse(org.apache.kafka.common.requests.AbstractResponse) ChannelBuilder(org.apache.kafka.common.network.ChannelBuilder) UnregisterBrokerRequest(org.apache.kafka.common.requests.UnregisterBrokerRequest) KafkaFutureImpl(org.apache.kafka.common.internals.KafkaFutureImpl) Errors(org.apache.kafka.common.protocol.Errors) UnregisterBrokerResponse(org.apache.kafka.common.requests.UnregisterBrokerResponse)

Aggregations

KafkaFutureImpl (org.apache.kafka.common.internals.KafkaFutureImpl)1 UnregisterBrokerRequestData (org.apache.kafka.common.message.UnregisterBrokerRequestData)1 ChannelBuilder (org.apache.kafka.common.network.ChannelBuilder)1 Errors (org.apache.kafka.common.protocol.Errors)1 AbstractResponse (org.apache.kafka.common.requests.AbstractResponse)1 UnregisterBrokerRequest (org.apache.kafka.common.requests.UnregisterBrokerRequest)1 UnregisterBrokerResponse (org.apache.kafka.common.requests.UnregisterBrokerResponse)1