This change was created in the same spirit off8221b960f. The S3ProxyServer (introduced in8919e0abab) 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>
35 lines
1.2 KiB
Python
Executable File
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())
|