cloudstack-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From sate...@apache.org
Subject git commit: refs/heads/master - In basic zone, skip checks for physical network configuration with multiple virtual switches.
Date Sun, 03 Mar 2013 02:54:05 GMT
Updated Branches:
  refs/heads/master 6a1ecae55 -> 7c52d7d1c


In basic zone, skip checks for physical network configuration with multiple virtual switches.

Signed-off-by: Sateesh Chodapuneedi <sateesh@apache.org>


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

Branch: refs/heads/master
Commit: 7c52d7d1c92e57335958cd43f5185481043eb1aa
Parents: 6a1ecae
Author: Sateesh Chodapuneedi <sateesh@apache.org>
Authored: Sun Mar 3 08:22:40 2013 +0530
Committer: Sateesh Chodapuneedi <sateesh@apache.org>
Committed: Sun Mar 3 08:22:40 2013 +0530

----------------------------------------------------------------------
 .../hypervisor/vmware/VmwareServerDiscoverer.java  |   75 +++++++++------
 1 files changed, 45 insertions(+), 30 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/7c52d7d1/plugins/hypervisors/vmware/src/com/cloud/hypervisor/vmware/VmwareServerDiscoverer.java
----------------------------------------------------------------------
diff --git a/plugins/hypervisors/vmware/src/com/cloud/hypervisor/vmware/VmwareServerDiscoverer.java
b/plugins/hypervisors/vmware/src/com/cloud/hypervisor/vmware/VmwareServerDiscoverer.java
index 90fe461..e6d708c 100755
--- a/plugins/hypervisors/vmware/src/com/cloud/hypervisor/vmware/VmwareServerDiscoverer.java
+++ b/plugins/hypervisors/vmware/src/com/cloud/hypervisor/vmware/VmwareServerDiscoverer.java
@@ -159,10 +159,12 @@ public class VmwareServerDiscoverer extends DiscovererBase implements
         VmwareTrafficLabel guestTrafficLabelObj = new VmwareTrafficLabel(TrafficType.Guest);
         VmwareTrafficLabel publicTrafficLabelObj = new VmwareTrafficLabel(TrafficType.Public);
         Map<String, String> clusterDetails = _clusterDetailsDao.findDetails(clusterId);
+        DataCenterVO zone = _dcDao.findById(dcId);
+        NetworkType zoneType = zone.getNetworkType();
         _readGlobalConfigParameters();
 
         // Set default physical network end points for public and guest traffic
-        // Private traffic will be only on standard vSwitch for now. See below TODO.
+        // Private traffic will be only on standard vSwitch for now.
         if (useDVS) {
             // Parse url parameters for type of vswitch and name of vswitch specified at
cluster level
             paramGuestVswitchType = _urlParams.get(ApiConstants.VSWITCH_TYPE_GUEST_TRAFFIC);
@@ -171,13 +173,6 @@ public class VmwareServerDiscoverer extends DiscovererBase implements
             paramPublicVswitchName = _urlParams.get(ApiConstants.VSWITCH_NAME_PUBLIC_TRAFFIC);
             defaultVirtualSwitchType = getDefaultVirtualSwitchType();
         }
-        // Get zone wide traffic labels for Guest traffic and Public traffic
-        guestTrafficLabel = _netmgr.getDefaultGuestTrafficLabel(dcId, HypervisorType.VMware);
-        publicTrafficLabel = _netmgr.getDefaultPublicTrafficLabel(dcId, HypervisorType.VMware);
-        
-        // Process traffic label information provided at zone level and cluster level
-        guestTrafficLabelObj = getTrafficInfo(TrafficType.Guest, guestTrafficLabel, defaultVirtualSwitchType,
paramGuestVswitchType, paramGuestVswitchName, clusterId);
-        publicTrafficLabelObj = getTrafficInfo(TrafficType.Public, publicTrafficLabel, defaultVirtualSwitchType,
paramPublicVswitchType, paramPublicVswitchName, clusterId);
 
         // Zone level vSwitch Type depends on zone level traffic labels
         //
@@ -196,28 +191,50 @@ public class VmwareServerDiscoverer extends DiscovererBase implements
         // <VSWITCHTYPE> 'vmwaresvs' is for vmware standard vswitch
         // <VSWITCHTYPE> 'vmwaredvs' is for vmware distributed virtual switch
         // <VSWITCHTYPE> 'nexusdvs' is for cisco nexus distributed virtual switch
+        // Get zone wide traffic labels for Guest traffic and Public traffic
+        guestTrafficLabel = _netmgr.getDefaultGuestTrafficLabel(dcId, HypervisorType.VMware);
 
