diff --git a/server/src/com/cloud/configuration/ConfigurationManagerImpl.java b/server/src/com/cloud/configuration/ConfigurationManagerImpl.java index 2089f82dfe9..8d8b12680ba 100755 --- a/server/src/com/cloud/configuration/ConfigurationManagerImpl.java +++ b/server/src/com/cloud/configuration/ConfigurationManagerImpl.java @@ -3120,10 +3120,10 @@ public class ConfigurationManagerImpl extends ManagerBase implements Configurati } } - // Check if a guest VLAN is using the same tag + // Check if the vlan is being used if (_zoneDao.findVnet(zoneId, physicalNetworkId, vlanId).size() > 0) { throw new InvalidParameterValueException("The VLAN tag " + vlanId - + " is already being used for the guest network in zone " + zone.getName()); + + " is already being used for dynamic vlan allocation for the guest network in zone " + zone.getName()); } String ipRange = null; diff --git a/server/src/com/cloud/network/NetworkManagerImpl.java b/server/src/com/cloud/network/NetworkManagerImpl.java index 938d9b1e646..dac6a3a42e7 100755 --- a/server/src/com/cloud/network/NetworkManagerImpl.java +++ b/server/src/com/cloud/network/NetworkManagerImpl.java @@ -2467,7 +2467,13 @@ public class NetworkManagerImpl extends ManagerBase implements NetworkManager, L } } - if (vlanId != null) { + if (vlanSpecified) { + //don't allow to specify vlan tag used by physical network for dynamic vlan allocation + if (_dcDao.findVnet(zoneId, pNtwk.getId(), vlanId).size() > 0) { + throw new InvalidParameterValueException("The VLAN tag " + vlanId + + " is already being used for dynamic vlan allocation for the guest network in zone " + zone.getName()); + } + String uri = "vlan://" + vlanId; // For Isolated networks, don't allow to create network with vlan that already exists in the zone if (ntwkOff.getGuestType() == GuestType.Isolated) {