remote_wsgi.py
47 lines
| 1.1 KiB
| text/x-python
|
PythonLexer
r1126 | # Copyright (C) 2014-2023 RhodeCode GmbH | |||
r0 | """ | |||
Provides the same API as :mod:`remote_wsgi`. | ||||
Uses the `EchoApp` instead of real implementations. | ||||
""" | ||||
import logging | ||||
from .echo_app import EchoApp | ||||
from vcsserver import wsgi_app_caller | ||||
log = logging.getLogger(__name__) | ||||
r1152 | class GitRemoteWsgi: | |||
r0 | def handle(self, environ, input_data, *args, **kwargs): | |||
app = wsgi_app_caller.WSGIAppCaller( | ||||
create_echo_wsgi_app(*args, **kwargs)) | ||||
return app.handle(environ, input_data) | ||||
r1152 | class HgRemoteWsgi: | |||
r0 | def handle(self, environ, input_data, *args, **kwargs): | |||
app = wsgi_app_caller.WSGIAppCaller( | ||||
create_echo_wsgi_app(*args, **kwargs)) | ||||
return app.handle(environ, input_data) | ||||
def create_echo_wsgi_app(repo_path, repo_name, config): | ||||
log.debug("Creating EchoApp WSGI application") | ||||
_assert_valid_config(config) | ||||
# Remaining items are forwarded to have the extras available | ||||
return EchoApp(repo_path, repo_name, config=config) | ||||
def _assert_valid_config(config): | ||||
config = config.copy() | ||||
# This is what git needs from config at this stage | ||||
r1048 | config.pop(b'git_update_server_info') | |||