From: armando-migliaccio Date: Fri, 6 Sep 2013 19:57:48 +0000 (-0700) Subject: Prevents 400 NVP errors caused by a None display_name X-Git-Url: https://review.fuel-infra.org/gitweb?a=commitdiff_plain;h=e82f0eb5df898f930f6d6a476b5d9550b1625d76;p=openstack-build%2Fneutron-build.git Prevents 400 NVP errors caused by a None display_name The API forbids a resource name to be None, but the Model does not. Such errors may be induced by programming directly against the plugin interface. With this fix we avoid raising 400 faults which may be introduced by involuntary programming errors. Fixes bug 1221896 Change-Id: Ic1201c5af5691f2bed38753453f73c229858b10f --- diff --git a/neutron/plugins/nicira/nvplib.py b/neutron/plugins/nicira/nvplib.py index dd63d5bc3..a65dfc08a 100644 --- a/neutron/plugins/nicira/nvplib.py +++ b/neutron/plugins/nicira/nvplib.py @@ -139,7 +139,7 @@ def _check_and_truncate_name(display_name): LOG.debug(_("Specified name:'%s' exceeds maximum length. " "It will be truncated on NVP"), display_name) return display_name[:MAX_DISPLAY_NAME_LEN] - return display_name + return display_name or '' def get_cluster_version(cluster): diff --git a/neutron/tests/unit/nicira/test_nvplib.py b/neutron/tests/unit/nicira/test_nvplib.py index d7b815ae2..85cb948fb 100644 --- a/neutron/tests/unit/nicira/test_nvplib.py +++ b/neutron/tests/unit/nicira/test_nvplib.py @@ -1442,5 +1442,23 @@ class TestNvplibVersioning(base.BaseTestCase): 'create_lrouter', None) +class NvplibMiscTestCase(base.BaseTestCase): + + def test_check_and_truncate_name_with_none(self): + name = None + result = nvplib._check_and_truncate_name(name) + self.assertEqual('', result) + + def test_check_and_truncate_name_with_short_name(self): + name = 'foo_port_name' + result = nvplib._check_and_truncate_name(name) + self.assertEqual(name, result) + + def test_check_and_truncate_name_long_name(self): + name = 'this_is_a_port_whose_name_is_longer_than_40_chars' + result = nvplib._check_and_truncate_name(name) + self.assertEqual(len(result), nvplib.MAX_DISPLAY_NAME_LEN) + + def _nicira_method(method_name, module_name='nvplib'): return '%s.%s.%s' % ('neutron.plugins.nicira', module_name, method_name)