Search in sources :

Example 1 with SecurityDisabledException

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

the class ClientCompatibilityTest method testAdminClient.

void testAdminClient() throws Throwable {
    Properties adminProps = new Properties();
    adminProps.put(AdminClientConfig.BOOTSTRAP_SERVERS_CONFIG, testConfig.bootstrapServer);
    try (final AdminClient client = AdminClient.create(adminProps)) {
        while (true) {
            Collection<Node> nodes = client.describeCluster().nodes().get();
            if (nodes.size() == testConfig.numClusterNodes) {
                break;
            } else if (nodes.size() > testConfig.numClusterNodes) {
                throw new KafkaException("Expected to see " + testConfig.numClusterNodes + " nodes, but saw " + nodes.size());
            }
            Thread.sleep(1);
            log.info("Saw only {} cluster nodes.  Waiting to see {}.", nodes.size(), testConfig.numClusterNodes);
        }
        tryFeature("createTopics", testConfig.createTopicsSupported, new Invoker() {

            @Override
            public void invoke() throws Throwable {
                try {
                    client.createTopics(Collections.singleton(new NewTopic("newtopic", 1, (short) 1))).all().get();
                } catch (ExecutionException e) {
                    throw e.getCause();
                }
            }
        }, new ResultTester() {

            @Override
            public void test() throws Throwable {
                while (true) {
                    try {
                        client.describeTopics(Collections.singleton("newtopic")).all().get();
                        break;
                    } catch (ExecutionException e) {
                        if (e.getCause() instanceof UnknownTopicOrPartitionException)
                            continue;
                        throw e;
                    }
                }
            }
        });
        while (true) {
            Collection<TopicListing> listings = client.listTopics().listings().get();
            if (!testConfig.createTopicsSupported)
                break;
            boolean foundNewTopic = false;
            for (TopicListing listing : listings) {
                if (listing.name().equals("newtopic")) {
                    if (listing.isInternal())
                        throw new KafkaException("Did not expect newtopic to be an internal topic.");
                    foundNewTopic = true;
                }
            }
            if (foundNewTopic)
                break;
            Thread.sleep(1);
            log.info("Did not see newtopic.  Retrying listTopics...");
        }
        tryFeature("describeAclsSupported", testConfig.describeAclsSupported, new Invoker() {

            @Override
            public void invoke() throws Throwable {
                try {
                    client.describeAcls(AclBindingFilter.ANY).values().get();
                } catch (ExecutionException e) {
                    if (e.getCause() instanceof SecurityDisabledException)
                        return;
                    throw e.getCause();
                }
            }
        });
    }
}
Also used : Node(org.apache.kafka.common.Node) UnknownTopicOrPartitionException(org.apache.kafka.common.errors.UnknownTopicOrPartitionException) Properties(java.util.Properties) TopicListing(org.apache.kafka.clients.admin.TopicListing) KafkaException(org.apache.kafka.common.KafkaException) NewTopic(org.apache.kafka.clients.admin.NewTopic) ExecutionException(java.util.concurrent.ExecutionException) SecurityDisabledException(org.apache.kafka.common.errors.SecurityDisabledException) AdminClient(org.apache.kafka.clients.admin.AdminClient)

Example 2 with SecurityDisabledException

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

the class RequestResponseTest method testSerialization.

