Merge "Change 'revision' to 'revision_number'"
This commit is contained in:
commit
717b57dc8d
|
@ -14,7 +14,7 @@
|
|||
from neutron.api import extensions
|
||||
|
||||
|
||||
REVISION = 'revision'
|
||||
REVISION = 'revision_number'
|
||||
REVISION_BODY = {
|
||||
REVISION: {'allow_post': False, 'allow_put': False,
|
||||
'is_visible': True, 'default': None},
|
||||
|
|
|
@ -77,7 +77,7 @@ class RevisionPlugin(service_base.ServicePluginBase):
|
|||
return "Adds revision numbers to resources."
|
||||
|
||||
def extend_resource_dict_revision(self, plugin, resource_res, resource_db):
|
||||
resource_res['revision'] = resource_db.revision_number
|
||||
resource_res['revision_number'] = resource_db.revision_number
|
||||
|
||||
def _find_related_obj(self, session, obj, relationship_col):
|
||||
"""Find a related object for an object based on relationship column.
|
||||
|
|
|
@ -27,54 +27,59 @@ class TestRevisions(base.BaseAdminNetworkTest, bsg.BaseSecGroupTest):
|
|||
@test.idempotent_id('4a26a4be-9c53-483c-bc50-b53f1db10ac6')
|
||||
def test_update_network_bumps_revision(self):
|
||||
net = self.create_network()
|
||||
self.assertIn('revision', net)
|
||||
self.assertIn('revision_number', net)
|
||||
updated = self.client.update_network(net['id'], name='newnet')
|
||||
self.assertGreater(updated['network']['revision'], net['revision'])
|
||||
self.assertGreater(updated['network']['revision_number'],
|
||||
net['revision_number'])
|
||||
|
||||
@test.idempotent_id('cac7ecde-12d5-4331-9a03-420899dea077')
|
||||
def test_update_port_bumps_revision(self):
|
||||
net = self.create_network()
|
||||
port = self.create_port(net)
|
||||
self.assertIn('revision', port)
|
||||
self.assertIn('revision_number', port)
|
||||
updated = self.client.update_port(port['id'], name='newport')
|
||||
self.assertGreater(updated['port']['revision'], port['revision'])
|
||||
self.assertGreater(updated['port']['revision_number'],
|
||||
port['revision_number'])
|
||||
|
||||
@test.idempotent_id('c1c4fa41-8e89-44d0-9bfc-409f3b66dc57')
|
||||
def test_update_subnet_bumps_revision(self):
|
||||
net = self.create_network()
|
||||
subnet = self.create_subnet(net)
|
||||
self.assertIn('revision', subnet)
|
||||
self.assertIn('revision_number', subnet)
|
||||
updated = self.client.update_subnet(subnet['id'], name='newsub')
|
||||
self.assertGreater(updated['subnet']['revision'], subnet['revision'])
|
||||
self.assertGreater(updated['subnet']['revision_number'],
|
||||
subnet['revision_number'])
|
||||
|
||||
@test.idempotent_id('e8c5d7db-2b8d-4615-a476-6e537437c4f2')
|
||||
def test_update_subnetpool_bumps_revision(self):
|
||||
sp = self.create_subnetpool('subnetpool', default_prefixlen=24,
|
||||
prefixes=['10.0.0.0/8'])
|
||||
self.assertIn('revision', sp)
|
||||
self.assertIn('revision_number', sp)
|
||||
updated = self.admin_client.update_subnetpool(sp['id'], name='sp2')
|
||||
self.assertGreater(updated['subnetpool']['revision'], sp['revision'])
|
||||
self.assertGreater(updated['subnetpool']['revision_number'],
|
||||
sp['revision_number'])
|
||||
|
||||
@test.idempotent_id('e8c5d7db-2b8d-4567-a326-6e123437c4d1')
|
||||
def test_update_subnet_bumps_network_revision(self):
|
||||
net = self.create_network()
|
||||
subnet = self.create_subnet(net)
|
||||
updated = self.client.show_network(net['id'])
|
||||
self.assertGreater(updated['network']['revision'], net['revision'])
|
||||
self.assertGreater(updated['network']['revision_number'],
|
||||
net['revision_number'])
|
||||
self.client.delete_subnet(subnet['id'])
|
||||
updated2 = self.client.show_network(net['id'])
|
||||
self.assertGreater(updated2['network']['revision'],
|
||||
updated['network']['revision'])
|
||||
self.assertGreater(updated2['network']['revision_number'],
|
||||
updated['network']['revision_number'])
|
||||
|
||||
@test.idempotent_id('6c256f71-c929-4200-b3dc-4e1843506be5')
|
||||
@test.requires_ext(extension="security-group", service="network")
|
||||
def test_update_sg_group_bumps_revision(self):
|
||||
sg, name = self._create_security_group()
|
||||
self.assertIn('revision', sg['security_group'])
|
||||
self.assertIn('revision_number', sg['security_group'])
|
||||
update_body = self.client.update_security_group(
|
||||
sg['security_group']['id'], name='new_sg_name')
|
||||
self.assertGreater(update_body['security_group']['revision'],
|
||||
sg['security_group']['revision'])
|
||||
self.assertGreater(update_body['security_group']['revision_number'],
|
||||
sg['security_group']['revision_number'])
|
||||
|
||||
@test.idempotent_id('6489632f-8550-4453-a674-c98849742967')
|
||||
@test.requires_ext(extension="security-group", service="network")
|
||||
|
@ -91,9 +96,10 @@ class TestRevisions(base.BaseAdminNetworkTest, bsg.BaseSecGroupTest):
|
|||
# commit happens if the port is unbound. The update response should
|
||||
# be usable directly once that is fixed.
|
||||
updated2 = self.client.show_port(port['id'])
|
||||
self.assertGreater(updated['port']['revision'], port['revision'])
|
||||
self.assertGreater(updated2['port']['revision'],
|
||||
updated['port']['revision'])
|
||||
self.assertGreater(updated['port']['revision_number'],
|
||||
port['revision_number'])
|
||||
self.assertGreater(updated2['port']['revision_number'],
|
||||
updated['port']['revision_number'])
|
||||
|
||||
@test.idempotent_id('29c7ab2b-d1d8-425d-8cec-fcf632960f22')
|
||||
@test.requires_ext(extension="security-group", service="network")
|
||||
|
@ -104,27 +110,28 @@ class TestRevisions(base.BaseAdminNetworkTest, bsg.BaseSecGroupTest):
|
|||
protocol='tcp', direction='ingress', ethertype=self.ethertype,
|
||||
port_range_min=60, port_range_max=70)
|
||||
updated = self.client.show_security_group(sg['security_group']['id'])
|
||||
self.assertGreater(updated['security_group']['revision'],
|
||||
sg['security_group']['revision'])
|
||||
self.assertGreater(updated['security_group']['revision_number'],
|
||||
sg['security_group']['revision_number'])
|
||||
self.client.delete_security_group_rule(
|
||||
rule['security_group_rule']['id'])
|
||||
updated2 = self.client.show_security_group(sg['security_group']['id'])
|
||||
self.assertGreater(updated2['security_group']['revision'],
|
||||
updated['security_group']['revision'])
|
||||
self.assertGreater(updated2['security_group']['revision_number'],
|
||||
updated['security_group']['revision_number'])
|
||||
|
||||
@test.idempotent_id('4a37bde9-1975-47e0-9b8c-2c9ca36415b0')
|
||||
@test.requires_ext(extension="router", service="network")
|
||||
def test_update_router_bumps_revision(self):
|
||||
subnet = self.create_subnet(self.create_network())
|
||||
router = self.create_router(router_name='test')
|
||||
self.assertIn('revision', router)
|
||||
rev1 = router['revision']
|
||||
self.assertIn('revision_number', router)
|
||||
rev1 = router['revision_number']
|
||||
router = self.client.update_router(router['id'],
|
||||
name='test2')['router']
|
||||
self.assertGreater(router['revision'], rev1)
|
||||
self.assertGreater(router['revision_number'], rev1)
|
||||
self.create_router_interface(router['id'], subnet['id'])
|
||||
updated = self.client.show_router(router['id'])['router']
|
||||
self.assertGreater(updated['revision'], router['revision'])
|
||||
self.assertGreater(updated['revision_number'],
|
||||
router['revision_number'])
|
||||
|
||||
@test.idempotent_id('9de71ebc-f5df-4cd0-80bc-60299fce3ce9')
|
||||
@test.requires_ext(extension="router", service="network")
|
||||
|
@ -142,6 +149,7 @@ class TestRevisions(base.BaseAdminNetworkTest, bsg.BaseSecGroupTest):
|
|||
port_id=port['id'],
|
||||
description='d1'
|
||||
)['floatingip']
|
||||
self.assertIn('revision', body)
|
||||
self.assertIn('revision_number', body)
|
||||
b2 = self.client.update_floatingip(body['id'], description='d2')
|
||||
self.assertGreater(b2['floatingip']['revision'], body['revision'])
|
||||
self.assertGreater(b2['floatingip']['revision_number'],
|
||||
body['revision_number'])
|
||||
|
|
|
@ -51,15 +51,15 @@ class TestRevisionPlugin(test_plugin.Ml2PluginV2TestCase):
|
|||
|
||||
def test_port_name_update_revises(self):
|
||||
with self.port() as port:
|
||||
rev = port['port']['revision']
|
||||
rev = port['port']['revision_number']
|
||||
new = {'port': {'name': 'seaweed'}}
|
||||
response = self._update('ports', port['port']['id'], new)
|
||||
new_rev = response['port']['revision']
|
||||
new_rev = response['port']['revision_number']
|
||||
self.assertGreater(new_rev, rev)
|
||||
|
||||
def test_port_ip_update_revises(self):
|
||||
with self.port() as port:
|
||||
rev = port['port']['revision']
|
||||
rev = port['port']['revision_number']
|
||||
new = {'port': {'fixed_ips': port['port']['fixed_ips']}}
|
||||
# ensure adding an IP allocation updates the port
|
||||
next_ip = str(netaddr.IPAddress(
|
||||
|
@ -67,14 +67,14 @@ class TestRevisionPlugin(test_plugin.Ml2PluginV2TestCase):
|
|||
new['port']['fixed_ips'].append({'ip_address': next_ip})
|
||||
response = self._update('ports', port['port']['id'], new)
|
||||
self.assertEqual(2, len(response['port']['fixed_ips']))
|
||||
new_rev = response['port']['revision']
|
||||
new_rev = response['port']['revision_number']
|
||||
self.assertGreater(new_rev, rev)
|
||||
# ensure deleting an IP allocation updates the port
|
||||
rev = new_rev
|
||||
new['port']['fixed_ips'].pop()
|
||||
response = self._update('ports', port['port']['id'], new)
|
||||
self.assertEqual(1, len(response['port']['fixed_ips']))
|
||||
new_rev = response['port']['revision']
|
||||
new_rev = response['port']['revision_number']
|
||||
self.assertGreater(new_rev, rev)
|
||||
|
||||
def test_security_group_rule_ops_bump_security_group(self):
|
||||
|
@ -83,7 +83,7 @@ class TestRevisionPlugin(test_plugin.Ml2PluginV2TestCase):
|
|||
sg = self.cp.create_security_group(self.ctx, s)
|
||||
s['security_group']['name'] = 'hello'
|
||||
updated = self.cp.update_security_group(self.ctx, sg['id'], s)
|
||||
self.assertGreater(updated['revision'], sg['revision'])
|
||||
self.assertGreater(updated['revision_number'], sg['revision_number'])
|
||||
# ensure rule changes bump parent SG
|
||||
r = {'security_group_rule': {'tenant_id': 'some_tenant',
|
||||
'port_range_min': 80, 'protocol': 6,
|
||||
|
@ -96,11 +96,11 @@ class TestRevisionPlugin(test_plugin.Ml2PluginV2TestCase):
|
|||
rule = self.cp.create_security_group_rule(self.ctx, r)
|
||||
sg = updated
|
||||
updated = self.cp.get_security_group(self.ctx, sg['id'])
|
||||
self.assertGreater(updated['revision'], sg['revision'])
|
||||
self.assertGreater(updated['revision_number'], sg['revision_number'])
|
||||
self.cp.delete_security_group_rule(self.ctx, rule['id'])
|
||||
sg = updated
|
||||
updated = self.cp.get_security_group(self.ctx, sg['id'])
|
||||
self.assertGreater(updated['revision'], sg['revision'])
|
||||
self.assertGreater(updated['revision_number'], sg['revision_number'])
|
||||
|
||||
def test_router_interface_ops_bump_router(self):
|
||||
r = {'router': {'name': 'myrouter', 'tenant_id': 'some_tenant',
|
||||
|
@ -108,16 +108,19 @@ class TestRevisionPlugin(test_plugin.Ml2PluginV2TestCase):
|
|||
router = self.l3p.create_router(self.ctx, r)
|
||||
r['router']['name'] = 'yourrouter'
|
||||
updated = self.l3p.update_router(self.ctx, router['id'], r)
|
||||
self.assertGreater(updated['revision'], router['revision'])
|
||||
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:
|
||||
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'], router['revision'])
|
||||
self.assertGreater(updated['revision_number'],
|
||||
router['revision_number'])
|
||||
self.l3p.remove_router_interface(self.ctx, router['id'],
|
||||
interface_info)
|
||||
router = updated
|
||||
updated = self.l3p.get_router(self.ctx, router['id'])
|
||||
self.assertGreater(updated['revision'], router['revision'])
|
||||
self.assertGreater(updated['revision_number'],
|
||||
router['revision_number'])
|
||||
|
|
Loading…
Reference in New Issue