From f1a0557da4fbd7baa9196cb5c0ccdd7ebb16ecdf Mon Sep 17 00:00:00 2001 From: Hongbin Lu Date: Mon, 2 Oct 2017 04:21:26 +0000 Subject: [PATCH] Fix wrapping of neutron forbidden error In neutronv2 api, the neutron forbidden error is not wrapped correctly. The exception class expects the first parameter as the error message but an exception object is passed. Closes-Bug: #1720726 Change-Id: I6e88333427ec2befe2122274b02775f013404e30 --- nova/network/neutronv2/api.py | 2 +- nova/tests/unit/network/test_neutronv2.py | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/nova/network/neutronv2/api.py b/nova/network/neutronv2/api.py index 0a1162d161..454ca7fa59 100644 --- a/nova/network/neutronv2/api.py +++ b/nova/network/neutronv2/api.py @@ -127,7 +127,7 @@ class ClientWrapper(clientv20.Client): "admin credential located in nova.conf") raise exception.NeutronAdminCredentialConfigurationInvalid() except neutron_client_exc.Forbidden as e: - raise exception.Forbidden(e) + raise exception.Forbidden(six.text_type(e)) return ret return wrapper diff --git a/nova/tests/unit/network/test_neutronv2.py b/nova/tests/unit/network/test_neutronv2.py index 309b4160a8..1fefcfb2f8 100644 --- a/nova/tests/unit/network/test_neutronv2.py +++ b/nova/tests/unit/network/test_neutronv2.py @@ -181,9 +181,10 @@ class TestNeutronClient(test.NoDBTestCase): auth_token='token', is_admin=False) client = neutronapi.get_client(my_context) - self.assertRaises( + exc = self.assertRaises( exception.Forbidden, client.create_port) + self.assertIsInstance(exc.format_message(), six.text_type) def test_withtoken_context_is_admin(self): self.flags(url='http://anyhost/', group='neutron')