def server(host, port, db_uri,
keystone_endpoint,
functions_url,
log_level,
log_file,
debug,
):
"""
Starts Picasso API service
"""
logger = log.UnifiedLogger(
log_to_console=True if not log_file else False,
filename=None if not log_file else log_file,
level=log_level).setup_logger(__package__)
asyncio.set_event_loop_policy(uvloop.EventLoopPolicy())
loop = asyncio.get_event_loop()
parts = parse.urlparse(functions_url)
fnclient = config.FunctionsClient(
parts.hostname,
api_port=parts.port,
api_protocol=parts.scheme,
api_version=parts.path[1:]
)
loop.run_until_complete(fnclient.ping(loop=loop))
connection_pool = config.Connection(db_uri, loop=loop)
config.Config(
auth_url=keystone_endpoint,
functions_client=fnclient,
logger=logger,
connection=connection_pool,
event_loop=loop,
)
API(
host=host, port=port, loop=loop,
logger=logger, debug=debug
).apply_swagger(
swagger_url="/api",
description="Picasso API service docs",
api_version="v1.0.0",
title="Picasso API",
).initialize()
评论列表
文章目录