# HG changeset patch # User Marcin Kuzminski # Date 2018-02-18 11:24:01 # Node ID dc2a5f04722184fccbb8b5c1e51de49a539faf3f # Parent b3b995842c6ecc0811a30a3c3b9c0adfcaf95a22 ssh: show fingerprint when adding already existing key. - help to track why we failed to add a specific key diff --git a/rhodecode/apps/admin/tests/test_admin_users_ssh_keys.py b/rhodecode/apps/admin/tests/test_admin_users_ssh_keys.py --- a/rhodecode/apps/admin/tests/test_admin_users_ssh_keys.py +++ b/rhodecode/apps/admin/tests/test_admin_users_ssh_keys.py @@ -67,6 +67,7 @@ class TestAdminUsersSshKeysView(TestCont 'I4fG8+hBHzpeFxUGvSGNtXPUbwaAY8j/oHYrTpMgkj6pUEFsiKfC5zPq' \ 'PFR5HyKTCHW0nFUJnZsbyFT5hMiF/hZkJc9A0ZbdSvJwCRQ/g3bmdL ' \ 'your_email@example.com' + FINGERPRINT = 'MD5:01:4f:ad:29:22:6e:01:37:c9:d2:52:26:52:b0:2d:93' def test_ssh_keys_default_user(self): self.log_user() @@ -111,9 +112,11 @@ class TestAdminUsersSshKeysView(TestCont route_path('edit_user_ssh_keys_add', user_id=user_id), {'description': desc, 'key_data': key_data, 'csrf_token': self.csrf_token}) + + err = 'Such key with fingerprint `{}` already exists, ' \ + 'please use a different one'.format(self.FINGERPRINT) assert_session_flash(response, 'An error occurred during ssh key ' - 'saving: Such key already exists, ' - 'please use a different one') + 'saving: {}'.format(err)) def test_add_ssh_key(self, user_util): self.log_user() diff --git a/rhodecode/apps/admin/views/users.py b/rhodecode/apps/admin/views/users.py --- a/rhodecode/apps/admin/views/users.py +++ b/rhodecode/apps/admin/views/users.py @@ -817,6 +817,7 @@ class UsersView(UserAppView): key_data = self.request.POST.get('key_data') description = self.request.POST.get('description') + fingerprint = 'unknown' try: if not key_data: raise ValueError('Please add a valid public key') @@ -841,8 +842,9 @@ class UsersView(UserAppView): except IntegrityError: log.exception("Exception during ssh key saving") - h.flash(_('An error occurred during ssh key saving: {}').format( - 'Such key already exists, please use a different one'), + err = 'Such key with fingerprint `{}` already exists, ' \ + 'please use a different one'.format(fingerprint) + h.flash(_('An error occurred during ssh key saving: {}').format(err), category='error') except Exception as e: log.exception("Exception during ssh key saving") diff --git a/rhodecode/apps/my_account/tests/test_my_account_ssh_keys.py b/rhodecode/apps/my_account/tests/test_my_account_ssh_keys.py --- a/rhodecode/apps/my_account/tests/test_my_account_ssh_keys.py +++ b/rhodecode/apps/my_account/tests/test_my_account_ssh_keys.py @@ -66,6 +66,7 @@ class TestMyAccountSshKeysView(TestContr 'I4fG8+hBHzpeFxUGvSGNtXPUbwaAY8j/oHYrTpMgkj6pUEFsiKfC5zPq' \ 'PFR5HyKTCHW0nFUJnZsbyFT5hMiF/hZkJc9A0ZbdSvJwCRQ/g3bmdL ' \ 'your_email@example.com' + FINGERPRINT = 'MD5:01:4f:ad:29:22:6e:01:37:c9:d2:52:26:52:b0:2d:93' def test_add_ssh_key_error(self, user_util): user = user_util.create_user(password='qweqwe') @@ -100,9 +101,11 @@ class TestMyAccountSshKeysView(TestContr route_path('my_account_ssh_keys_add'), {'description': desc, 'key_data': key_data, 'csrf_token': self.csrf_token}) + + err = 'Such key with fingerprint `{}` already exists, ' \ + 'please use a different one'.format(self.FINGERPRINT) assert_session_flash(response, 'An error occurred during ssh key ' - 'saving: Such key already exists, ' - 'please use a different one') + 'saving: {}'.format(err)) def test_add_ssh_key(self, user_util): user = user_util.create_user(password='qweqwe') diff --git a/rhodecode/apps/my_account/views/my_account_ssh_keys.py b/rhodecode/apps/my_account/views/my_account_ssh_keys.py --- a/rhodecode/apps/my_account/views/my_account_ssh_keys.py +++ b/rhodecode/apps/my_account/views/my_account_ssh_keys.py @@ -89,7 +89,7 @@ class MyAccountSshKeysView(BaseAppView, user_data = c.user.get_api_data() key_data = self.request.POST.get('key_data') description = self.request.POST.get('description') - + fingerprint = 'unknown' try: if not key_data: raise ValueError('Please add a valid public key') @@ -114,8 +114,9 @@ class MyAccountSshKeysView(BaseAppView, except IntegrityError: log.exception("Exception during ssh key saving") - h.flash(_('An error occurred during ssh key saving: {}').format( - 'Such key already exists, please use a different one'), + err = 'Such key with fingerprint `{}` already exists, ' \ + 'please use a different one'.format(fingerprint) + h.flash(_('An error occurred during ssh key saving: {}').format(err), category='error') except Exception as e: log.exception("Exception during ssh key saving")