rhtyd commented on a change in pull request #2293: CLOUDSTACK-10047: DVSwitch 
fixes and improvements
URL: https://github.com/apache/cloudstack/pull/2293#discussion_r144197894
 
 

 ##########
 File path: utils/src/main/java/com/cloud/utils/UriUtils.java
 ##########
 @@ -391,4 +391,57 @@ public static InputStream getInputStreamFromUrl(String 
url, String user, String
             return null;
         }
     }
+
+    /**
+     * Expands a given vlan URI to a list of vlan IDs
+     * @param vlanAuthority the URI part without the vlan:// scheme
+     * @return returns list of vlan integer ids
+     */
+    public static List<Integer> expandVlanUri(final String vlanAuthority) {
+        final List<Integer> expandedVlans = new ArrayList<>();
+        if (vlanAuthority == null || vlanAuthority.isEmpty()) {
+            return expandedVlans;
+        }
+        for (final String vlanPart: vlanAuthority.split(",")) {
+            if (vlanPart == null || vlanPart.isEmpty()) {
+                continue;
+            }
+            final String[] range = vlanPart.split("-");
+            if (range.length == 2) {
+                Integer start = NumbersUtil.parseInt(range[0], -1);
+                Integer end = NumbersUtil.parseInt(range[1], -1);
+                if (start <= end && end > -1 && start > -1) {
+                    while (start <= end) {
+                        expandedVlans.add(start++);
+                    }
+                }
+            } else {
+                final Integer value = NumbersUtil.parseInt(range[0], -1);
+                if (value > -1) {
 
 Review comment:
   This is used for vlan range checks etc, vlans are always > -1.
 
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services

Reply via email to