@Test
public void testSerialization() throws Exception {
    checkRequest(createFindCoordinatorRequest(0));
    checkRequest(createFindCoordinatorRequest(1));
    checkErrorResponse(createFindCoordinatorRequest(0), new UnknownServerException());
    checkErrorResponse(createFindCoordinatorRequest(1), new UnknownServerException());
    checkResponse(createFindCoordinatorResponse(), 0);
    checkResponse(createFindCoordinatorResponse(), 1);
    checkRequest(createControlledShutdownRequest());
    checkResponse(createControlledShutdownResponse(), 1);
    checkErrorResponse(createControlledShutdownRequest(), new UnknownServerException());
    checkErrorResponse(createControlledShutdownRequest(0), new UnknownServerException());
    checkRequest(createFetchRequest(4));
    checkResponse(createFetchResponse(), 4);
    List<TopicPartition> toForgetTopics = new ArrayList<>();
    toForgetTopics.add(new TopicPartition("foo", 0));
    toForgetTopics.add(new TopicPartition("foo", 2));
    toForgetTopics.add(new TopicPartition("bar", 0));
    checkRequest(createFetchRequest(7, new FetchMetadata(123, 456), toForgetTopics));
    checkResponse(createFetchResponse(123), 7);
    checkResponse(createFetchResponse(Errors.FETCH_SESSION_ID_NOT_FOUND, 123), 7);
    checkErrorResponse(createFetchRequest(4), new UnknownServerException());
    checkRequest(createHeartBeatRequest());
    checkErrorResponse(createHeartBeatRequest(), new UnknownServerException());
    checkResponse(createHeartBeatResponse(), 0);
    checkRequest(createJoinGroupRequest(1));
    checkErrorResponse(createJoinGroupRequest(0), new UnknownServerException());
    checkErrorResponse(createJoinGroupRequest(1), new UnknownServerException());
    checkResponse(createJoinGroupResponse(), 0);
    checkRequest(createLeaveGroupRequest());
    checkErrorResponse(createLeaveGroupRequest(), new UnknownServerException());
    checkResponse(createLeaveGroupResponse(), 0);
    checkRequest(createListGroupsRequest());
    checkErrorResponse(createListGroupsRequest(), new UnknownServerException());
    checkResponse(createListGroupsResponse(), 0);
    checkRequest(createDescribeGroupRequest());
    checkErrorResponse(createDescribeGroupRequest(), new UnknownServerException());
    checkResponse(createDescribeGroupResponse(), 0);
    checkRequest(createDeleteGroupsRequest());
    checkErrorResponse(createDeleteGroupsRequest(), new UnknownServerException());
    checkResponse(createDeleteGroupsResponse(), 0);
    checkRequest(createListOffsetRequest(1));
    checkErrorResponse(createListOffsetRequest(1), new UnknownServerException());
    checkResponse(createListOffsetResponse(1), 1);
    checkRequest(createListOffsetRequest(2));
    checkErrorResponse(createListOffsetRequest(2), new UnknownServerException());
    checkResponse(createListOffsetResponse(2), 2);
    checkRequest(MetadataRequest.Builder.allTopics().build((short) 2));
    checkRequest(createMetadataRequest(1, singletonList("topic1")));
    checkErrorResponse(createMetadataRequest(1, singletonList("topic1")), new UnknownServerException());
    checkResponse(createMetadataResponse(), 2);
    checkErrorResponse(createMetadataRequest(2, singletonList("topic1")), new UnknownServerException());
    checkResponse(createMetadataResponse(), 3);
    checkErrorResponse(createMetadataRequest(3, singletonList("topic1")), new UnknownServerException());
    checkResponse(createMetadataResponse(), 4);
    checkErrorResponse(createMetadataRequest(4, singletonList("topic1")), new UnknownServerException());
    checkRequest(createOffsetCommitRequest(2));
    checkErrorResponse(createOffsetCommitRequest(2), new UnknownServerException());
    checkResponse(createOffsetCommitResponse(), 0);
    checkRequest(OffsetFetchRequest.forAllPartitions("group1"));
    checkErrorResponse(OffsetFetchRequest.forAllPartitions("group1"), new NotCoordinatorException("Not Coordinator"));
    checkRequest(createOffsetFetchRequest(0));
    checkRequest(createOffsetFetchRequest(1));
    checkRequest(createOffsetFetchRequest(2));
    checkRequest(OffsetFetchRequest.forAllPartitions("group1"));
    checkErrorResponse(createOffsetFetchRequest(0), new UnknownServerException());
    checkErrorResponse(createOffsetFetchRequest(1), new UnknownServerException());
    checkErrorResponse(createOffsetFetchRequest(2), new UnknownServerException());
    checkResponse(createOffsetFetchResponse(), 0);
    checkRequest(createProduceRequest(2));
    checkErrorResponse(createProduceRequest(2), new UnknownServerException());
    checkRequest(createProduceRequest(3));
    checkErrorResponse(createProduceRequest(3), new UnknownServerException());
    checkResponse(createProduceResponse(), 2);
    checkRequest(createStopReplicaRequest(true));
    checkRequest(createStopReplicaRequest(false));
    checkErrorResponse(createStopReplicaRequest(true), new UnknownServerException());
    checkResponse(createStopReplicaResponse(), 0);
    checkRequest(createLeaderAndIsrRequest());
    checkErrorResponse(createLeaderAndIsrRequest(), new UnknownServerException());
    checkResponse(createLeaderAndIsrResponse(), 0);
    checkRequest(createSaslHandshakeRequest());
    checkErrorResponse(createSaslHandshakeRequest(), new UnknownServerException());
    checkResponse(createSaslHandshakeResponse(), 0);
    checkRequest(createApiVersionRequest());
    checkErrorResponse(createApiVersionRequest(), new UnknownServerException());
    checkResponse(createApiVersionResponse(), 0);
    checkRequest(createCreateTopicRequest(0));
    checkErrorResponse(createCreateTopicRequest(0), new UnknownServerException());
    checkResponse(createCreateTopicResponse(), 0);
    checkRequest(createCreateTopicRequest(1));
    checkErrorResponse(createCreateTopicRequest(1), new UnknownServerException());
    checkResponse(createCreateTopicResponse(), 1);
    checkRequest(createDeleteTopicsRequest());
    checkErrorResponse(createDeleteTopicsRequest(), new UnknownServerException());
    checkResponse(createDeleteTopicsResponse(), 0);
    checkRequest(createInitPidRequest());
    checkErrorResponse(createInitPidRequest(), new UnknownServerException());
    checkResponse(createInitPidResponse(), 0);
    checkRequest(createAddPartitionsToTxnRequest());
    checkResponse(createAddPartitionsToTxnResponse(), 0);
    checkErrorResponse(createAddPartitionsToTxnRequest(), new UnknownServerException());
    checkRequest(createAddOffsetsToTxnRequest());
    checkResponse(createAddOffsetsToTxnResponse(), 0);
    checkErrorResponse(createAddOffsetsToTxnRequest(), new UnknownServerException());
    checkRequest(createEndTxnRequest());
    checkResponse(createEndTxnResponse(), 0);
    checkErrorResponse(createEndTxnRequest(), new UnknownServerException());
    checkRequest(createWriteTxnMarkersRequest());
    checkResponse(createWriteTxnMarkersResponse(), 0);
    checkErrorResponse(createWriteTxnMarkersRequest(), new UnknownServerException());
    checkRequest(createTxnOffsetCommitRequest());
    checkResponse(createTxnOffsetCommitResponse(), 0);
    checkErrorResponse(createTxnOffsetCommitRequest(), new UnknownServerException());
    checkOlderFetchVersions();
    checkResponse(createMetadataResponse(), 0);
    checkResponse(createMetadataResponse(), 1);
    checkErrorResponse(createMetadataRequest(1, singletonList("topic1")), new UnknownServerException());
    checkRequest(createOffsetCommitRequest(0));
    checkErrorResponse(createOffsetCommitRequest(0), new UnknownServerException());
    checkRequest(createOffsetCommitRequest(1));
    checkErrorResponse(createOffsetCommitRequest(1), new UnknownServerException());
    checkRequest(createJoinGroupRequest(0));
    checkRequest(createUpdateMetadataRequest(0, null));
    checkErrorResponse(createUpdateMetadataRequest(0, null), new UnknownServerException());
    checkRequest(createUpdateMetadataRequest(1, null));
    checkRequest(createUpdateMetadataRequest(1, "rack1"));
    checkErrorResponse(createUpdateMetadataRequest(1, null), new UnknownServerException());
    checkRequest(createUpdateMetadataRequest(2, "rack1"));
    checkRequest(createUpdateMetadataRequest(2, null));
    checkErrorResponse(createUpdateMetadataRequest(2, "rack1"), new UnknownServerException());
    checkRequest(createUpdateMetadataRequest(3, "rack1"));
    checkRequest(createUpdateMetadataRequest(3, null));
    checkErrorResponse(createUpdateMetadataRequest(3, "rack1"), new UnknownServerException());
    checkResponse(createUpdateMetadataResponse(), 0);
    checkRequest(createListOffsetRequest(0));
    checkErrorResponse(createListOffsetRequest(0), new UnknownServerException());
    checkResponse(createListOffsetResponse(0), 0);
    checkRequest(createLeaderEpochRequest());
    checkResponse(createLeaderEpochResponse(), 0);
    checkErrorResponse(createLeaderEpochRequest(), new UnknownServerException());
    checkRequest(createAddPartitionsToTxnRequest());
    checkErrorResponse(createAddPartitionsToTxnRequest(), new UnknownServerException());
    checkResponse(createAddPartitionsToTxnResponse(), 0);
    checkRequest(createAddOffsetsToTxnRequest());
    checkErrorResponse(createAddOffsetsToTxnRequest(), new UnknownServerException());
    checkResponse(createAddOffsetsToTxnResponse(), 0);
    checkRequest(createEndTxnRequest());
    checkErrorResponse(createEndTxnRequest(), new UnknownServerException());
    checkResponse(createEndTxnResponse(), 0);
    checkRequest(createWriteTxnMarkersRequest());
    checkErrorResponse(createWriteTxnMarkersRequest(), new UnknownServerException());
    checkResponse(createWriteTxnMarkersResponse(), 0);
    checkRequest(createTxnOffsetCommitRequest());
    checkErrorResponse(createTxnOffsetCommitRequest(), new UnknownServerException());
    checkResponse(createTxnOffsetCommitResponse(), 0);
    checkRequest(createListAclsRequest());
    checkErrorResponse(createListAclsRequest(), new SecurityDisabledException("Security is not enabled."));
    checkResponse(createDescribeAclsResponse(), ApiKeys.DESCRIBE_ACLS.latestVersion());
    checkRequest(createCreateAclsRequest());
    checkErrorResponse(createCreateAclsRequest(), new SecurityDisabledException("Security is not enabled."));
    checkResponse(createCreateAclsResponse(), ApiKeys.CREATE_ACLS.latestVersion());
    checkRequest(createDeleteAclsRequest());
    checkErrorResponse(createDeleteAclsRequest(), new SecurityDisabledException("Security is not enabled."));
    checkResponse(createDeleteAclsResponse(), ApiKeys.DELETE_ACLS.latestVersion());
    checkRequest(createAlterConfigsRequest());
    checkErrorResponse(createAlterConfigsRequest(), new UnknownServerException());
    checkResponse(createAlterConfigsResponse(), 0);
    checkRequest(createDescribeConfigsRequest(0));
    checkRequest(createDescribeConfigsRequestWithConfigEntries(0));
    checkErrorResponse(createDescribeConfigsRequest(0), new UnknownServerException());
    checkResponse(createDescribeConfigsResponse(), 0);
    checkRequest(createDescribeConfigsRequest(1));
    checkRequest(createDescribeConfigsRequestWithConfigEntries(1));
    checkErrorResponse(createDescribeConfigsRequest(1), new UnknownServerException());
    checkResponse(createDescribeConfigsResponse(), 1);
    checkDescribeConfigsResponseVersions();
    checkRequest(createCreatePartitionsRequest());
    checkRequest(createCreatePartitionsRequestWithAssignments());
    checkErrorResponse(createCreatePartitionsRequest(), new InvalidTopicException());
    checkResponse(createCreatePartitionsResponse(), 0);
    checkRequest(createCreateTokenRequest());
    checkErrorResponse(createCreateTokenRequest(), new UnknownServerException());
    checkResponse(createCreateTokenResponse(), 0);
    checkRequest(createDescribeTokenRequest());
    checkErrorResponse(createDescribeTokenRequest(), new UnknownServerException());
    checkResponse(createDescribeTokenResponse(), 0);
    checkRequest(createExpireTokenRequest());
    checkErrorResponse(createExpireTokenRequest(), new UnknownServerException());
    checkResponse(createExpireTokenResponse(), 0);
    checkRequest(createRenewTokenRequest());
    checkErrorResponse(createRenewTokenRequest(), new UnknownServerException());
    checkResponse(createRenewTokenResponse(), 0);
}
Also used : NotCoordinatorException(org.apache.kafka.common.errors.NotCoordinatorException) TopicPartition(org.apache.kafka.common.TopicPartition) ArrayList(java.util.ArrayList) InvalidTopicException(org.apache.kafka.common.errors.InvalidTopicException) UnknownServerException(org.apache.kafka.common.errors.UnknownServerException) SecurityDisabledException(org.apache.kafka.common.errors.SecurityDisabledException) Test(org.junit.Test)

Aggregations

SecurityDisabledException (org.apache.kafka.common.errors.SecurityDisabledException)2 ArrayList (java.util.ArrayList)1 Properties (java.util.Properties)1 ExecutionException (java.util.concurrent.ExecutionException)1 AdminClient (org.apache.kafka.clients.admin.AdminClient)1 NewTopic (org.apache.kafka.clients.admin.NewTopic)1 TopicListing (org.apache.kafka.clients.admin.TopicListing)1 KafkaException (org.apache.kafka.common.KafkaException)1 Node (org.apache.kafka.common.Node)1 TopicPartition (org.apache.kafka.common.TopicPartition)1 InvalidTopicException (org.apache.kafka.common.errors.InvalidTopicException)1 NotCoordinatorException (org.apache.kafka.common.errors.NotCoordinatorException)1 UnknownServerException (org.apache.kafka.common.errors.UnknownServerException)1 UnknownTopicOrPartitionException (org.apache.kafka.common.errors.UnknownTopicOrPartitionException)1 Test (org.junit.Test)1