From 837ac8c1d651c58f5ebd5a20b409594f7368819d 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 (cherry picked from commit f1a0557da4fbd7baa9196cb5c0ccdd7ebb16ecdf) --- 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 4e035a453158..71dcde87404c 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 edab43eb242d..0e6cc728ab7a 100644 --- a/nova/tests/unit/network/test_neutronv2.py +++ b/nova/tests/unit/network/test_neutronv2.py @@ -184,9 +184,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')