Files
scylladb/test/pylib/start_s3_proxy.py
Kefu Chai cb24022b54 test: route S3 Proxy server messages through logger
This change was created in the same spirit of f8221b960f.
The S3ProxyServer (introduced in 8919e0abab) currently prints its
status directly to stdout, which can be distracting when reviewing test
results. For example:
```console
$ ./test.py --mode release object_store/test_backup::test_simple_backup_and_restore
Found 1 tests.
Setting minio proxy random seed to 1731924995
Starting S3 proxy server on ('127.193.179.2', 9002)
================================================================================
[N/TOTAL]   SUITE    MODE   RESULT   TEST
------------------------------------------------------------------------------
[1/1]      object_store release [ PASS ] object_store.test_backup.1
Stopping S3 proxy server
------------------------------------------------------------------------------
CPU utilization: 3.1%
```

Move these messages to use proper logging to give developers more control
over their visibility:

- Make logger parameter mandatory in S3ProxyServer constructor
- Route "Stopping S3 proxy" message through the provided logger
- Add --log-level option to the standalone proxy server launcher

The message is now hidden:

```console
$ ./test.py --mode release object_store/test_backup::test_simple_backup_and_restore
Found 1 tests.
================================================================================
[N/TOTAL]   SUITE    MODE   RESULT   TEST
------------------------------------------------------------------------------
[1/1]      object_store release [ PASS ] object_store.test_backup.1
------------------------------------------------------------------------------
CPU utilization: 4.1%
```

Signed-off-by: Kefu Chai <kefu.chai@scylladb.com>
2024-11-18 18:41:17 +08:00

35 lines
1.2 KiB
Python
Executable File

#!/usr/bin/python3
import argparse
import asyncio
import logging
import signal
import time
from s3_proxy import S3ProxyServer
async def run():
parser = argparse.ArgumentParser(description="Start S3 proxy server")
parser.add_argument('--host', default='127.0.0.1')
parser.add_argument('--port', type=int, default=9002)
parser.add_argument('--log-level', default=logging.WARNING,
choices=logging.getLevelNamesMapping().keys(),
help="Set log level")
parser.add_argument('--minio-uri', default="http://127.0.0.1:9000")
parser.add_argument('--max-retries', type=int, default=5)
parser.add_argument('--rnd-seed', type=int, default=int(time.time()))
args = parser.parse_args()
logging.basicConfig(level=args.log_level)
server = S3ProxyServer(args.host, args.port, args.minio_uri, args.max_retries, args.rnd_seed,
logging.getLogger('s3-proxy'))
print('Starting S3 proxy server')
await server.start()
signal.sigwait({signal.SIGINT, signal.SIGTERM})
print('Stopping S3 proxy server')
await server.stop()
if __name__ == '__main__':
asyncio.run(run())