summaryrefslogtreecommitdiffstats
path: root/nova/db
diff options
context:
space:
mode:
Diffstat (limited to 'nova/db')
-rw-r--r--nova/db/sqlalchemy/api.py7
1 files changed, 7 insertions, 0 deletions
diff --git a/nova/db/sqlalchemy/api.py b/nova/db/sqlalchemy/api.py
index ed9286eff..1f4f2f88c 100644
--- a/nova/db/sqlalchemy/api.py
+++ b/nova/db/sqlalchemy/api.py
@@ -1984,9 +1984,16 @@ def network_count_reserved_ips(context, network_id):
@require_admin_context
def network_create_safe(context, values):
+ if values.get('vlan'):
+ if model_query(context, models.Network, read_deleted="no")\
+ .filter_by(vlan=values['vlan'])\
+ .first():
+ raise exception.DuplicateVlan(vlan=values['vlan'])
+
network_ref = models.Network()
network_ref['uuid'] = str(utils.gen_uuid())
network_ref.update(values)
+
try:
network_ref.save()
return network_ref