summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--heat/engine/resources/nova_utils.py6
-rw-r--r--heat/tests/test_nova_utils.py7
2 files changed, 13 insertions, 0 deletions
diff --git a/heat/engine/resources/nova_utils.py b/heat/engine/resources/nova_utils.py
index 0e9a135f3..91679532a 100644
--- a/heat/engine/resources/nova_utils.py
+++ b/heat/engine/resources/nova_utils.py
@@ -54,6 +54,12 @@ def refresh_server(server):
'''
try:
server.get()
+ except clients.novaclient.exceptions.OverLimit as exc:
+ msg = _("Server %(name)s (%(id)s) received an OverLimit "
+ "response during server.get(): %(exception)s")
+ logger.warning(msg % {'name': server.name,
+ 'id': server.id,
+ 'exception': str(exc)})
except clients.novaclient.exceptions.ClientException as exc:
if exc.code == 500:
msg = _('Server "%(name)s" (%(id)s) received the following '
diff --git a/heat/tests/test_nova_utils.py b/heat/tests/test_nova_utils.py
index 89d744b56..8b7d436e2 100644
--- a/heat/tests/test_nova_utils.py
+++ b/heat/tests/test_nova_utils.py
@@ -14,6 +14,7 @@
# under the License.
"""Tests for :module:'heat.engine.resources.nova_utls'."""
+import mock
import uuid
from heat.common import exception
@@ -118,6 +119,12 @@ class NovaUtilsRefreshServerTests(HeatTestCase):
self.assertIsNone(nova_utils.refresh_server(server))
self.m.VerifyAll()
+ def test_overlimit_error(self):
+ server = mock.Mock()
+ server.get.side_effect = clients.novaclient.exceptions.OverLimit(
+ 413, "limit reached")
+ self.assertIsNone(nova_utils.refresh_server(server))
+
def test_500_error(self):
server = self.m.CreateMockAnything()
msg = ("ClientException: The server has either erred or is "