You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by al...@apache.org on 2012/07/14 02:08:26 UTC

git commit: VPC: CS-15580 - don't allow gateway for VPC guest network to be equal to the cidr subnet

Updated Branches:
  refs/heads/vpc a1acfd3bf -> 4a7149e6b


VPC: CS-15580 - don't allow gateway for VPC guest network to be equal to the cidr subnet

Conflicts:

	server/src/com/cloud/network/NetworkManagerImpl.java
	server/src/com/cloud/network/vpc/VpcManagerImpl.java


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

Branch: refs/heads/vpc
Commit: 4a7149e6b5772489f400a27b05bc9a3c36e15ec9
Parents: a1acfd3
Author: Alena Prokharchyk <al...@citrix.com>
Authored: Fri Jul 13 17:05:33 2012 -0700
Committer: Alena Prokharchyk <al...@citrix.com>
Committed: Fri Jul 13 17:09:16 2012 -0700

----------------------------------------------------------------------
 server/src/com/cloud/network/NetworkManager.java   |    2 --
 .../src/com/cloud/network/NetworkManagerImpl.java  |    5 ++---
 server/src/com/cloud/network/vpc/VpcManager.java   |    3 ++-
 .../src/com/cloud/network/vpc/VpcManagerImpl.java  |   14 ++++++++++----
 utils/src/com/cloud/utils/net/NetUtils.java        |    1 -
 5 files changed, 14 insertions(+), 11 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/4a7149e6/server/src/com/cloud/network/NetworkManager.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/network/NetworkManager.java b/server/src/com/cloud/network/NetworkManager.java
index 2b78238..c95b609 100755
--- a/server/src/com/cloud/network/NetworkManager.java
+++ b/server/src/com/cloud/network/NetworkManager.java
@@ -22,7 +22,6 @@ import java.util.Map;
 import java.util.Set;
 
 import com.cloud.acl.ControlledEntity.ACLType;
-import com.cloud.agent.api.to.NicTO;
 import com.cloud.dc.DataCenter;
 import com.cloud.dc.Vlan;
 import com.cloud.dc.Vlan.VlanType;
@@ -55,7 +54,6 @@ import com.cloud.user.Account;
 import com.cloud.utils.Pair;
 import com.cloud.vm.Nic;
 import com.cloud.vm.NicProfile;
-import com.cloud.vm.NicVO;
 import com.cloud.vm.ReservationContext;
 import com.cloud.vm.VMInstanceVO;
 import com.cloud.vm.VirtualMachine;

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/4a7149e6/server/src/com/cloud/network/NetworkManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/network/NetworkManagerImpl.java b/server/src/com/cloud/network/NetworkManagerImpl.java
index 94d394e..81d9041 100755
--- a/server/src/com/cloud/network/NetworkManagerImpl.java
+++ b/server/src/com/cloud/network/NetworkManagerImpl.java
@@ -2852,8 +2852,7 @@ public class NetworkManagerImpl implements NetworkManager, NetworkService, Manag
             networkDomain = vpc.getNetworkDomain();
         }
         //1) Validate if network can be created for VPC
-        _vpcMgr.validateGuestNtkwForVpc(_configMgr.getNetworkOffering(ntwkOffId), cidr, networkDomain, owner, vpc, null);
-        
+        _vpcMgr.validateGuestNtkwForVpc(_configMgr.getNetworkOffering(ntwkOffId), cidr, networkDomain, owner, vpc, null, gateway);
         //2) Create network
         Network guestNetwork = createGuestNetwork(ntwkOffId, name, displayText, gateway, cidr, vlanId, 
                 networkDomain, owner, domainId, pNtwk, zoneId, aclType, subdomainAccess, vpcId);
