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 2013/12/27 09:07:17 UTC

git commit: updated refs/heads/4.3 to 2715fd4

Updated Branches:
  refs/heads/4.3 9f5bea620 -> 2715fd4dd


CLOUDSTACK-5403: Shared network - None of PF, LB rules work after router
restart, firewall rules dropped from iptables post restart

on VR restart, not all public IP's associated with the network are sent
with IpAssocCmd to VR. This fix will ensure all the ip's associated with
the network irrespective of the account are sent as part of
IpAssocCommand


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

Branch: refs/heads/4.3
Commit: 2715fd4dd94daee5503603f3fdd44b663575cdaf
Parents: 9f5bea6
Author: Murali Reddy <mu...@gmail.com>
Authored: Fri Dec 27 13:31:44 2013 +0530
Committer: Murali Reddy <mu...@gmail.com>
Committed: Fri Dec 27 13:35:42 2013 +0530

----------------------------------------------------------------------
 api/src/com/cloud/network/NetworkModel.java            |  2 ++
 server/src/com/cloud/network/NetworkModelImpl.java     | 13 +++++++++++++
 .../router/VirtualNetworkApplianceManagerImpl.java     | 13 +++++++++++--
 .../test/com/cloud/network/MockNetworkModelImpl.java   |  9 +++++++++
 server/test/com/cloud/vpc/MockNetworkModelImpl.java    | 10 ++++++++++
 5 files changed, 45 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/2715fd4d/api/src/com/cloud/network/NetworkModel.java
