You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by sa...@apache.org on 2014/09/15 16:33:57 UTC
git commit: updated refs/heads/master to 8c671c4
Repository: cloudstack
Updated Branches:
refs/heads/master 6379ca454 -> 8c671c49b
CLOUDSTACK-7548:removeNICFromVM should check for networkId while checking for PF rules on the nic
Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/8c671c49
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/8c671c49
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/8c671c49
Branch: refs/heads/master
Commit: 8c671c49b3a351d2f72a727bae6724fd1234e71c
Parents: 6379ca4
Author: Saksham Srivastava <sa...@citrix.com>
Authored: Mon Sep 15 19:14:50 2014 +0530
Committer: Saksham Srivastava <sa...@citrix.com>
Committed: Mon Sep 15 19:15:09 2014 +0530
----------------------------------------------------------------------
.../rules/dao/PortForwardingRulesDao.java | 4 ++--
.../rules/dao/PortForwardingRulesDaoImpl.java | 4 ++--
.../cloud/network/rules/RulesManagerImpl.java | 19 ++++++++++++++-----
3 files changed, 18 insertions(+), 9 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/8c671c49/engine/schema/src/com/cloud/network/rules/dao/PortForwardingRulesDao.java
----------------------------------------------------------------------
diff --git a/engine/schema/src/com/cloud/network/rules/dao/PortForwardingRulesDao.java b/engine/schema/src/com/cloud/network/rules/dao/PortForwardingRulesDao.java
index 5b0e748..b89d04a 100644
--- a/engine/schema/src/com/cloud/network/rules/dao/PortForwardingRulesDao.java
+++ b/engine/schema/src/com/cloud/network/rules/dao/PortForwardingRulesDao.java
@@ -44,7 +44,7 @@ public interface PortForwardingRulesDao extends GenericDao<PortForwardingRuleVO,
List<PortForwardingRuleVO> listByDestIpAddr(String ip4Address);
- List<PortForwardingRuleVO> listByVmidAndDestIpAddr(String ip4Address,long vmid);
-
PortForwardingRuleVO findByIdAndIp(long id, String secondaryIp);
+
+ List<PortForwardingRuleVO> listByNetworkAndDestIpAddr(String ip4Address, long networkId);
}
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/8c671c49/engine/schema/src/com/cloud/network/rules/dao/PortForwardingRulesDaoImpl.java
----------------------------------------------------------------------
diff --git a/engine/schema/src/com/cloud/network/rules/dao/PortForwardingRulesDaoImpl.java b/engine/schema/src/com/cloud/network/rules/dao/PortForwardingRulesDaoImpl.java
index 6bc401b..3aa6181 100644
--- a/engine/schema/src/com/cloud/network/rules/dao/PortForwardingRulesDaoImpl.java
+++ b/engine/schema/src/com/cloud/network/rules/dao/PortForwardingRulesDaoImpl.java
@@ -158,10 +158,10 @@ public class PortForwardingRulesDaoImpl extends GenericDaoBase<PortForwardingRul
}
@Override
- public List<PortForwardingRuleVO> listByVmidAndDestIpAddr(String ip4Address,long vmid) {
+ public List<PortForwardingRuleVO> listByNetworkAndDestIpAddr(String ip4Address, long networkId) {
SearchCriteria<PortForwardingRuleVO> sc = AllFieldsSearch.create();
sc.setParameters("dstIp", ip4Address);
- sc.setParameters("vmId", vmid);
+ sc.setParameters("networkId", networkId);
return listBy(sc);
}
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/8c671c49/server/src/com/cloud/network/rules/RulesManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/network/rules/RulesManagerImpl.java b/server/src/com/cloud/network/rules/RulesManagerImpl.java
index 59025f2..56a075d 100755
--- a/server/src/com/cloud/network/rules/RulesManagerImpl.java
+++ b/server/src/com/cloud/network/rules/RulesManagerImpl.java
@@ -1463,14 +1463,20 @@ public class RulesManagerImpl extends ManagerBase implements RulesManager, Rules
@Override
public List<FirewallRuleVO> listAssociatedRulesForGuestNic(Nic nic) {
+ s_logger.debug("Checking if PF/StaticNat/LoadBalancer rules are configured for nic " + nic.getId());
List<FirewallRuleVO> result = new ArrayList<FirewallRuleVO>();
// add PF rules
- result.addAll(_portForwardingDao.listByVmidAndDestIpAddr(nic.getIp4Address(),nic.getInstanceId()));
+ result.addAll(_portForwardingDao.listByNetworkAndDestIpAddr(nic.getIp4Address(), nic.getNetworkId()));
+ if(result.size() > 0) {
+ s_logger.debug("Found " + result.size() + " portforwarding rule configured for the nic in the network " + nic.getNetworkId());
+ }
// add static NAT rules
List<FirewallRuleVO> staticNatRules = _firewallDao.listStaticNatByVmId(nic.getInstanceId());
for (FirewallRuleVO rule : staticNatRules) {
- if (rule.getNetworkId() == nic.getNetworkId())
+ if (rule.getNetworkId() == nic.getNetworkId()) {
result.add(rule);
+ s_logger.debug("Found rule " + rule.getId() + " " + rule.getPurpose() + " configured");
+ }
}
List<? extends IpAddress> staticNatIps = _ipAddressDao.listStaticNatPublicIps(nic.getNetworkId());
for (IpAddress ip : staticNatIps) {
@@ -1479,17 +1485,20 @@ public class RulesManagerImpl extends ManagerBase implements RulesManager, Rules
// generate a static Nat rule on the fly because staticNATrule does not persist into db anymore
// FIX ME
FirewallRuleVO staticNatRule =
- new FirewallRuleVO(null, ip.getId(), 0, 65535, NetUtils.ALL_PROTO.toString(), nic.getNetworkId(), vm.getAccountId(), vm.getDomainId(),
- Purpose.StaticNat, null, null, null, null, null);
+ new FirewallRuleVO(null, ip.getId(), 0, 65535, NetUtils.ALL_PROTO.toString(), nic.getNetworkId(), vm.getAccountId(), vm.getDomainId(),
+ Purpose.StaticNat, null, null, null, null, null);
result.add(staticNatRule);
+ s_logger.debug("Found rule " + staticNatRule.getId() + " " + staticNatRule.getPurpose() + " configured");
}
}
// add LB rules
List<LoadBalancerVMMapVO> lbMapList = _loadBalancerVMMapDao.listByInstanceId(nic.getInstanceId());
for (LoadBalancerVMMapVO lb : lbMapList) {
FirewallRuleVO lbRule = _firewallDao.findById(lb.getLoadBalancerId());
- if (lbRule.getNetworkId() == nic.getNetworkId())
+ if (lbRule.getNetworkId() == nic.getNetworkId()) {
result.add(lbRule);
+ s_logger.debug("Found rule " + lbRule.getId() + " " + lbRule.getPurpose() + " configured");
+ }
}
return result;
}