Changeset View
Changeset View
Standalone View
Standalone View
swh/storage/api/server.py
Show All 10 Lines | |||||
from swh.core.api import (RPCServerApp, | from swh.core.api import (RPCServerApp, | ||||
error_handler, | error_handler, | ||||
encode_data_server as encode_data) | encode_data_server as encode_data) | ||||
from ..interface import StorageInterface | from ..interface import StorageInterface | ||||
from ..metrics import timed | from ..metrics import timed | ||||
from ..exc import StorageArgumentException | from ..exc import StorageArgumentException | ||||
from .serializers import ENCODERS, DECODERS | |||||
def get_storage(): | def get_storage(): | ||||
global storage | global storage | ||||
if not storage: | if not storage: | ||||
storage = get_swhstorage(**app.config['storage']) | storage = get_swhstorage(**app.config['storage']) | ||||
return storage | return storage | ||||
app = RPCServerApp(__name__, | class StorageServerApp(RPCServerApp): | ||||
extra_type_decoders = DECODERS | |||||
extra_type_encoders = ENCODERS | |||||
app = StorageServerApp(__name__, | |||||
backend_class=StorageInterface, | backend_class=StorageInterface, | ||||
backend_factory=get_storage) | backend_factory=get_storage) | ||||
storage = None | storage = None | ||||
@app.errorhandler(StorageArgumentException) | @app.errorhandler(StorageArgumentException) | ||||
def argument_error_handler(exception): | def argument_error_handler(exception): | ||||
return error_handler(exception, encode_data, status_code=400) | return error_handler(exception, encode_data, status_code=400) | ||||
▲ Show 20 Lines • Show All 86 Lines • Show Last 20 Lines |