----------------------------------------------------------------------
diff --git a/api/src/com/cloud/network/NetworkModel.java b/api/src/com/cloud/network/NetworkModel.java
index 8ae1cb7..99ce1f5 100644
--- a/api/src/com/cloud/network/NetworkModel.java
+++ b/api/src/com/cloud/network/NetworkModel.java
@@ -61,6 +61,8 @@ public interface NetworkModel {
      */
     List<? extends IpAddress> listPublicIpsAssignedToGuestNtwk(long accountId, long associatedNetworkId, Boolean sourceNat);
 
+    List<? extends IpAddress> listPublicIpsAssignedToGuestNtwk(long associatedNetworkId, Boolean sourceNat);
+
     List<? extends NetworkOffering> getSystemAccountNetworkOfferings(String... offeringNames);
 
     List<? extends Nic> getNics(long vmId);

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/2715fd4d/server/src/com/cloud/network/NetworkModelImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/network/NetworkModelImpl.java b/server/src/com/cloud/network/NetworkModelImpl.java
index 2533ce8..27b2006 100755
--- a/server/src/com/cloud/network/NetworkModelImpl.java
+++ b/server/src/com/cloud/network/NetworkModelImpl.java
@@ -530,6 +530,19 @@ public class NetworkModelImpl extends ManagerBase implements NetworkModel {
     }
 
     @Override
+    public List<IPAddressVO> listPublicIpsAssignedToGuestNtwk(long associatedNetworkId, Boolean sourceNat) {
+        SearchCriteria<IPAddressVO> sc = IpAddressSearch.create();
+        sc.setParameters("associatedWithNetworkId", associatedNetworkId);
+
+        if (sourceNat != null) {
+            sc.addAnd("sourceNat", SearchCriteria.Op.EQ, sourceNat);
+        }
+        sc.setJoinParameters("virtualNetworkVlanSB", "vlanType", VlanType.VirtualNetwork);
+
+        return _ipAddressDao.search(sc, null);
+    }
+
+    @Override
     public List<IPAddressVO> listPublicIpsAssignedToAccount(long accountId, long dcId, Boolean sourceNat) {
         SearchCriteria<IPAddressVO> sc = IpAddressSearch.create();
         sc.setParameters("accountId", accountId);

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/2715fd4d/server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java b/server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java
index 15b5ff2..3fe9363 100755
--- a/server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java
+++ b/server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java
@@ -2467,7 +2467,16 @@ public class VirtualNetworkApplianceManagerImpl extends ManagerBase implements V
     protected ArrayList<? extends PublicIpAddress> getPublicIpsToApply(VirtualRouter router, Provider provider,
             Long guestNetworkId, com.cloud.network.IpAddress.State... skipInStates) {
         long ownerId = router.getAccountId();
-        final List<? extends IpAddress> userIps = _networkModel.listPublicIpsAssignedToGuestNtwk(ownerId, guestNetworkId, null);
+        final List<? extends IpAddress> userIps;
+
+        Network guestNetwork = _networkDao.findById(guestNetworkId);
+        if (guestNetwork.getGuestType() == GuestType.Shared) {
+            // ignore the account id for the shared network
+            userIps = _networkModel.listPublicIpsAssignedToGuestNtwk(guestNetworkId, null);
+        } else {
+            userIps = _networkModel.listPublicIpsAssignedToGuestNtwk(ownerId, guestNetworkId, null);
+        }
+
         List<PublicIp> allPublicIps = new ArrayList<PublicIp>();
         if (userIps != null && !userIps.isEmpty()) {
             boolean addIp = true;
@@ -3434,7 +3443,7 @@ public class VirtualNetworkApplianceManagerImpl extends ManagerBase implements V
 
     protected boolean sendCommandsToRouter(final VirtualRouter router, Commands cmds) throws AgentUnavailableException {
         if(!checkRouterVersion(router)){
-            throw new CloudRuntimeException("Router requires upgrade. Unable to send command to router:" + router.getId());
+            //throw new CloudRuntimeException("Router requires upgrade. Unable to send command to router:" + router.getId());
         }
         Answer[] answers = null;
         try {

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/2715fd4d/server/test/com/cloud/network/MockNetworkModelImpl.java
----------------------------------------------------------------------
diff --git a/server/test/com/cloud/network/MockNetworkModelImpl.java b/server/test/com/cloud/network/MockNetworkModelImpl.java
index f9dd9fe..04c50c0 100644
--- a/server/test/com/cloud/network/MockNetworkModelImpl.java
+++ b/server/test/com/cloud/network/MockNetworkModelImpl.java
@@ -94,6 +94,15 @@ public class MockNetworkModelImpl extends ManagerBase implements NetworkModel {
     }
 
     /* (non-Javadoc)
+   * @see com.cloud.network.NetworkModel#listPublicIpsAssignedToGuestNtwk(long, long, java.lang.Boolean)
+   */
+    @Override
+    public List<IPAddressVO> listPublicIpsAssignedToGuestNtwk(long associatedNetworkId, Boolean sourceNat) {
+        // TODO Auto-generated method stub
+        return null;
+    }
+
+    /* (non-Javadoc)
      * @see com.cloud.network.NetworkModel#getSystemAccountNetworkOfferings(java.lang.String[])
      */
     @Override

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/2715fd4d/server/test/com/cloud/vpc/MockNetworkModelImpl.java
----------------------------------------------------------------------
diff --git a/server/test/com/cloud/vpc/MockNetworkModelImpl.java b/server/test/com/cloud/vpc/MockNetworkModelImpl.java
index 19ed9d5..e98253b 100644
--- a/server/test/com/cloud/vpc/MockNetworkModelImpl.java
+++ b/server/test/com/cloud/vpc/MockNetworkModelImpl.java
@@ -104,6 +104,16 @@ public class MockNetworkModelImpl extends ManagerBase implements NetworkModel {
     }
 
     /* (non-Javadoc)
+     * @see com.cloud.network.NetworkModel#listPublicIpsAssignedToGuestNtwk(long, long, java.lang.Boolean)
+     */
+    @Override
+    public List<IPAddressVO> listPublicIpsAssignedToGuestNtwk(long associatedNetworkId, Boolean sourceNat) {
+
+        // TODO Auto-generated method stub
+        return null;
+    }
+
+    /* (non-Javadoc)
      * @see com.cloud.network.NetworkModel#getSystemAccountNetworkOfferings(java.lang.String[])
      */
     @Override