diff --git a/neutron/plugins/nicira/common/exceptions.py b/neutron/plugins/nicira/common/exceptions.py index 0c34010406..841655ca1c 100644 --- a/neutron/plugins/nicira/common/exceptions.py +++ b/neutron/plugins/nicira/common/exceptions.py @@ -52,3 +52,7 @@ class NvpNatRuleMismatch(NvpPluginException): message = _("While retrieving NAT rules, %(actual_rules)s were found " "whereas rules in the (%(min_rules)s,%(max_rules)s) interval " "were expected") + + +class NvpInvalidAttachmentType(NvpPluginException): + message = _("Invalid NVP attachment type '%(attachment_type)s'") diff --git a/neutron/plugins/nicira/nvplib.py b/neutron/plugins/nicira/nvplib.py index 00a184f062..0eecd8118b 100644 --- a/neutron/plugins/nicira/nvplib.py +++ b/neutron/plugins/nicira/nvplib.py @@ -866,9 +866,8 @@ def plug_router_port_attachment(cluster, router_id, port_id, if attachment_vlan: attach_obj['vlan_id'] = attachment_vlan else: - # TODO(salv-orlando): avoid raising generic exception - raise Exception(_("Invalid NVP attachment type '%s'"), - nvp_attachment_type) + raise nvp_exc.NvpInvalidAttachmentType( + attachment_type=nvp_attachment_type) return do_request(HTTP_PUT, uri, json.dumps(attach_obj), cluster=cluster) diff --git a/neutron/tests/unit/nicira/test_nvplib.py b/neutron/tests/unit/nicira/test_nvplib.py index e3c4a97a15..fef5b5ca86 100644 --- a/neutron/tests/unit/nicira/test_nvplib.py +++ b/neutron/tests/unit/nicira/test_nvplib.py @@ -902,7 +902,7 @@ class TestNvplibLogicalRouters(NvplibTestCase): lrouter_port = nvplib.create_router_lport( self.fake_cluster, lrouter['uuid'], 'pippo', 'neutron_port_id', 'name', True, ['192.168.0.1']) - self.assertRaises(Exception, + self.assertRaises(nvp_exc.NvpInvalidAttachmentType, nvplib.plug_router_port_attachment, self.fake_cluster, lrouter['uuid'], lrouter_port['uuid'], 'gw_att', 'BadType') @@ -965,7 +965,7 @@ class TestNvplibLogicalRouters(NvplibTestCase): with mock.patch.object(self.fake_cluster.api_client, 'get_nvp_version', new=lambda: '2.0'): - self.assertRaises(Exception, + self.assertRaises(AttributeError, nvplib.create_lrouter_snat_rule, self.fake_cluster, lrouter['uuid'], '10.0.0.2', '10.0.0.2', order=200,