-        // Configuration Check: A physical network cannot be shared by different types of
virtual switches.
-        //
-        // Check if different vswitch types are chosen for same physical network
-        // 1. Get physical network for guest traffic - multiple networks
-        // 2. Get physical network for public traffic - single network
-        // See if 2 is in 1
-        //  if no - pass
-        //  if yes - compare publicTrafficLabelObj.getVirtualSwitchType() == guestTrafficLabelObj.getVirtualSwitchType()
-        //      true  - pass
-        //      false - throw exception - fail cluster add operation
-        List<? extends PhysicalNetwork> pNetworkListGuestTraffic = _netmgr.getPhysicalNtwksSupportingTrafficType(dcId,
TrafficType.Guest);
-        List<? extends PhysicalNetwork> pNetworkListPublicTraffic = _netmgr.getPhysicalNtwksSupportingTrafficType(dcId,
TrafficType.Public);
-        // Public network would be on single physical network hence getting first object
of the list would suffice.
-        PhysicalNetwork pNetworkPublic = pNetworkListPublicTraffic.get(0);
-        if (pNetworkListGuestTraffic.contains(pNetworkPublic)) {
-            if (publicTrafficLabelObj.getVirtualSwitchType() != guestTrafficLabelObj.getVirtualSwitchType())
{
-                String msg = "Both public traffic and guest traffic is over same physical
network " + pNetworkPublic +
-                        ". And virtual switch type chosen for each traffic is different"
+
-                        ". A physical network cannot be shared by different types of virtual
switches.";
+        // Process traffic label information provided at zone level and cluster level
+        guestTrafficLabelObj = getTrafficInfo(TrafficType.Guest, guestTrafficLabel, defaultVirtualSwitchType,
paramGuestVswitchType, paramGuestVswitchName, clusterId);
+
+        if (zoneType == NetworkType.Advanced) {
+            // Get zone wide traffic label for Public traffic
+            publicTrafficLabel = _netmgr.getDefaultPublicTrafficLabel(dcId, HypervisorType.VMware);
+
+            // Process traffic label information provided at zone level and cluster level
+            publicTrafficLabelObj = getTrafficInfo(TrafficType.Public, publicTrafficLabel,
defaultVirtualSwitchType, paramPublicVswitchType, paramPublicVswitchName, clusterId);
+
+            // Configuration Check: A physical network cannot be shared by different types
of virtual switches.
+            //
+            // Check if different vswitch types are chosen for same physical network
+            // 1. Get physical network for guest traffic - multiple networks
+            // 2. Get physical network for public traffic - single network
+            // See if 2 is in 1
+            //  if no - pass
+            //  if yes - compare publicTrafficLabelObj.getVirtualSwitchType() == guestTrafficLabelObj.getVirtualSwitchType()
+            //      true  - pass
+            //      false - throw exception - fail cluster add operation
+
+            List<? extends PhysicalNetwork> pNetworkListGuestTraffic = _netmgr.getPhysicalNtwksSupportingTrafficType(dcId,
TrafficType.Guest);
+            List<? extends PhysicalNetwork> pNetworkListPublicTraffic = _netmgr.getPhysicalNtwksSupportingTrafficType(dcId,
TrafficType.Public);
+            // Public network would be on single physical network hence getting first object
of the list would suffice.
+            PhysicalNetwork pNetworkPublic = pNetworkListPublicTraffic.get(0);
+            if (pNetworkListGuestTraffic.contains(pNetworkPublic)) {
+                if (publicTrafficLabelObj.getVirtualSwitchType() != guestTrafficLabelObj.getVirtualSwitchType())
{
+                    String msg = "Both public traffic and guest traffic is over same physical
network " + pNetworkPublic +
+                            ". And virtual switch type chosen for each traffic is different"
+
+                            ". A physical network cannot be shared by different types of
virtual switches.";
+                    s_logger.error(msg);
+                    throw new InvalidParameterValueException(msg);
+                }
+            }
+        } else {
+            // Distributed virtual switch is not supported in Basic zone for now.
+            // Private / Management network traffic is not yet supported over distributed
virtual switch.
+            if (guestTrafficLabelObj.getVirtualSwitchType() != VirtualSwitchType.StandardVirtualSwitch)
{
+                String msg = "Detected that Guest traffic is over Distributed virtual switch
in Basic zone. Only Standard vSwitch is supported in Basic zone.";
                 s_logger.error(msg);
-                throw new InvalidParameterValueException(msg);
+                throw new DiscoveredWithErrorException(msg);
             }
         }
 
@@ -227,8 +244,6 @@ public class VmwareServerDiscoverer extends DiscovererBase implements
         }
 
         if (nexusDVS) {
-            DataCenterVO zone = _dcDao.findById(dcId);
-            NetworkType zoneType = zone.getNetworkType();
             if (zoneType != NetworkType.Basic) {
                 publicTrafficLabel = _netmgr.getDefaultPublicTrafficLabel(dcId, HypervisorType.VMware);
                 if (publicTrafficLabel != null) {


Mime
View raw message