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
"%(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.")
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__)
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
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__)
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