]> review.fuel-infra Code Review - openstack-build/neutron-build.git/commitdiff
use object directly instead of the foreigh key to update master db object.
authorgongysh <gongysh@cn.ibm.com>
Tue, 23 Oct 2012 14:40:26 +0000 (22:40 +0800)
committergongysh <gongysh@cn.ibm.com>
Tue, 23 Oct 2012 14:42:56 +0000 (22:42 +0800)
Bug #1064235

Change-Id: I74fe3e758681c40590de87c82fd093224d329f51

quantum/db/l3_db.py
quantum/tests/unit/test_l3_plugin.py

index 6585733adcfe83211de66e4ed0933c3f73dfd762..c02a7fb77adacbd56d3587f72089ec609eff8c17 100644 (file)
@@ -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):
index 29ca27d9f31b28922183ea669108f8d36e0536db..f027ec8fe2cbad6bbcafe228a4237a0573b52aaf 100644 (file)
@@ -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: