Skip to content

Commit

Permalink
Improve error message when flat network already exists
Browse files Browse the repository at this point in the history
Fixes bug 1045601.

When attempting to create a flat network on a physical_network on
which a flat network is already allocated, the openvswitch and
linuxbridge plugins return a FlatNetworkInUse exception rather than a
VlanIdInUse exception referencing VLAN -1.

Change-Id: Id79e917e1376ebbb199efc3f14d9f378c6a04050
  • Loading branch information
Bob Kukura committed Sep 7, 2012
1 parent ad18a47 commit c4d3c1c
Show file tree
Hide file tree
Showing 3 changed files with 19 additions and 6 deletions.
5 changes: 5 additions & 0 deletions quantum/common/exceptions.py
Original file line number Diff line number Diff line change
Expand Up @@ -127,6 +127,11 @@ class VlanIdInUse(InUse):
"%(physical_network)s is in use.")


class FlatNetworkInUse(InUse):
message = _("Unable to create the flat network. "
"Physical network %(physical_network)s is in use.")


class TunnelIdInUse(InUse):
message = _("Unable to create the network. "
"The tunnel ID %(tunnel_id)s is in use.")
Expand Down
10 changes: 7 additions & 3 deletions quantum/plugins/linuxbridge/db/l2network_db_v2.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,12 +17,12 @@

from sqlalchemy.orm import exc

from quantum.common import constants
from quantum.common import exceptions as q_exc
import quantum.db.api as db
from quantum.db import models_v2
from quantum.openstack.common import cfg
from quantum.plugins.linuxbridge.common import config
from quantum.plugins.linuxbridge.common import constants
from quantum.plugins.linuxbridge.db import l2network_models_v2

LOG = logging.getLogger(__name__)
Expand Down Expand Up @@ -113,8 +113,12 @@ def reserve_specific_network(session, physical_network, vlan_id):
vlan_id=vlan_id).
one())
if state.allocated:
raise q_exc.VlanIdInUse(vlan_id=vlan_id,
physical_network=physical_network)
if vlan_id == constants.FLAT_VLAN_ID:
raise q_exc.FlatNetworkInUse(physical_network=
physical_network)
else:
raise q_exc.VlanIdInUse(vlan_id=vlan_id,
physical_network=physical_network)
LOG.debug("reserving specific vlan %s on physical network %s "
"from pool" % (vlan_id, physical_network))
state.allocated = True
Expand Down
10 changes: 7 additions & 3 deletions quantum/plugins/openvswitch/ovs_db_v2.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,11 +20,11 @@

from sqlalchemy.orm import exc

from quantum.common import constants
from quantum.common import exceptions as q_exc
from quantum.db import models_v2
import quantum.db.api as db
from quantum.openstack.common import cfg
from quantum.plugins.openvswitch.common import constants
from quantum.plugins.openvswitch import ovs_models_v2

LOG = logging.getLogger(__name__)
Expand Down Expand Up @@ -132,8 +132,12 @@ def reserve_specific_vlan(session, physical_network, vlan_id):
vlan_id=vlan_id).
one())
if alloc.allocated:
raise q_exc.VlanIdInUse(vlan_id=vlan_id,
physical_network=physical_network)
if vlan_id == constants.FLAT_VLAN_ID:
raise q_exc.FlatNetworkInUse(physical_network=
physical_network)
else:
raise q_exc.VlanIdInUse(vlan_id=vlan_id,
physical_network=physical_network)
LOG.debug("reserving specific vlan %s on physical network %s "
"from pool" % (vlan_id, physical_network))
alloc.allocated = True
Expand Down

0 comments on commit c4d3c1c

Please sign in to comment.