diff --git a/neutron/db/vpn/vpn_db.py b/neutron/db/vpn/vpn_db.py index 8052c18de2..729816afc7 100644 --- a/neutron/db/vpn/vpn_db.py +++ b/neutron/db/vpn/vpn_db.py @@ -194,8 +194,9 @@ class VPNPluginDb(VPNPluginBase, base_db.CommonDbMixin): def assert_update_allowed(self, obj): status = getattr(obj, 'status', None) + _id = getattr(obj, 'id', None) if utils.in_pending_status(status): - raise vpnaas.VPNStateInvalid(id=id, state=status) + raise vpnaas.VPNStateInvalidToUpdate(id=_id, state=status) def _make_ipsec_site_connection_dict(self, ipsec_site_conn, fields=None): diff --git a/neutron/extensions/vpnaas.py b/neutron/extensions/vpnaas.py index 8e42b62f99..1eaf5ae4f0 100644 --- a/neutron/extensions/vpnaas.py +++ b/neutron/extensions/vpnaas.py @@ -70,8 +70,9 @@ class RouterInUseByVPNService(qexception.InUse): message = _("Router %(router_id)s is used by VPNService %(vpnservice_id)s") -class VPNStateInvalid(qexception.BadRequest): - message = _("Invalid state %(state)s of vpnaas resource %(id)s") +class VPNStateInvalidToUpdate(qexception.BadRequest): + message = _("Invalid state %(state)s of vpnaas resource %(id)s" + " for updating") class IPsecPolicyInUse(qexception.InUse): diff --git a/neutron/tests/unit/db/vpn/test_db_vpnaas.py b/neutron/tests/unit/db/vpn/test_db_vpnaas.py index 70f72ee291..214423477e 100644 --- a/neutron/tests/unit/db/vpn/test_db_vpnaas.py +++ b/neutron/tests/unit/db/vpn/test_db_vpnaas.py @@ -909,6 +909,9 @@ class TestVpnaas(VPNPluginDbTestCase): vpnservice['vpnservice']['id']) res = req.get_response(self.ext_api) self.assertEqual(400, res.status_int) + res = self.deserialize(self.fmt, res) + self.assertIn(vpnservice['vpnservice']['id'], + res['NeutronError']['message']) def test_delete_vpnservice(self): """Test case to delete a vpnservice."""