@@ -4677,7 +4676,7 @@ public class NetworkManagerImpl implements NetworkManager, NetworkService, Manag
             //perform below validation if the network is vpc network
             if (network.getVpcId() != null) {
                 Vpc vpc = _vpcMgr.getVpc(network.getVpcId());
-                _vpcMgr.validateGuestNtkwForVpc(networkOffering, null, null, null,vpc, networkId);
+                _vpcMgr.validateGuestNtkwForVpc(networkOffering, null, null, null,vpc, networkId, null);
             }
 
             if (networkOfferingId != oldNetworkOfferingId) {

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/4a7149e6/server/src/com/cloud/network/vpc/VpcManager.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/network/vpc/VpcManager.java b/server/src/com/cloud/network/vpc/VpcManager.java
index cc6d5e3..c567e8b 100644
--- a/server/src/com/cloud/network/vpc/VpcManager.java
+++ b/server/src/com/cloud/network/vpc/VpcManager.java
@@ -68,10 +68,11 @@ public interface VpcManager extends VpcService{
      * @param networkOwner
      * @param vpc TODO
      * @param networkId TODO
+     * @param gateway TODO
      * @return
      */
     void validateGuestNtkwForVpc(NetworkOffering guestNtwkOff, String cidr, String networkDomain, Account networkOwner, 
-            Vpc vpc, Long networkId);
+            Vpc vpc, Long networkId, String gateway);
 
     /**
      * @return

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/4a7149e6/server/src/com/cloud/network/vpc/VpcManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/network/vpc/VpcManagerImpl.java b/server/src/com/cloud/network/vpc/VpcManagerImpl.java
index b83a169..e29c021 100644
--- a/server/src/com/cloud/network/vpc/VpcManagerImpl.java
+++ b/server/src/com/cloud/network/vpc/VpcManagerImpl.java
@@ -858,11 +858,11 @@ public class VpcManagerImpl implements VpcManager, Manager{
     @Override
     @DB
     public void validateGuestNtkwForVpc(NetworkOffering guestNtwkOff, String cidr, String networkDomain, 
-            Account networkOwner, Vpc vpc, Long networkId) {
-        
+            Account networkOwner, Vpc vpc, Long networkId, String gateway) {
+
         if (networkId == null) {
             //1) Validate attributes that has to be passed in when create new guest network
-            validateNewVpcGuestNetwork(cidr, networkOwner, vpc, networkDomain); 
+            validateNewVpcGuestNetwork(cidr, gateway, networkOwner, vpc, networkDomain); 
         }
         
         //2) Only Isolated networks with Source nat service enabled can be added to vpc
@@ -914,7 +914,7 @@ public class VpcManagerImpl implements VpcManager, Manager{
         
     }
 
-    protected void validateNewVpcGuestNetwork(String cidr, Account networkOwner, Vpc vpc, String networkDomain) {
+    protected void validateNewVpcGuestNetwork(String cidr, String gateway, Account networkOwner, Vpc vpc, String networkDomain) {
         Vpc locked = _vpcDao.acquireInLockTable(vpc.getId());
         if (locked == null) {
             throw new CloudRuntimeException("Unable to acquire lock on " + vpc);
@@ -954,6 +954,12 @@ public class VpcManagerImpl implements VpcManager, Manager{
                 throw new InvalidParameterValueException("Network domain of the new network should match network" +
                 		" domain of vpc " + vpc);
             }
+            
+            //6) gateway should never be equal to the cidr subnet
+            if (NetUtils.getCidrSubNet(cidr).equalsIgnoreCase(gateway)) {
+                throw new InvalidParameterValueException("Invalid gateway specified. It should never be equal to the cidr subnet value");
+            }
+            
         } finally {
             s_logger.debug("Releasing lock for " + locked);
             _vpcDao.releaseFromLockTable(locked.getId());

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/4a7149e6/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 6d17ffb..167e3fd 100755
--- a/utils/src/com/cloud/utils/net/NetUtils.java
+++ b/utils/src/com/cloud/utils/net/NetUtils.java
@@ -516,7 +516,6 @@ public class NetUtils {
             if (octetString.length() < 1 || octetString.length() > 3) {
                 return false;
             }
-
         }
 
         // IP is good, return true