Have RouterRoute object increment Router revision
When modifying RouterRoute objects on a Router (e.g. adding a route to a router via the ExtraRoute extension), have the modification update the Router's revision number. Change-Id: If9bb56442375efac3043b9de0a03972552ac34bf Closes-Bug: 1632080
This commit is contained in:
parent
890f5ed0fd
commit
29e15f9278
|
@ -115,3 +115,4 @@ class RouterRoute(model_base.BASEV2, models_v2.Route):
|
|||
backref=orm.backref("route_list",
|
||||
lazy='joined',
|
||||
cascade='delete'))
|
||||
revises_on_change = ('router', )
|
||||
|
|
|
@ -170,12 +170,11 @@ class TestRevisions(base.BaseAdminNetworkTest, bsg.BaseSecGroupTest):
|
|||
router = self.create_router(router_name='test')
|
||||
self.create_router_interface(router['id'], subnet['id'])
|
||||
router = self.client.show_router(router['id'])['router']
|
||||
updated = self.client.update_router(
|
||||
router['id'], routes=[{'destination': '2.0.0.0/24',
|
||||
'nexthop': str(subgateway + 1)}])
|
||||
updated = self.client.update_extra_routes(
|
||||
router['id'], str(subgateway + 1), '2.0.0.0/24')
|
||||
self.assertGreater(updated['router']['revision_number'],
|
||||
router['revision_number'])
|
||||
updated2 = self.client.update_router(router['id'], routes=[])
|
||||
updated2 = self.client.delete_extra_routes(router['id'])
|
||||
self.assertGreater(updated2['router']['revision_number'],
|
||||
updated['router']['revision_number'])
|
||||
|
||||
|
|
|
@ -23,6 +23,9 @@ from neutron.tests.unit.plugins.ml2 import test_plugin
|
|||
|
||||
class TestRevisionPlugin(test_plugin.Ml2PluginV2TestCase):
|
||||
|
||||
l3_plugin = ('neutron.tests.unit.extensions.test_extraroute.'
|
||||
'TestExtraRouteL3NatServicePlugin')
|
||||
|
||||
def get_additional_service_plugins(self):
|
||||
p = super(TestRevisionPlugin, self).get_additional_service_plugins()
|
||||
p.update({'revision_plugin_name': 'revisions'})
|
||||
|
@ -111,11 +114,25 @@ class TestRevisionPlugin(test_plugin.Ml2PluginV2TestCase):
|
|||
self.assertGreater(updated['revision_number'],
|
||||
router['revision_number'])
|
||||
# add an intf and make sure it bumps rev
|
||||
with self.subnet(tenant_id='some_tenant') as s:
|
||||
with self.subnet(tenant_id='some_tenant', cidr='10.0.1.0/24') as s:
|
||||
interface_info = {'subnet_id': s['subnet']['id']}
|
||||
self.l3p.add_router_interface(self.ctx, router['id'], interface_info)
|
||||
router = updated
|
||||
updated = self.l3p.get_router(self.ctx, router['id'])
|
||||
self.assertGreater(updated['revision_number'],
|
||||
router['revision_number'])
|
||||
# Add a route and make sure it bumps revision number
|
||||
router = updated
|
||||
body = {'router': {'routes': [{'destination': '192.168.2.0/24',
|
||||
'nexthop': '10.0.1.3'}]}}
|
||||
self.l3p.update_router(self.ctx, router['id'], body)
|
||||
updated = self.l3p.get_router(self.ctx, router['id'])
|
||||
self.assertGreater(updated['revision_number'],
|
||||
router['revision_number'])
|
||||
router = updated
|
||||
body['router']['routes'] = []
|
||||
self.l3p.update_router(self.ctx, router['id'], body)
|
||||
updated = self.l3p.get_router(self.ctx, router['id'])
|
||||
self.assertGreater(updated['revision_number'],
|
||||
router['revision_number'])
|
||||
self.l3p.remove_router_interface(self.ctx, router['id'],
|
||||
|
|
Loading…
Reference in New Issue