Search in sources :

Example 36 with TopicPartitionInfo

use of org.apache.kafka.common.TopicPartitionInfo in project apache-kafka-on-k8s by banzaicloud.

the class WorkerUtilsTest method testCreatesNotExistingTopics.

@Test
public void testCreatesNotExistingTopics() throws Throwable {
    // should be no topics before the call
    assertEquals(0, adminClient.listTopics().names().get().size());
    WorkerUtils.createTopics(log, adminClient, Collections.singletonMap(TEST_TOPIC, NEW_TEST_TOPIC), false);
    assertEquals(Collections.singleton(TEST_TOPIC), adminClient.listTopics().names().get());
    assertEquals(new TopicDescription(TEST_TOPIC, false, Collections.singletonList(new TopicPartitionInfo(0, broker1, singleReplica, Collections.<Node>emptyList()))), adminClient.describeTopics(Collections.singleton(TEST_TOPIC)).values().get(TEST_TOPIC).get());
}
Also used : TopicPartitionInfo(org.apache.kafka.common.TopicPartitionInfo) Node(org.apache.kafka.common.Node) TopicDescription(org.apache.kafka.clients.admin.TopicDescription) Test(org.junit.Test)

Example 37 with TopicPartitionInfo

use of org.apache.kafka.common.TopicPartitionInfo in project apache-kafka-on-k8s by banzaicloud.

the class WorkerUtilsTest method testCreateOneTopic.

@Test
public void testCreateOneTopic() throws Throwable {
    Map<String, NewTopic> newTopics = Collections.singletonMap(TEST_TOPIC, NEW_TEST_TOPIC);
    WorkerUtils.createTopics(log, adminClient, newTopics, true);
    assertEquals(Collections.singleton(TEST_TOPIC), adminClient.listTopics().names().get());
    assertEquals(new TopicDescription(TEST_TOPIC, false, Collections.singletonList(new TopicPartitionInfo(0, broker1, singleReplica, Collections.<Node>emptyList()))), adminClient.describeTopics(Collections.singleton(TEST_TOPIC)).values().get(TEST_TOPIC).get());
}
Also used : TopicPartitionInfo(org.apache.kafka.common.TopicPartitionInfo) Node(org.apache.kafka.common.Node) NewTopic(org.apache.kafka.clients.admin.NewTopic) TopicDescription(org.apache.kafka.clients.admin.TopicDescription) Test(org.junit.Test)

Example 38 with TopicPartitionInfo

use of org.apache.kafka.common.TopicPartitionInfo in project apache-kafka-on-k8s by banzaicloud.

the class TopicAdminTest method shouldNotCreateTopicWhenItAlreadyExists.

@Test
public void shouldNotCreateTopicWhenItAlreadyExists() {
    NewTopic newTopic = TopicAdmin.defineTopic("myTopic").partitions(1).compacted().build();
    Cluster cluster = createCluster(1);
    try (MockAdminClient mockAdminClient = new MockAdminClient(cluster.nodes(), cluster.nodeById(0))) {
        TopicPartitionInfo topicPartitionInfo = new TopicPartitionInfo(0, cluster.nodeById(0), cluster.nodes(), Collections.<Node>emptyList());
        mockAdminClient.addTopic(false, "myTopic", Collections.singletonList(topicPartitionInfo), null);
        TopicAdmin admin = new TopicAdmin(null, mockAdminClient);
        assertFalse(admin.createTopic(newTopic));
    }
}
Also used : TopicPartitionInfo(org.apache.kafka.common.TopicPartitionInfo) Cluster(org.apache.kafka.common.Cluster) NewTopic(org.apache.kafka.clients.admin.NewTopic) MockAdminClient(org.apache.kafka.clients.admin.MockAdminClient) Test(org.junit.Test)

Example 39 with TopicPartitionInfo

use of org.apache.kafka.common.TopicPartitionInfo in project apache-kafka-on-k8s by banzaicloud.

the class InternalTopicManagerTest method shouldCreateRequiredTopics.

