From 8f264ddb33258a21a7727b277b25ba5f5905d204 Mon Sep 17 00:00:00 2001 From: Jakub Kadlcik Date: Apr 10 2022 23:53:07 +0000 Subject: backend: try multiple attempts of creating GPG keys Fix #2131 --- diff --git a/backend/copr_backend/sign.py b/backend/copr_backend/sign.py index 2468724..9c7e8e8 100644 --- a/backend/copr_backend/sign.py +++ b/backend/copr_backend/sign.py @@ -6,12 +6,12 @@ Wrapper for /bin/sign from obs-sign package from subprocess import Popen, PIPE, SubprocessError import json - import os -from requests import request from packaging import version +from copr_common.request import SafeRequest +from copr_backend.helpers import get_redis_logger from .exceptions import CoprSignError, CoprSignNoKeyError, \ CoprKeygenRequestError @@ -194,10 +194,12 @@ def create_user_keys(username, projectname, opts): "name_email": create_gpg_email(username, projectname) }) + log = get_redis_logger(opts, "sign", "actions") keygen_url = "http://{}/gen_key".format(opts.keygen_host) query = dict(url=keygen_url, data=data, method="post") try: - response = request(**query) + request = SafeRequest(log=log) + response = request.send(**query) except Exception as e: raise CoprKeygenRequestError( msg="Failed to create key-pair for user: {}," diff --git a/backend/tests/test_sign.py b/backend/tests/test_sign.py index b2d49d6..9929b40 100644 --- a/backend/tests/test_sign.py +++ b/backend/tests/test_sign.py @@ -145,7 +145,7 @@ class TestSign(object): with pytest.raises(CoprSignError): _sign_one(fake_path, self.usermail, "sha256", MagicMock()) - @mock.patch("copr_backend.sign.request") + @mock.patch("copr_backend.sign.SafeRequest.send") def test_create_user_keys(self, mc_request): mc_request.return_value.status_code = 200 create_user_keys(self.username, self.projectname, self.opts) @@ -158,7 +158,7 @@ class TestSign(object): ) assert mc_request.call_args == expected_call - @mock.patch("copr_backend.sign.request") + @mock.patch("copr_backend.sign.SafeRequest.send") def test_create_user_keys_error_1(self, mc_request): mc_request.side_effect = IOError() with pytest.raises(CoprKeygenRequestError) as err: @@ -167,7 +167,7 @@ class TestSign(object): assert "Failed to create key-pair" in str(err) - @mock.patch("copr_backend.sign.request") + @mock.patch("copr_backend.sign.SafeRequest.send") def test_create_user_keys(self, mc_request): for code in [400, 401, 404, 500, 599]: mc_request.return_value.status_code = code