Prevent Duplicate VLAN IDs

Addresses Bug 708278

Add check for duplicates in api.py
Add DuplicateVlan to exception.py
Add test to raise DuplicateVlan in test_db_api.py
Add to Authors

Change-Id: I9d68d7b7c886071e38df3c9d7d53724758bdd84c
This commit is contained in:
Andrew Clay Shafer
2012-02-14 01:44:37 -05:00
parent 5e6c5c5751
commit dd6e0f281b
3 changed files with 13 additions and 0 deletions

View File

@@ -7,6 +7,7 @@ Alex Meade <alex.meade@rackspace.com>
Alexander Sakhnov <asakhnov@mirantis.com>
Alvaro Lopez Garcia <aloga@ifca.unican.es>
Andrew Bogott <abogott@wikimedia.org>
Andrew Clay Shafer <acs@parvuscaptus.com>
Andrey Brindeyev <abrindeyev@griddynamics.com>
Andy Smith <code@term.ie>
Andy Southgate <andy.southgate@citrix.com>

View File

@@ -984,3 +984,7 @@ class SolidFireAPIStatusException(SolidFireAPIException):
class SolidFireAPIDataException(SolidFireAPIException):
message = _("Error in SolidFire API response: data=%(data)s")
class DuplicateVlan(Duplicate):
message = _("Detected existing vlan with id %(vlan)")

View File

@@ -146,6 +146,14 @@ class DbApiTestCase(test.TestCase):
db_network = db.network_get(ctxt, network.id)
self.assertEqual(network.uuid, db_network.uuid)
def test_network_create_with_duplicate_vlan(self):
ctxt = context.get_admin_context()
values1 = {'host': 'localhost', 'project_id': 'project1', 'vlan': 1}
values2 = {'host': 'something', 'project_id': 'project1', 'vlan': 1}
db.network_create_safe(ctxt, values1)
self.assertRaises(exception.DuplicateVlan,
db.network_create_safe, ctxt, values2)
def test_instance_update_with_instance_id(self):
""" test instance_update() works when an instance id is passed """
ctxt = context.get_admin_context()