@Test
public void shouldCreateRequiredTopics() throws Exception {
    final InternalTopicConfig topicConfig = new RepartitionTopicConfig(topic, Collections.<String, String>emptyMap());
    topicConfig.setNumberOfPartitions(1);
    final InternalTopicConfig topicConfig2 = new UnwindowedChangelogTopicConfig(topic2, Collections.<String, String>emptyMap());
    topicConfig2.setNumberOfPartitions(1);
    final InternalTopicConfig topicConfig3 = new WindowedChangelogTopicConfig(topic3, Collections.<String, String>emptyMap());
    topicConfig3.setNumberOfPartitions(1);
    internalTopicManager.makeReady(Collections.singletonMap(topic, topicConfig));
    internalTopicManager.makeReady(Collections.singletonMap(topic2, topicConfig2));
    internalTopicManager.makeReady(Collections.singletonMap(topic3, topicConfig3));
    assertEquals(Utils.mkSet(topic, topic2, topic3), mockAdminClient.listTopics().names().get());
    assertEquals(new TopicDescription(topic, false, new ArrayList<TopicPartitionInfo>() {

        {
            add(new TopicPartitionInfo(0, broker1, singleReplica, Collections.<Node>emptyList()));
        }
    }), mockAdminClient.describeTopics(Collections.singleton(topic)).values().get(topic).get());
    assertEquals(new TopicDescription(topic2, false, new ArrayList<TopicPartitionInfo>() {

        {
            add(new TopicPartitionInfo(0, broker1, singleReplica, Collections.<Node>emptyList()));
        }
    }), mockAdminClient.describeTopics(Collections.singleton(topic2)).values().get(topic2).get());
    assertEquals(new TopicDescription(topic3, false, new ArrayList<TopicPartitionInfo>() {

        {
            add(new TopicPartitionInfo(0, broker1, singleReplica, Collections.<Node>emptyList()));
        }
    }), mockAdminClient.describeTopics(Collections.singleton(topic3)).values().get(topic3).get());
    ConfigResource resource = new ConfigResource(ConfigResource.Type.TOPIC, topic);
    ConfigResource resource2 = new ConfigResource(ConfigResource.Type.TOPIC, topic2);
    ConfigResource resource3 = new ConfigResource(ConfigResource.Type.TOPIC, topic3);
    assertEquals(new ConfigEntry(TopicConfig.CLEANUP_POLICY_CONFIG, TopicConfig.CLEANUP_POLICY_DELETE), mockAdminClient.describeConfigs(Collections.singleton(resource)).values().get(resource).get().get(TopicConfig.CLEANUP_POLICY_CONFIG));
    assertEquals(new ConfigEntry(TopicConfig.CLEANUP_POLICY_CONFIG, TopicConfig.CLEANUP_POLICY_COMPACT), mockAdminClient.describeConfigs(Collections.singleton(resource2)).values().get(resource2).get().get(TopicConfig.CLEANUP_POLICY_CONFIG));
    assertEquals(new ConfigEntry(TopicConfig.CLEANUP_POLICY_CONFIG, TopicConfig.CLEANUP_POLICY_COMPACT + "," + TopicConfig.CLEANUP_POLICY_DELETE), mockAdminClient.describeConfigs(Collections.singleton(resource3)).values().get(resource3).get().get(TopicConfig.CLEANUP_POLICY_CONFIG));
}
Also used : ConfigEntry(org.apache.kafka.clients.admin.ConfigEntry) TopicPartitionInfo(org.apache.kafka.common.TopicPartitionInfo) Node(org.apache.kafka.common.Node) ArrayList(java.util.ArrayList) TopicDescription(org.apache.kafka.clients.admin.TopicDescription) ConfigResource(org.apache.kafka.common.config.ConfigResource) Test(org.junit.Test)

Example 40 with TopicPartitionInfo

use of org.apache.kafka.common.TopicPartitionInfo in project core-ng-project by neowu.

the class KafkaController method view.

private KafkaTopic view(String name, TopicDescription description) {
    KafkaTopic view = new KafkaTopic();
    view.name = name;
    for (TopicPartitionInfo info : description.partitions()) {
        KafkaTopic.Partition partition = new KafkaTopic.Partition();
        partition.id = info.partition();
        partition.leader = node(info.leader());
        partition.replicas = nodes(info.replicas());
        partition.inSyncReplicas = nodes(info.isr());
        view.partitions.add(partition);
    }
    return view;
}
Also used : TopicPartitionInfo(org.apache.kafka.common.TopicPartitionInfo)

Aggregations

TopicPartitionInfo (org.apache.kafka.common.TopicPartitionInfo)62 Test (org.junit.Test)33 TopicDescription (org.apache.kafka.clients.admin.TopicDescription)31 Node (org.apache.kafka.common.Node)28 ArrayList (java.util.ArrayList)20 MockAdminClient (org.apache.kafka.clients.admin.MockAdminClient)18 NewTopic (org.apache.kafka.clients.admin.NewTopic)16 HashMap (java.util.HashMap)14 Cluster (org.apache.kafka.common.Cluster)11 KafkaFutureImpl (org.apache.kafka.common.internals.KafkaFutureImpl)11 StreamsConfig (org.apache.kafka.streams.StreamsConfig)11 Test (org.junit.jupiter.api.Test)10 TopicPartition (org.apache.kafka.common.TopicPartition)8 ConfigResource (org.apache.kafka.common.config.ConfigResource)8 Map (java.util.Map)7 AdminClient (org.apache.kafka.clients.admin.AdminClient)7 Config (org.apache.kafka.clients.admin.Config)7 TopicMetadataAndConfig (org.apache.kafka.clients.admin.CreateTopicsResult.TopicMetadataAndConfig)7 TopicConfig (org.apache.kafka.common.config.TopicConfig)7 ConsumerConfig (org.apache.kafka.clients.consumer.ConsumerConfig)6