Skip to content

Commit 3ee5639

Browse files
kvm: Check for VLAN or VXLAN in NetworkDaoImpl.listByPhysicalNetworkPvlan (#5074)
This PR fixes #5071; where it was reported an issue when creating a network with VXLAN.
1 parent 937def5 commit 3ee5639

1 file changed

Lines changed: 9 additions & 2 deletions

File tree

engine/schema/src/main/java/com/cloud/network/dao/NetworkDaoImpl.java

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,12 @@
1818

1919
import java.net.URI;
2020
import java.util.ArrayList;
21+
import java.util.Arrays;
22+
import java.util.HashSet;
2123
import java.util.List;
2224
import java.util.Map;
2325
import java.util.Random;
26+
import java.util.Set;
2427

2528
import javax.annotation.PostConstruct;
2629
import javax.inject.Inject;
@@ -107,6 +110,9 @@ public class NetworkDaoImpl extends GenericDaoBase<NetworkVO, Long>implements Ne
107110
Random _rand = new Random(System.currentTimeMillis());
108111
long _prefix = 0x2;
109112

113+
private static final Set<String> VLAN_OR_VXLAN = new HashSet<>(Arrays.asList(BroadcastDomainType.Vlan.toString().toLowerCase(),
114+
BroadcastDomainType.Vxlan.toString().toLowerCase()));
115+
110116
public NetworkDaoImpl() {
111117
}
112118

@@ -780,8 +786,9 @@ protected Network.PVlanType getNetworkPvlanType(long networkId, List<Integer> ex
780786
@Override
781787
public List<NetworkVO> listByPhysicalNetworkPvlan(long physicalNetworkId, String broadcastUri) {
782788
final URI searchUri = BroadcastDomainType.fromString(broadcastUri);
783-
if (!searchUri.getScheme().equalsIgnoreCase("vlan")) {
784-
throw new CloudRuntimeException("VLAN requested but URI is not in the expected format: " + searchUri.toString());
789+
if (!VLAN_OR_VXLAN.contains(searchUri.getScheme().toLowerCase())) {
790+
throw new CloudRuntimeException(
791+
String.format("Requested URI '%s' is not in the expected format. Expected URI Scheme as 'vlan://VID' or 'vxlan://VID'.", searchUri.toString()));
785792
}
786793
final String searchRange = BroadcastDomainType.getValue(searchUri);
787794
final List<Integer> searchVlans = UriUtils.expandVlanUri(searchRange);

0 commit comments

Comments
 (0)