##// END OF EJS Templates
release: Release 5.2.0
release: Release 5.2.0

File last commit:

r1194:a8552e75 default
r1292:50174967 merge v5.2.0 stable
Show More
remote_wsgi.py
47 lines | 1.1 KiB | text/x-python | PythonLexer
# Copyright (C) 2014-2023 RhodeCode GmbH
"""
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__)
class GitRemoteWsgi:
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)
class HgRemoteWsgi:
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
config.pop('git_update_server_info')