vcs-ops: store user_id inside the extras for vcs context operations.

- we'll use this one for bootstrap of async tasks.
This commit is contained in:
Marcin Kuzminski 2017-11-30 17:41:05 +01:00
parent a924ecfd60
commit 19744d8230
8 changed files with 12 additions and 2 deletions

View file

@ -93,6 +93,7 @@ class VcsServer(object):
scm_data = {
'ip': os.environ['SSH_CLIENT'].split()[0],
'username': self.user.username,
'user_id': self.user.user_id,
'action': action,
'repository': self.repo_name,
'scm': self.backend,

View file

@ -127,6 +127,7 @@ class TestGitServer(object):
expected_data = {
'username': git_server.user.username,
'user_id': git_server.user.user_id,
'scm': 'git',
'repository': git_server.repo_name,
'make_lock': None,

View file

@ -169,19 +169,20 @@ def vcs_operation_context(
make_lock = None
locked_by = [None, None, None]
is_anonymous = username == User.DEFAULT_USER
user = User.get_by_username(username)
if not is_anonymous and check_locking:
log.debug('Checking locking on repository "%s"', repo_name)
user = User.get_by_username(username)
repo = Repository.get_by_repo_name(repo_name)
make_lock, __, locked_by = repo.get_locking_state(
action, user.user_id)
user_id = user.user_id
settings_model = VcsSettingsModel(repo=repo_name)
ui_settings = settings_model.get_ui_settings()
extras = {
'ip': get_ip_addr(environ),
'username': username,
'user_id': user_id,
'action': action,
'repository': repo_name,
'scm': scm,

View file

@ -37,6 +37,7 @@ def scm_extras(user_regular, repo_stub):
extras = utils2.AttributeDict({
'ip': '127.0.0.1',
'username': user_regular.username,
'user_id': user_regular.user_id,
'action': '',
'repository': repo_stub.repo_name,
'scm': repo_stub.scm_instance().alias,

View file

@ -37,6 +37,7 @@ def repo_push_event(backend, user_regular):
scm_extras = {
'ip': '127.0.0.1',
'username': user_regular.username,
'user_id': user_regular.user_id,
'action': '',
'repository': repo.repo_name,
'scm': repo.scm_instance().alias,

View file

@ -72,6 +72,8 @@ def test_vcs_operation_context_can_skip_locking_check(mock_get_locking_state):
base, 'get_enabled_hook_classes', Mock(return_value=['stub_hook']))
@patch('rhodecode.lib.utils2.get_server_url',
Mock(return_value='https://example.com'))
@patch.object(db.User, 'get_by_username',
Mock(return_value=Mock(return_value=1)))
def call_vcs_operation_context(**kwargs_override):
kwargs = {
'repo_name': 'stub_repo_name',

View file

@ -28,6 +28,7 @@ def test_post_push_truncates_commits(user_regular, repo_stub):
extras = {
'ip': '127.0.0.1',
'username': user_regular.username,
'user_id': user_regular.user_id,
'action': 'push_local',
'repository': repo_stub.repo_name,
'scm': 'git',
@ -64,6 +65,7 @@ def hook_extras(user_regular, repo_stub):
extras = utils2.AttributeDict({
'ip': '127.0.0.1',
'username': user_regular.username,
'user_id': user_regular.user_id,
'action': 'push',
'repository': repo_stub.repo_name,
'scm': '',

View file

@ -458,6 +458,7 @@ def merge_extras(user_regular):
extras = {
'ip': '127.0.0.1',
'username': user_regular.username,
'user_id': user_regular.user_id,
'action': 'push',
'repository': 'fake_target_repo_name',
'scm': 'git',