Merge ~r00ta/maas:lp-2034014-add-retry-header-for-409-responses into maas:master

Proposed by Jacopo Rota
Status: Merged
Approved by: Jacopo Rota
Approved revision: c70d770b4da8bd401e96ce6bc0ed5a7c75d21638
Merge reported by: MAAS Lander
Merged at revision: not available
Proposed branch: ~r00ta/maas:lp-2034014-add-retry-header-for-409-responses
Merge into: maas:master
Diff against target: 33 lines (+6/-0)
2 files modified
src/maasserver/utils/tests/test_views.py (+1/-0)
src/maasserver/utils/views.py (+5/-0)
Reviewer Review Type Date Requested Status
Jack Lloyd-Walters Approve
MAAS Lander Approve
Review via email: mp+450867@code.launchpad.net

Commit message

add retry-after header in 409 responses

Description of the change

See https://bugs.launchpad.net/maas/+bug/2034014/comments/6 for more details about this change.

The PR on gomaasapi is here https://github.com/juju/gomaasapi/pull/101

To post a comment you must log in.
Revision history for this message
MAAS Lander (maas-lander) wrote :

UNIT TESTS
-b lp-2034014-add-retry-header-for-409-responses lp:~r00ta/maas/+git/maas into -b master lp:~maas-committers/maas

STATUS: SUCCESS
COMMIT: a8338c932351b70a0093eacc2de46f084d1cb355

review: Approve
c70d770... by Jacopo Rota

remove leftover

Revision history for this message
MAAS Lander (maas-lander) wrote :

UNIT TESTS
-b lp-2034014-add-retry-header-for-409-responses lp:~r00ta/maas/+git/maas into -b master lp:~maas-committers/maas

STATUS: SUCCESS
COMMIT: c70d770b4da8bd401e96ce6bc0ed5a7c75d21638

review: Approve
Revision history for this message
Jack Lloyd-Walters (lloydwaltersj) wrote :

LGTM, tests passing and change is small so... +1

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
diff --git a/src/maasserver/utils/tests/test_views.py b/src/maasserver/utils/tests/test_views.py
index e456a1e..f53dfd4 100644
--- a/src/maasserver/utils/tests/test_views.py
+++ b/src/maasserver/utils/tests/test_views.py
@@ -382,6 +382,7 @@ class TestWebApplicationHandler(SerializationFailureTestCase):
382 MockCallsMatch(call(request), call(request), call(request)),382 MockCallsMatch(call(request), call(request), call(request)),
383 )383 )
384 self.assertIsInstance(response, HttpResponseConflict)384 self.assertIsInstance(response, HttpResponseConflict)
385 self.expectThat(response["Retry-After"], Equals("5"))
385 self.expectThat(response.status_code, Equals(http.client.CONFLICT))386 self.expectThat(response.status_code, Equals(http.client.CONFLICT))
386 self.expectThat(387 self.expectThat(
387 response.reason_phrase,388 response.reason_phrase,
diff --git a/src/maasserver/utils/views.py b/src/maasserver/utils/views.py
index 18b67b9..e20c5e1 100644
--- a/src/maasserver/utils/views.py
+++ b/src/maasserver/utils/views.py
@@ -38,6 +38,8 @@ from provisioningserver.utils.twisted import retries
3838
39logger = logging.getLogger(__name__)39logger = logging.getLogger(__name__)
4040
41RETRY_AFTER_CONFLICT = 5
42
4143
42class InternalErrorResponse(BaseException):44class InternalErrorResponse(BaseException):
43 """Exception raised to exit the transaction context.45 """Exception raised to exit the transaction context.
@@ -149,6 +151,9 @@ class HttpResponseConflict(MAASDjangoTemplateResponse):
149151
150 def __init__(self, response=None, exc_info=None):152 def __init__(self, response=None, exc_info=None):
151 super().__init__(response=response)153 super().__init__(response=response)
154 # Responses with status code 409 should be retried by the clients
155 # see https://bugs.launchpad.net/maas/+bug/2034014/comments/6 for more information
156 self["Retry-After"] = RETRY_AFTER_CONFLICT
152 self.exc_info = exc_info157 self.exc_info = exc_info
153158
154159

Subscribers

People subscribed via source and target branches