Merge "Fixes LP#920812 - KeyError: 'overLimit' on 413 return"
diff --git a/tempest/common/rest_client.py b/tempest/common/rest_client.py
index 357bbd8..7fc368e 100644
--- a/tempest/common/rest_client.py
+++ b/tempest/common/rest_client.py
@@ -120,7 +120,12 @@
if resp.status == 413:
body = json.loads(body)
- raise exceptions.OverLimit(body['overLimit']['message'])
+ if 'overLimit' in body:
+ raise exceptions.OverLimit(body['overLimit']['message'])
+ else:
+ raise exceptions.RateLimitExceeded(
+ message=body['overLimitFault']['message'],
+ details=body['overLimitFault']['details'])
if resp.status in (500, 501):
body = json.loads(body)
diff --git a/tempest/exceptions.py b/tempest/exceptions.py
index f1becda..a3fabe3 100644
--- a/tempest/exceptions.py
+++ b/tempest/exceptions.py
@@ -52,6 +52,11 @@
message = "Endpoint not found"
+class RateLimitExceeded(TempestException):
+ message = ("Rate limit exceeded.\nMessage: %(message)s\n"
+ "Details: %(details)s")
+
+
class OverLimit(TempestException):
message = "Quota exceeded"