You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by da...@apache.org on 2013/12/23 14:03:51 UTC
git commit: updated refs/heads/4.3 to 94abbb1
Updated Branches:
refs/heads/4.3 689798497 -> 94abbb136
check vlans and other isolation types
Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/94abbb13
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/94abbb13
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/94abbb13
Branch: refs/heads/4.3
Commit: 94abbb1367bc817bae98f369e78679f0ddb7727f
Parents: 6897984
Author: Daan Hoogland <da...@onecht.net>
Authored: Fri Dec 20 16:47:58 2013 +0100
Committer: Daan Hoogland <dh...@schubergphilis.com>
Committed: Mon Dec 23 13:51:34 2013 +0100
----------------------------------------------------------------------
utils/src/com/cloud/utils/net/NetUtils.java | 44 +++++++++++++++++++++++-
1 file changed, 43 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/94abbb13/utils/src/com/cloud/utils/net/NetUtils.java
----------------------------------------------------------------------
diff --git a/utils/src/com/cloud/utils/net/NetUtils.java b/utils/src/com/cloud/utils/net/NetUtils.java
index 11a483c..a315b93 100755
--- a/utils/src/com/cloud/utils/net/NetUtils.java
+++ b/utils/src/com/cloud/utils/net/NetUtils.java
@@ -1375,10 +1375,17 @@ public class NetUtils {
return resultIp;
}
+ static final String VLAN_PREFIX = "vlan://";
+ static final int VLAN_PREFIX_LENGTH = VLAN_PREFIX.length();
+
public static boolean isValidVlan(String vlan) {
+ if (null == vlan || "".equals(vlan))
+ return false;
+ if (vlan.startsWith(VLAN_PREFIX))
+ vlan = vlan.substring(VLAN_PREFIX_LENGTH);
try {
int vnet = Integer.parseInt(vlan);
- if (vnet < 0 || vnet > 4096) {
+ if (vnet <= 0 || vnet >= 4095) { // the valid range is 1- 4094
return false;
}
return true;
@@ -1387,6 +1394,41 @@ public class NetUtils {
}
}
+ static final String VLAN_UNTAGGED = "untagged";
+
+ public static boolean sameIsolationId(String one, String other)
+ {
+ // check nulls
+ // check empty strings
+ if ((one == null || one.equals(""))
+ &&
+ (other == null || other.equals("")))
+ {
+ return true;
+ }
+ // check 'untagged'
+ if (VLAN_UNTAGGED.equalsIgnoreCase(one) && VLAN_UNTAGGED.equalsIgnoreCase(other))
+ {
+ return true;
+ }
+ // if one is a number check the other as number and as 'vlan://' + number
+ if (one.startsWith(VLAN_PREFIX))
+ {
+ one = one.substring(VLAN_PREFIX_LENGTH);
+ }
+ if (other.startsWith(VLAN_PREFIX))
+ {
+ other = other.substring(VLAN_PREFIX_LENGTH);
+ }
+ // check valid uris or numbers
+ if (one.equals(other))
+ {
+ return true;
+ }
+
+ return false;
+ }
+
// Attention maintainers: these pvlan functions should take into account code
// in Networks.BroadcastDomainType, where URI construction is done for other
// types of BroadcastDomainTypes