From c33fb9a854b3333b9a5a7a42c501509f23534313 Mon Sep 17 00:00:00 2001 From: Jarkko Jaakola Date: Wed, 12 Feb 2025 15:51:39 +0200 Subject: [PATCH] fix: fix script entrypoints --- pyproject.toml | 3 ++- src/karapace/__main__.py | 11 +++++++++-- src/karapace/kafka_rest_apis/__main__.py | 23 +++++++++-------------- 3 files changed, 20 insertions(+), 17 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 166ce7773..d41a83740 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -65,7 +65,8 @@ classifiers=[ ] [project.scripts] -karapace = "karapace.kafka_rest_apis:main" +karapace = "karapace.__main__:main" +karapace_rest_proxy = "karapace.kafka_rest_apis.__main__:main" karapace_schema_backup = "karapace.backup.cli:main" karapace_mkpasswd = "karapace.core.auth:main" diff --git a/src/karapace/__main__.py b/src/karapace/__main__.py index 52d721703..64b4ff884 100644 --- a/src/karapace/__main__.py +++ b/src/karapace/__main__.py @@ -8,6 +8,7 @@ from karapace.api.telemetry.container import TelemetryContainer from karapace.core.auth_container import AuthContainer from karapace.core.container import KarapaceContainer +from karapace.core.metrics_container import MetricsContainer import karapace.api.controller import karapace.api.factory @@ -24,11 +25,12 @@ import karapace.api.telemetry.setup import karapace.api.telemetry.tracer import karapace.api.user + +import sys import uvicorn -from karapace.core.metrics_container import MetricsContainer -if __name__ == "__main__": +def main() -> int: karapace_container = KarapaceContainer() karapace_container.wire( modules=[ @@ -98,3 +100,8 @@ config = karapace_container.config() app = create_karapace_application(config=config, lifespan=karapace_schema_registry_lifespan) uvicorn.run(app, host=config.host, port=config.port, log_level=config.log_level.lower(), log_config=None) + return 0 + + +if __name__ == "__main__": + sys.exit(main()) diff --git a/src/karapace/kafka_rest_apis/__main__.py b/src/karapace/kafka_rest_apis/__main__.py index 5ab1a3a2f..1d1b969ec 100644 --- a/src/karapace/kafka_rest_apis/__main__.py +++ b/src/karapace/kafka_rest_apis/__main__.py @@ -5,11 +5,9 @@ from __future__ import annotations -from dependency_injector.wiring import inject, Provide +from dependency_injector.wiring import inject from karapace import version as karapace_version -from karapace.core.config import Config from karapace.core.container import KarapaceContainer -from karapace.core.instrumentation.prometheus import PrometheusInstrumentation from karapace.core.logging_setup import configure_logging, log_config_without_secrets from karapace.kafka_rest_apis import KafkaRest @@ -19,22 +17,21 @@ @inject -def main( - config: Config = Provide[KarapaceContainer.config], - prometheus: PrometheusInstrumentation = Provide[KarapaceContainer.prometheus], -) -> int: - config.set_config_defaults() +def main() -> int: + container = KarapaceContainer() + container.wire(modules=[__name__]) + parser = argparse.ArgumentParser(prog="karapace", description="Karapace: Your Kafka essentials in one tool") parser.add_argument("--version", action="version", help="show program version", version=karapace_version.__version__) parser.parse_args() - configure_logging(config=config) - log_config_without_secrets(config=config) + configure_logging(config=container.config()) + log_config_without_secrets(config=container.config()) logging.info("\n%s\nStarting %s\n%s", ("=" * 100), "Starting Karapace Rest Proxy", ("=" * 100)) - app = KafkaRest(config=config) + app = KafkaRest(config=container.config()) try: - prometheus.setup_metrics(app=app) + container.prometheus().setup_metrics(app=app) app.run() # `close` will be called by the callback `close_by_app` set by `KarapaceBase` except Exception as ex: app.stats.unexpected_exception(ex=ex, where="karapace") @@ -43,6 +40,4 @@ def main( if __name__ == "__main__": - container = KarapaceContainer() - container.wire(modules=[__name__]) sys.exit(main())