Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Expand
titleAdminClient API

public

class

AdminClient

{

{

/**

* A client is instantiated by providing a set of


* A client is instantiated by providing a set of key-value

pairs

as

configuration.

Most

*

of

the

settings

will

be

related

to

NetworkClient * * @param properties settings related to Network client and at least one broker from KafkaCluster to connect to */ public AdminClient(Properties properties)  
    /**
     * Initiates topics creation.  
     * This is an asynchronous call, it returns immediately once the server has accepted request and stored respective data in zookeeper.
     * To simulate a simple blocking call Future.get can be called. This will ensure that metadata about newly created topics was propagated
     * to all brokers
     *
     * @param createTopicRequestBody holder (built by means of respective Builder) of all required arguments to create topics
* @return

NetworkClient
*
* @param properties settings related to Network client and at least one broker from KafkaCluster to connect to
*/
public AdminClient(Properties properties);

/**
* Initiates topics creation.
* This is an asynchronous call, it returns immediately once the server has accepted request and stored respective data in zookeeper.
* To simulate a simple blocking call Future.get can be called. This will ensure that metadata about newly created topics was propagated
* to all brokers
*
* @param createTopicRequestBody holder (built by means of respective Builder) of all required arguments to create topics
* @return java.util.concurrent.Future

which

holds

topics

creation

result

-

a

map

topic-name

-

error

code

     * 
     * @throws ApiException in case of global error, which means topic creation was not even started
     */
    public Future<Map<String, Errors>> createTopics(CreateTopicRequestBody createTopicRequestBody) throws ApiException;
    
    /**
     * Initiates topics alteration.  
     * This is an asynchronous call, it returns immediately once the server has accepted request and stored/changed respective data in zookeeper.
     * To simulate a simple blocking call Future.get can be called. This will ensure that updated metadata about altered topics was propagated
     * to all brokers
     *
     * @param alterTopicRequestBody holder (built by means of respective Builder) of all required arguments to alter topics
* @return

*
* @throws ApiException in case of global error, which means topic creation was not even started
*/
public Future<Map<String, Errors>> createTopics(CreateTopicRequestBody createTopicRequestBody) throws ApiException;

/**
* Initiates topics alteration.
* This is an asynchronous call, it returns immediately once the server has accepted request and stored/changed respective data in zookeeper.
* To simulate a simple blocking call Future.get can be called. This will ensure that updated metadata about altered topics was propagated
* to all brokers
*
* @param alterTopicRequestBody holder (built by means of respective Builder) of all required arguments to alter topics
* @return java.util.concurrent.Future

which

holds

topics

alteration

result

-

a

map

topic-name

-

error

code


     * 
     * @throws ApiException in case of global error, which means topic creation was not even started
     */
    public Future<Map<String, Errors>> alterTopics(AlterTopicRequestBody alterTopicRequestBody) throws ApiException;
    
    /**
     * Initiates topic deletion.
     * This is an asynchronous call, it returns immediately once server has accepted request and marked requested topics for deletion in zookeeper.
     * To simulate a simple blocking call Future.get can be called. This will ensure that metadata with updated topic list was propagated to 
     * all brokers
     *
     * @param topics topic names to be deleted
* @return

*
* @throws ApiException in case of global error, which means topic creation was not even started
*/
public Future<Map<String, Errors>> alterTopics(AlterTopicRequestBody alterTopicRequestBody) throws ApiException;

/**
* Initiates topic deletion.
* This is an asynchronous call, it returns immediately once server has accepted request and marked requested topics for deletion in zookeeper.
* To simulate a simple blocking call Future.get can be called. This will ensure that metadata with updated topic list was propagated to
* all brokers
*
* @param topics topic names to be deleted
* @return java.util.concurrent.Future

which

holds

topics

deletion

result

-

a

map

topic-name

-

error

code

*

*

@throws

ApiException

in

case

of

global

error,

which

means

topic

deletion

was

not

even

started

*/


public

Future<Map<String,

Errors>>

deleteTopics(List<String>

topics)

throws

ApiException;


/**

* Lists all available topics in Kafka cluster.
     * Topic is considered available if all brokers in cluster have received and cached metadata about it
     *
     * @return list of topic names
     *
     * @throws ApiException
     */
    public List<String> listTopics() throws ApiException;
 
    /**
     * Checks whether topic with the given name exists
     *
     * @param topic name to be checked
     * @return true if all brokers in cluster have received and cached metadata about it
     * 
     * @throws ApiException
     */
    public boolean topicExists(String topic) throws ApiException;
    
    /**
     * TODO: not finalized yet
     * Request replication information about Kafka topics
     * 
     * @return a mapping between topic name and topic description
     * @throws ApiException in case of global error, which means topic description cannot be fetched for all topics
     */
    public Map<String, DescribeTopicOutput> describeTopics(List<String> topicNames) throws ApiException;
    
    /**
     * Initiates long-running reassign partitions procedure.
     * This is an asynchronous call, it returns immediately once server has accepted request, and created admin path in zookeeper.
     * To simulate a simple blocking call Future.get can be called. This will ensure all that all partitions reassignments have completed.
     * Note: currently there are only two possible states for reassigned partition: Completed, In Progress.
     *
     * @param reassignment schema among which replicas partitions will be reassigned  
     * 
     * @return java.util.concurrent.Future which is completed once all partitions have been reassigned
     * 
* @throws ApiException in case partition reassignment wasn't initiated on server */ public Future<Void> reassignPartitions(Map<String, Map<Integer, List<Integer>>> reassignment) throws


* Lists all available topics in Kafka cluster.
* Topic is considered available if all brokers in cluster have received and cached metadata about it
*
* @return list of topic names
*
* @throws ApiException
*/
public List<String> listTopics() throws ApiException;

/**
* Checks whether topic with the given name exists
*
* @param topic name to be checked
* @return true if all brokers in cluster have received and cached metadata about it
*
* @throws ApiException
*/
public boolean topicExists(String topic) throws ApiException;

/**
* TODO: not finalized yet
* Request replication information about Kafka topics
*
* @return a mapping between topic name and topic description
* @throws ApiException in case of global error, which means topic description cannot be fetched for all topics
*/
public Map<String, DescribeTopicOutput> describeTopics(List<String> topicNames) throws ApiException;

/**
* Initiates long-running reassign partitions procedure.
* This is an asynchronous call, it returns immediately once server has accepted request, and created admin path in zookeeper.
* To simulate a simple blocking call Future.get can be called. This will ensure all that all partitions reassignments have completed.
* Note: currently there are only two possible states for reassigned partition: Completed, In Progress.
*
* @param reassignment schema among which replicas partitions will be reassigned
*
* @return java.util.concurrent.Future which is completed once all partitions have been reassigned
*
* @throws ApiException in case partition reassignment wasn't initiated on server
*/
public Future<Void> reassignPartitions(Map<String, Map<Integer, List<Integer>>> reassignment) throws ApiException;
/**
* Checks the interim status of the partitions reassignment.
* Reassignment for concrete partition is considered completed if partition has been removed from
* admin zookeeper path and all cluster brokers have received and cached relevant AR metadata for the
* given partition
*
* @param reassignment schema same as was used for reassign partitions request
*
* @return two maps - completed and partitions for which reassignment is still in progress
* @throws ApiException in case reassignment verification wasn't initiated on server
*/
public ReassignmentResult verifyReassignPartitions(Map<String, Map<Integer, List<Integer>>> reassignment) throws ApiException;
/**
* Initiates long-running preferred replica leader election procedure
* This is an asynchronous call, it returns immediately once server has accepted request, and created admin path in zookeeper.
* To simulate a simple blocking call Future.get can be called. This will ensure that all partitions leader has moved to
* preferred replica.
* Note: currently there are only two possible states for preferred replica leader election: Completed, In Progress.
*
* @param partitions that need to moved leader to preferred replica
*
* @return java.util.concurrent.Future which is completed once all partitions have moved leader to preferred replica
*
* @throws ApiException in case preferred replica leader election wasn't initiated on server
*/
public Future<Void> preferredReplicaLeaderElection(Map<String, List<Integer> partitions) throws ApiException;
/**
* Checks the interim status of the preferred replica leader election.
* Preferred replica leader election for concrete partition is considered completed if all cluster brokers have received and cached
* relevant metadata for the given partition
*
* @param partitions same partitions as for preferred replica leader election request
*
* @return two maps - completed and partitions for which procedure is still in progress
* @throws ApiException in case preferred replica election verification wasn't initiated on server
*/
public PreferredReplicaLeaderElectionResult verifyPreferredReplicaLeaderElection(Map<String, List<Integer> partitions)
throws ApiException;

}

4. Interactive Shell / CLI tool

...