From 1ecba9a95412c88ed8098a9224f23b271c0963fd Mon Sep 17 00:00:00 2001 From: muzaffaryousaf Date: Thu, 24 Mar 2016 19:11:00 +0500 Subject: [PATCH] Setting request timeouts for edx notes. TNL-2444 --- lms/djangoapps/edxnotes/helpers.py | 3 ++- lms/djangoapps/edxnotes/tests.py | 6 ++++-- lms/envs/aws.py | 3 +++ lms/envs/common.py | 3 +++ 4 files changed, 12 insertions(+), 3 deletions(-) diff --git a/lms/djangoapps/edxnotes/helpers.py b/lms/djangoapps/edxnotes/helpers.py index a4ad3dd09e..2235836f83 100644 --- a/lms/djangoapps/edxnotes/helpers.py +++ b/lms/djangoapps/edxnotes/helpers.py @@ -99,7 +99,8 @@ def send_request(user, course_id, page, page_size, path="", text=None): headers={ "x-annotator-auth-token": get_edxnotes_id_token(user) }, - params=params + params=params, + timeout=(settings.EDXNOTES_CONNECT_TIMEOUT, settings.EDXNOTES_READ_TIMEOUT) ) except RequestException: log.error("Failed to connect to edx-notes-api: url=%s, params=%s", url, str(params)) diff --git a/lms/djangoapps/edxnotes/tests.py b/lms/djangoapps/edxnotes/tests.py index cef50f5b1b..1add802a08 100644 --- a/lms/djangoapps/edxnotes/tests.py +++ b/lms/djangoapps/edxnotes/tests.py @@ -782,7 +782,8 @@ class EdxNotesHelpersTest(ModuleStoreTestCase): "highlight": True, 'page': 1, 'page_size': 25, - } + }, + timeout=(settings.EDXNOTES_CONNECT_TIMEOUT, settings.EDXNOTES_READ_TIMEOUT) ) @override_settings(EDXNOTES_PUBLIC_API="http://example.com") @@ -809,7 +810,8 @@ class EdxNotesHelpersTest(ModuleStoreTestCase): "course_id": unicode(self.course.id), 'page': helpers.DEFAULT_PAGE, 'page_size': helpers.DEFAULT_PAGE_SIZE, - } + }, + timeout=(settings.EDXNOTES_CONNECT_TIMEOUT, settings.EDXNOTES_READ_TIMEOUT) ) def test_get_course_position_no_chapter(self): diff --git a/lms/envs/aws.py b/lms/envs/aws.py index e0b1270dd0..b389990002 100644 --- a/lms/envs/aws.py +++ b/lms/envs/aws.py @@ -723,6 +723,9 @@ PROFILE_IMAGE_DEFAULT_FILENAME = 'images/profiles/default' EDXNOTES_PUBLIC_API = ENV_TOKENS.get('EDXNOTES_PUBLIC_API', EDXNOTES_PUBLIC_API) EDXNOTES_INTERNAL_API = ENV_TOKENS.get('EDXNOTES_INTERNAL_API', EDXNOTES_INTERNAL_API) +EDXNOTES_CONNECT_TIMEOUT = ENV_TOKENS.get('EDXNOTES_CONNECT_TIMEOUT', EDXNOTES_CONNECT_TIMEOUT) +EDXNOTES_READ_TIMEOUT = ENV_TOKENS.get('EDXNOTES_READ_TIMEOUT', EDXNOTES_READ_TIMEOUT) + ##### Credit Provider Integration ##### CREDIT_PROVIDER_SECRET_KEYS = AUTH_TOKENS.get("CREDIT_PROVIDER_SECRET_KEYS", {}) diff --git a/lms/envs/common.py b/lms/envs/common.py index a4ee7256db..ea5e54193e 100644 --- a/lms/envs/common.py +++ b/lms/envs/common.py @@ -1024,6 +1024,9 @@ PAYMENT_REPORT_GENERATOR_GROUP = 'shoppingcart_report_access' EDXNOTES_PUBLIC_API = 'http://localhost:8120/api/v1' EDXNOTES_INTERNAL_API = 'http://localhost:8120/api/v1' +EDXNOTES_CONNECT_TIMEOUT = 0.5 # time in seconds +EDXNOTES_READ_TIMEOUT = 1.5 # time in seconds + ########################## Parental controls config ####################### # The age at which a learner no longer requires parental consent, or None