Skip to main content

Kafka admin service class, provides basic management functions such as USER creation, USER deletion, USER listing all and USER password changing, TOPIC creation, TOPIC deletion, TOPIC listing all, and ACL creation, ACL deletion and ACL listing all.

Project description

kafka_admin_service

Kafka admin service class, provides basic management functions such as USER creation, USER deletion, USER listing all and USER password changing, TOPIC creation, TOPIC deletion, TOPIC listing all, and ACL creation, ACL deletion and ACL listing all.

Install

pip install kafka-admin-service

KafkaAdminService methods

  • add_acl
  • change_password
  • create_topic
  • create_topic_and_topic_user
  • create_user
  • delete_acl
  • delete_all_topics
  • delete_all_users
  • delete_topic
  • delete_topic_user_acls
  • delete_user
  • get_acls
  • get_topics
  • get_user_scrams
  • get_users
  • update_user
  • validate_user_password

Why always returns (returncode, stdout, stderr)?

Because we use subprocess.Popen to call kafka's management command under kafka/bin folder. So returncode means the command exit status code, and stdout means the command's normal output, and stderr means the command's error output.

Kafka server requirements.

  1. Kafka using scram auth.
  2. Zookeeper using NO auth.
  3. Set workspace to kafka's root folder. e.g. kafka's command is under folder /path/to/kafka/bin/, so the workspace should set to /path/to/kafka/.
  4. Create scram.jaas file, default to put it at workspace/config/scram.jaas, or set it's path in config file.
  5. Create scram.client.properties file, default to put it at workspace/config/scram.client.properties, or set it's path in config file.
  6. Because we need to call kafka's management commands, normally should install us on kafka server for easy.

Example of ./config/scram.jaas

KafkaServer {
   org.apache.kafka.common.security.scram.ScramLoginModule required
   username="admin"
   password="xxxxxxxx";
};

KafkaClient {
   org.apache.kafka.common.security.scram.ScramLoginModule required
   username="admin"
   password="xxxxxxxx";
};

Example of ./config/scram.client.properties

security.protocol=SASL_PLAINTEXT
sasl.mechanism=SCRAM-SHA-256

Example of application's config.yml

zookeeper: localhost:2181
bootstrap_server: localhost:9092
workspace: /apprun/kafka/
command_config_file: "/apprun/config/scram.client.properties"
default_kafka_opts: "-Djava.security.auth.login.config=/apprun/config/scram.jaas"
topic_partitions: 16
topic_replication_factor: 3
apikeys:
    xxxxxxx:
        appid: xxxx
        other-appinfo: xxx
    yyyyyyy:
        appid: yyyy
        other-appinfo: yyy

Start kafka-admin-server

kafka-admin-server --no-daemon -c config.yml start

Releases

v0.1.1

  • First Release.

v0.1.3

  • Fix kafka commands' path check.
  • Add execute time log.

v0.1.7

  • Add get_user_scrams method.
  • Add validate_user_password method.
  • Fix license_files missing problem.
  • Doc update.

v0.1.9

  • Fix template format parameters missing problem.
  • Fix KAFKA_OPTS missing in calling execute() problem.

v0.2.1

  • Add kafka-admin-server based on xmlrpc.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

kafka-admin-service-0.2.1.tar.gz (10.0 kB view details)

Uploaded Source

Built Distribution

kafka_admin_service-0.2.1-py3-none-any.whl (8.2 kB view details)

Uploaded Python 3

File details

Details for the file kafka-admin-service-0.2.1.tar.gz.

File metadata

  • Download URL: kafka-admin-service-0.2.1.tar.gz
  • Upload date:
  • Size: 10.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/33.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.8 tqdm/4.63.0 importlib-metadata/4.11.2 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.9.10

File hashes

Hashes for kafka-admin-service-0.2.1.tar.gz
Algorithm Hash digest
SHA256 167f953bccb33bd0da4a3e892b9fbf2094603120ef3433cea6c3611f404392a8
MD5 4641ef1d7a8cc518e370e3cd584773e9
BLAKE2b-256 0b8526dc4b8d72caeade8e8d33153b610763ebe7ad149703f46c5c6783f02fdd

See more details on using hashes here.

File details

Details for the file kafka_admin_service-0.2.1-py3-none-any.whl.

File metadata

  • Download URL: kafka_admin_service-0.2.1-py3-none-any.whl
  • Upload date:
  • Size: 8.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/33.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.8 tqdm/4.63.0 importlib-metadata/4.11.2 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.9.10

File hashes

Hashes for kafka_admin_service-0.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 a324e55e053d9b22afd31729853809c9635f808c969a9e0f1ea70bd04e998a1a
MD5 39ff176d2e6acfbe7e768782eb84ea9b
BLAKE2b-256 ec1558382fed670c47fb896253a327994b2e32ea9d71a09b2ca23e5dbc1020b8

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page