This is an automated email from the ASF dual-hosted git repository.
rohit pushed a commit to branch 4.15
in repository https://gitbox.apache.org/repos/asf/cloudstack.git
The following commit(s) were added to refs/heads/4.15 by this push:
new 3ee5639 kvm: Check for VLAN or VXLAN in
NetworkDaoImpl.listByPhysicalNetworkPvlan (#5074)
3ee5639 is described below
commit 3ee563905d2ef8f5361370b5c0ab32b0b69e7068
Author: Gabriel Beims Bräscher <[email protected]>
AuthorDate: Sat Jun 5 13:55:01 2021 -0300
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.
---
.../src/main/java/com/cloud/network/dao/NetworkDaoImpl.java | 11 +++++++++--
1 file changed, 9 insertions(+), 2 deletions(-)
diff --git
a/engine/schema/src/main/java/com/cloud/network/dao/NetworkDaoImpl.java
b/engine/schema/src/main/java/com/cloud/network/dao/NetworkDaoImpl.java
index 2578a14..faf85db 100644
--- a/engine/schema/src/main/java/com/cloud/network/dao/NetworkDaoImpl.java
+++ b/engine/schema/src/main/java/com/cloud/network/dao/NetworkDaoImpl.java
@@ -18,9 +18,12 @@ package com.cloud.network.dao;
import java.net.URI;
import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Random;
+import java.util.Set;
import javax.annotation.PostConstruct;
import javax.inject.Inject;
@@ -107,6 +110,9 @@ public class NetworkDaoImpl extends
GenericDaoBase<NetworkVO, Long>implements Ne
Random _rand = new Random(System.currentTimeMillis());
long _prefix = 0x2;
+ private static final Set<String> VLAN_OR_VXLAN = new
HashSet<>(Arrays.asList(BroadcastDomainType.Vlan.toString().toLowerCase(),
+
BroadcastDomainType.Vxlan.toString().toLowerCase()));
+
public NetworkDaoImpl() {
}
@@ -780,8 +786,9 @@ public class NetworkDaoImpl extends
GenericDaoBase<NetworkVO, Long>implements Ne
@Override
public List<NetworkVO> listByPhysicalNetworkPvlan(long physicalNetworkId,
String broadcastUri) {
final URI searchUri = BroadcastDomainType.fromString(broadcastUri);
- if (!searchUri.getScheme().equalsIgnoreCase("vlan")) {
- throw new CloudRuntimeException("VLAN requested but URI is not in
the expected format: " + searchUri.toString());
+ if (!VLAN_OR_VXLAN.contains(searchUri.getScheme().toLowerCase())) {
+ throw new CloudRuntimeException(
+ String.format("Requested URI '%s' is not in the expected
format. Expected URI Scheme as 'vlan://VID' or 'vxlan://VID'.",
searchUri.toString()));
}
final String searchRange = BroadcastDomainType.getValue(searchUri);
final List<Integer> searchVlans = UriUtils.expandVlanUri(searchRange);