From 66e99dea67c16614da79bb2aef2235dac7949276 Mon Sep 17 00:00:00 2001 From: gongysh Date: Tue, 23 Oct 2012 22:40:26 +0800 Subject: [PATCH] use object directly instead of the foreigh key to update master db object. Bug #1064235 Change-Id: I74fe3e758681c40590de87c82fd093224d329f51 --- quantum/db/l3_db.py | 3 ++- quantum/tests/unit/test_l3_plugin.py | 15 +++++++++++++++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/quantum/db/l3_db.py b/quantum/db/l3_db.py index 6585733ad..c02a7fb77 100644 --- a/quantum/db/l3_db.py +++ b/quantum/db/l3_db.py @@ -213,7 +213,8 @@ class L3_NAT_db_mixin(l3.RouterPluginBase): raise q_exc.BadRequest(resource='router', msg=msg) with context.session.begin(subtransactions=True): - router.update({'gw_port_id': gw_port['id']}) + router.gw_port = self._get_port(context.elevated(), + gw_port['id']) context.session.add(router) def delete_router(self, context, id): diff --git a/quantum/tests/unit/test_l3_plugin.py b/quantum/tests/unit/test_l3_plugin.py index 29ca27d9f..f027ec8fe 100644 --- a/quantum/tests/unit/test_l3_plugin.py +++ b/quantum/tests/unit/test_l3_plugin.py @@ -557,6 +557,21 @@ class L3NatDBTestCase(test_db_plugin.QuantumDbPluginV2TestCase): expected_code=exc. HTTPBadRequest.code) + def test_create_router_with_gwinfo(self): + with self.subnet() as s: + self._set_net_external(s['subnet']['network_id']) + data = {'router': {'tenant_id': _uuid()}} + data['router']['name'] = 'router1' + data['router']['external_gateway_info'] = { + 'network_id': s['subnet']['network_id']} + router_req = self.new_create_request('routers', data, 'json') + res = router_req.get_response(self.ext_api) + router = self.deserialize('json', res) + self.assertEquals( + s['subnet']['network_id'], + router['router']['external_gateway_info']['network_id']) + self._delete('routers', router['router']['id']) + def test_router_add_gateway(self): with self.router() as r: with self.subnet() as s: -- 2.45.2