cloudstack-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From yas...@apache.org
Subject [2/2] git commit: updated refs/heads/4.2 to 9c1e02a
Date Mon, 15 Jul 2013 23:08:10 GMT
CLOUDSTACK-3311: PVLAN - vmware dvswitch - stop/start nd reboot Virtual router FAIL

Description:

    Fix logic to check for secondary pvlan id already existing on vmware DVS, and
    fix int to Integer comparison.


Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/9c1e02ae
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/9c1e02ae
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/9c1e02ae

Branch: refs/heads/4.2
Commit: 9c1e02ae5a742a5674aac2c0b225be32aeceef20
Parents: fd06009
Author: Vijayendra Bhamidipati <vijayendra.bhamidipati@citrix.com>
Authored: Fri Jul 12 05:02:26 2013 -0700
Committer: Sheng Yang <sheng.yang@citrix.com>
Committed: Mon Jul 15 16:07:58 2013 -0700

----------------------------------------------------------------------
 .../vmware/mo/HypervisorHostHelper.java         | 28 +++++++++++++-------
 1 file changed, 19 insertions(+), 9 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/9c1e02ae/vmware-base/src/com/cloud/hypervisor/vmware/mo/HypervisorHostHelper.java
----------------------------------------------------------------------
diff --git a/vmware-base/src/com/cloud/hypervisor/vmware/mo/HypervisorHostHelper.java b/vmware-base/src/com/cloud/hypervisor/vmware/mo/HypervisorHostHelper.java
index dc1486a..dd0f889 100755
--- a/vmware-base/src/com/cloud/hypervisor/vmware/mo/HypervisorHostHelper.java
+++ b/vmware-base/src/com/cloud/hypervisor/vmware/mo/HypervisorHostHelper.java
@@ -604,19 +604,29 @@ public class HypervisorHostHelper {
     private static void setupPVlanPair(DistributedVirtualSwitchMO dvSwitchMo, ManagedObjectReference
morDvSwitch, 
             Integer vid, Integer spvlanid) throws Exception {
         Map<Integer, HypervisorHostHelper.PvlanType> vlanmap = dvSwitchMo.retrieveVlanPvlan(vid,
spvlanid, morDvSwitch);
-        if (vlanmap.size() != 0) {
-            // Then either vid or pvlanid or both are already being used.
-            if (vlanmap.containsKey(vid) && vlanmap.get(vid) != HypervisorHostHelper.PvlanType.promiscuous)
{
+        if (!vlanmap.isEmpty()) {
+            // Then either vid or pvlanid or both are already being used. Check how.
+            // First the primary pvlan id.
+            if (vlanmap.containsKey(vid) && !vlanmap.get(vid).equals(HypervisorHostHelper.PvlanType.promiscuous))
{
                 // This VLAN ID is already setup as a non-promiscuous vlan id on the DVS.
Throw an exception.
-                String msg = "VLAN ID " + vid + " is already in use as a " + vlanmap.get(vid).toString()
+ " VLAN on the DVSwitch";
+                String msg = "Specified primary PVLAN ID " + vid + " is already in use as
a " + vlanmap.get(vid).toString() + " VLAN on the DVSwitch";
                 s_logger.error(msg);
                 throw new Exception(msg);
             }
-            if ((vid != spvlanid) && vlanmap.containsKey(spvlanid) && vlanmap.get(spvlanid)
!= HypervisorHostHelper.PvlanType.isolated) {
-                // This PVLAN ID is already setup as a non-isolated vlan id on the DVS. Throw
an exception.
-                String msg = "PVLAN ID " + spvlanid + " is already in use as a " + vlanmap.get(spvlanid).toString()
+ " VLAN in the DVSwitch";
-                s_logger.error(msg);
-                throw new Exception(msg);
+            // Next the secondary pvlan id.
+            if (spvlanid.equals(vid)) {
+                if (vlanmap.containsKey(spvlanid) && !vlanmap.get(spvlanid).equals(HypervisorHostHelper.PvlanType.promiscuous))
{
+                    String msg = "Specified secondary PVLAN ID " + spvlanid + " is already
in use as a " + vlanmap.get(spvlanid).toString() + " VLAN in the DVSwitch";
+                    s_logger.error(msg);
+                    throw new Exception(msg);
+                }
+            } else {
+                if (vlanmap.containsKey(spvlanid) && !vlanmap.get(spvlanid).equals(HypervisorHostHelper.PvlanType.isolated))
{
+                    // This PVLAN ID is already setup as a non-isolated vlan id on the DVS.
Throw an exception.
+                    String msg = "Specified secondary PVLAN ID " + spvlanid + " is already
in use as a " + vlanmap.get(spvlanid).toString() + " VLAN in the DVSwitch";
+                    s_logger.error(msg);
+                    throw new Exception(msg);
+                }
             }
         }
 


Mime
View raw message