Browse Source

Merge "Fix exception message in case when bulk creation fails."

changes/83/760683/1
Zuul 5 months ago
committed by Gerrit Code Review
parent
commit
a35821913e
2 changed files with 26 additions and 1 deletions
  1. +1
    -1
      kuryr_kubernetes/clients.py
  2. +25
    -0
      kuryr_kubernetes/tests/unit/test_clients.py

+ 1
- 1
kuryr_kubernetes/clients.py View File

@ -103,7 +103,7 @@ def _create_ports(self, payload):
response = self.post(os_port.Port.base_path, json=payload)
if not response.ok:
raise os_exc.SDKException('Error when bulk creating ports: %s',
raise os_exc.SDKException('Error when bulk creating ports: %s' %
response.text)
return (os_port.Port(**item) for item in response.json()['ports'])


+ 25
- 0
kuryr_kubernetes/tests/unit/test_clients.py View File

@ -15,6 +15,7 @@
from unittest import mock
from openstack import exceptions as os_exc
from openstack.network.v2 import port as os_port
from kuryr_kubernetes import clients
@ -128,3 +129,27 @@ class TestOpenStackSDKHack(test_base.TestCase):
clients._create_ports(m_osdk, payload)
m_post.assert_called_once_with(os_port.Port.base_path, json=expected)
def test_create_ports_out_of_ports(self):
"""Simulate error response from OpenStack SDK"""
m_response = mock.Mock()
m_response.text = ('{"NeutronError": {"type": "OverQuota", "message": '
'"Quota exceeded for resources: [\'port\'].", '
'"detail": ""}}')
m_response.ok = False
m_post = mock.Mock()
m_post.return_value = m_response
m_osdk = mock.Mock()
m_osdk.post = m_post
payload = {'ports': []}
try:
clients._create_ports(m_osdk, payload)
except os_exc.SDKException as ex:
# no additional params passed to the exception class
self.assertIsNone(ex.extra_data)
# no formatting placeholders in message
self.assertNotIn('%s', ex.message)
m_post.assert_called_once_with(os_port.Port.base_path, json=payload)

Loading…
Cancel
Save