diff --git a/rhodecode/lib/vcs/__init__.py b/rhodecode/lib/vcs/__init__.py --- a/rhodecode/lib/vcs/__init__.py +++ b/rhodecode/lib/vcs/__init__.py @@ -109,11 +109,11 @@ def connect_http(server_and_port): session_factory = client_http.ThreadlocalSessionFactory() connection.Git = client_http.RepoMaker( - server_and_port, '/git', session_factory) + server_and_port, '/git', 'git', session_factory) connection.Hg = client_http.RepoMaker( - server_and_port, '/hg', session_factory) + server_and_port, '/hg', 'hg', session_factory) connection.Svn = client_http.RepoMaker( - server_and_port, '/svn', session_factory) + server_and_port, '/svn', 'svn', session_factory) connection.Service = client_http.ServiceConnection( server_and_port, '/_service', session_factory) diff --git a/rhodecode/lib/vcs/client_http.py b/rhodecode/lib/vcs/client_http.py --- a/rhodecode/lib/vcs/client_http.py +++ b/rhodecode/lib/vcs/client_http.py @@ -56,10 +56,11 @@ EXCEPTIONS_MAP = { class RepoMaker(object): - def __init__(self, server_and_port, backend_endpoint, session_factory): + def __init__(self, server_and_port, backend_endpoint, backend_type, session_factory): self.url = urlparse.urljoin( 'http://%s' % server_and_port, backend_endpoint) self._session_factory = session_factory + self.backend_type = backend_type def __call__(self, path, config, with_wire=None): log.debug('RepoMaker call on %s', path) @@ -77,6 +78,7 @@ class RepoMaker(object): payload = { 'id': str(uuid.uuid4()), 'method': name, + 'backend': self.backend_type, 'params': {'args': args, 'kwargs': kwargs} } return _remote_call( diff --git a/rhodecode/tests/vcs/test_client_http.py b/rhodecode/tests/vcs/test_client_http.py --- a/rhodecode/tests/vcs/test_client_http.py +++ b/rhodecode/tests/vcs/test_client_http.py @@ -70,7 +70,7 @@ def stub_session_factory(stub_session): def test_repo_maker_uses_session_for_classmethods(stub_session_factory): repo_maker = client_http.RepoMaker( - 'server_and_port', 'endpoint', stub_session_factory) + 'server_and_port', 'endpoint', 'test_dummy_scm', stub_session_factory) repo_maker.example_call() stub_session_factory().post.assert_called_with( 'http://server_and_port/endpoint', data=mock.ANY) @@ -79,7 +79,7 @@ def test_repo_maker_uses_session_for_cla def test_repo_maker_uses_session_for_instance_methods( stub_session_factory, config): repo_maker = client_http.RepoMaker( - 'server_and_port', 'endpoint', stub_session_factory) + 'server_and_port', 'endpoint', 'test_dummy_scm', stub_session_factory) repo = repo_maker('stub_path', config) repo.example_call() stub_session_factory().post.assert_called_with(