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);

Reply via email to