diff options
Diffstat (limited to 'nova/db')
| -rw-r--r-- | nova/db/sqlalchemy/api.py | 7 |
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 |
