You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by mu...@apache.org on 2014/06/19 12:36:37 UTC

git commit: updated refs/heads/4.4-forward to d8cbba1

Repository: cloudstack
Updated Branches:
  refs/heads/4.4-forward 13bd8beb9 -> d8cbba1bc


CLOUDSTACK-6750: [OVS] With stretched network deploying vm in a ovs
disabled zone does not fail

Fix ensures that connectivity service provider is enabled in the zone on
to which nework is being streched.


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

Branch: refs/heads/4.4-forward
Commit: d8cbba1bc616d43e218229a2807915c1b21569dc
Parents: 13bd8be
Author: Murali Reddy <mu...@gmail.com>
Authored: Thu Jun 19 16:03:46 2014 +0530
Committer: Murali Reddy <mu...@gmail.com>
Committed: Thu Jun 19 16:04:57 2014 +0530

----------------------------------------------------------------------
 server/src/com/cloud/vm/UserVmManagerImpl.java | 25 +++++++++++++++++++--
 1 file changed, 23 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/d8cbba1b/server/src/com/cloud/vm/UserVmManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/vm/UserVmManagerImpl.java b/server/src/com/cloud/vm/UserVmManagerImpl.java
index e5216e3..68503ae 100755
--- a/server/src/com/cloud/vm/UserVmManagerImpl.java
+++ b/server/src/com/cloud/vm/UserVmManagerImpl.java
@@ -2719,8 +2719,29 @@ public class UserVmManagerImpl extends ManagerBase implements UserVmManager, Vir
         boolean securityGroupEnabled = false;
         boolean vpcNetwork = false;
         for (NetworkVO network : networkList) {
-            if ((network.getDataCenterId() != zone.getId()) && !network.isStrechedL2Network()) {
-                throw new InvalidParameterValueException("Network id=" + network.getId() + " doesn't belong to zone " + zone.getId());
+            if ((network.getDataCenterId() != zone.getId())) {
+                if (!network.isStrechedL2Network()) {
+                    throw new InvalidParameterValueException("Network id=" + network.getId() +
+                            " doesn't belong to zone " + zone.getId());
+                }
+
+                NetworkOffering ntwkOffering = _networkOfferingDao.findById(network.getNetworkOfferingId());
+                Long physicalNetworkId = _networkModel.findPhysicalNetworkId(zone.getId(), ntwkOffering.getTags(),
+                        ntwkOffering.getTrafficType());
+                if (physicalNetworkId == null) {
+                    s_logger.warn("Network id " + network.getId() + " could not be streched to the zone " + zone.getId()
+                            + " as valid phyical network could not be found");
+                    throw new InvalidParameterValueException("Network in which is VM getting deployed could not be" +
+                            " streched to the zone.");
+                }
+
+                String provider = _ntwkSrvcDao.getProviderForServiceInNetwork(network.getId(), Service.Connectivity);
+                if (!_networkModel.isProviderEnabledInPhysicalNetwork(physicalNetworkId, provider)) {
+                    s_logger.warn("Network id " + network.getId() + " could not be streched to the zone " +zone.getId()
+                            + " as Connectivity service provider is not enabled in the zone " + zone.getId());
+                    throw new InvalidParameterValueException("Network in which is VM getting deployed could not be" +
+                            " streched to the zone.");
+                }
             }
 
             //relax the check if the caller is admin account